Можно ли менять права каналам на сервере дискорд? (discord.py)
Столкнулся с проблемой: права для роли muted нужно давать всем каналам на сервере, можно ли сделать так чтобы бот добавлял всем каналам роль muted и забирал у неё права на написание текста?
Вот код, если требуется
@client.command(pass_context = True)
async def mute(ctx, member: discord.Member):
if ctx.message.author.server_permissions.administrator:
role = discord.utils.get(member.server.roles, name='Muted')
await ctx.add_roles(member, role)
embed=discord.Embed(title="Юзер замьючен!", description="**{0}** Пользователь который замьютил: **{1}**!".format(member, ctx.message.author), color=0xff00f6)
await ctx.send(embed=embed)
else:
embed=discord.Embed(title="Нет прав.", description="У тебя нет прав чтобы выполнить эту команду.", color=0xff00f6)
await ctx.send(embed=embed)```
Ответы (1 шт):
Автор решения: jillstr
→ Ссылка
import discord
async def create_mute_role(ctx: discord.Context):
role = ctx.guild.get_role(role_id=145124235415)
for channel in ctx.guild.channels:
if isinstance(channel, discord.TextChannel):
await channel.set_permissions(role, send_messages=False, add_reactions=False)
Прочитать про set_permissions, можно в документации.