Discord JS -如果用户发送带有特定字符串的DM给bot



下面的代码可以工作,当用户对消息作出反应时,将向用户发送DM。

如果用户回复了正确的字符串,那么目标就是添加一个角色——或者做一些事情。

if (reaction.emoji.name === theDoor) {
await reaction.message.guild.members.cache.get(user.id).roles.add(treasure);
const reactUser = await reaction.message.guild.members.cache.get(user.id);
reactUser.send('Enter the code. Hint: *Yumi Zouma*.');
} else {
return;
}

如何让bot处理来自其他用户的DM ?Google似乎只提供如何向用户发送DM。

您需要使用的是消息收集器.

文档例如,

const dm = await reactUser.send("Enter code")
const collector = dm.channel.createMessageCollector({filter, max: 5, time: 30000}); //We're creating the collector, allowing for a max of 5 messages or 30 seconds runtime.
collector.on('collect', m => {
console.log(m.content)
}
collector.on('end', (collected, reason) => {
await dm.channel.send({content: `Collector ended for reason: ${reason} reached! I collected ${collected.size} messages.`})
}

最新更新