这是一个非常基本的,但我想知道我怎么可能让任何用户发送消息,然后让某人输入一些东西(例如!react EMOJI_NAME)并让它对随机用户发送的消息做出反应并且然后删除消息“!react EMOJI_NAME”。我已经有一个系统可以发送任何自定义表情符号,无论是否带有动画,但是我没有办法对不同用户发送的特定消息做出反应(这就是为什么我不能只搜索第一条消息的原因)频道或识别作者发送的消息)任何人都知道如何识别频道中发送的第二条消息?任何帮助表示赞赏:)
注意:下面的代码不起作用,因为它会对消息“!react EMOJI_NAME”做出反应,然后继续删除完全相同的消息。感谢阅读!
case 'react':
var { MessageEmbed } = require('discord.js');
var emojis = client.emojis.cache.filter(e => e.name.toLowerCase() === args.join(' ').toLowerCase());
var content = '';
emojis.forEach(emoji => {
content = `${content} ${emoji}`;
});
message.react(content)
.then(function () {
message.delete()
})
.catch(function () {
var errorEmbed = new MessageEmbed()
.setColor('#ff0000')
.setDescription(`<:error:784747315960479754> There was an error finding that emoji`);
message.channel.send(errorEmbed);
});
break;
答案 0 :(得分:0)
确保它在 async
函数中
message.delete(); // delete the message first
const [target] = await channel.fetchMessages({ limit: 1 }); // get first message in the channel
const emojis = client.emojis.cache.filter(e => e.name.toLowerCase() === args.join(' ').toLowerCase()); // get all emojis
emojis.forEach(emoji => { // loop through every emoji
await target.react(emoji); // react to the message with said emoji
});