【问题标题】:Discord JS reaction errDiscord JS 反应错误
【发布时间】:2021-01-08 19:36:49
【问题描述】:

谁能向我解释为什么我在尝试从反应中获取我的角色时收到此错误: UnhandledPromiseRejectionWarning: TypeError: reaction.users.last is not a function?谢谢,我也附上了代码。

代码:

const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');

client.on('ready', () => {
 console.log('Ready!');
});

client.on('message', async (message) => {
 if (message.content === 'l!verify') {
  const reactmessage = await message.channel.send(
   'Am intrebat 100 de Romani, vrei rolul de GUEST?'
  );
  await reactmessage.react('????');

  const filter = (reaction, user) => reaction.emoji.name === '????' && !user.bot;
  const collector = reactmessage.createReactionCollector(filter, {
   time: 15000,
  });
  collector.on('collect', async (reaction) => {
   const user = reaction.users.last();
   const guild = reaction.message.guild;
   const member = guild.member(user) || (await guild.fetchMember(user));
   member.addRole(config.roleid);
  });
 }
});
client.login(config.token);

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    MessageReaction.users 返回 ReactionUserManager,而不是 Collection。确保使用cache 属性。

    const user = reaction.users.cache.last();
    

    【讨论】:

    • 谢谢!顺便说一句,如果有人需要这个,我的代码中还有另一个错误..“member.addRole(config.roleid);”应该是“member.roles.add(config.roleid);”
    • 如果是这样,您使用的是 v12,这意味着 guild.fetchMember() 也应该是 guild.members.fetch()
    猜你喜欢
    • 2020-12-30
    • 2017-06-10
    • 2021-02-01
    • 2021-03-02
    • 2020-08-06
    • 2018-08-16
    • 2020-11-12
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多