Discord.js user.send() 中的 ReactionCollector 不是函数

Posted

技术标签:

【中文标题】Discord.js user.send() 中的 ReactionCollector 不是函数【英文标题】:ReactionCollector in Discord.js user.send() is not a function 【发布时间】:2022-01-15 22:59:35 【问题描述】:

我为我的 Discord Bot 创建了一个 ReactionCollector,但如果我想向用户发送消息,则会出现错误 user.send() is not a function。我的 Discord.js 版本是 v11。

    const filter = (reaction, user) => 
        return validEmojis.includes(reaction.emoji.name) && user.id !== bot.user.id;
;
    const collector = message.createReactionCollector(filter)

    collector.on('collect', (reaction, user) => 
        if (reaction.emoji.name === "????") 
            user.send("hello")
               
    );

ReactionCollector中反应参数的日志输出:

<ref *1> MessageReaction 
  message: Message 
  me: true,
  count: 2,
  users: Collection(1) [Map] 
    '342000434514493440' => User 
      id: '342000434514493440',
      username: 'TFS_NerzDesmony',
      discriminator: '7832',
      avatar: 'b05491a41564a2f32811b55d4ea44103',
      bot: false,
      lastMessageID: null,
      lastMessage: null
    
  ,
  _emoji: ReactionEmoji 
    reaction: [Circular *1],
    name: '????',
    id: null,
    animated: false
  

希望有人能帮我解决这个问题

【问题讨论】:

Discord.js 版本? discord.js 版本为 v11 Discord.js v11 使用元素和收集器两个参数,而不是反应和用户。 有没有其他方式向用户发送消息? 记录反应并在您的问题中添加其内容的屏幕截图 【参考方案1】:

根据MessageReaction 将user.send("hello") 替换为reaction.users.first().send("hello"),因为您使用的是Discord.js v11。

【讨论】:

以上是关于Discord.js user.send() 中的 ReactionCollector 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Discord 仅识别 discord.js 中的“ping”命令

Discord.py 中的 Discord.js 的 `user.tag` 和 `user.username`?

使用 Discord.js 使用 Discord Bot 将语音频道中的所有人静音

discord.js 中的停止循环

Discord.js 中的 MySQL 黑名单系统

discord.js - 一个命令中的愚蠢错误