消息收集器 discord.js

Posted

技术标签:

【中文标题】消息收集器 discord.js【英文标题】:Message Collector discord.js 【发布时间】:2020-12-30 20:24:03 【问题描述】:

如何让收集器停止收集来自用户的相同消息,例如,如果有人输入catch,机器人将收集它,但如果他再次输入catch,机器人将不再收集它

p>

这是我的代码

if (command === 'coinrain') 
    message.channel.send('Coin rain has started please type `CATCH`')
    let filter = m => m.content.toLowerCase() === 'catch';
    const collector = message.channel.createMessageCollector(filter, max: 10, time: 10000);

    collector.on('collect', m => 
        console.log(m.content);
    )

    collector.on('end', m => 
        message.channel.send(
            embed: 
                color: '#33FFF0',
                title: 'Event is over!',
                description: `$m.map(member => `$member.author.username`).join(', ')`
            
        )
    )

【问题讨论】:

【参考方案1】:

如discord.js 文档中所述,MessageCollector 具有 Collected 属性,描述为: 这个收藏家收集的物品

您可以使用 collector.collected.includes(Object-to-check)。 在您的情况下,您应该检查用户是否已经发送了 catch 消息。借助 Message

authorcontent 属性,您可以实现此检查

【讨论】:

以上是关于消息收集器 discord.js的主要内容,如果未能解决你的问题,请参考以下文章

消息收集器 discord.js

消息收集器有没有办法在 Discord.js 中收集 DM?

如何为机器人的消息制作反应收集器

多步命令和消息收集器 discord.js

discord.js - 消息收集器不会结束

如何用 2 个问题为 await 消息收集器打点