如何制作收藏家,专门针对每个人

时间:2020-08-29 03:06:31

标签: javascript node.js discord.js

所以我有一个机器人,然后我想让该机器人可以收集一条消息,然后在他检测到特殊单词时进行回复,但是问题是如果有人键入tekong,我的机器人会继续创建新的收集器,因此,当漫游器检测到该单词时,它将响应两次,具体取决于创建了多少个收集器。如何制作机器人,以便1个人只能创建1个

这是我的代码

client.on("message", (message) => {

    if (message.content.toLowerCase().startsWith('tekong')) {
        message.channel.send('Bot is collector messages...')

        let filter = m => m.content.includes('test') && m.author.id === '744882468741709824'
        
        let collector = message.channel.createMessageCollector(filter, {max: 1})

        collector.on('collect', indonesia => {
            console.log(indonesia.content);
        })

        collector.on('end', m => {
            console.log(`Collected ${m.size} items`)
            if (m.size === 1) {
                message.channel.send('Congratulations your enchantments is works!')
            }
        })
    }

1 个答案:

答案 0 :(得分:0)

您可以简单地设置一个Set(也可以选择使用Array,但是我更喜欢Set,因为它更容易删除条目):

let blocked = new Set();

然后在消息事件中可以使用:

if (message.content.toLowerCase().startsWith('tekong')) {
     if(blocked.has(message.author.id)) return;
     blocked.add(message.author.id);

如果已完成并希望用户允许再次使用该命令,则可以简单地使用:

blocked.delete(message.author.id);