#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. я отвечу на это ниже