@Telmor

Как работать с когами discord.py?

Я решил переделать свой код под коги. И вот сейчас разбираюсь как с ними работать.
Как сделать ивент или обычную команду я понял.
Но меня сейчас интересует:
1) Как сделать проверку на права в команде
2) Как сделать slash(/) команду в когах? И что надо в ней менять. (пользуюсь dislash для слеш команд)
3) Как в slash(/) командах сделать не обязательный аргумент(когда высвечивается это меню, что бы какой-либо аргумент можно было оставить пустым и всё бы работало).
4) Как использовать json файлы для хранения данных в них в когах

Примеры кода:
1)
@commands.command()
    async def mute(self, ctx, member:discord.Member, time, reason):
        emb = discord.Embed(title='Мут', description=f'{ctx.author.mention}, вы хотите выдать мут {member.mention} по причине {reason} на {time}')
        await ctx.send(embed = emb)


2), 3)
@slash.command(
    guild_ids=test_guilds,
    name="ban",
    description="ban user on this server",
    options=[
        Option("user", "Intruder", Type.USER),
        Option("time", "Mut Time", Type.STRING),
        Option("reason", "Clause of the Rules", Type.STRING),
    ]
)
@slash_commands.has_any_role(890220161943097404)
async def ban(inter,user,time,reason):
....


4)
@commands.Cog.listener()
    async def on_message(self,message):
        if message.author.bot == False:
            with open('warns.json', 'r') as f:
                warn = json.load(f)

            await update_warn(warn, message.author)

            with open('warns.json', 'w') as f:
                json.dump(warn, f)

        await bot.process_commands(message)


    async def update_warn(warn, member):
        if not f'{member.id}' in warn:
            warn[f'{member.id}'] = {}
            warn[f'{member.id}']['warn'] = 0
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы