Added static command field to disable a command in DMs

This commit is contained in:
Essem 2022-06-28 16:15:31 -05:00
parent c01ac7d32f
commit 02a6e256b5
No known key found for this signature in database
GPG key ID: 7D497397CC3A2A8C
12 changed files with 20 additions and 3 deletions

View file

@ -64,6 +64,7 @@ class Command {
static flags = [];
static requires = [];
static slashAllowed = true;
static directAllowed = true;
}
export default Command;

View file

@ -12,6 +12,7 @@ class MusicCommand extends Command {
static requires = ["sound"];
static slashAllowed = false;
static directAllowed = false;
}
export default MusicCommand;

View file

@ -9,6 +9,7 @@ class SoundboardCommand extends Command {
static requires = ["sound"];
static slashAllowed = false;
static directAllowed = false;
}
export default SoundboardCommand;

View file

@ -43,6 +43,7 @@ class ChannelCommand extends Command {
static description = "Enables/disables me in a channel (does not work with slash commands)";
static arguments = ["[enable/disable]", "{id}"];
static slashAllowed = false;
static directAllowed = false;
}
export default ChannelCommand;

View file

@ -34,6 +34,8 @@ class CommandCommand extends Command {
static description = "Enables/disables a command for a server";
static aliases = ["cmd"];
static arguments = ["[enable/disable]", "[command]"];
static slashAllowed = false;
static directAllowed = false;
}
export default CommandCommand;

View file

@ -49,6 +49,7 @@ class ServerInfoCommand extends Command {
static description = "Gets some info about the server";
static aliases = ["server"];
static directAllowed = false;
}
export default ServerInfoCommand;

View file

@ -38,6 +38,7 @@ class MusicAIOCommand extends Command {
static description = "Handles music playback";
static requires = ["sound"];
static aliases = ["m"];
static directAllowed = false;
}
export default MusicAIOCommand;

View file

@ -26,6 +26,7 @@ class SoundboardAIOCommand extends Command {
static description = "Plays a sound effect";
static requires = ["sound"];
static aliases = ["sound", "sb"];
static directAllowed = false;
}
export default SoundboardAIOCommand;

View file

@ -155,6 +155,7 @@ class TagsCommand extends Command {
type: 1,
description: "Gets a random tag"
}];
static directAllowed = false;
}
export default TagsCommand;

View file

@ -75,6 +75,7 @@ static flags = [{
}];
```
- `slashAllowed`: Specifies whether or not the command is available via slash commands.
- `directAllowed`: Specifies whether or not a command is available in direct messages.
## The `run` Function
The main JS code of your command is specified in the `run` function. This function should return a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) of your command output, which is why the `run` function [is an async function by default](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function). The return value inside the `Promise` should be either a string or an object; you should return a string whenever you intend to reply with plain text, or an object if you intend to reply with something else, such as an embed or attachment.

View file

@ -84,6 +84,9 @@ export default async (client, cluster, worker, ipc, message) => {
const cmd = commands.get(aliased ?? command);
if (!cmd) return;
// block certain commands from running in DMs
if (!cmd.directAllowed && !message.channel.guild) return;
// actually run the command
log("log", `${message.author.username} (${message.author.id}) ran classic command ${command}`);
const reference = {

View file

@ -28,7 +28,8 @@ export async function load(client, cluster, worker, ipc, command, soundStatus, s
aliases: props.aliases,
params: props.arguments,
flags: props.flags,
slashAllowed: props.slashAllowed
slashAllowed: props.slashAllowed,
directAllowed: props.directAllowed
});
const categoryCommands = categories.get(category);
@ -69,7 +70,8 @@ export async function update() {
aliases: cmd.aliases,
params: cmd.arguments,
flags: cmd.flags,
slashAllowed: cmd.slashAllowed
slashAllowed: cmd.slashAllowed,
directAllowed: cmd.directAllowed
};
info.set(name, cmdInfo);
}
@ -77,7 +79,8 @@ export async function update() {
name,
type: 1,
description: cmdInfo.description,
options: cmdInfo.flags
options: cmdInfo.flags,
dm_permission: cmdInfo.directAllowed
});
}
return commandArray;