discord.js中如何在用户发送m!verify指令后自动删除对应触发消息
你可以直接在现有run方法的最开头补充删除触发消息的逻辑,修改后的完整代码如下:
module.exports = class VerifyCommand extends BaseCommand { constructor() { super('verify', 'tools', []); } async run(client, message, args) { // 先判断机器人有没有管理消息的权限,避免删除失败报错 if (!message.guild.me.hasPermission("MANAGE_MESSAGES")) { return message.channel.send("我需要`MANAGE_MESSAGES`权限才能删除触发指令的消息"); } // 延迟500毫秒后删除触发消息 setTimeout(() => { message.delete().catch(err => console.log(err)); }, 500); if (!message.guild.me.hasPermission("MANAGE_ROLES")) return message.channel.send("我需要`MANAGE_ROLES`权限才能执行该指令!") const roleMember = message.guild.roles.cache.get("860636844618154034"); const roleVerified = message.guild.roles.cache.get("860636743564918844"); await message.member.roles.add(roleMember).catch(err => console.log(err)); await message.member.roles.add(roleVerified).catch(err => console.log(err)); } }
你原来伪代码里用的bulkDelete是批量删除多条消息的接口,单条消息直接调用message.delete()方法即可,不需要额外匹配内容,因为当前message对象本身就是用户发送的m!verify触发消息。
内容的提问来源于stack exchange,提问作者TahaHaza00
相关产品推荐
相关产品推荐

