Enhance bot functionality with new features and improvements
- Updated package dependencies to include `@sentry/node` for error tracking. - Refactored command routing to incorporate user and guild blacklisting checks, improving command execution safety. - Enhanced health server metrics to include queue waiting times, providing better insights into system performance. - Introduced confirmation handling for guild backup commands, streamlining user interactions. - Improved moderation commands with better error handling and case management, ensuring robust moderation capabilities. - Added new duration parsing functions to handle timeout durations effectively, enhancing moderation features. - Updated localization files to reflect new command structures and user guidance improvements.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import {
|
||||
PermissionFlagsBits,
|
||||
SlashCommandBuilder,
|
||||
type SlashCommandStringOption,
|
||||
type SlashCommandUserOption
|
||||
@@ -26,7 +27,9 @@ function reasonOpt(o: SlashCommandStringOption, required = false) {
|
||||
}
|
||||
|
||||
export const banCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('ban'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('ban')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers),
|
||||
'moderation.ban.description'
|
||||
)
|
||||
.addUserOption((o) => userOpt(o, 'moderation.ban.options.user'))
|
||||
@@ -36,7 +39,9 @@ export const banCommandData = applyCommandDescription(
|
||||
);
|
||||
|
||||
export const unbanCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('unban'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('unban')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.BanMembers),
|
||||
'moderation.unban.description'
|
||||
)
|
||||
.addStringOption((o) =>
|
||||
@@ -45,14 +50,18 @@ export const unbanCommandData = applyCommandDescription(
|
||||
.addStringOption((o) => reasonOpt(o));
|
||||
|
||||
export const kickCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('kick'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('kick')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.KickMembers),
|
||||
'moderation.kick.description'
|
||||
)
|
||||
.addUserOption((o) => userOpt(o, 'moderation.ban.options.user'))
|
||||
.addStringOption((o) => reasonOpt(o));
|
||||
|
||||
export const timeoutCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('timeout'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('timeout')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers),
|
||||
'moderation.timeout.description'
|
||||
)
|
||||
.addUserOption((o) => userOpt(o, 'moderation.ban.options.user'))
|
||||
@@ -62,14 +71,18 @@ export const timeoutCommandData = applyCommandDescription(
|
||||
.addStringOption((o) => reasonOpt(o));
|
||||
|
||||
export const untimeoutCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('untimeout'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('untimeout')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers),
|
||||
'moderation.untimeout.description'
|
||||
)
|
||||
.addUserOption((o) => userOpt(o, 'moderation.ban.options.user'))
|
||||
.addStringOption((o) => reasonOpt(o));
|
||||
|
||||
export const warnCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('warn'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('warn')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers),
|
||||
'moderation.warn.description'
|
||||
)
|
||||
.addSubcommand((s) =>
|
||||
@@ -123,7 +136,9 @@ export const warnCommandData = applyCommandDescription(
|
||||
);
|
||||
|
||||
export const purgeCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('purge'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('purge')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages),
|
||||
'moderation.purge.description'
|
||||
)
|
||||
.addIntegerOption((o) =>
|
||||
@@ -138,24 +153,32 @@ export const purgeCommandData = applyCommandDescription(
|
||||
.addStringOption((o) => applyOptionDescription(o.setName('regex'), 'moderation.purge.options.regex'));
|
||||
|
||||
export const slowmodeCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('slowmode'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('slowmode')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageChannels),
|
||||
'moderation.slowmode.description'
|
||||
).addIntegerOption((o) =>
|
||||
applyOptionDescription(o.setName('seconds').setRequired(true).setMinValue(0).setMaxValue(21600), 'moderation.slowmode.options.seconds')
|
||||
);
|
||||
|
||||
export const lockCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('lock'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('lock')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageChannels),
|
||||
'moderation.lock.description'
|
||||
);
|
||||
|
||||
export const unlockCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('unlock'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('unlock')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageChannels),
|
||||
'moderation.unlock.description'
|
||||
);
|
||||
|
||||
export const nickCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('nick'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('nick')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames),
|
||||
'moderation.nick.description'
|
||||
)
|
||||
.addSubcommand((s) =>
|
||||
@@ -172,7 +195,9 @@ export const nickCommandData = applyCommandDescription(
|
||||
);
|
||||
|
||||
export const caseCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('case'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('case')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers),
|
||||
'moderation.case.description'
|
||||
)
|
||||
.addSubcommand((s) =>
|
||||
@@ -196,7 +221,9 @@ export const caseCommandData = applyCommandDescription(
|
||||
);
|
||||
|
||||
export const modNoteCommandData = applyCommandDescription(
|
||||
new SlashCommandBuilder().setName('modnote'),
|
||||
new SlashCommandBuilder()
|
||||
.setName('modnote')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers),
|
||||
'moderation.modnote.description'
|
||||
)
|
||||
.addSubcommand((s) =>
|
||||
|
||||
Reference in New Issue
Block a user