bot: add settings command
This commit is contained in:
parent
129d428a2c
commit
002092bcfd
1 changed files with 60 additions and 0 deletions
|
@ -8,6 +8,8 @@ const {resolve} = require("path");
|
||||||
|
|
||||||
const {hastebin} = require("../lib/utils.js");
|
const {hastebin} = require("../lib/utils.js");
|
||||||
|
|
||||||
|
const guildSettings = require("../lib/guildSettings.js");
|
||||||
|
|
||||||
function spawn(args) {
|
function spawn(args) {
|
||||||
const shell =
|
const shell =
|
||||||
process.env.SHELL || (process.platform == "win32" ? "powershell" : "bash");
|
process.env.SHELL || (process.platform == "win32" ? "powershell" : "bash");
|
||||||
|
@ -155,3 +157,61 @@ exec.callback = async function (msg, line) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
hf.registerCommand(exec);
|
hf.registerCommand(exec);
|
||||||
|
|
||||||
|
const settings = new Command("settings");
|
||||||
|
settings.category = CATEGORY;
|
||||||
|
settings.helpText = "Manage guild specific bot settings";
|
||||||
|
settings.callback = async function (msg, line, cmd, key, value) {
|
||||||
|
if (!msg.guildID) "This command only works in guilds.";
|
||||||
|
|
||||||
|
switch (cmd) {
|
||||||
|
case "get":
|
||||||
|
case "set":
|
||||||
|
return "TODO";
|
||||||
|
case "flags": {
|
||||||
|
const flags = await guildSettings.getFlags(msg.guildID);
|
||||||
|
|
||||||
|
return `\`\`\`\n${Object.keys(flags)
|
||||||
|
.map((key) => `${key} = ${flags[key]}`)
|
||||||
|
.join("\n")}\n\`\`\``;
|
||||||
|
}
|
||||||
|
case "enable": {
|
||||||
|
if (
|
||||||
|
!msg.channel.permissionsOf(msg.author.id).has("manageGuild") &&
|
||||||
|
!hf.config.elevated.includes(msg.author.id)
|
||||||
|
)
|
||||||
|
return "You do not have `Manage Server` permissions";
|
||||||
|
|
||||||
|
if (!guildSettings.flags[key]) return "Unknown key.";
|
||||||
|
|
||||||
|
const enabled = guildSettings.hasFlag(msg.guildID, key);
|
||||||
|
if (enabled) return "Already enabled.";
|
||||||
|
|
||||||
|
await guildSettings.enableFlag(msg.guildID, key);
|
||||||
|
return {reaction: "\uD83D\uDC4C"};
|
||||||
|
}
|
||||||
|
case "disable": {
|
||||||
|
if (
|
||||||
|
!msg.channel.permissionsOf(msg.author.id).has("manageGuild") &&
|
||||||
|
!hf.config.elevated.includes(msg.author.id)
|
||||||
|
)
|
||||||
|
return "You do not have `Manage Server` permissions";
|
||||||
|
|
||||||
|
if (!guildSettings.flags[key]) return "Unknown key.";
|
||||||
|
|
||||||
|
const enabled = guildSettings.hasFlag(msg.guildID, key);
|
||||||
|
if (!enabled) return "Already disabled.";
|
||||||
|
|
||||||
|
await guildSettings.disableFlag(msg.guildID, key);
|
||||||
|
return {reaction: "\uD83D\uDC4C"};
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return `__**Settings Subcommands**__
|
||||||
|
\u2022 \`get <key>\` - List all current values or a specific value
|
||||||
|
\u2022 \`set [key] [value]\` - Set a value
|
||||||
|
\u2022 \`flags\` - List flags
|
||||||
|
\u2022 \`enable [key]\` - Enable a flag
|
||||||
|
\u2022 \`disable [key]\` - Disable a flag`;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
hf.registerCommand(settings);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue