@client.command()
async def set_permissions(сtx, role: discord.Role = None):
allvoice = guild.voice_channels
alltext = guild.text_channels
await alltext.set_permissions(role, read_messages = True, send_messages = True, manage_channels = True, manage_roles = True)
await allvoice.set_permissions(role, connect = True, manage_channels = True, manage_roles = True)
await ctx.send(f'{ctx.author.mention}, вы успешно установили {role.mention} права доступа во всех текстовых/голосовых каналах')
guild
не определена. В данном случае Вы, скорее всего, хотите получить её из контекста - ctx.guildGuild.voice_channels
и Guild.text_channels
- "списки" (list) с каналами соответствующего типа. Списки не имеют атрибута set_permissions
. Данный атрибут есть у каналов в списке. Для установки прав для каждого канала нужно данный список итерировать. @client.command()
async def set_permissions(сtx, role: discord.Role):
for textchannel in ctx.guild.text_channels:
await alltext.set_permissions(
role,
read_messages=True,
send_messages=True,
manage_channels=True,
manage_roles=True,
)
for voicechannel in ctx.guild.voice_channels:
await allvoice.set_permissions(
role, connect=True, manage_channels=True, manage_roles=True
)
await ctx.send(
f"{ctx.author.mention}, вы успешно установили {role.mention} права доступа во всех текстовых/голосовых каналах"
)
@client.command()
async def set_permissions(сtx, role: discord.Role = None):
guild = ctx.message.guild #определяем сервера на котором была использована эта команда
allvoice = guild.voice_channels
alltext = guild.text_channels
await alltext.set_permissions(role, read_messages = True, send_messages = True, manage_channels = True, manage_roles = True)
await allvoice.set_permissions(role, connect = True, manage_channels = True, manage_roles = True)
await ctx.send(f'{ctx.author.mention}, вы успешно установили {role.mention} права доступа во всех текстовых/голосовых каналах')