Javascript 单击此反应emoji DIscord.js时是否可以删除消息
如何解决这个问题?我想在用户单击“反应X”时删除消息Javascript 单击此反应emoji DIscord.js时是否可以删除消息,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,如何解决这个问题?我想在用户单击“反应X”时删除消息 client.on('message', async message => { if (message.channel.id === emojiChannelID) { try { await message.react('✅'); await message.react('✖'); } catch(err) { console.error(err); } } });`
client.on('message', async message => {
if (message.channel.id === emojiChannelID) {
try {
await message.react('✅');
await message.react('✖');
} catch(err) {
console.error(err);
}
}
});```
中有一条
消息。waitreaction()
将返回用户的反应
//仅用于
常量过滤器=函数(反应,用户){
return reaction.emoji.name=='✅' || reaction.emoji.name=='✖';
}
// {...}
让reactionMessage=等待消息。react('✅');
//确保设置max:1,以便承诺在第一次反应后返回
让reactionCollection=await reactionMessage.awaitReactions(过滤器,{max:1});
//reactionCollection是一个集合
//使用first()获取第一个(且仅限于此)
让reaction=reactionCollection.first();
Kian在这里
这个代码应该适合你,
如果您愿意,我可以通读并解释每一行:)
祝你一天愉快,酋长
异步函数emojiMessage(消息,有效操作){
for(const reaction of validreaction)等待消息。react(reaction);
常量过滤器=(reaction,user)=>validReactions.includes(reaction.emoji.name)和(!user.bot)
回信
.1(过滤器、{
最高:1,
时间:42000
})
.then(collected=>collected.first()&&collected.first().emoji.name);
}
异步函数deleteMessage(消息){
const emoji=等待emojiMessage(消息,[”✅", "❌"]);
console.log(表情符号)
//如果表情符号是勾号:
如果(表情符号==”✅") {
//删除他们的消息
控制台日志(“勾选”)
if(message.deletable==true){
console.log(“可以删除”)
console.log(“试图删除”)
message.delete()
}
如果(!message.deletable==false){
“无法删除”
}
}else if(表情符号==”❌“”{//如果表情符号是十字符号
/*
*做点别的
*/
返回;
}
}
client.on('message',message=>{
if(message.channel.id==emojiChannelID){
//运行函数
删除消息(消息)
}
/*
*做点别的
*/
})
注:
首次上传示例用法:
const m = await message.channel.send('hi!');
reactionDelete(m, message, 20000); // assuming 'message' is the actual sent message
异步函数reactionDelete(botMessage、playerMessage、超时){
常量过滤器=(反应,用户)=>{
return['hmm identifier“message”已被declaredreactionMessage.awaitReactions不是函数const emoji=await emojiMessage(message,['✅", "❌"]);^^^^^^ SyntaxError:await仅在异步函数@Unknown中有效。我已编辑了代码,请重试,看看它现在是否有效。新问题不存在happen@HypexBot我已经更改了代码并对其进行了测试。这对我来说是可行的,如果您是服务器所有者或在角色层次结构中高于服务器所有者,它将无法删除您的邮件。我已包括我们使用了一些控制台。日志可以用于测试。有一个很好的例子说明机器人是否只能通过特定角色或许可访问反应欢迎使用堆栈溢出!虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的错误-投票。请记住,你回答的问题是未来读者的,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。