Discord.py, создавая команду блокировки сервера. Не работает по назначению

Итак, я делаю команду, которая обновляет разрешения для каждого канала, о котором я прошу. Однако у меня возникли проблемы с тем, чтобы заставить все каналы менять свои завивки. Он обновил канал, в котором выполняется команда, но ни один из других. Я предполагаю, что это потому, что Контекст - это НЕ то, что я должен использовать в этой команде. Вот мой код:

@zip.command(aliases=['sd'])
@commands.has_role('Mods')
async def shutdown(ctx):
    await ctx.message.delete()
    intro = zip.get_channel(631272968093433856)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    suggestions = zip.get_channel(631881727064801280)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    general = zip.get_channel(630907637919121420)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    memes = zip.get_channel(631273005489586176)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    wholesome_me = zip.get_channel(631273030265602090)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    music_d = zip.get_channel(631273090260926475)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    no_mic = zip.get_channel(631273262047035413)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    bot_com = zip.get_channel(631273294170947605)
    await ctx.channel.set_permissions(ctx.guild.default_role, send_messages=False)
    await ctx.send("**SERVER HAS BEEN LOCKED DOWN**")

У меня также есть команда отключения, которая сбрасывает их все на None. Он отформатирован таким же образом

В консоли ошибок нет, код работает, но работает не так, как задумано. Опять же, я думаю, что это часть ctx, но мне нужна помощь.

Большое спасибо, что нашли время прочитать это


person ZippoTown    schedule 10.10.2019    source источник


Ответы (1)


Вы каждый раз устанавливаете разрешения для ctx.channel. Вместо этого установите их для объектов канала, которые вы получаете:

intro = zip.get_channel(631272968093433856)
await intro.set_permissions(ctx.guild.default_role, send_messages=False)
...
person Patrick Haugh    schedule 11.10.2019
comment
Извините, к сожалению, я получаю сообщение об ошибке с вашим решением: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'set_permissions' Edit: Нацарапайте это, это была ошибка с моей стороны. Теперь работает нормально. Спасибо! - person ZippoTown; 11.10.2019