当前位置: 首页 > 知识库问答 >
问题:

反应角色面板在机器人重启后停止工作不和谐。JS

楚元章
2023-03-14

我有一个工作的反应角色菜单,可以很好地分配和带走角色,直到机器人重新启动,然后停止分配/带走角色,我正在努力找到一个与此反应菜单工作方式相匹配的解决方案

client.on('messageReactionAdd', async (reaction, user) =>  {
             if (reaction.message.partial) await reaction.message.fetch();
            if (reaction.partial) await reaction.fetch();
            if (user.bot)
            if(!reaction.message.guild) return;
    
    
            if (reaction.message.channel.id === channel) {
              if (reaction.emoji.name === reactone){
                
                  await reaction.message.guild.members.cache.get(user.id).roles.add(roleone);
              }
              if (reaction.emoji.name === reacttwo){
                
                  await reaction.message.guild.members.cache.get(user.id).roles.add(roletwo);
              }
              if (reaction.emoji.name === reactthree){
                
                  await reaction.message.guild.members.cache.get(user.id).roles.add(rolethree);
              }
              if (reaction.emoji.name === reactfour){
                
                  await reaction.message.guild.members.cache.get(user.id).roles.add(rolefour);
              }
              //add more here
            } else{
              return
            }
            });

共有1个答案

井逸明
2023-03-14

客户端未从重启前发送的消息中接收到messageReactionAdd事件。您需要获取这些消息才能从这些消息接收messageReactionAdd

有一个名为就绪的事件将在启动完成时执行。这是使用以下代码获取这些消息的最佳位置:

const channel = client.channels.cache.get('ID'); # Channel ID where the msg was sent
channel.messages.fetch({ limit: 10 });

或者如果您知道消息ID

const channel = client.channels.cache.get('ID'); # Channel ID where the msg was sent
channel.messages.fetch({ around: MESSAGE_ID, limit: 1 });

阅读更多有关官方不和的信息。js文档

 类似资料:
  • 当我在discord内部运行以下脚本(“cmd中的node musicbot.js”)和“!play ytlink”时,bot加入语音通道,并在控制台中记录命令和链接。然而,音乐并没有开始播放。我安装了ffmpeg、ytdl核心和discord。js。 有人能帮我吗?我不知道是哪一部分搞砸了。

  • Bot只是不工作:/Bot没有给出任何错误

  • 我正在尝试使用discord删除已创建的角色,该角色使用的是。js。 终端中的错误显示: DiscordAPIError:缺少权限 虽然我已经给了我的机器人所有权限。 代码:

  • 所以我在让我的自动角色发挥作用方面遇到了一个小问题,我一直在尝试通过消息对其进行排序。js和在reactionrole中。js,但它仍然给出了同样的问题,想知道是否有人可以帮助将不胜感激,因为我已经通过教程查看了它,除了一些差异,由于不同的文本/细节,它没有帮助 此外,如果这有助于避免错误,我将使用命令处理程序V2 反应角色。js message.js

  • 当用户使用搜索命令时,我的机器人将用结果和表情符号回复。如何检查用户是否单击此表情符号? 事件回复(idResults.getMovieResults()。获取(0)。toString())。队列();事件getChannel()。sendMessage(“单击将其添加到您关注的列表中”)。队列(msg)-

  • 我在XAMPP中启动MYSQL时遇到了问题。Apache启动正常,但MYSQL不断报告意外关机。 我被引导删除,它在此之后工作,但它删除了我所有的数据库,并且MYSQL在我重新启动机器后再次停止工作。 [ERROR]INNODB:试图打开以前打开的表空间。以前的表空间MYSQL/INNODB_INDEX_STATS在FILEPATH:.\MYSQL\INNODB_INDEX_STATS.IBD中使