所以,叫我傻..。但我无法弄清楚如何永久地从服务器中删除一个角色。我有一个角色,为每一对用户正在玩一个渠道的游戏。其作用纯粹是只允许2名玩家在频道上发表评论。一旦游戏完成,我正在尝试删除这个角色。角色可以是两种格式中的一种,这取决于谁被指定为player A,哪个是先前单独命令中的player B。
下面的代码显示了以下错误:
“(节点:19308) UnhandledPromiseRejectionWarning: TypeError:无法读取属性‘删除’的空”
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();
我只是不知道该如何让机器人找到角色,这样它才能被移除。我可能只是错过了一些简单又简单的东西。谢谢你提前给我帮忙。
发布于 2019-02-11 18:10:35
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();
https://stackoverflow.com/questions/54618588
复制相似问题