我正在尝试为我的机器人发出报告命令,但似乎没有任何反应
bot.on('message', message => {
let args = message.content.substring(PREFIX.length).split(' ');
switch(args[0]){
case 'report':
message.delete(3000);
let target = message.mentions.members.first() || message.guild.members.get(args[0]);
if(!target) return message.channel.send('Please provide a user that you wish to report').then(m => m.delete(15000));
let reason = args.slice(1).join(" ");
if(!reason) return message.channel.send(`Please provide a reason for reporting **${target.user.username}**`).then(m => m.delete(15000));
let reportChannel = message.guild.channels.cache.find(x => x.name === "?▸logs");
message.channel.send('Your report has been filed to the staff team. Thank you for reporting!').then(m => m.delete(15000));
reportChannel.send(`**${message.author.username}** has reported **${target.user.username}** for **${reason}**.`);
break;
};
});
答案 0 :(得分:0)
假设您使用的是discord.js v12,我进行了一些编辑以使此代码有效。 首先,新的discord.js Message#delete()方法现在需要一个参数:
所以改变:
•message.delete(3000);
-> message.delete({timeout: 3000});
•message.guild.members.get()
-> message.guild.members.cache.get()
•同样,正确删除用户提及也是args.slice(2)
而不是args.slice(1)
。
这是最终结果^
bot.on('message', message => {
let args = message.content.substring(PREFIX.length).split(' ');
switch(args[0]){
case 'report':
message.delete({timeout: 3000});
let target = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
if(!target) return message.channel.send('Please provide a user that you wish to report').then(m => m.delete({timeout: 15000}));
let reason = args.slice(2).join(" ");
if(!reason) return message.channel.send(`Please provide a reason for reporting **${target.user.username}**`).then(m => m.delete({timeout: 15000}));
let reportChannel = message.guild.channels.cache.find(x => x.name === "?▸logs");
message.channel.send('Your report has been filed to the staff team. Thank you for reporting!').then(m => m.delete({timeout: 15000}));
reportChannel.send(`**${message.author.username}** has reported **${target.user.username}** for **${reason}**.`);
break;
};
});