@wetwixs

Как сделать так, что бы event работал на одном сервере?

Добрый день. Предположим у меня есть такой event

@client.event
async def on_message_delete(message):
    channel = client.get_channel(703596630892478506)
    if message.content is None:
        return;
    embed = discord.Embed(color = random.choice(colors), description=f"{message.author.mention} `Удалил сообщение в канале` {message.channel.mention} \n \n**Удаленное сообщение** - {message.content}",timestamp=message.created_at)

    embed.set_author(name=f"{message.author}", icon_url=f'{message.author.avatar_url}')
    embed.set_footer(text=f'ID Пользователя: {message.author.id} | ID Сообщения: {message.id}')
    await channel.send(embed=embed)
    return


Но и бот у меня стоит на 8 серверах, следовательно все удаленные сообщения идут туда, так вопрос, как сделать так, что бы он логировал сообщение только на определенном сервере. Предположим как с командой это сделать, я знаю, это if ctx.guild.id == ID:, а как с event?
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега Discord
Javascript-разработчик
так вы хотите сделать команду универсальной для всех серверов, я правильно понял?
зачем вам тогда строка channel = client.get_channel(703596630892478506) ?
уберите её и замените await channel.send(embed=embed) на await nessage.channel.send(embed=embed)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Получайте сервер из объекта сообщения: discord.Message.guild

if message.guild.id != 282480459897027773:
    return
Ответ написан
Ваш ответ на вопрос

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

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