我正在创建一个purge命令,但我不知道如何将该命令的使用限制在拥有MANAGE_MESSAGES权限的用户。
我提供了client.on(“ready”)部分和整个命令的源代码。
我真的不知道这件事,谢谢你的帮助。
client.on('ready', async () => {
try {
const command = await client.application.commands.create({
name: 'purge',
PermissionFlagsBits: 'MANAGE_MESSAGES',
description: 'Deletes messages',
options: [
{
name: 'amount',
description: 'The amount of messages to delete',
type: 4,
required: true,
},
],
defaultPermission: false,
});
console.log(`Registered ${command.name} command`);
} catch (error) {
console.error(error);
}
});
client.on('interactionCreate', async (interaction) => {
if (!interaction.isCommand()) return;
if (interaction.commandName === 'purge') {
const amount = interaction.options.getInteger('amount');
if (amount > 100) {
return interaction.reply({ content: 'You can only delete 100 messages at a time!', ephemeral: true });
}
if (amount < 1) {
return interaction.reply({ content: 'You must delete at least 1 message!', ephemeral: true });
}
await interaction.channel.bulkDelete(amount, true).catch(error => {
console.error(error);
interaction.reply({ content: 'There was an error trying to delete messages in this channel!', ephemeral: true });
});
interaction.reply({ content: `Successfully deleted ${amount} messages!`, ephemeral: true });
}
});
1条答案
按热度按时间mspsb9vt1#
这在Discord.js v14中对我有效。使用
PermissionFlagsBits.ManageMessages
返回管理消息的正确权限。此外,属性是default_member_permissions
,而不是PermissionFlagsBits
。