从服务器删除角色

时间:2019-02-10 16:38:27

标签: node.js roles discord.js

所以,称我为哑巴...但是我无法找到关于从服务器中永久删除角色的方法。我要为在频道中玩游戏的每对用户扮演角色。角色纯粹是只允许2位玩家在频道中发表评论。游戏结束后,我尝试删除该角色。角色可以是两种格式中的一种,具体取决于在先前的单独命令中谁被指定为玩家A,以及谁是玩家B。

下面的代码给出错误:“(node:19308)UnhandledPromiseRejectionWarning:TypeError:无法读取null的'delete'属性” console.log(bRole)行显示的是两个用户名及其昵称,因此可能就是为什么查找结果为null?该命令最初需要提及。我无法删除所有角色或特定的角色ID,因为该角色是在不同的命令中生成的,并且以两个玩家的名字作为角色标题。

// !endbrawl winner [username] loser [username]

      let messageArray = message.content.split(" ")
      let winner = messageArray[2]
      let winnerUser = message.mentions.users.first();
      let loser = messageArray[4]
      let loserUser = message.mentions.users.last();

    bRole = `${winner.displayName} vs ${loser.displayName}` || `${loser.displayName} vs ${winner.displayName}`
    console.log(bRole)
    guild.roles.find("name", bRole).delete();

我只是不确定如何让机器人找到该角色以便将其删除。我可能只是缺少一些超级简单和容易的东西。非常感谢您的提前帮助。

1 个答案:

答案 0 :(得分:0)

Cannot read property 'delete' of null"表示guild.roles.find("name", bRole)返回了null,很可能是因为未找到角色!您可以尝试使用普通的.find()

guild.roles.find(role => role.name === 'RoleName').delete();

当角色更改名称时,您想这么做

guild.roles.find(role => role.name == `${winner.displayName} vs ${loser.displayName}` || role.name ==`${loser.displayName} vs ${winner.displayName}`).delete();