【问题标题】:Discord.js autorole from username来自用户名的 Discord.js 自动角色
【发布时间】:2021-11-27 04:35:54
【问题描述】:

如果任何成员的用户名包含特定标签并且我制作的代码不起作用,我想创建我的机器人自动角色,机器人启动正常但如果用户在用户名中有标签则没有分配角色所以我想使用 stackoverflow 获得帮助

代码如下:

client.on("userUpdate", async (oldUser, newUser) => {
  if (oldUser.username !== newUser.username) {
    let tag = "⚡"; 
    let server_id = "793143091350470708";  
    let role = "888436049620119562";
    if (newUser.username.includes(tag) && !client.guilds.get(server_id).members.get(newUser.id).roles.has(role)) {
      client.guilds.get(server_id).members.get(newUser.id).addRole(role)
    } if (!newUser.username.includes(tag) && client.guilds.get(server_id).members.get(newUser.id).roles.has(role)) {
      client.guilds.get(server_id).members.get(newUser.id).removeRole(role)  
    }

  }
})

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    您需要定义USER_UPDATE、GUILD_MEMBER_UPDATE 和 PRESENCE_UPDATEintents 如果您使用的是 discord.js 版本 13 并进一步启用成员和存在意图,它们可以位于 Discord Developer Portal 进一步我想建议使用 Client#guildMemberUpdate 侦听器,因为您的代码没有任何内容与存在有关,您不需要“额外”意图。

    附加信息

    由 this comment 指导 我注意到您使用的是 discord.js 版本 12,因此您希望为此对代码进行适当的更改(您当前的代码显然是为 discord 编写的.js v11) 将在您的代码中进行以下更改:

    client.on("guildMemberUpdate", async (oldUser, newUser) => {
      if (oldUser.username !== newUser.username) {
        let tag = "⚡"; 
        let server_id = "793143091350470708";  
        let role = "888436049620119562";
        if (newUser.username.includes(tag) && !client.guilds.cache.get(server_id).members.cache.get(newUser.id).roles.has(role)) {
          client.guilds.cache.get(server_id).members.cache.get(newUser.id).roles.add(role)
        } if (!newUser.username.includes(tag) && client.guilds.cache.get(server_id).members.cache.get(newUser.id).roles.has(role)) {
          client.guilds.cache.get(server_id).members.cache.get(newUser.id).roles.remove(role)  
        }
    
      }
    })
    

    【讨论】:

    • 我在 v12 discord.js 上并已启用所有意图
    • 编辑了我的答案
    • @Zero 你的 sn-p 有错字,if 条件中有一个双点。
    • 感谢通知,已修复。
    • 谢谢大家这个网站栈溢出其实很有帮助
    猜你喜欢
    • 2021-10-14
    • 2021-06-21
    • 1970-01-01
    • 2020-08-19
    • 2013-11-19
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多