Использование проверки в discord-перезапись винтика

#python #python-3.x #discord.py #discord.py-rewrite

#python #python-3.x #discord.py

Вопрос:

Итак, это мой код, который у меня есть в моем discord-перезаписать шестеренку, я прочитал код как cog_check с Github, но, похоже, я не могу понять, как его использовать.

 @commands.command()
async def mee(msg):
    await msg.send("ME")
  

Было бы неплохо привести пример использования функции или объяснение к ней.
Заранее спасибо!

Ответ №1:

Это определяется на основе имени. Вам нужно предоставить cog_check сопрограмму, чтобы переопределить ту, которая унаследована от Cog

 from discord.ext.commands import Cog, command

class MyCog(Cog):
    def __init__(self, bot):
        self.bot = bot
    async def cog_check(self, ctx):
        return True  # Whatever check you want to do
    @command()
    async def mee(self, ctx):
        await ctx.send("ME")
  

Комментарии:

1. Есть ли способ использовать проверку только для одной команды внутри шестеренки, или есть только способ применить ко всем командам внутри шестеренки?

2. Вы можете применить проверку к отдельной команде обычным образом, используя синтаксис декоратора.

3. Я все еще немного запутался в этом, не могли бы вы, пожалуйста, показать мне пример, отредактировав свой ответ? Это бы очень помогло.!

Ответ №2:

Нашел ответ на discord.py документация

 def is_me():
    def predicate(ctx):
        return ctx.message.author.id == 85309593344815104
    return commands.check(predicate)

@bot.command()
@is_me()
async def only_me(ctx):
    await ctx.send('Only you!')