消息收集器有没有办法在 Discord.js 中收集 DM?
Posted
技术标签:
【中文标题】消息收集器有没有办法在 Discord.js 中收集 DM?【英文标题】:Is there a way for message collectors to collect DMs in Discord.js? 【发布时间】:2019-11-25 19:41:42 【问题描述】:我正在尝试收集用户对我的机器人消息的回复,但都在 DM 中。如何使用 Discord.js (12.0.0-dev
) 的 master 分支完成这项任务?
我尝试使用以下代码收集消息:
const collector = new MessageCollector(
message.author.DMChannel,
(m) => m.author.id === message.author.id,
max: 1, time: 120000 ,
);
const collector = message.author.dmChannel.createMessageCollector(
max: 1,
time: 120000,
);
这似乎是我需要的,但我只希望它返回用户发送的第一条消息。当我console.log()
结果时,总是undefined
。
【问题讨论】:
【参考方案1】:在 DM 频道中,您可以使用来自 message.channel
的 channel.createMessageCollector()
创建收集器
client.on('message', message =>
if (message.content == `!collect`)
// Create a message collector
const filter = m => (m.content.includes('discord') && m.author.id != client.user.id);
const channel = message.channel;
const collector = channel.createMessageCollector(filter, time: 10000 );
console.log("collector started");
collector.on('collect', m => console.log(`Collected $m.content`));
collector.on('end', collected => console.log(`Collected $collected.size items`));
);
【讨论】:
【参考方案2】:您可以轻松收集用户对您的机器人消息的回复。
使用 DM 频道, 使用
创建一个“收集器”channel.createMessageCollector()
来自
message.channel
您的代码应该与给定的块匹配:
client.on('xyz', message =>
if (message.content == `!collect`)
const filter = m => (m.content.includes('media') && m.author.id !=
client.user.id);
const channel_xyz = message.channel;
const collector = channel.createMessageCollector(filter, time: 10000 );
console.log("collector started");
collector.on('collected', m => console.log(`Collected $m.content`));
collector.on('end', collected => console.log(`Collected $collected.size
items`));
);
【讨论】:
以上是关于消息收集器有没有办法在 Discord.js 中收集 DM?的主要内容,如果未能解决你的问题,请参考以下文章