这是我的第一个Discord机器人,我被困住了。 我希望这个机器人为测验选出一个赢家。
因此,我正在尝试从随机用户那里获取所有具有正确答案的消息。 但是,以下代码无法选择正确答案的用户。
您能告诉我我应该怎么做吗?
const chan = message.channel;
const answer = 'test';
//Select a random user
const user = message.channel.members.random();
const userid = user.id
//fetch messages from the user and contains answer
chan.fetchMessages().then(messages => {
const usermsgs = messages.filter(
m => m.author.id === `${user.id}` &&
m.content === answer);
//check if the answer is in the messages
if(usermsgs){
message.reply('winner is' + `${user.user}`);
}else{
message.reply('No Winner');
}
}).catch(console.error);
答案 0 :(得分:1)
我对discord.js并不熟悉,但是对他们的文档的阅读却很少。
您希望随机分配正确回答问题的用户,而不是随机分配整个渠道的用户。由于discord.js为过滤器函数返回了一个Collection对象,因此您可以在其中使用其随机函数。
chan.fetchMessages().then(messages => {
const usermsgs = messages.filter(
m => m.content === answer);
if(usermsgs){
const randomCorrectUser = usermsgs.random().author;
message.reply('winner is' + `${randomCorrectUser.username}`);
}else{
message.reply('No Winner');
}
}
答案 1 :(得分:0)
嗯,这很旧,但您可能可以做
const randomCorrectUser = usermsgs.random().author.tag;
名称为#0000或
const randomCorrectUser = usermsgs.random().author.username;
只是名字