Я решил переделать свой код под коги. И вот сейчас разбираюсь как с ними работать.
Как сделать ивент или обычную команду я понял.
Но меня сейчас интересует:
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