从服务器删除角色
Posted
技术标签:
【中文标题】从服务器删除角色【英文标题】:delete role from server 【发布时间】:2019-07-04 05:46:47 【问题描述】:所以,称我为笨蛋...但我无法弄清楚如何从服务器中永久删除角色。我为在频道中玩游戏的每一对用户设定了角色。该角色纯粹是为了只允许2名玩家在频道中发表评论。游戏完成后,我试图删除角色。角色可以是两种格式之一,具体取决于在之前的单独命令中谁被指定为玩家 A,而谁是玩家 B。
下面的代码给出的错误是:
"(node:19308) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'delete' of null"
console.log(bRole)
行显示的是两个用户的用户名而不是昵称,所以这可能是 find 给出 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();
我只是不确定如何让机器人找到角色以便将其删除。我可能只是错过了一些超级简单和容易的东西。非常感谢您提前提供的帮助。
【问题讨论】:
你能告诉我你定义的guild
吗?
我今天一直在搞砸它,但我想我在发布上面的代码时已经“让公会 = message.guild”。该命令发布在将使用该角色的服务器上的频道中。
【参考方案1】:
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();
【讨论】:
对。我遇到的问题是角色名称在不断变化。该角色是通过先前使用的命令以$player A vs $player B
的形式生成的。我是这样设置的,所以这个角色只允许这两个玩家在他们的纸牌游戏发生的频道中输入消息。我知道如何删除一个不改变标题(或可重复使用)的角色,但是根据其中的用户而改变的角色对我来说变得更加困难。玩家 A 并不总是赢家,反之亦然。
这很有意义。不幸的是,它仍然给出“(节点:10900)UnhandledPromiseRejectionWarning:TypeError:无法读取属性'delete' of null”的错误我仍然将公会定义为message.guild。虽然,现在我正在考虑它。在删除角色之前给出的响应是通过私人消息完成的。步骤 1:在公共服务器中使用命令。第 2 步:机器人通过私信联系双方玩家,先赢家,只有赢家接受结果时才输家。第 3 步:机器人应该删除角色并将频道移动到另一个类别。以上是关于从服务器删除角色的主要内容,如果未能解决你的问题,请参考以下文章
windows server 2008 iis从哪里打开或安装?