async onMessageCreate(msg) {
        if(!this.ready) {
            return;
        }
        if(!msg.author) {
            this.emit("warn", `Message ${msg.id} has author=${msg.author} | Channel ${msg.channel.id}, timestamp ${Date.now()}`);
            return;
        }

        msg.command = false;
        if((!this.commandOptions.ignoreSelf || msg.author.id !== this.user.id) && (!this.commandOptions.ignoreBots || !msg.author.bot) && (msg.prefix = this.checkPrefix(msg))) {
            const args = msg.content.replace(/<@!/g, "<@").substring(msg.prefix.length).split(" ");
            const label = args.shift();
            const command = this.resolveCommand(label);
            if(command !== undefined) {
                msg.command = command;
                try {
                    let resp = await msg.command.process(args, msg);
                    if(resp != null) {
                        if(!(resp instanceof Message)) {
                            resp = await this.createMessage(msg.channel.id, resp);
                        }
                        if (msg.command.reactionButtons) {
                            msg.command.reactionButtons.forEach((button) => resp.addReaction(button.emoji));
                            this.activeMessages[resp.id] = {
                                args: args,
                                command: msg.command,
                                timeout: setTimeout(() => {
                                    this.unwatchMessage(resp.id, resp.channel.id);
                                }, msg.command.reactionButtonTimeout)
                            };
                        }
                    }
                    if(msg.command.hooks.postCommand) {
                        msg.command.hooks.postCommand(msg, args, resp);
                    }
                } catch(err) {
                    this.emit("error", err);
                    if(msg.command.hooks.postExecution) {
                        msg.command.hooks.postExecution(msg, args, false);
                    }
                    let newMsg;
                    if(msg.command.errorMessage) {
                        if(typeof msg.command.errorMessage === "function") {
                            const reply = msg.command.errorMessage();
                            if(reply !== undefined) {
                                newMsg = await this.createMessage(msg.channel.id, reply);
                            }
                        } else {
                            newMsg = await this.createMessage(msg.channel.id, msg.command.errorMessage);
                        }
                    }
                    if(msg.command.hooks.postCommand) {
                        msg.command.hooks.postCommand(msg, args, newMsg);
                    }
                }
            }
        }
    }
/**
     * Checks the command client for a command based on the provided message
     * @arg {Message} msg The message object from the message create event
     */
Checks the command client for a command based on the provided message
@arg {Message} msg The message object from the message create event
Checks the command client for a command based on the provided message @arg { Message } msg The message object from the message create event
async onMessageCreate(msg) {
        if(!this.ready) {
            return;
        }
        if(!msg.author) {
            this.emit("warn", `Message ${msg.id} has author=${msg.author} | Channel ${msg.channel.id}, timestamp ${Date.now()}`);
            return;
        }
        msg.command = false;
        if((!this.commandOptions.ignoreSelf || msg.author.id !== this.user.id) && (!this.commandOptions.ignoreBots || !msg.author.bot) && (msg.prefix = this.checkPrefix(msg))) {
            const args = msg.content.replace(/<@!/g, "<@").substring(msg.prefix.length).split(" ");
            const label = args.shift();
            const command = this.resolveCommand(label);
            if(command !== undefined) {
                msg.command = command;
                try {
                    let resp = await msg.command.process(args, msg);
                    if(resp != null) {
                        if(!(resp instanceof Message)) {
                            resp = await this.createMessage(msg.channel.id, resp);
                        }
                        if (msg.command.reactionButtons) {
                            msg.command.reactionButtons.forEach((button) => resp.addReaction(button.emoji));
                            this.activeMessages[resp.id] = {
                                args: args,
                                command: msg.command,
                                timeout: setTimeout(() => {
                                    this.unwatchMessage(resp.id, resp.channel.id);
                                }, msg.command.reactionButtonTimeout)
                            };
                        }
                    }
                    if(msg.command.hooks.postCommand) {
                        msg.command.hooks.postCommand(msg, args, resp);
                    }
                } catch(err) {
                    this.emit("error", err);
                    if(msg.command.hooks.postExecution) {
                        msg.command.hooks.postExecution(msg, args, false);
                    }
                    let newMsg;
                    if(msg.command.errorMessage) {
                        if(typeof msg.command.errorMessage === "function") {
                            const reply = msg.command.errorMessage();
                            if(reply !== undefined) {
                                newMsg = await this.createMessage(msg.channel.id, reply);
                            }
                        } else {
                            newMsg = await this.createMessage(msg.channel.id, msg.command.errorMessage);
                        }
                    }
                    if(msg.command.hooks.postCommand) {
                        msg.command.hooks.postCommand(msg, args, newMsg);
                    }
                }
            }
        }
    }
async onMessageCreate ( msg ) { if ( ! this . ready ) { return ; } if ( ! msg . author ) { this . emit ( "warn" , ` ${ msg . id } ${ msg . author } ${ msg . channel . id } ${ Date . now ( ) } ` ) ; return ; } msg . command = false ; if ( ( ! this . commandOptions . ignoreSelf || msg . author . id !== this . user . id ) && ( ! this . commandOptions . ignoreBots || ! msg . author . bot ) && ( msg . prefix = this . checkPrefix ( msg ) ) ) { const args = msg . content . replace ( / <@! / g , "<@" ) . substring ( msg . prefix . length ) . split ( " " ) ; const label = args . shift ( ) ; const command = this . resolveCommand ( label ) ; if ( command !== undefined ) { msg . command = command ; try { let resp = await msg . command . process ( args , msg ) ; if ( resp != null ) { if ( ! ( resp instanceof Message ) ) { resp = await this . createMessage ( msg . channel . id , resp ) ; } if ( msg . command . reactionButtons ) { msg . command . reactionButtons . forEach ( ( button ) => resp . addReaction ( button . emoji ) ) ; this . activeMessages [ resp . id ] = { args : args , command : msg . command , timeout : setTimeout ( ( ) => { this . unwatchMessage ( resp . id , resp . channel . id ) ; } , msg . command . reactionButtonTimeout ) } ; } } if ( msg . command . hooks . postCommand ) { msg . command . hooks . postCommand ( msg , args , resp ) ; } } catch ( err ) { this . emit ( "error" , err ) ; if ( msg . command . hooks . postExecution ) { msg . command . hooks . postExecution ( msg , args , false ) ; } let newMsg ; if ( msg . command . errorMessage ) { if ( typeof msg . command . errorMessage === "function" ) { const reply = msg . command . errorMessage ( ) ; if ( reply !== undefined ) { newMsg = await this . createMessage ( msg . channel . id , reply ) ; } } else { newMsg = await this . createMessage ( msg . channel . id , msg . command . errorMessage ) ; } } if ( msg . command . hooks . postCommand ) { msg . command . hooks . postCommand ( msg , args , newMsg ) ; } } } } }
Checks the command client for a command based on the provided message
 @arg {Message} msg The message object from the message create event
Checks the command client for a command based on the provided message @arg { Message } msg The message object from the message create event