This repository was archived by the owner on Jan 26, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommands.js
More file actions
57 lines (48 loc) · 2.93 KB
/
commands.js
File metadata and controls
57 lines (48 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var autoload = require('auto-load');
var cmdsAtr = autoload(__root + "/commands/author");
var cmdsAdm = autoload(__root + "/commands/admin");
var cmdsFun = autoload(__root + "/commands/fun");
var cmdsMsc = autoload(__root + "/commands/music");
var cmdsRef = autoload(__root + "/commands/reference");
var cmdsSrv = autoload(__root + "/commands/server");
var cmdsUtl = autoload(__root + "/commands/utility");
var blacklist = require(__root + "/storage/blist.json");
var commands = Object.assign({}, cmdsAtr, cmdsAdm, cmdsFun, cmdsMsc, cmdsRef, cmdsSrv, cmdsUtl);
commands.help = {
desc: "Provides help on bot commands.\nUSAGE: -help: Lists all available commands to this user.\n-help [COMMAND]: Prints information on specific command.",
lvl: "all",
func (msg, cmd, bot) {
if (!cmd) {
var helpText = "Available commands: \n\n";
if (populateHelp(cmdsAtr, msg, bot).length > 0) helpText += "**Author**: " + populateHelp(cmdsAtr, msg, bot).sort().join(", ") + ".\n";
if (populateHelp(cmdsAdm, msg, bot).length > 0) helpText += "**Admin**: " + populateHelp(cmdsAdm, msg, bot).sort().join(", ") + ".\n";
helpText += "**Fun:** " + populateHelp(cmdsFun, msg, bot).sort().join(", ") + ".\n";
helpText += "**Music:** " + populateHelp(cmdsMsc, msg, bot).sort().join(", ") + ".\n";
helpText += "**Reference:** " + populateHelp(cmdsRef, msg, bot).sort().join(", ") + ".\n";
helpText += "**Utility:** " + populateHelp(cmdsUtl, msg, bot).sort().join(", ") + ".\n";
if (populateHelp(cmdsSrv, msg, bot).length > 0) helpText += "**Special:** " + populateHelp(cmdsSrv, msg, bot).sort().join(", ") + ".\n";
msg.channel.send(helpText + "\nUse `-help COMMAND` for more information.");
}
else msg.channel.send((cmd + ": " + commands[cmd].desc).codeblock());
}
}
function populateHelp (cmds, msg, bot) {
return Object.keys(cmds).filter(e => { return checkLevel(e, msg, bot) }).map(e => e.code());
}
function checkLevel (cmd, msg, bot) {
if (blacklist.indexOf(msg.author.id) > -1) return false;
switch (commands[cmd].lvl) {
case "kick_mem": return (msg.member.hasPermission("KICK_MEMBERS") && msg.guild.member(bot.user).hasPermission("KICK_MEMBERS"));
case "ban_mem": return (msg.member.hasPermission("BAN_MEMBERS") && msg.guild.member(bot.user).hasPermission("BAN_MEMBERS"));
case "man_msg": return (msg.member.hasPermission("MANAGE_MESSAGES") && msg.guild.member(bot.user).hasPermission("MANAGE_MESSAGES"));
case "man_msg_usr": return msg.member.hasPermission("MANAGE_MESSAGES");
case "man_prm": return (msg.member.hasPermission("MANAGE_ROLES_OR_PERMISSIONS") && msg.guild.member(bot.user).hasPermission("MANAGE_ROLES_OR_PERMISSIONS"));
case "rern": return msg.guild.id === "208498945343750144";
case "zed": return msg.guild.id === "206956124237332480";
case "author": return msg.author.id === "91327883208843264";
case "stub": return false;
case "all": default: return true;
}
}
module.exports.commands = commands;
module.exports.checkLevel = checkLevel;