所以,称我为哑巴...但是我无法找到关于从服务器中永久删除角色的方法。我要为在频道中玩游戏的每对用户扮演角色。角色纯粹是只允许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();
我只是不确定如何让机器人找到该角色以便将其删除。我可能只是缺少一些超级简单和容易的东西。非常感谢您的提前帮助。
答案 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();