Разрешения с discord.py без использования ctx - PullRequest
0 голосов
/ 16 января 2020

Итак, я хотел настроить команду очистки для discord.py, но каждый может ее использовать. Я, очевидно, хочу это только для людей, которые имеют разрешение на управление сообщениями. Я пока не очень разбираюсь в командах ctx, поэтому я хотел бы пока избежать этого, и единственные ответы, которые я могу найти на это, включают использование ctx и настройку его как @bot.command. Сейчас у меня есть:

    elif message.content.startswith ('jb!purge'):
        searchargs = message.content.split(" ")
        if(len(searchargs) > 1):
            if(len(searchargs) > 2):
                await message.channel.send("Too many numbers! Please try `jb!purge <number>`")
            elif(len(searchargs) == 2):
                if has_permissions(manage_messages = True):
                    try:
                        output = int(searchargs[1])
                        await message.channel.purge(limit=output)
                    except ValueError:
                        await message.channel.send("That's not a number, silly!")
                else:
                    await message.channel.send("Go get the perms first, then try again.")

1 Ответ

0 голосов
/ 16 января 2020

Вы можете использовать TextChannel.permissions_for, используя TextChannel объект, который у вас есть от Message.channel. Вы можете просто передать ему объект Member из Message.author.
С помощью объекта Permissions вы можете просто проверить Permissions.manage_messages.

Вы действительно должны использовать расширение команд .

...