Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Почему у меня пишет Приложение не отвечает, когда я отправляю сообщение в другой канал?
deker025
@deker025
Ничего

Почему дискорд бота пишет 'Приложение не отвечает'?

@Bot.tree.command(name="замутить")
@commands.has_permissions(administrator=True)
async def mute(ctx, member: discord.Member, author: arg):
    channel = Bot.get_channel(1075045486047805532)
    await ctx.channel.purge(limit=0)
    emb = discord.Embed(color=344462)
    emb.add_field(name=":white_check_mark: Muted", value='Пользователь {} был замьючен!'.format(member.mention))
    emb.add_field(name="Модератор", value = author, inline = False)
    emb.add_field(name="Причина", value = "-", inline = False)
    emb.add_field(name="Точное время мута", value = now, inline = False)
    await channel.send(embed = emb)
    author = ctx.message.author
    guild = Bot.get_guild(1074764595878699039)
    role = get(ctx.author.guild.roles, name = "Мут")
    await member.add_roles(role)

Демонстрирую свою функцию мута пользователя. Функция работает и роль выдает, как надо, но в чате бот пишет что "Приложение не отвечает". В чем причина?
63f7aac501627987839542.png
  • Вопрос задан
  • 2197 просмотров
Подписаться 1 Простой
Ответы на вопрос 1
@vladislavlisitsyn
1. Лучшу использовать disnake
1. Вместо ctx - inter
2. Добавь строчку
await inter.send(embed=disnake.Embed(title='Success'), ephemeral=True)

inter.send - это возврат ответа
embed - эмбед
ephemeral - сообщение которое видно только одному пользователю

В disnake код будет выглядеть так:
import disnake
from disnake.ext import commands

@client.slash_command(aliases=['мьют', 'мут'], description='Mute member')
@commands.has_any_role(id ролей)
async def mute(inter, member: disnake.Member, amout: int, *, reason):
    channel1 = client.get_channel(id канала)
    times_start = datetime.datetime.today()
    emb_user = disnake.Embed(title='**Уведомление - Mute**', color=disnake.Color.gold())
    emb_user.add_field(name='**Выдал:**', value=inter.author.mention, inline=False)
    emb_user.add_field(name='**Причина:**', value=reason, inline=False)
    emb_user.add_field(name='**Длительность:**', value=amout, inline=False)
    emb_user.add_field(name='**Сервер:**', value=inter.guild.name, inline=False)
    emb_user.set_footer(text=f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')

    emb_user_stop = disnake.Embed(title='**Уведомление - Unmute**', color=disnake.Color.gold())
    emb_user_stop.add_field(name='**Снял:**', value='*Сервер(автоматически)*', inline=False)
    emb_user_stop.add_field(name='**Сервер:**', value=inter.guild.name, inline=False)
    emb_user_stop.set_footer(text=f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
    mute_role = disnake.utils.get(inter.guild.roles, id=1071516672407633980)

    emb = disnake.Embed(title=f'**System - Mute**', color=disnake.Color.gold())
    emb.add_field(name='Выдал:', value=inter.author.mention, inline=False)
    emb.add_field(name='Нарушитель:', value=member.mention, inline=False)
    emb.add_field(name='ID нарушителя:', value=member.id, inline=False)
    emb.add_field(name='Причина:', value=reason, inline=False)
    emb.add_field(name='Длительность:', value='{} минут'.format(time))
    emb.set_footer(text=f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
    await member.add_roles(mute_role)
    await channel1.send(embed=emb)
    await member.send(embed=emb_user)
    await inter.send(embed=emb, ephemeral=True)
    await asyncio.sleep(time * 60)
    await member.remove_roles(mute_role)
    await member.send(embed=emb_user_stop)
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы