aboutsummaryrefslogtreecommitdiff
path: root/src/commands
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-09-05 17:36:42 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-09-05 17:36:42 -0400
commit048f99752550c6e03d1990a03cad78f3ac7d73aa (patch)
treec238ac29b1b526e86bcbc4989036df981c860187 /src/commands
parent6f8a4d13a490eda7a195d14833c83810f7b5a789 (diff)
downloadtanzanite-048f99752550c6e03d1990a03cad78f3ac7d73aa.tar.gz
tanzanite-048f99752550c6e03d1990a03cad78f3ac7d73aa.tar.bz2
tanzanite-048f99752550c6e03d1990a03cad78f3ac7d73aa.zip
revamp command permissions, fix permission exploit for some command when used in forum channels, use enums more
Diffstat (limited to 'src/commands')
-rw-r--r--src/commands/admin/channelPermissions.ts7
-rw-r--r--src/commands/admin/roleAll.ts14
-rw-r--r--src/commands/config/_customAutomodPhrases.ts4
-rw-r--r--src/commands/config/blacklist.ts7
-rw-r--r--src/commands/config/config.ts5
-rw-r--r--src/commands/config/disable.ts9
-rw-r--r--src/commands/config/features.ts7
-rw-r--r--src/commands/config/log.ts7
-rw-r--r--src/commands/dev/__template.ts12
-rw-r--r--src/commands/dev/dm.ts5
-rw-r--r--src/commands/dev/eval.ts1
-rw-r--r--src/commands/dev/javascript.ts14
-rw-r--r--src/commands/dev/reload.ts5
-rw-r--r--src/commands/dev/say.ts1
-rw-r--r--src/commands/dev/servers.ts13
-rw-r--r--src/commands/dev/superUser.ts10
-rw-r--r--src/commands/dev/syncAutomod.ts4
-rw-r--r--src/commands/dev/test.ts14
-rw-r--r--src/commands/fun/coinFlip.ts4
-rw-r--r--src/commands/fun/dice.ts4
-rw-r--r--src/commands/fun/eightBall.ts4
-rw-r--r--src/commands/fun/minesweeper.ts12
-rw-r--r--src/commands/info/avatar.ts7
-rw-r--r--src/commands/info/botInfo.ts15
-rw-r--r--src/commands/info/color.ts16
-rw-r--r--src/commands/info/guildInfo.ts4
-rw-r--r--src/commands/info/help.ts32
-rw-r--r--src/commands/info/icon.ts7
-rw-r--r--src/commands/info/inviteInfo.ts8
-rw-r--r--src/commands/info/links.ts4
-rw-r--r--src/commands/info/ping.ts7
-rw-r--r--src/commands/info/pronouns.ts14
-rw-r--r--src/commands/info/snowflake.ts14
-rw-r--r--src/commands/info/userInfo.ts11
-rw-r--r--src/commands/leveling/leaderboard.ts15
-rw-r--r--src/commands/leveling/level.ts4
-rw-r--r--src/commands/leveling/levelRoles.ts17
-rw-r--r--src/commands/leveling/setLevel.ts18
-rw-r--r--src/commands/leveling/setXp.ts18
-rw-r--r--src/commands/moderation/_activePunishments.ts4
-rw-r--r--src/commands/moderation/ban.ts6
-rw-r--r--src/commands/moderation/block.ts8
-rw-r--r--src/commands/moderation/evidence.ts8
-rw-r--r--src/commands/moderation/hideCase.ts18
-rw-r--r--src/commands/moderation/kick.ts7
-rw-r--r--src/commands/moderation/lockdown.ts7
-rw-r--r--src/commands/moderation/massBan.ts8
-rw-r--r--src/commands/moderation/massEvidence.ts7
-rw-r--r--src/commands/moderation/modlog.ts8
-rw-r--r--src/commands/moderation/mute.ts8
-rw-r--r--src/commands/moderation/myLogs.ts4
-rw-r--r--src/commands/moderation/purge.ts21
-rw-r--r--src/commands/moderation/removeReactionEmoji.ts20
-rw-r--r--src/commands/moderation/role.ts5
-rw-r--r--src/commands/moderation/slowmode.ts20
-rw-r--r--src/commands/moderation/timeout.ts7
-rw-r--r--src/commands/moderation/unban.ts6
-rw-r--r--src/commands/moderation/unblock.ts8
-rw-r--r--src/commands/moderation/unlockdown.ts8
-rw-r--r--src/commands/moderation/unmute.ts8
-rw-r--r--src/commands/moderation/untimeout.ts7
-rw-r--r--src/commands/moderation/warn.ts8
-rw-r--r--src/commands/moulberry-bush/capePermissions.ts6
-rw-r--r--src/commands/moulberry-bush/capes.ts6
-rw-r--r--src/commands/moulberry-bush/gimmeRole.ts42
-rw-r--r--src/commands/moulberry-bush/giveawayPing.ts13
-rw-r--r--src/commands/moulberry-bush/moulHammer.ts7
-rw-r--r--src/commands/moulberry-bush/neuRepo.ts13
-rw-r--r--src/commands/moulberry-bush/report.ts6
-rw-r--r--src/commands/moulberry-bush/rule.ts16
-rw-r--r--src/commands/moulberry-bush/serverStatus.ts7
-rw-r--r--src/commands/moulberry-bush/solved.ts4
-rw-r--r--src/commands/tickets/ticket-!.ts4
-rw-r--r--src/commands/utilities/_poll.ts2
-rw-r--r--src/commands/utilities/activity.ts3
-rw-r--r--src/commands/utilities/calculator.ts13
-rw-r--r--src/commands/utilities/decode.ts14
-rw-r--r--src/commands/utilities/hash.ts2
-rw-r--r--src/commands/utilities/highlight-!.ts5
-rw-r--r--src/commands/utilities/price.ts7
-rw-r--r--src/commands/utilities/remind.ts3
-rw-r--r--src/commands/utilities/reminders.ts6
-rw-r--r--src/commands/utilities/steal.ts18
-rw-r--r--src/commands/utilities/suicide.ts5
-rw-r--r--src/commands/utilities/uuid.ts14
-rw-r--r--src/commands/utilities/viewRaw.ts38
-rw-r--r--src/commands/utilities/whoHasRole.ts4
-rw-r--r--src/commands/utilities/wolframAlpha.ts14
88 files changed, 343 insertions, 514 deletions
diff --git a/src/commands/admin/channelPermissions.ts b/src/commands/admin/channelPermissions.ts
index e17a85b..46f6db3 100644
--- a/src/commands/admin/channelPermissions.ts
+++ b/src/commands/admin/channelPermissions.ts
@@ -2,7 +2,6 @@ import {
Arg,
BotCommand,
ButtonPaginator,
- clientSendAndPermCheck,
emojis,
formatError,
type ArgType,
@@ -10,7 +9,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
export default class ChannelPermissionsCommand extends BotCommand {
public constructor() {
@@ -58,8 +57,8 @@ export default class ChannelPermissionsCommand extends BotCommand {
]
}
],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageChannels]),
- userPermissions: [PermissionFlagsBits.Administrator],
+ clientPermissions: ['ManageChannels'],
+ userPermissions: ['Administrator'],
channel: 'guild',
slash: true,
lock: 'guild'
diff --git a/src/commands/admin/roleAll.ts b/src/commands/admin/roleAll.ts
index 3675891..446f3cd 100644
--- a/src/commands/admin/roleAll.ts
+++ b/src/commands/admin/roleAll.ts
@@ -1,12 +1,4 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, emojis, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
@@ -38,8 +30,8 @@ export default class RoleAllCommand extends BotCommand {
}
],
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageRoles]),
- userPermissions: [PermissionFlagsBits.Administrator],
+ clientPermissions: ['ManageRoles'],
+ userPermissions: ['Administrator'],
typing: true,
slash: true,
lock: 'guild'
diff --git a/src/commands/config/_customAutomodPhrases.ts b/src/commands/config/_customAutomodPhrases.ts
index 0b571e5..5925fb5 100644
--- a/src/commands/config/_customAutomodPhrases.ts
+++ b/src/commands/config/_customAutomodPhrases.ts
@@ -30,8 +30,8 @@
// ],
// slash: true,
// channel: 'guild',
-// clientPermissions: (m) => clientSendAndPermCheck(m),
-// userPermissions: [PermissionFlagsBits.ManageGuild]
+// clientPermissions: [],
+// userPermissions: ['ManageGuild']
// });
// }
diff --git a/src/commands/config/blacklist.ts b/src/commands/config/blacklist.ts
index 5419658..c7f3d99 100644
--- a/src/commands/config/blacklist.ts
+++ b/src/commands/config/blacklist.ts
@@ -3,7 +3,6 @@ import {
AllowedMentions,
Arg,
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
type ArgType,
@@ -11,7 +10,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, GuildMember, PermissionFlagsBits, User } from 'discord.js';
+import { ApplicationCommandOptionType, GuildMember, User } from 'discord.js';
export default class BlacklistCommand extends BotCommand {
public constructor() {
@@ -52,8 +51,8 @@ export default class BlacklistCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.ManageGuild]
+ clientPermissions: [],
+ userPermissions: ['ManageGuild']
});
}
diff --git a/src/commands/config/config.ts b/src/commands/config/config.ts
index a37d67c..b923d56 100644
--- a/src/commands/config/config.ts
+++ b/src/commands/config/config.ts
@@ -1,7 +1,6 @@
import {
addOrRemoveFromArray,
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
GuildNoArraySetting,
@@ -149,8 +148,8 @@ export default class ConfigCommand extends BotCommand {
};
}),
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.ManageGuild]
+ clientPermissions: [],
+ userPermissions: ['ManageGuild']
});
}
diff --git a/src/commands/config/disable.ts b/src/commands/config/disable.ts
index a4a876c..6dd94a6 100644
--- a/src/commands/config/disable.ts
+++ b/src/commands/config/disable.ts
@@ -3,14 +3,13 @@ import {
AllowedMentions,
Arg,
BotCommand,
- clientSendAndPermCheck,
emojis,
type ArgType,
type CommandMessage,
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, AutocompleteInteraction, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, AutocompleteInteraction } from 'discord.js';
import { default as Fuse } from 'fuse.js';
assert(Fuse);
@@ -29,7 +28,7 @@ export default class DisableCommand extends BotCommand {
{
id: 'action',
description: 'Whether to disable or enable the command.',
- readableType: "'disable'|'enable",
+ readableType: "'disable'|'enable'",
prompt: 'Would you like to disable or enable a command?',
slashType: ApplicationCommandOptionType.String,
choices: ['disable', 'enable'].map((v) => ({ name: v, value: v })),
@@ -58,8 +57,8 @@ export default class DisableCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.ManageGuild]
+ clientPermissions: [],
+ userPermissions: ['ManageGuild']
});
}
diff --git a/src/commands/config/features.ts b/src/commands/config/features.ts
index 55f99bd..8d69d17 100644
--- a/src/commands/config/features.ts
+++ b/src/commands/config/features.ts
@@ -1,6 +1,5 @@
import {
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
guildFeaturesArr,
@@ -14,7 +13,6 @@ import {
ActionRowBuilder,
ComponentType,
EmbedBuilder,
- PermissionFlagsBits,
SelectMenuBuilder,
type Message,
type SelectMenuInteraction
@@ -30,8 +28,9 @@ export default class FeaturesCommand extends BotCommand {
examples: ['features'],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
- userPermissions: [PermissionFlagsBits.ManageGuild]
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
+ userPermissions: ['ManageGuild']
});
}
diff --git a/src/commands/config/log.ts b/src/commands/config/log.ts
index f058670..493d486 100644
--- a/src/commands/config/log.ts
+++ b/src/commands/config/log.ts
@@ -1,6 +1,5 @@
import {
BotCommand,
- clientSendAndPermCheck,
emojis,
guildLogsArr,
oxford,
@@ -11,7 +10,7 @@ import {
} from '#lib';
import assert from 'assert/strict';
import { ArgumentGeneratorReturn } from 'discord-akairo';
-import { ApplicationCommandOptionType, ChannelType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, ChannelType } from 'discord.js';
export default class LogCommand extends BotCommand {
public constructor() {
@@ -48,8 +47,8 @@ export default class LogCommand extends BotCommand {
}
],
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.ManageGuild]
+ clientPermissions: [],
+ userPermissions: ['ManageGuild']
});
}
diff --git a/src/commands/dev/__template.ts b/src/commands/dev/__template.ts
index fbb88ac..0fc133f 100644
--- a/src/commands/dev/__template.ts
+++ b/src/commands/dev/__template.ts
@@ -1,12 +1,4 @@
-import {
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- type ArgType,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
+import { BotCommand, emojis, type ArgType, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
import { ApplicationCommandOptionType } from 'discord.js';
export default class TemplateCommand extends BotCommand {
@@ -41,7 +33,7 @@ export default class TemplateCommand extends BotCommand {
ownerOnly: true,
channel: 'guild',
hidden: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/dev/dm.ts b/src/commands/dev/dm.ts
index e51651e..c3b2831 100644
--- a/src/commands/dev/dm.ts
+++ b/src/commands/dev/dm.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, emojis, format, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, emojis, format, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import { ApplicationCommandOptionType } from 'discord.js';
export default class DMCommand extends BotCommand {
@@ -31,7 +31,8 @@ export default class DMCommand extends BotCommand {
slash: false,
ownerOnly: true,
hidden: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ skipSendCheck: true,
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/dev/eval.ts b/src/commands/dev/eval.ts
index 3929f99..83168e0 100644
--- a/src/commands/dev/eval.ts
+++ b/src/commands/dev/eval.ts
@@ -173,6 +173,7 @@ export default class EvalCommand extends BotCommand {
],
slash: true,
ownerOnly: true,
+ skipSendCheck: true,
clientPermissions: [],
userPermissions: []
});
diff --git a/src/commands/dev/javascript.ts b/src/commands/dev/javascript.ts
index 43ccf94..c34ec42 100644
--- a/src/commands/dev/javascript.ts
+++ b/src/commands/dev/javascript.ts
@@ -1,13 +1,4 @@
-import {
- BotCommand,
- clientSendAndPermCheck,
- colors,
- emojis,
- type ArgType,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
+import { BotCommand, colors, emojis, type ArgType, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
import { VM } from 'vm2';
@@ -44,7 +35,8 @@ export default class JavascriptCommand extends BotCommand {
],
slash: true,
superUserOnly: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/dev/reload.ts b/src/commands/dev/reload.ts
index 2d5b9d9..57746b3 100644
--- a/src/commands/dev/reload.ts
+++ b/src/commands/dev/reload.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, emojis, formatError, shell, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, emojis, formatError, shell, type CommandMessage, type SlashMessage } from '#lib';
export default class ReloadCommand extends BotCommand {
public constructor() {
@@ -11,7 +11,8 @@ export default class ReloadCommand extends BotCommand {
ownerOnly: true,
typing: true,
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ skipSendCheck: true,
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/dev/say.ts b/src/commands/dev/say.ts
index 22ad9ba..de3bdb1 100644
--- a/src/commands/dev/say.ts
+++ b/src/commands/dev/say.ts
@@ -21,6 +21,7 @@ export default class SayCommand extends BotCommand {
}
],
ownerOnly: true,
+ skipSendCheck: true,
clientPermissions: [],
userPermissions: [],
slash: true
diff --git a/src/commands/dev/servers.ts b/src/commands/dev/servers.ts
index 6bba93c..3207225 100644
--- a/src/commands/dev/servers.ts
+++ b/src/commands/dev/servers.ts
@@ -1,13 +1,4 @@
-import {
- BotCommand,
- ButtonPaginator,
- chunk,
- clientSendAndPermCheck,
- colors,
- format,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { BotCommand, ButtonPaginator, chunk, colors, format, type CommandMessage, type SlashMessage } from '#lib';
import { stripIndent } from '#tags';
import { type APIEmbed, type Guild } from 'discord.js';
@@ -19,7 +10,7 @@ export default class ServersCommand extends BotCommand {
description: 'Displays all the severs the bot is in',
usage: ['servers'],
examples: ['servers'],
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
ownerOnly: true
});
diff --git a/src/commands/dev/superUser.ts b/src/commands/dev/superUser.ts
index 6a034bc..fc7fcbf 100644
--- a/src/commands/dev/superUser.ts
+++ b/src/commands/dev/superUser.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, emojis, format, type ArgType, type CommandMessage } from '#lib';
+import { BotCommand, emojis, format, type ArgType, type CommandMessage } from '#lib';
import { type ArgumentGeneratorReturn, type ArgumentTypeCasterReturn } from 'discord-akairo';
export default class SuperUserCommand extends BotCommand {
@@ -9,9 +9,6 @@ export default class SuperUserCommand extends BotCommand {
description: 'A command to manage superusers.',
usage: ['superuser <add/remove> <user>'],
examples: ['superuser add IRONM00N'],
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [],
- ownerOnly: true,
helpArgs: [
{
name: 'action',
@@ -24,7 +21,10 @@ export default class SuperUserCommand extends BotCommand {
type: 'user',
match: 'restContent'
}
- ]
+ ],
+ clientPermissions: [],
+ userPermissions: [],
+ ownerOnly: true
});
}
diff --git a/src/commands/dev/syncAutomod.ts b/src/commands/dev/syncAutomod.ts
index 7a0fb58..087d7e6 100644
--- a/src/commands/dev/syncAutomod.ts
+++ b/src/commands/dev/syncAutomod.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, emojis, Shared, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, emojis, Shared, type CommandMessage, type SlashMessage } from '#lib';
import typescript from 'typescript';
import { NodeVM } from 'vm2';
@@ -12,7 +12,7 @@ export default class SyncAutomodCommand extends BotCommand {
examples: ['sync-automod'],
slash: false,
hidden: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/dev/test.ts b/src/commands/dev/test.ts
index cc32657..e1f3b73 100644
--- a/src/commands/dev/test.ts
+++ b/src/commands/dev/test.ts
@@ -1,13 +1,4 @@
-import {
- BotCommand,
- ButtonPaginator,
- clientSendAndPermCheck,
- colors,
- emojis,
- OptArgType,
- Shared,
- type CommandMessage
-} from '#lib';
+import { BotCommand, ButtonPaginator, colors, emojis, OptArgType, Shared, type CommandMessage } from '#lib';
import {
ActionRowBuilder,
ButtonBuilder,
@@ -42,7 +33,8 @@ export default class TestCommand extends BotCommand {
}
],
superUserOnly: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/fun/coinFlip.ts b/src/commands/fun/coinFlip.ts
index 66b6016..c97c808 100644
--- a/src/commands/fun/coinFlip.ts
+++ b/src/commands/fun/coinFlip.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, type CommandMessage, type SlashMessage } from '#lib';
export default class CoinFlipCommand extends BotCommand {
public constructor() {
@@ -8,7 +8,7 @@ export default class CoinFlipCommand extends BotCommand {
description: 'Flip a virtual coin.',
usage: ['coinflip'],
examples: ['coinflip'],
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
slash: true
});
diff --git a/src/commands/fun/dice.ts b/src/commands/fun/dice.ts
index 5941564..99871c2 100644
--- a/src/commands/fun/dice.ts
+++ b/src/commands/fun/dice.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, type CommandMessage, type SlashMessage } from '#lib';
export default class DiceCommand extends BotCommand {
public constructor() {
@@ -8,7 +8,7 @@ export default class DiceCommand extends BotCommand {
description: 'Roll virtual dice.',
usage: ['dice'],
examples: ['dice'],
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
slash: true
});
diff --git a/src/commands/fun/eightBall.ts b/src/commands/fun/eightBall.ts
index be9c7b5..ea6942d 100644
--- a/src/commands/fun/eightBall.ts
+++ b/src/commands/fun/eightBall.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, type CommandMessage, type SlashMessage } from '#lib';
import { ApplicationCommandOptionType } from 'discord.js';
export default class EightBallCommand extends BotCommand {
@@ -21,7 +21,7 @@ export default class EightBallCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/fun/minesweeper.ts b/src/commands/fun/minesweeper.ts
index ec21b11..85945c7 100644
--- a/src/commands/fun/minesweeper.ts
+++ b/src/commands/fun/minesweeper.ts
@@ -1,12 +1,4 @@
-import {
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- OptArgType,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { BotCommand, emojis, OptArgType, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import { Minesweeper } from '@notenoughupdates/discord.js-minesweeper';
import assert from 'assert/strict';
import { ApplicationCommandOptionType } from 'discord.js';
@@ -71,7 +63,7 @@ export default class MinesweeperCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/info/avatar.ts b/src/commands/info/avatar.ts
index b97364f..aaeebbf 100644
--- a/src/commands/info/avatar.ts
+++ b/src/commands/info/avatar.ts
@@ -1,5 +1,5 @@
-import { Arg, BotCommand, clientSendAndPermCheck, colors, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
-import { ApplicationCommandOptionType, EmbedBuilder, GuildMember, PermissionFlagsBits } from 'discord.js';
+import { Arg, BotCommand, colors, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
+import { ApplicationCommandOptionType, EmbedBuilder, GuildMember } from 'discord.js';
export default class AvatarCommand extends BotCommand {
public constructor() {
@@ -21,7 +21,8 @@ export default class AvatarCommand extends BotCommand {
slashType: ApplicationCommandOptionType.User
}
],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
slash: true
});
diff --git a/src/commands/info/botInfo.ts b/src/commands/info/botInfo.ts
index 64ecf1d..a877073 100644
--- a/src/commands/info/botInfo.ts
+++ b/src/commands/info/botInfo.ts
@@ -1,14 +1,6 @@
-import {
- BotCommand,
- clientSendAndPermCheck,
- colors,
- humanizeDuration,
- shell,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { BotCommand, colors, humanizeDuration, shell, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { EmbedBuilder, PermissionFlagsBits, version as discordJSVersion } from 'discord.js';
+import { EmbedBuilder, version as discordJSVersion } from 'discord.js';
import * as os from 'os';
const { default: prettyBytes } = await import('pretty-bytes');
assert(prettyBytes);
@@ -23,7 +15,8 @@ export default class BotInfoCommand extends BotCommand {
usage: ['bot-info'],
examples: ['bot-info'],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/info/color.ts b/src/commands/info/color.ts
index c139e1a..b396baa 100644
--- a/src/commands/info/color.ts
+++ b/src/commands/info/color.ts
@@ -1,15 +1,6 @@
-import {
- AllowedMentions,
- Arg,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, Arg, BotCommand, emojis, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, EmbedBuilder, GuildMember, PermissionFlagsBits, Role } from 'discord.js';
+import { ApplicationCommandOptionType, EmbedBuilder, GuildMember, Role } from 'discord.js';
import tinycolor from 'tinycolor2';
assert(tinycolor);
@@ -34,7 +25,8 @@ export default class ColorCommand extends BotCommand {
}
],
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/info/guildInfo.ts b/src/commands/info/guildInfo.ts
index 97e4be3..e364a89 100644
--- a/src/commands/info/guildInfo.ts
+++ b/src/commands/info/guildInfo.ts
@@ -2,7 +2,6 @@ import {
akairo,
Arg,
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
mappings,
@@ -52,7 +51,8 @@ export default class GuildInfoCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/info/help.ts b/src/commands/info/help.ts
index 6460b99..1680b75 100644
--- a/src/commands/info/help.ts
+++ b/src/commands/info/help.ts
@@ -1,9 +1,10 @@
import {
BotCommand,
- clientSendAndPermCheck,
colors,
format,
+ formatPerms,
invite,
+ permissionCheck,
type ArgType,
type CommandMessage,
type OptArgType,
@@ -17,8 +18,7 @@ import {
AutocompleteInteraction,
ButtonBuilder,
ButtonStyle,
- EmbedBuilder,
- PermissionFlagsBits
+ EmbedBuilder
} from 'discord.js';
import { default as Fuse } from 'fuse.js';
import packageDotJSON from '../../../package.json' assert { type: 'json' };
@@ -58,7 +58,8 @@ export default class HelpCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
@@ -88,14 +89,24 @@ export default class HelpCommand extends BotCommand {
.setFooter({ text: `For more information about a command use ${prefix_}help <command>` });
for (const [, category] of this.handler.categories.sort((a, b) => a.id.localeCompare(b.id))) {
const categoryFilter = category.filter((command) => {
+ const inGuild = message.inGuild();
+
if (command.pseudo) return false;
if (command.hidden && !args.showHidden) return false;
- if (command.channel == 'guild' && !message.guild && !args.showHidden) return false;
+ if (command.channel == 'guild' && !inGuild && !args.showHidden) return false;
if (command.ownerOnly && !message.author.isOwner()) return false;
if (command.superUserOnly && !message.author.isSuperUser()) return false;
if (command.restrictedGuilds?.includes(message.guild?.id ?? '') === false && !args.showHidden) return false;
if (command.aliases.length === 0) return false;
+ permissions: {
+ if (!inGuild || !message.member) break permissions;
+
+ const canUse = permissionCheck(message, message.member, command.userPermissions, false);
+
+ if (!canUse) return false;
+ }
+
return true;
});
const categoryNice = category.id
@@ -121,7 +132,7 @@ export default class HelpCommand extends BotCommand {
this.addCommandAliases(embed, command);
this.addCommandArguments(embed, command, message.author.isOwner(), message.author.isSuperUser());
this.addCommandRestrictions(embed, command);
- // todo: permissions
+ this.addCommandPermissions(embed, command);
const params = { embeds: [embed], components: row.components.length ? [row] : undefined };
return message.util.reply(params);
@@ -178,6 +189,7 @@ export default class HelpCommand extends BotCommand {
return ret;
})
.join('\n')
+ .slice(0, 1024)
});
}
}
@@ -209,6 +221,14 @@ export default class HelpCommand extends BotCommand {
}
}
+ private addCommandPermissions(embed: EmbedBuilder, command: BotCommand): void {
+ if (command.userPermissions.length < 1 && command.clientPermissions.length < 1) return;
+ const permissions: string[] = [];
+ if (command.userPermissions.length > 0) permissions.push(`__User__: ${formatPerms(command.userPermissions)}`);
+ if (command.clientPermissions.length > 0) permissions.push(`__Client__: ${formatPerms(command.clientPermissions)}`);
+ embed.addFields({ name: '» Required Permissions', value: permissions.join('\n') });
+ }
+
private addLinks(message: CommandMessage | SlashMessage): ActionRowBuilder<ButtonBuilder> {
const row = new ActionRowBuilder<ButtonBuilder>();
const config = this.client.config;
diff --git a/src/commands/info/icon.ts b/src/commands/info/icon.ts
index 71f02f9..ed7e8ca 100644
--- a/src/commands/info/icon.ts
+++ b/src/commands/info/icon.ts
@@ -1,6 +1,6 @@
-import { BotCommand, clientSendAndPermCheck, colors, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, colors, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { EmbedBuilder, escapeMarkdown, PermissionFlagsBits } from 'discord.js';
+import { EmbedBuilder, escapeMarkdown } from 'discord.js';
export default class IconCommand extends BotCommand {
public constructor() {
@@ -10,7 +10,8 @@ export default class IconCommand extends BotCommand {
description: "A command to get the server's icon",
usage: ['icon'],
examples: ['icon'],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
channel: 'guild',
slash: true
diff --git a/src/commands/info/inviteInfo.ts b/src/commands/info/inviteInfo.ts
index 590bf16..bf66a4c 100644
--- a/src/commands/info/inviteInfo.ts
+++ b/src/commands/info/inviteInfo.ts
@@ -1,5 +1,5 @@
-import { Arg, ArgType, BotCommand, clientSendAndPermCheck, colors, type CommandMessage, type SlashMessage } from '#lib';
-import { ApplicationCommandOptionType, EmbedBuilder, Invite, PermissionFlagsBits } from 'discord.js';
+import { Arg, ArgType, BotCommand, colors, type CommandMessage, type SlashMessage } from '#lib';
+import { ApplicationCommandOptionType, EmbedBuilder, Invite } from 'discord.js';
export default class InviteInfoCommand extends BotCommand {
public constructor() {
@@ -20,7 +20,9 @@ export default class InviteInfoCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ hidden: true,
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/info/links.ts b/src/commands/info/links.ts
index ecc09c8..b3d0292 100644
--- a/src/commands/info/links.ts
+++ b/src/commands/info/links.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, invite, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, invite, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { ActionRowBuilder, ButtonBuilder, ButtonStyle } from 'discord.js';
import packageDotJSON from '../../../package.json' assert { type: 'json' };
@@ -13,7 +13,7 @@ export default class LinksCommand extends BotCommand {
description: 'Sends bot links',
usage: ['links'],
examples: ['links'],
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
slash: true
});
diff --git a/src/commands/info/ping.ts b/src/commands/info/ping.ts
index 91bec1d..ad58cc0 100644
--- a/src/commands/info/ping.ts
+++ b/src/commands/info/ping.ts
@@ -1,5 +1,5 @@
-import { BotCommand, clientSendAndPermCheck, colors, format, type CommandMessage, type SlashMessage } from '#lib';
-import { EmbedBuilder, PermissionFlagsBits, type Message } from 'discord.js';
+import { BotCommand, colors, format, type CommandMessage, type SlashMessage } from '#lib';
+import { EmbedBuilder, type Message } from 'discord.js';
export default class PingCommand extends BotCommand {
public constructor() {
@@ -10,7 +10,8 @@ export default class PingCommand extends BotCommand {
usage: ['ping'],
examples: ['ping'],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/info/pronouns.ts b/src/commands/info/pronouns.ts
index 47061fc..138bdfc 100644
--- a/src/commands/info/pronouns.ts
+++ b/src/commands/info/pronouns.ts
@@ -1,12 +1,5 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
-import { ApplicationCommandOptionType, EmbedBuilder, escapeMarkdown, PermissionFlagsBits } from 'discord.js';
+import { AllowedMentions, BotCommand, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
+import { ApplicationCommandOptionType, EmbedBuilder, escapeMarkdown } from 'discord.js';
export default class PronounsCommand extends BotCommand {
public constructor() {
@@ -27,7 +20,8 @@ export default class PronounsCommand extends BotCommand {
slashType: ApplicationCommandOptionType.User
}
],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
slash: true
});
diff --git a/src/commands/info/snowflake.ts b/src/commands/info/snowflake.ts
index deaf41c..ba93611 100644
--- a/src/commands/info/snowflake.ts
+++ b/src/commands/info/snowflake.ts
@@ -1,19 +1,10 @@
-import {
- BotCommand,
- clientSendAndPermCheck,
- colors,
- timestamp,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { BotCommand, colors, timestamp, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import { stripIndent } from '#tags';
import {
ApplicationCommandOptionType,
ChannelType,
EmbedBuilder,
escapeMarkdown,
- PermissionFlagsBits,
SnowflakeUtil,
type DeconstructedSnowflake,
type Snowflake
@@ -37,7 +28,8 @@ export default class SnowflakeCommand extends BotCommand {
slashType: ApplicationCommandOptionType.String
}
],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
slash: true
});
diff --git a/src/commands/info/userInfo.ts b/src/commands/info/userInfo.ts
index 52875ef..f70896d 100644
--- a/src/commands/info/userInfo.ts
+++ b/src/commands/info/userInfo.ts
@@ -2,9 +2,9 @@ import {
Arg,
BotCommand,
bots,
- clientSendAndPermCheck,
colors,
emojis,
+ formatPerms,
mappings,
oxford,
sleep,
@@ -51,7 +51,8 @@ export default class UserInfoCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
@@ -246,11 +247,7 @@ export default class UserInfoCommand extends BotCommand {
if (member?.permissions.has(PermissionFlagsBits.Administrator) || member.guild?.ownerId == member.user.id) {
perms.push('`Administrator`');
} else if (member?.permissions.toArray().length) {
- member.permissions.toArray().forEach((permission) => {
- if (mappings.permissions[permission]?.important) {
- perms.push(`\`${mappings.permissions[permission].name}\``);
- }
- });
+ perms.push(formatPerms(member.permissions.toArray().filter((p) => mappings.permissions[p]?.important === true)));
}
if (perms.length) embed.addFields({ name: title, value: perms.join(' ') });
diff --git a/src/commands/leveling/leaderboard.ts b/src/commands/leveling/leaderboard.ts
index 109f398..50af997 100644
--- a/src/commands/leveling/leaderboard.ts
+++ b/src/commands/leveling/leaderboard.ts
@@ -1,14 +1,4 @@
-import {
- BotCommand,
- ButtonPaginator,
- chunk,
- clientSendAndPermCheck,
- emojis,
- Level,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
+import { BotCommand, ButtonPaginator, chunk, emojis, Level, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
@@ -33,7 +23,8 @@ export default class LeaderboardCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/leveling/level.ts b/src/commands/leveling/level.ts
index 2547b06..869140d 100644
--- a/src/commands/leveling/level.ts
+++ b/src/commands/leveling/level.ts
@@ -2,7 +2,6 @@ import {
AllowedMentions,
BotCommand,
CanvasProgressBar,
- clientSendAndPermCheck,
emojis,
Level,
type CommandMessage,
@@ -37,7 +36,8 @@ export default class LevelCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['AttachFiles'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/leveling/levelRoles.ts b/src/commands/leveling/levelRoles.ts
index 4973b01..860e88a 100644
--- a/src/commands/leveling/levelRoles.ts
+++ b/src/commands/leveling/levelRoles.ts
@@ -1,15 +1,6 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- type ArgType,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, emojis, type ArgType, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType } from 'discord.js';
export default class LevelRolesCommand extends BotCommand {
public constructor() {
@@ -42,8 +33,8 @@ export default class LevelRolesCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageRoles]),
- userPermissions: [PermissionFlagsBits.ManageGuild, PermissionFlagsBits.ManageRoles]
+ clientPermissions: ['ManageRoles'],
+ userPermissions: ['ManageGuild', 'ManageRoles']
});
}
diff --git a/src/commands/leveling/setLevel.ts b/src/commands/leveling/setLevel.ts
index cd30978..6f6f69e 100644
--- a/src/commands/leveling/setLevel.ts
+++ b/src/commands/leveling/setLevel.ts
@@ -1,16 +1,6 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- Level,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, emojis, format, Level, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType } from 'discord.js';
export default class SetLevelCommand extends BotCommand {
public constructor() {
@@ -40,8 +30,8 @@ export default class SetLevelCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.Administrator]
+ clientPermissions: [],
+ userPermissions: ['Administrator']
});
}
diff --git a/src/commands/leveling/setXp.ts b/src/commands/leveling/setXp.ts
index 23f4463..8c3b86f 100644
--- a/src/commands/leveling/setXp.ts
+++ b/src/commands/leveling/setXp.ts
@@ -1,16 +1,6 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- Level,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, emojis, format, Level, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType } from 'discord.js';
export default class SetXpCommand extends BotCommand {
public constructor() {
@@ -41,8 +31,8 @@ export default class SetXpCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.Administrator]
+ clientPermissions: [],
+ userPermissions: ['Administrator']
});
}
diff --git a/src/commands/moderation/_activePunishments.ts b/src/commands/moderation/_activePunishments.ts
index 4ded902..140e540 100644
--- a/src/commands/moderation/_activePunishments.ts
+++ b/src/commands/moderation/_activePunishments.ts
@@ -47,8 +47,8 @@
// slash: true,
// channel: 'guild',
// hidden: true,
-// clientPermissions: (m) => clientSendAndPermCheck(m),
-// userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+// clientPermissions: [],
+// userPermissions: ['ManageMessages']
// });
// }
diff --git a/src/commands/moderation/ban.ts b/src/commands/moderation/ban.ts
index fdb8033..aee8805 100644
--- a/src/commands/moderation/ban.ts
+++ b/src/commands/moderation/ban.ts
@@ -14,7 +14,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type User } from 'discord.js';
+import { ApplicationCommandOptionType, type User } from 'discord.js';
export default class BanCommand extends BotCommand {
public constructor() {
@@ -70,8 +70,8 @@ export default class BanCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: [PermissionFlagsBits.BanMembers],
- userPermissions: [PermissionFlagsBits.BanMembers]
+ clientPermissions: ['BanMembers'],
+ userPermissions: ['BanMembers']
});
}
diff --git a/src/commands/moderation/block.ts b/src/commands/moderation/block.ts
index a3f7bc1..a5ad31d 100644
--- a/src/commands/moderation/block.ts
+++ b/src/commands/moderation/block.ts
@@ -3,11 +3,9 @@ import {
blockResponse,
BotCommand,
castDurationContent,
- clientSendAndPermCheck,
emojis,
format,
Moderation,
- userGuildPermCheck,
type ArgType,
type BlockResponse,
type CommandMessage,
@@ -15,7 +13,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class BlockCommand extends BotCommand {
public constructor() {
@@ -57,8 +55,8 @@ export default class BlockCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageChannels]),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages]),
+ clientPermissions: ['ManageChannels'],
+ userPermissions: ['ManageMessages'],
lock: 'channel'
});
}
diff --git a/src/commands/moderation/evidence.ts b/src/commands/moderation/evidence.ts
index bc4cdb2..9a5e70f 100644
--- a/src/commands/moderation/evidence.ts
+++ b/src/commands/moderation/evidence.ts
@@ -1,20 +1,18 @@
import {
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
ModLog,
OptArgType,
regex,
TanzaniteEvent,
- userGuildPermCheck,
type ArgType,
type CommandMessage,
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
import { Argument, ArgumentGeneratorReturn } from 'discord-akairo';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type Message } from 'discord.js';
+import { ApplicationCommandOptionType, type Message } from 'discord.js';
export default class EvidenceCommand extends BotCommand {
public constructor() {
@@ -55,8 +53,8 @@ export default class EvidenceCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: [],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moderation/hideCase.ts b/src/commands/moderation/hideCase.ts
index ca87ea5..6c50157 100644
--- a/src/commands/moderation/hideCase.ts
+++ b/src/commands/moderation/hideCase.ts
@@ -1,16 +1,6 @@
-import {
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- ModLog,
- TanzaniteEvent,
- userGuildPermCheck,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { BotCommand, emojis, format, ModLog, TanzaniteEvent, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType } from 'discord.js';
export default class HideCaseCommand extends BotCommand {
public constructor() {
@@ -31,8 +21,8 @@ export default class HideCaseCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages]),
+ clientPermissions: [],
+ userPermissions: ['ManageMessages'],
channel: 'guild'
});
}
diff --git a/src/commands/moderation/kick.ts b/src/commands/moderation/kick.ts
index a5938f8..82ddce4 100644
--- a/src/commands/moderation/kick.ts
+++ b/src/commands/moderation/kick.ts
@@ -1,7 +1,6 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
kickResponse,
@@ -13,7 +12,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class KickCommand extends BotCommand {
public constructor() {
@@ -54,8 +53,8 @@ export default class KickCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.KickMembers]),
- userPermissions: [PermissionFlagsBits.KickMembers]
+ clientPermissions: ['KickMembers'],
+ userPermissions: ['KickMembers']
});
}
diff --git a/src/commands/moderation/lockdown.ts b/src/commands/moderation/lockdown.ts
index 57f9caf..c88cc17 100644
--- a/src/commands/moderation/lockdown.ts
+++ b/src/commands/moderation/lockdown.ts
@@ -1,7 +1,6 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
colors,
ConfirmationPrompt,
emojis,
@@ -17,7 +16,6 @@ import {
Collection,
Constants,
NewsChannel,
- PermissionFlagsBits,
TextChannel,
ThreadChannel,
VoiceChannel
@@ -62,8 +60,9 @@ export default class LockdownCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageChannels]),
- userPermissions: [PermissionFlagsBits.ManageChannels],
+ clientPermissions: ['ManageChannels'],
+ userPermissions: ['ManageChannels'],
+ userCheckChannel: true,
lock: 'channel'
});
}
diff --git a/src/commands/moderation/massBan.ts b/src/commands/moderation/massBan.ts
index 4ba4f47..445506f 100644
--- a/src/commands/moderation/massBan.ts
+++ b/src/commands/moderation/massBan.ts
@@ -3,7 +3,6 @@ import {
BanResponse,
banResponse,
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
overflowEmbed,
@@ -15,7 +14,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, Collection, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, Collection } from 'discord.js';
export default class MassBanCommand extends BotCommand {
public constructor() {
@@ -61,8 +60,9 @@ export default class MassBanCommand extends BotCommand {
quoted: true,
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.BanMembers],
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
+ userPermissions: ['BanMembers'],
lock: 'user'
});
}
diff --git a/src/commands/moderation/massEvidence.ts b/src/commands/moderation/massEvidence.ts
index b44060e..29d806e 100644
--- a/src/commands/moderation/massEvidence.ts
+++ b/src/commands/moderation/massEvidence.ts
@@ -1,6 +1,5 @@
import {
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
ModLog,
@@ -13,7 +12,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType } from 'discord.js';
import EvidenceCommand from './evidence.js';
export default class MassEvidenceCommand extends BotCommand {
@@ -50,8 +49,8 @@ export default class MassEvidenceCommand extends BotCommand {
quoted: true,
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: [PermissionFlagsBits.ManageMessages],
+ clientPermissions: ['EmbedLinks'],
+ userPermissions: ['ManageMessages'],
lock: 'user'
});
}
diff --git a/src/commands/moderation/modlog.ts b/src/commands/moderation/modlog.ts
index 08e5397..dcab9ef 100644
--- a/src/commands/moderation/modlog.ts
+++ b/src/commands/moderation/modlog.ts
@@ -3,19 +3,17 @@ import {
BotCommand,
ButtonPaginator,
chunk,
- clientSendAndPermCheck,
colors,
emojis,
humanizeDuration,
ModLog,
timestamp,
- userGuildPermCheck,
type ArgType,
type CommandMessage,
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, escapeMarkdown, PermissionFlagsBits, User } from 'discord.js';
+import { ApplicationCommandOptionType, escapeMarkdown, User } from 'discord.js';
export default class ModlogCommand extends BotCommand {
public static separator = '\n━━━━━━━━━━━━━━━\n';
@@ -48,8 +46,8 @@ export default class ModlogCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: [],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moderation/mute.ts b/src/commands/moderation/mute.ts
index debcf03..9ffaf8d 100644
--- a/src/commands/moderation/mute.ts
+++ b/src/commands/moderation/mute.ts
@@ -2,12 +2,10 @@ import {
AllowedMentions,
BotCommand,
castDurationContent,
- clientSendAndPermCheck,
emojis,
format,
Moderation,
muteResponse,
- userGuildPermCheck,
type ArgType,
type CommandMessage,
type MuteResponse,
@@ -15,7 +13,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class MuteCommand extends BotCommand {
public constructor() {
@@ -57,8 +55,8 @@ export default class MuteCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageRoles]),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: ['ManageRoles'],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moderation/myLogs.ts b/src/commands/moderation/myLogs.ts
index 34ab8e0..8faca8c 100644
--- a/src/commands/moderation/myLogs.ts
+++ b/src/commands/moderation/myLogs.ts
@@ -2,7 +2,6 @@ import {
BotCommand,
ButtonPaginator,
chunk,
- clientSendAndPermCheck,
colors,
emojis,
ModLog,
@@ -35,7 +34,8 @@ export default class MyLogsCommand extends BotCommand {
],
slash: true,
channel: null,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/moderation/purge.ts b/src/commands/moderation/purge.ts
index 106f394..1eff48e 100644
--- a/src/commands/moderation/purge.ts
+++ b/src/commands/moderation/purge.ts
@@ -1,16 +1,6 @@
-import {
- Arg,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- OptArgType,
- TanzaniteEvent,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { Arg, BotCommand, emojis, OptArgType, TanzaniteEvent, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, Collection, PermissionFlagsBits, type Message } from 'discord.js';
+import { ApplicationCommandOptionType, Collection, type Message } from 'discord.js';
export default class PurgeCommand extends BotCommand {
public constructor() {
@@ -52,9 +42,10 @@ export default class PurgeCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) =>
- clientSendAndPermCheck(m, [PermissionFlagsBits.ManageMessages, PermissionFlagsBits.EmbedLinks], true),
- userPermissions: [PermissionFlagsBits.ManageMessages],
+ clientPermissions: ['ManageMessages', 'EmbedLinks'],
+ clientCheckChannel: true,
+ userPermissions: ['ManageMessages'],
+ userCheckChannel: true,
channel: 'guild'
});
}
diff --git a/src/commands/moderation/removeReactionEmoji.ts b/src/commands/moderation/removeReactionEmoji.ts
index 5baeffc..a4ad4de 100644
--- a/src/commands/moderation/removeReactionEmoji.ts
+++ b/src/commands/moderation/removeReactionEmoji.ts
@@ -1,15 +1,6 @@
-import {
- Arg,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { Arg, BotCommand, emojis, format, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, Message, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, Message } from 'discord.js';
export default class RemoveReactionEmojiCommand extends BotCommand {
public constructor() {
@@ -42,9 +33,10 @@ export default class RemoveReactionEmojiCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) =>
- clientSendAndPermCheck(m, [PermissionFlagsBits.ManageMessages, PermissionFlagsBits.EmbedLinks], true),
- userPermissions: [PermissionFlagsBits.ManageMessages, PermissionFlagsBits.ManageEmojisAndStickers] // Can't undo the removal of 1000s of reactions
+ clientPermissions: ['ManageMessages', 'EmbedLinks'],
+ clientCheckChannel: true,
+ userPermissions: ['ManageMessages', 'ManageEmojisAndStickers'], // Can't undo the removal of 1000s of reactions
+ userCheckChannel: true
});
}
diff --git a/src/commands/moderation/role.ts b/src/commands/moderation/role.ts
index 6b874da..565f214 100644
--- a/src/commands/moderation/role.ts
+++ b/src/commands/moderation/role.ts
@@ -2,7 +2,6 @@ import {
addRoleResponse,
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
humanizeDuration,
@@ -67,8 +66,8 @@ export default class RoleCommand extends BotCommand {
channel: 'guild',
flags: ['--force'],
typing: true,
- clientPermissions: (m) =>
- clientSendAndPermCheck(m, [PermissionFlagsBits.ManageRoles, PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['ManageRoles', 'EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/moderation/slowmode.ts b/src/commands/moderation/slowmode.ts
index 66bc2a0..82d0264 100644
--- a/src/commands/moderation/slowmode.ts
+++ b/src/commands/moderation/slowmode.ts
@@ -1,18 +1,7 @@
-import {
- Arg,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- humanizeDuration,
- userGuildPermCheck,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
+import { Arg, BotCommand, emojis, format, humanizeDuration, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { Argument } from 'discord-akairo';
-import { ApplicationCommandOptionType, ChannelType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, ChannelType } from 'discord.js';
export default class SlowmodeCommand extends BotCommand {
public constructor() {
@@ -46,9 +35,8 @@ export default class SlowmodeCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) =>
- clientSendAndPermCheck(m, [PermissionFlagsBits.ManageChannels, PermissionFlagsBits.EmbedLinks], true),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: ['ManageChannels', 'EmbedLinks'],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moderation/timeout.ts b/src/commands/moderation/timeout.ts
index 5ab62e4..7bb02f7 100644
--- a/src/commands/moderation/timeout.ts
+++ b/src/commands/moderation/timeout.ts
@@ -2,7 +2,6 @@ import {
AllowedMentions,
BotCommand,
castDurationContent,
- clientSendAndPermCheck,
emojis,
format,
Moderation,
@@ -13,7 +12,7 @@ import {
type TimeoutResponse
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class TimeoutCommand extends BotCommand {
public constructor() {
@@ -54,8 +53,8 @@ export default class TimeoutCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ModerateMembers]),
- userPermissions: [PermissionFlagsBits.ModerateMembers]
+ clientPermissions: ['ModerateMembers'],
+ userPermissions: ['ModerateMembers']
});
}
diff --git a/src/commands/moderation/unban.ts b/src/commands/moderation/unban.ts
index 29dedab..537e176 100644
--- a/src/commands/moderation/unban.ts
+++ b/src/commands/moderation/unban.ts
@@ -12,7 +12,7 @@ import {
type UnbanResponse
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type User } from 'discord.js';
+import { ApplicationCommandOptionType, type User } from 'discord.js';
export default class UnbanCommand extends BotCommand {
public constructor() {
@@ -44,8 +44,8 @@ export default class UnbanCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: [PermissionFlagsBits.BanMembers],
- userPermissions: [PermissionFlagsBits.BanMembers]
+ clientPermissions: ['BanMembers'],
+ userPermissions: ['BanMembers']
});
}
diff --git a/src/commands/moderation/unblock.ts b/src/commands/moderation/unblock.ts
index e342f0f..4838392 100644
--- a/src/commands/moderation/unblock.ts
+++ b/src/commands/moderation/unblock.ts
@@ -1,12 +1,10 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
Moderation,
unblockResponse,
- userGuildPermCheck,
type ArgType,
type CommandMessage,
type OptArgType,
@@ -14,7 +12,7 @@ import {
type UnblockResponse
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class UnblockCommand extends BotCommand {
public constructor() {
@@ -56,8 +54,8 @@ export default class UnblockCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageChannels]),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: ['ManageChannels'],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moderation/unlockdown.ts b/src/commands/moderation/unlockdown.ts
index 38d2fe6..09b78a0 100644
--- a/src/commands/moderation/unlockdown.ts
+++ b/src/commands/moderation/unlockdown.ts
@@ -1,6 +1,6 @@
import { LockdownCommand } from '#commands';
-import { BotCommand, clientSendAndPermCheck, type ArgType, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
-import { ApplicationCommandOptionType, Constants, PermissionFlagsBits } from 'discord.js';
+import { BotCommand, type ArgType, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
+import { ApplicationCommandOptionType, Constants } from 'discord.js';
export default class UnlockdownCommand extends BotCommand {
public constructor() {
@@ -41,8 +41,8 @@ export default class UnlockdownCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageChannels]),
- userPermissions: [PermissionFlagsBits.ManageChannels]
+ clientPermissions: ['ManageChannels'],
+ userPermissions: ['ManageChannels']
});
}
diff --git a/src/commands/moderation/unmute.ts b/src/commands/moderation/unmute.ts
index 4f408eb..a4d348d 100644
--- a/src/commands/moderation/unmute.ts
+++ b/src/commands/moderation/unmute.ts
@@ -1,16 +1,14 @@
import {
AllowedMentions,
- clientSendAndPermCheck,
formatUnmuteResponse,
Moderation,
- userGuildPermCheck,
type ArgType,
type CommandMessage,
type OptArgType,
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType } from 'discord.js';
import { BotCommand } from '../../../lib/extensions/discord-akairo/BotCommand.js';
export default class UnmuteCommand extends BotCommand {
@@ -53,8 +51,8 @@ export default class UnmuteCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageRoles]),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: ['ManageRoles'],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moderation/untimeout.ts b/src/commands/moderation/untimeout.ts
index 8bc977b..3775c65 100644
--- a/src/commands/moderation/untimeout.ts
+++ b/src/commands/moderation/untimeout.ts
@@ -1,7 +1,6 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
Moderation,
@@ -13,7 +12,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class UntimeoutCommand extends BotCommand {
public constructor() {
@@ -55,8 +54,8 @@ export default class UntimeoutCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ModerateMembers]),
- userPermissions: [PermissionFlagsBits.ModerateMembers]
+ clientPermissions: ['ModerateMembers'],
+ userPermissions: ['ModerateMembers']
});
}
diff --git a/src/commands/moderation/warn.ts b/src/commands/moderation/warn.ts
index 9547583..4bc7f13 100644
--- a/src/commands/moderation/warn.ts
+++ b/src/commands/moderation/warn.ts
@@ -1,12 +1,10 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
emojis,
format,
Moderation,
ordinal,
- userGuildPermCheck,
warnResponse,
type ArgType,
type CommandMessage,
@@ -15,7 +13,7 @@ import {
type WarnResponse
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type GuildMember } from 'discord.js';
+import { ApplicationCommandOptionType, type GuildMember } from 'discord.js';
export default class WarnCommand extends BotCommand {
public constructor() {
@@ -56,8 +54,8 @@ export default class WarnCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
- userPermissions: (m) => userGuildPermCheck(m, [PermissionFlagsBits.ManageMessages])
+ clientPermissions: [],
+ userPermissions: ['ManageMessages']
});
}
diff --git a/src/commands/moulberry-bush/capePermissions.ts b/src/commands/moulberry-bush/capePermissions.ts
index fdeddd8..6f7ac4a 100644
--- a/src/commands/moulberry-bush/capePermissions.ts
+++ b/src/commands/moulberry-bush/capePermissions.ts
@@ -1,7 +1,6 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
format,
@@ -10,7 +9,7 @@ import {
type CommandMessage,
type SlashMessage
} from '#lib';
-import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
export default class CapePermissionsCommand extends BotCommand {
public constructor() {
@@ -31,7 +30,8 @@ export default class CapePermissionsCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
channel: 'guild'
});
diff --git a/src/commands/moulberry-bush/capes.ts b/src/commands/moulberry-bush/capes.ts
index 79c163f..b292f24 100644
--- a/src/commands/moulberry-bush/capes.ts
+++ b/src/commands/moulberry-bush/capes.ts
@@ -2,7 +2,6 @@ import {
AllowedMentions,
BotCommand,
ButtonPaginator,
- clientSendAndPermCheck,
colors,
DeleteButton,
emojis,
@@ -13,7 +12,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, PermissionFlagsBits, type APIEmbed, type AutocompleteInteraction } from 'discord.js';
+import { ApplicationCommandOptionType, type APIEmbed, type AutocompleteInteraction } from 'discord.js';
import { default as Fuse } from 'fuse.js';
assert(Fuse);
@@ -39,7 +38,8 @@ export default class CapesCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/moulberry-bush/gimmeRole.ts b/src/commands/moulberry-bush/gimmeRole.ts
new file mode 100644
index 0000000..2e3cc77
--- /dev/null
+++ b/src/commands/moulberry-bush/gimmeRole.ts
@@ -0,0 +1,42 @@
+import { BotCommand, emojis, mappings, type CommandMessage, type SlashMessage } from '#lib';
+import assert from 'assert/strict';
+
+export default class GimmeRole extends BotCommand {
+ public constructor() {
+ super('gimmeRole', {
+ aliases: ['gimme-role', 'gimme'],
+ category: "Moulberry's Bush",
+ description: 'Gives you role.',
+ usage: ['gimme-role'],
+ examples: ['gimme-role'],
+ slash: false,
+ channel: 'guild',
+ clientPermissions: [],
+ userPermissions: [],
+ restrictedGuilds: [mappings.guilds["Moulberry's Bush"]]
+ });
+ }
+
+ public override async exec(message: CommandMessage | SlashMessage) {
+ assert(message.inGuild() && message.member);
+ assert(message.guildId === mappings.guilds["Moulberry's Bush"]);
+
+ const roleId = '1016149863651622923';
+
+ try {
+ if (!message.guild.roles.cache.has(roleId)) {
+ return await message.util.reply(`${emojis.error} Fucky wucky, the role does not exist.`);
+ }
+
+ if (message.member.roles.cache.has(roleId)) {
+ await message.member.roles.remove(roleId);
+ return await message.util.reply(`${emojis.success} Removed role.`);
+ } else {
+ await message.member.roles.add(roleId);
+ return await message.util.reply(`${emojis.success} Added role.`);
+ }
+ } catch {
+ return message.util.reply(`${emojis.error} Fucky wucky, an error occurred.`);
+ }
+ }
+}
diff --git a/src/commands/moulberry-bush/giveawayPing.ts b/src/commands/moulberry-bush/giveawayPing.ts
index aebcc52..ef08473 100644
--- a/src/commands/moulberry-bush/giveawayPing.ts
+++ b/src/commands/moulberry-bush/giveawayPing.ts
@@ -1,4 +1,4 @@
-import { AllowedMentions, BotCommand, clientSendAndPermCheck, emojis, mappings, type CommandMessage } from '#lib';
+import { AllowedMentions, BotCommand, emojis, mappings, type CommandMessage } from '#lib';
import assert from 'assert/strict';
import { PermissionFlagsBits } from 'discord.js';
@@ -10,14 +10,9 @@ export default class GiveawayPingCommand extends BotCommand {
description: 'Pings the giveaway role.',
usage: ['giveaway-ping'],
examples: ['giveaway-ping'],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageMessages], true),
- userPermissions: [
- PermissionFlagsBits.ManageGuild,
- PermissionFlagsBits.ManageMessages,
- PermissionFlagsBits.BanMembers,
- PermissionFlagsBits.KickMembers,
- PermissionFlagsBits.ViewChannel
- ],
+ clientPermissions: ['ManageMessages'],
+ clientCheckChannel: true,
+ userPermissions: ['ManageGuild', 'ManageMessages', 'BanMembers', 'KickMembers', 'ViewChannel'],
channel: 'guild',
ignoreCooldown: [],
ignorePermissions: [],
diff --git a/src/commands/moulberry-bush/moulHammer.ts b/src/commands/moulberry-bush/moulHammer.ts
index 0407428..776dea1 100644
--- a/src/commands/moulberry-bush/moulHammer.ts
+++ b/src/commands/moulberry-bush/moulHammer.ts
@@ -1,6 +1,6 @@
-import { BotCommand, clientSendAndPermCheck, colors, mappings, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, colors, mappings, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
export default class MoulHammerCommand extends BotCommand {
public constructor() {
@@ -24,7 +24,8 @@ export default class MoulHammerCommand extends BotCommand {
channel: 'guild',
slashGuilds: [mappings.guilds["Moulberry's Bush"]],
restrictedGuilds: [mappings.guilds["Moulberry's Bush"]],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/moulberry-bush/neuRepo.ts b/src/commands/moulberry-bush/neuRepo.ts
index d8eb7ed..9ff2903 100644
--- a/src/commands/moulberry-bush/neuRepo.ts
+++ b/src/commands/moulberry-bush/neuRepo.ts
@@ -1,12 +1,6 @@
-import { BotCommand, clientSendAndPermCheck, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import canvas from '@napi-rs/canvas';
-import {
- ApplicationCommandOptionType,
- AttachmentBuilder,
- AutocompleteInteraction,
- CacheType,
- PermissionFlagsBits
-} from 'discord.js';
+import { ApplicationCommandOptionType, AttachmentBuilder, AutocompleteInteraction, CacheType } from 'discord.js';
import { join } from 'path';
import tinycolor from 'tinycolor2';
import { formattingInfo, RawNeuItem } from '../../../lib/utils/Minecraft.js';
@@ -43,7 +37,8 @@ export default class NeuRepoCommand extends BotCommand {
} */
],
slash: false,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
ownerOnly: true,
hidden: true
diff --git a/src/commands/moulberry-bush/report.ts b/src/commands/moulberry-bush/report.ts
index 8eb412c..02de6fe 100644
--- a/src/commands/moulberry-bush/report.ts
+++ b/src/commands/moulberry-bush/report.ts
@@ -1,7 +1,6 @@
import {
AllowedMentions,
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
mappings,
@@ -11,7 +10,7 @@ import {
} from '#lib';
import { stripIndent } from '#tags';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
export default class ReportCommand extends BotCommand {
public constructor() {
@@ -42,7 +41,8 @@ export default class ReportCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
channel: 'guild'
});
diff --git a/src/commands/moulberry-bush/rule.ts b/src/commands/moulberry-bush/rule.ts
index 5f2155f..b4ca571 100644
--- a/src/commands/moulberry-bush/rule.ts
+++ b/src/commands/moulberry-bush/rule.ts
@@ -1,15 +1,6 @@
-import {
- AllowedMentions,
- Arg,
- BotCommand,
- clientSendAndPermCheck,
- mappings,
- type CommandMessage,
- type OptArgType,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, Arg, BotCommand, mappings, type CommandMessage, type OptArgType, type SlashMessage } from '#lib';
import { stripIndent } from '#tags';
-import { ApplicationCommandOptionType, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
const rules = [
{
@@ -101,7 +92,8 @@ export default class RuleCommand extends BotCommand {
slash: true,
slashGuilds: [mappings.guilds["Moulberry's Bush"]],
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
restrictedGuilds: [mappings.guilds["Moulberry's Bush"]]
});
diff --git a/src/commands/moulberry-bush/serverStatus.ts b/src/commands/moulberry-bush/serverStatus.ts
index 709de26..8e59c9f 100644
--- a/src/commands/moulberry-bush/serverStatus.ts
+++ b/src/commands/moulberry-bush/serverStatus.ts
@@ -1,5 +1,5 @@
-import { BotCommand, clientSendAndPermCheck, colors, emojis, type CommandMessage } from '#lib';
-import { EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { BotCommand, colors, emojis, type CommandMessage } from '#lib';
+import { EmbedBuilder } from 'discord.js';
export default class ServerStatusCommand extends BotCommand {
public constructor() {
@@ -9,7 +9,8 @@ export default class ServerStatusCommand extends BotCommand {
description: "Gives the status of moulberry's server",
usage: ['server-status'],
examples: ['server-status', 'ss'],
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
slash: true
});
diff --git a/src/commands/moulberry-bush/solved.ts b/src/commands/moulberry-bush/solved.ts
index 197a3ce..ecda1c7 100644
--- a/src/commands/moulberry-bush/solved.ts
+++ b/src/commands/moulberry-bush/solved.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, emojis, mappings, type CommandMessage, type SlashMessage } from '#lib';
+import { BotCommand, emojis, mappings, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
export default class Solved extends BotCommand {
@@ -11,7 +11,7 @@ export default class Solved extends BotCommand {
examples: ['solved'],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
slashGuilds: [mappings.guilds["Moulberry's Bush"]],
restrictedGuilds: [mappings.guilds["Moulberry's Bush"]]
diff --git a/src/commands/tickets/ticket-!.ts b/src/commands/tickets/ticket-!.ts
index d1462fb..c5c59f2 100644
--- a/src/commands/tickets/ticket-!.ts
+++ b/src/commands/tickets/ticket-!.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, deepWriteable, type SlashMessage } from '#lib';
+import { BotCommand, deepWriteable, type SlashMessage } from '#lib';
import { Flag, type ArgumentGeneratorReturn, type SlashOption } from 'discord-akairo';
import { ApplicationCommandOptionType } from 'discord.js';
@@ -31,7 +31,7 @@ export default class TicketCommand extends BotCommand {
),
slash: false,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: [],
ownerOnly: true,
hidden: true
diff --git a/src/commands/utilities/_poll.ts b/src/commands/utilities/_poll.ts
index 4655f36..b5b517b 100644
--- a/src/commands/utilities/_poll.ts
+++ b/src/commands/utilities/_poll.ts
@@ -29,7 +29,7 @@
// }
// ],
// slash: true,
-// clientPermissions: (m) => clientSendAndPermCheck(m),
+// clientPermissions: [],
// userPermissions: []
// });
// }
diff --git a/src/commands/utilities/activity.ts b/src/commands/utilities/activity.ts
index 414e6a2..89ca53e 100644
--- a/src/commands/utilities/activity.ts
+++ b/src/commands/utilities/activity.ts
@@ -1,6 +1,5 @@
import {
BotCommand,
- clientSendAndPermCheck,
emojis,
regex,
type ArgType,
@@ -124,7 +123,7 @@ export default class ActivityCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/utilities/calculator.ts b/src/commands/utilities/calculator.ts
index c9d300c..f8e0219 100644
--- a/src/commands/utilities/calculator.ts
+++ b/src/commands/utilities/calculator.ts
@@ -1,12 +1,4 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- colors,
- emojis,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, colors, emojis, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
import { evaluate } from 'mathjs';
@@ -33,7 +25,8 @@ export default class CalculatorCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/utilities/decode.ts b/src/commands/utilities/decode.ts
index 12a016b..b7e6927 100644
--- a/src/commands/utilities/decode.ts
+++ b/src/commands/utilities/decode.ts
@@ -1,13 +1,4 @@
-import {
- AllowedMentions,
- BotCommand,
- capitalize,
- clientSendAndPermCheck,
- colors,
- formatError,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, capitalize, colors, formatError, type CommandMessage, type SlashMessage } from '#lib';
import { ApplicationCommandOptionType, EmbedBuilder } from 'discord.js';
const encodingTypesArray = ['ascii', 'utf8', 'utf-8', 'utf16le', 'ucs2', 'ucs-2', 'base64', 'latin1', 'binary', 'hex'];
@@ -51,7 +42,8 @@ export default class DecodeCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/utilities/hash.ts b/src/commands/utilities/hash.ts
index 1c741bd..7d4c7b6 100644
--- a/src/commands/utilities/hash.ts
+++ b/src/commands/utilities/hash.ts
@@ -25,7 +25,7 @@
// slashType: ApplicationCommandOptionType.String
// }
// ],
-// clientPermissions: (m) => clientSendAndPermCheck(m),
+// clientPermissions: [],
// userPermissions: []
// });
// }
diff --git a/src/commands/utilities/highlight-!.ts b/src/commands/utilities/highlight-!.ts
index 4995e97..7716887 100644
--- a/src/commands/utilities/highlight-!.ts
+++ b/src/commands/utilities/highlight-!.ts
@@ -1,4 +1,4 @@
-import { BotCommand, clientSendAndPermCheck, deepWriteable, Highlight, HighlightWord, type SlashMessage } from '#lib';
+import { BotCommand, deepWriteable, Highlight, HighlightWord, type SlashMessage } from '#lib';
import { Flag, type ArgumentGeneratorReturn, type SlashOption } from 'discord-akairo';
import { ApplicationCommandOptionType, Constants, type AutocompleteInteraction, type CacheType } from 'discord.js';
@@ -162,7 +162,8 @@ export default class HighlightCommand extends BotCommand {
),
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/utilities/price.ts b/src/commands/utilities/price.ts
index a1645dc..06afe3b 100644
--- a/src/commands/utilities/price.ts
+++ b/src/commands/utilities/price.ts
@@ -1,6 +1,6 @@
-import { ArgType, BotCommand, clientSendAndPermCheck, colors, emojis, format, oxford, type CommandMessage } from '#lib';
+import { ArgType, BotCommand, colors, emojis, format, oxford, type CommandMessage } from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, AutocompleteInteraction, EmbedBuilder, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, AutocompleteInteraction, EmbedBuilder } from 'discord.js';
import { default as Fuse } from 'fuse.js';
assert(Fuse);
@@ -43,7 +43,8 @@ export default class PriceCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
typing: true
});
diff --git a/src/commands/utilities/remind.ts b/src/commands/utilities/remind.ts
index 498a63d..ecc3830 100644
--- a/src/commands/utilities/remind.ts
+++ b/src/commands/utilities/remind.ts
@@ -1,7 +1,6 @@
import {
BotCommand,
castDurationContent,
- clientSendAndPermCheck,
dateDelta,
emojis,
format,
@@ -35,7 +34,7 @@ export default class RemindCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/utilities/reminders.ts b/src/commands/utilities/reminders.ts
index f98166f..8dd7e25 100644
--- a/src/commands/utilities/reminders.ts
+++ b/src/commands/utilities/reminders.ts
@@ -2,7 +2,6 @@ import {
BotCommand,
ButtonPaginator,
chunk,
- clientSendAndPermCheck,
colors,
emojis,
Reminder,
@@ -11,7 +10,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { PermissionFlagsBits, type APIEmbed } from 'discord.js';
+import { type APIEmbed } from 'discord.js';
import { Op } from 'sequelize';
assert(Op);
@@ -25,7 +24,8 @@ export default class RemindersCommand extends BotCommand {
usage: ['reminder'],
examples: ['reminders'],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks]),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
diff --git a/src/commands/utilities/steal.ts b/src/commands/utilities/steal.ts
index 7f70830..a208920 100644
--- a/src/commands/utilities/steal.ts
+++ b/src/commands/utilities/steal.ts
@@ -1,17 +1,7 @@
-import {
- Arg,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- OptArgType,
- regex,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { Arg, BotCommand, emojis, format, OptArgType, regex, type CommandMessage, type SlashMessage } from '#lib';
import assert from 'assert/strict';
import { type ArgumentGeneratorReturn, type ArgumentType, type ArgumentTypeCaster } from 'discord-akairo';
-import { ApplicationCommandOptionType, Attachment, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, Attachment } from 'discord.js';
import _ from 'lodash';
import { Stream } from 'stream';
import { URL } from 'url';
@@ -46,8 +36,8 @@ export default class StealCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.ManageEmojisAndStickers]),
- userPermissions: [PermissionFlagsBits.ManageEmojisAndStickers]
+ clientPermissions: ['ManageEmojisAndStickers'],
+ userPermissions: ['ManageEmojisAndStickers']
});
}
diff --git a/src/commands/utilities/suicide.ts b/src/commands/utilities/suicide.ts
index bc76d9c..8376b1c 100644
--- a/src/commands/utilities/suicide.ts
+++ b/src/commands/utilities/suicide.ts
@@ -1,4 +1,4 @@
-import { AllowedMentions, BotCommand, clientSendAndPermCheck, colors, type CommandMessage, type SlashMessage } from '#lib';
+import { AllowedMentions, BotCommand, colors, type CommandMessage, type SlashMessage } from '#lib';
import { stripIndent } from '#tags';
import { EmbedBuilder } from 'discord.js';
@@ -11,7 +11,8 @@ export default class SuicideCommand extends BotCommand {
usage: ['suicide'],
examples: ['suicide'],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
bypassChannelBlacklist: true
});
diff --git a/src/commands/utilities/uuid.ts b/src/commands/utilities/uuid.ts
index 041acfc..1d13741 100644
--- a/src/commands/utilities/uuid.ts
+++ b/src/commands/utilities/uuid.ts
@@ -1,14 +1,4 @@
-import {
- AllowedMentions,
- ArgType,
- BotCommand,
- clientSendAndPermCheck,
- emojis,
- format,
- mcUUID,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, ArgType, BotCommand, emojis, format, mcUUID, type CommandMessage, type SlashMessage } from '#lib';
import { ApplicationCommandOptionType } from 'discord.js';
export default class UuidCommand extends BotCommand {
@@ -40,7 +30,7 @@ export default class UuidCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: [],
userPermissions: []
});
}
diff --git a/src/commands/utilities/viewRaw.ts b/src/commands/utilities/viewRaw.ts
index 63125c3..1220f0f 100644
--- a/src/commands/utilities/viewRaw.ts
+++ b/src/commands/utilities/viewRaw.ts
@@ -1,7 +1,6 @@
import {
Arg,
BotCommand,
- clientSendAndPermCheck,
colors,
emojis,
inspect,
@@ -11,7 +10,7 @@ import {
type SlashMessage
} from '#lib';
import assert from 'assert/strict';
-import { ApplicationCommandOptionType, Constants, EmbedBuilder, Message, PermissionFlagsBits } from 'discord.js';
+import { ApplicationCommandOptionType, Constants, EmbedBuilder, Message } from 'discord.js';
export default class ViewRawCommand extends BotCommand {
public constructor() {
@@ -62,7 +61,8 @@ export default class ViewRawCommand extends BotCommand {
],
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}
@@ -87,24 +87,24 @@ export default class ViewRawCommand extends BotCommand {
`${emojis.error} There was an error fetching that message, make sure that is a valid id and if the message is not in this channel, please provide a channel.`
);
- const Embed = await ViewRawCommand.getRawData(newMessage, { json: args.json, js: args.js });
+ const Embed = await getRawData(newMessage, { json: args.json, js: args.js });
return await message.util.reply({ embeds: [Embed] });
}
+}
- public static async getRawData(message: Message, options: { json?: boolean; js: boolean }): Promise<EmbedBuilder> {
- const content =
- options.json || options.js
- ? options.json
- ? JSON.stringify(message.toJSON(), undefined, 2)
- : inspect(message.toJSON()) || '[No Content]'
- : message.content || '[No Content]';
- const lang = options.json ? 'json' : options.js ? 'js' : undefined;
- return new EmbedBuilder()
- .setFooter({ text: message.author.tag, iconURL: message.author.avatarURL() ?? undefined })
- .setTimestamp(message.createdTimestamp)
- .setColor(message.member?.roles?.color?.color ?? colors.default)
- .setTitle('Raw Message Information')
- .setDescription(await message.client.utils.codeblock(content, 2048, lang));
- }
+export async function getRawData(message: Message, options: { json?: boolean; js: boolean }): Promise<EmbedBuilder> {
+ const content =
+ options.json || options.js
+ ? options.json
+ ? JSON.stringify(message.toJSON(), undefined, 2)
+ : inspect(message.toJSON()) || '[No Content]'
+ : message.content || '[No Content]';
+ const lang = options.json ? 'json' : options.js ? 'js' : undefined;
+ return new EmbedBuilder()
+ .setFooter({ text: message.author.tag, iconURL: message.author.avatarURL() ?? undefined })
+ .setTimestamp(message.createdTimestamp)
+ .setColor(message.member?.roles?.color?.color ?? colors.default)
+ .setTitle('Raw Message Information')
+ .setDescription(await message.client.utils.codeblock(content, 2048, lang));
}
diff --git a/src/commands/utilities/whoHasRole.ts b/src/commands/utilities/whoHasRole.ts
index 23eccd6..9b12a1c 100644
--- a/src/commands/utilities/whoHasRole.ts
+++ b/src/commands/utilities/whoHasRole.ts
@@ -2,7 +2,6 @@ import {
BotCommand,
ButtonPaginator,
chunk,
- clientSendAndPermCheck,
colors,
emojis,
OptArgType,
@@ -35,7 +34,8 @@ export default class WhoHasRoleCommand extends BotCommand {
),
slash: true,
channel: 'guild',
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: [],
typing: true
});
diff --git a/src/commands/utilities/wolframAlpha.ts b/src/commands/utilities/wolframAlpha.ts
index 863b16a..503af87 100644
--- a/src/commands/utilities/wolframAlpha.ts
+++ b/src/commands/utilities/wolframAlpha.ts
@@ -1,13 +1,4 @@
-import {
- AllowedMentions,
- BotCommand,
- clientSendAndPermCheck,
- colors,
- emojis,
- type ArgType,
- type CommandMessage,
- type SlashMessage
-} from '#lib';
+import { AllowedMentions, BotCommand, colors, emojis, type ArgType, type CommandMessage, type SlashMessage } from '#lib';
import { initializeClass as WolframAlphaAPI } from '@notenoughupdates/wolfram-alpha-api';
import assert from 'assert/strict';
import { ApplicationCommandOptionType, EmbedBuilder, type MessageOptions } from 'discord.js';
@@ -43,7 +34,8 @@ export default class WolframAlphaCommand extends BotCommand {
}
],
slash: true,
- clientPermissions: (m) => clientSendAndPermCheck(m),
+ clientPermissions: ['EmbedLinks'],
+ clientCheckChannel: true,
userPermissions: []
});
}