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

为在特定渠道中使用特定表情符号的人添加角色

柯栋
2023-03-14

我正在努力为我的服务器做一个discord.js机器人,我为学校里的人做了一个。我试图使一个#类通道,如果你对某些消息做出反应,它会给你一个角色(它会让你访问该类的文本通道)。

client.on('messageReactionAdd', (reaction, user) => {
  console.log("client.on completed.")
  if (message.channel.name === 'classes') {
    console.log("if(message) completed.")
    if (reaction.emoji.name === "reminder_ribbon") {
      console.log("emoji test completed.")
      const guildMember = reaction.message.guild.members.get(user.id);
      const role = reaction.message.guild.roles.find(role => role.name === "FACS");
      guildMember.addRole(role);
    }
  }
});

这是我到目前为止所尝试的,但是,它没有给我/其他人对它的角色做出反应,也没有返回错误消息。

另外,如果他们不履行职责,我怎么能做到这一点呢?

编辑:它似乎只从机器人启动后发送的缓存消息/消息中获得反应。此外,第一个if(message.channel.id)消息上没有定义消息。

共有1个答案

司承业
2023-03-14

请尝试使用以下代码:

js prettyprint-override">client.on('messageReactionAdd', (reaction, user) => {
  if (reaction.message.channel.id === '552708152232116224') {
    if (reaction.emoji.name === "reminder_ribbon") {
      const guildMember = reaction.message.guild.members.get(user.id);
      const role = reaction.message.guild.roles.get('552709290427940875');
      guildMember.addRole(role);
    }
  }
});

首先,reaction.users是一个对象,其中包含对消息做出反应的所有用户,因此首先必须定义要将角色分配给哪个用户。我修复了用user.id获取协会成员的问题。

第二个错误是,您试图将角色ID分配给guildMember,尽管您首先必须获取角色,然后将角色对象分配给guildMember

 类似资料:
  • 因此,我试图让一个不和谐机器人在服务器上的特定通道中发布消息,因为它只发布到#Everyone。我已经看了许多其他的帖子,似乎无法得到它。我是个完全的javascript白痴,只知道非常基本的基础知识。目标是当用户在一个通道中说“test”时,机器人将把“test”输出到一个特定的通道中,用于记录某些响应。(当用户说了一些他们不应该说的话时,这将成为一个冒犯日志)。到目前为止,我的代码是这样的:

  • 问题内容: Python中是否可以使用任何函数在字符串的某个位置插入值? 像这样: 然后在位置4添加成为 问题答案: 否。Python字符串是不可变的。 但是,可以创建一个具有插入字符的新字符串:

  • 我确实有一些独特的要求,我想隐藏要从特定角色用户中选择的角色。 例如,我有一个角色名称admin、部门1、部门2和部门3。作为管理员,我应该只能在门户中看到部门1、部门2和部门3的角色管理。 但如果我为管理员定义权限,他/她可以管理角色。管理员用户可以查看Liferay中可用OOTB的所有角色。 有人能帮我配置一下吗?

  • 我正在系统上处理一个新函数,现在我需要选择一个文件,并保存在用户C:的文件夹中。这个过程是这样发生的,用户上传一个文件到系统中,这个文件可以是任何东西,文本,图像,除了视频,现在它被保存在系统数据库中,但是我的老板想要改变这个过程,所以我需要保存在用户C:上的一个特定文件夹上,我已经创建了特定文件夹,但是我不知道如何将文件保存在创建的文件夹上。因此上载文件的代码如下所示:

  • 我有问题得到反应角色的工作与自定义表情符号。如果我使用不和谐表情符号,它会嵌入消息,创建反应,并在点击反应时应用角色。 然而,如果我使用一个自定义的emoji,它会嵌入消息并创建正确的反应,但是它不提供当emoji被点击时的角色。 我使用了相同的编码,当交换不和谐和自定义的表情符号,唯一的改变是表情符号的ID。 我使用的完整代码是: 我们将非常感谢对此提供任何帮助。

  • 我有一个熊猫数据框,其中一列由列表组成: 我想添加,例如,每个列表的第一个和最后一个索引。为此,我使用: 这分别作用于每一行,如果数据帧很大,这可能会非常密集。有没有办法将此操作矢量化?