channel.members
возвращает список всех участников, которые могут видеть канал.
Если вы используете команду freeze, вы забираете права всех участников (кроме бота) для чтения сообщений и истории сообщений из канала. Другими словами, они больше не видят канал.
Из-за этого при запуске команды melt channel.members
не вернет ни одного члена, так как ни один участник не может видеть канал.
Замена этого на guild.members
всегда возвращает всех участников сервера, независимо от того, видят ли они каналы или нет.
@bot.command(name="freeze")
async def zamroz(ctx):
try:
if ctx.message.author.guild_permissions.value == 2146959359:
for channel in ctx.guild.text_channels:
for member in ctx.guild.members:
if member.bot == False:
await channel.set_permissions(member, read_messages=False, read_message_history=False)
else:
await ctx.send("Lack of permissions")
await ctx.channel.last_message.delete(delay=2)
except:
pass
@bot.command(name="melt")
async def odmroz(ctx):
try:
if ctx.message.author.guild_permissions.value == 2146959359:
for channel in ctx.guild.text_channels:
for member in ctx.guild.members:
if member.bot == False:
await channel.set_permissions(member, overwrite=None)
else:
await ctx.send("Lack of permissions")
await ctx.channel.last_message.delete(delay=2)
except:
pass