Discord.py Разрешения для ролей

#python #permissions #discord #bots #discord.py

#python #разрешения #Discord #боты #discord.py

Вопрос:

Почему ctx.guild.default_role.permissions.change_nickname()

Выведите это: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'bool' object is not callable

В документе говорится:

 @flag_value
def change_nickname(self):
  """:class:`bool`: Returns ``True`` if a user can change their nickname in the guild."""
  return 1 << 26
  

Комментарии:

1. хорошо, теперь я получаю возврат, но как я могу ИЗМЕНИТЬ значение Change_Nickname на значение переменной?

Ответ №1:

Редактирование разрешений роли в команде

 @client.command()
async def toggle(ctx):
    perms = discord.Permissions()
    perms.update(read_messages = True, read_message_history = True, send_messages = False, change_nickname=True) 
    #add more permissions

    for role in guild.roles:
        if role.name == "role_name":
             await role.edit(reason = None, colour = discord.Colour.orange(), permissions=perms)
  

это изменит права доступа роли с именем role_name на также «может изменить псевдоним» 🙂

Ответ №2:

change_nickname это не метод, поэтому вы не можете вызывать его в круглых скобках. Вы бы просто написали ctx.guild.default_role.permissions.change_nickname

Комментарии:

1. хорошо, теперь я получаю возврат, но как я могу ИЗМЕНИТЬ значение Change_Nickname с помощью переменной?

Ответ №3:

Когда вы отправляете команду в канал, вам нужно, чтобы это была строка, и изменение псевдонима также не является методом.

для этого просто используйте perms = str(ctx.guild .defualt_role.permissions.change_nickname)

ctx.send(perms)

Комментарии:

1. Пожалуйста, используйте блоки кода при написании кода, чтобы упростить понимание OP.

2. хорошо, теперь я получаю возврат, но как я могу ИЗМЕНИТЬ значение Change_Nickname с помощью переменной?

Ответ №4:

попробуйте использовать

 ctx.guild.default_role.permissions.change_nickname
  

Комментарии:

1. хорошо, теперь я получаю возврат, но как я могу ИЗМЕНИТЬ значение Change_Nickname с помощью переменной?

2. я отвечу на это ниже

Ответ №5:

Так что хотелось бы переключить этот параметр роли по умолчанию. @BillyDev

Разрешение роли Nickname_Change