Advertisement
Guest User

Untitled

a guest
Jul 12th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. declare module 'patron.js' {
  2.   import { Message, Collection } from 'discord.js';
  3.  
  4.   export class Argument {
  5.     constructor(options: ArgumentOptions);
  6.     public name : string;
  7.     public key : string;
  8.     public type : string;
  9.     public example: string;
  10.     public default: any;
  11.     public infinite: boolean;
  12.     public remainder: boolean;
  13.     public optional: boolean;
  14.     private static validateArgument(argument: Argument, name: String): void;
  15.   }
  16.  
  17.   export class ArgumentPrecondition {
  18.     public run(command: Command, message: Message, argument: Argument, value: any): Promise<Result>;
  19.   }
  20.  
  21.   export class Command {
  22.     constructor(options: CommandOptions);
  23.     public name: string;
  24.     public aliases: Array<string>;
  25.     public group: string;
  26.     public description: string;
  27.     public guildOnly: boolean;
  28.     public userPermissions: Array<String>;
  29.     public botPermissions: Array<String>;
  30.     public preconditions: Array<Precondition>;
  31.     public args: Array<Argument>;
  32.     public coooldown: Number;
  33.     public hasCooldown: Boolean;
  34.     private _cooldowns: Map<String, Number>;
  35.     public trigger: String;
  36.     private static validateCommand(command: Command, name: String): void;
  37.   }
  38.  
  39.   export enum CommandError {
  40.     Precondition,
  41.     UserPermission,
  42.     BotPermission,
  43.     TypeReader,
  44.     GuildOnly,
  45.     CommandNotFound,
  46.     Cooldown,
  47.     InvalidArgCount,
  48.     Exception
  49.   }
  50.  
  51.   export class Group {
  52.     constructor(options: GroupOptions);
  53.     public name: string;
  54.     public description: string;
  55.     public preconditions: Array<Precondition>;
  56.     public commands: Collection<String, Command>;
  57.     private static validateGroup(group: Group, name: String): void;
  58.   }
  59.  
  60.   export class Result {
  61.     constructor(options: ResultOptions);
  62.     public success: boolean;
  63.     public command: Command;
  64.     public commandError: CommandError
  65.     public errorReason: string;
  66.     public error: Error;
  67.     public value: any;
  68.     public cooldown: Number;
  69.     public remaining: Number;
  70.   }
  71.  
  72.   export class Precondition {
  73.     public run(command: Command, message: Message): Promise<Result>;
  74.   }
  75.  
  76.   type ArgumentOptions = {
  77.     name: string,
  78.     key: string,
  79.     type: string,
  80.     example: string,
  81.     default: any,
  82.     infinite: boolean,
  83.     remainder: boolean,
  84.     preconditions: Array<ArgumentPrecondition>
  85.   }
  86.  
  87.   type CommandOptions = {
  88.     name: string,
  89.     aliases: Array<string>,
  90.     group: string,
  91.     description: string,
  92.     guildOnly: boolean,
  93.     userPermissions: Array<String>,
  94.     botPermissions: Array<String>,
  95.     preconditions: Array<Precondition>,
  96.     args: Array<Argument>,
  97.     coooldown: Number
  98.   }
  99.  
  100.   type GroupOptions = {
  101.     name: string,
  102.     description: string,
  103.     preconditions: Array<Precondition>
  104.   }
  105.  
  106.   type ResultOptions = {
  107.     success: boolean,
  108.     command: Command,
  109.     commandError: CommandError,
  110.     errorReason: string,
  111.     error: Error,
  112.     value: any,
  113.     cooldown: Number,
  114.     remaining: Number
  115.   }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement