@F1azy

Почему я когда хочу замутить игрока я пишу например «-замутить @F1azy 1 тест» сообщение о муте игрока присылается только после того когда мут прошёл?

Также я хочу сделать что бы мут выдавался на время, но незнаю как это сделать
Вот сам код:

@bot.command(pass_context=True)
@commands.has_permissions(administrator=True)
async def замутить(ctx, member: discord.Member, time: int, reason):
channel = bot.get_channel(939121803324981275)
muterole = discord.utils.get(ctx.guild.roles, id = 942028190715617340)
emb = discord.Embed(color=344462)
emb.add_field(name="✅ Muted", value='Пользователь {} был замьючен!'.format(member.mention))
emb.add_field(name="Модератор", value = ctx.message.author.mention, inline = False)
emb.add_field(name="Причина", value = reason, inline = False)
await member.add_roles(muterole)
await asyncio.sleep(time * 60)
await member.remove_roles(muterole)
await channel.send(embed = emb)

@bot.command(pass_context=True)
@commands.has_permissions(administrator=True)
async def размутить(ctx, member: discord.Member):
channel = bot.get_channel(939121803324981275)
muterole = discord.utils.get(ctx.guild.roles, id = 942028190715617340)
emb = discord.Embed(color=344462)
emb.add_field(name="✅ UnMuted", value='Пользователь {} был размьючен!'.format(member.mention))
emb.add_field(name="Модератор", value = ctx.message.author.mention, inline = False)
await member.remove_roles(muterole)
await channel.send(embed = emb)
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Потому что ты приказал боту сделать именно так.
await member.add_roles(muterole) # добавляешь роль
await asyncio.sleep(time * 60) # ЖДЕШЬ
await member.remove_roles(muterole) # удаляешь роль
await channel.send(embed = emb) #отправляешь сообщение

Он и делает, что сказано.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект