удалить роль с сервера - PullRequest
       19

удалить роль с сервера

0 голосов
/ 10 февраля 2019

Итак, назовите меня тупым ... но я не могу понять, как удалить роль с сервера навсегда.У меня есть роль для каждой пары пользователей, которые играют в игру на канале.Роль состоит в том, чтобы позволить только 2 игрокам комментировать на канале.Я пытаюсь убрать роль, когда игра закончится.Роль может быть одного из двух форматов, в зависимости от того, кто был указан как игрок A и кто был игроком B в предыдущей отдельной команде.

Код ниже дает ошибки "(узел: 19308) UnhandledPromiseRejectionWarning:TypeError: Невозможно прочитать свойство 'delete' из null "В строке console.log (bRole) отображаются два пользователя с их именами пользователей, а не псевдонимами, поэтому может быть причина, по которой поиск дает null?Команда изначально принимает упоминания.Я не могу удалить все роли или определенный идентификатор роли, потому что роль создается в другой команде с именами двух игроков в качестве названия роли.

// !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 голосов
/ 11 февраля 2019

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();
...