Discord.py Раздающая роль - PullRequest
       37

Discord.py Раздающая роль

0 голосов
/ 07 августа 2020
@client.command()
@commands.has_permissions(manage_messages=True)
async def mute(ctx, member: discord.Member):
    try:
        guild = ctx.guild
        rolecreate = "MutedByCloudy"
        await guild.create_role(rolecreate, colour=discord.Colour.red())
        if member.guild_permissions > ctx.author.guild_permissions or member.guild_permissions.administrator:
            await ctx.send("I can't mute that user. User probably has more perms than me or you")
        else:
            if member.id == 739424025205538817:
                await ctx.send("Nice try. I can't mute myself.")
            else:
                role = get(member.guild.roles, name='MutedByCloudy')
                await member.add_roles(role)
                embed=discord.Embed(title="User Muted! :white_check_mark:", description=f"**{member}** was muted by **{ctx.message.author}**!", color=0x2f3136)
                await ctx.send(embed=embed)
    except:
            await ctx.send(":x: Something happened. I don't know what.")

Итак, у меня есть эта команда, которая создает роль и передает ее пользователю. Но он не создает роль и не вызывает ошибок, вы можете помочь? Часть роли отдачи работает, а роль создания - нет.

1 Ответ

1 голос
/ 07 августа 2020

Ну, вы не создаете роль, вы можете попробовать что-то вроде этого:

role = discord.utils.get(ctx.guild.roles, name='MutedByCloudy')
if not role:
    role = await ctx.guild.create_role(name='MutedByCloudy', reason='Role for muting, auto generated by Cloudy')
    for channel in ctx.guild.channels:
        await channel.set_permissions(role, send_messages=False,
                                      read_message_history=False,
                                      read_messages=False)

Вы также можете добавить try и except discord. Запрещено обрабатывать ошибки прав доступа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...