discord-message-handler
Advanced tools
Comparing version 1.0.2 to 1.0.3
{ | ||
"name": "discord-message-handler", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "Message and command handler for discord.js bots and applications.", | ||
@@ -5,0 +5,0 @@ "main": "./src/index", |
@@ -54,3 +54,11 @@ ##About | ||
###Logging | ||
To enable logging call `MessageHandler.enableLogging()` and pass a function to handle logs. | ||
```js | ||
MessageHandler.enableLogging((filterType, filter, message) => { | ||
console.log(`${new Date().toISOString()} ${filterType}: ${filter} - "${message.content}"`); | ||
}); | ||
``` | ||
##Contributing | ||
Feel free to send a pull request or open an issue if something is not working as intended or you belive could be better. |
@@ -16,3 +16,3 @@ const MessageType = { | ||
THEN: 3, | ||
DO: 4 | ||
DO: 4 | ||
}; | ||
@@ -31,4 +31,13 @@ | ||
static arrayToLower(array) { | ||
return array.map(str => str.toLowerCase() ); | ||
return array.map(str => str.toLowerCase()); | ||
} | ||
static getKeyByValue(obj, value) { | ||
for (var prop in obj) { | ||
if (obj.hasOwnProperty(prop)) { | ||
if (obj[prop] === value) | ||
return prop; | ||
} | ||
} | ||
} | ||
} | ||
@@ -73,3 +82,3 @@ | ||
this.handler.action = ActionType.DO; | ||
this.handler.callback = _callback; | ||
this.handler.callback = _callback; | ||
} | ||
@@ -120,7 +129,7 @@ | ||
// Remove command from args | ||
args.splice(0,1); | ||
args.splice(0, 1); | ||
let rawArgs = args.join(" "); | ||
if(args.length < minimumArgs && errorMessage) { | ||
if (args.length < minimumArgs && errorMessage) { | ||
this.replySameChannel(errorMessage); | ||
@@ -138,5 +147,14 @@ } else { | ||
this.handlers = []; | ||
this.caseSensitive = false; | ||
this.caseSensitive = false; | ||
this.logFn = null; | ||
} | ||
log(messageType, filter, message) { | ||
let msgType = Utils.getKeyByValue(MessageType, messageType); | ||
if (this.logFn && typeof this.logFn == "function") { | ||
this.logFn(msgType, filter, message); | ||
} | ||
} | ||
setCaseSensitive(isCaseSensitive) { | ||
@@ -146,2 +164,6 @@ this.caseSensitive = isCaseSensitive; | ||
enableLogging(logFn) { | ||
this.logFn = logFn; | ||
} | ||
whenMessageContains(text) { | ||
@@ -199,3 +221,3 @@ let builder = new HandlerBuilder().type(MessageType.MESSAGE_CONTAINS).query(text); | ||
if(this.caseSensitive) { | ||
if (this.caseSensitive) { | ||
message = discordMessage.content; | ||
@@ -206,3 +228,3 @@ query = handler.query; | ||
if (Array.isArray(handler.query) ) { | ||
if (Array.isArray(handler.query)) { | ||
query = Utils.arrayToLower(handler.query); | ||
@@ -233,2 +255,3 @@ } else { | ||
.forEach(handler => { | ||
this.log(handler.type, handler.query, discordMessage); | ||
let executor = new ActionExecutor(discordMessage); | ||
@@ -251,3 +274,3 @@ | ||
executor.do(handler.callback, handler.minArgs, handler.errorMessage); | ||
break; | ||
break; | ||
default: | ||
@@ -254,0 +277,0 @@ break; |
23930
6
243
64