lbry-wunderbot/bot/modules/commandsV2.js
2021-09-13 11:57:20 -04:00

57 lines
1.6 KiB
JavaScript

'use strict';
let commands = require('../../config/commands');
const Discord = require('discord.js');
let initialized = false;
let discordBot = null;
let commandsList = null;
module.exports = {
init: init
};
function init(discordBot_) {
if (initialized) {
throw new Error('init was already called once');
}
discordBot = discordBot_;
discordBot.on('messageCreate', checkForCommand);
}
/**
*
* @param {String} message
*/
let checkForCommand = function(message) {
//build the command list ONLY on first run
let firstRun = false;
if (commandsList === null) {
firstRun = true;
commandsList = '';
}
//for each message go through all the commands and check if there are any matches
Object.keys(commands).forEach(command => {
//if a command is found
if (!message.author.bot && message.content.toLowerCase().indexOf(command.toLowerCase()) >= 0 && commands[command].operation === 'send') {
//send a message to the channel according to the config
try {
//message.channel.send('test1', new Discord.MessageEmbed(commands[command].bundle));
message.channel.send({embeds: [commands[command].bundle]})
} catch (e) {
console.log(e);
}
}
});
if (firstRun) {
commandsList = Object.keys(commands)
.sort()
.join(', ');
}
//if the user is requesting the list of commands, then print it
if (!message.author.bot && message.content.toLowerCase().indexOf('!helpcommands') >= 0) {
let bundle = commands['!helpcommands'].bundle;
bundle.description = '**' + commandsList + '**';
message.channel.send({embeds: [bundle]});
}
};