Discord - BOT отправляет личное сообщение

1

Ошибка отправки личного сообщения в Discord. Ниже приведены два примера кода (упрощенный).

@client.event
async def on_message(message):

этот блок кода отправляет пользователю сообщение (cookie emoji) независимо от того, является ли его частным чатом (с ботом) или каналом

    if message.content == ".cookie":
        await client.delete_message(message)
        await client.send_message(message.channel, ":cookie:")

этот блок кода отправляет сообщение пользователю конфиденциально, учитывая, что пользователь отправил команду в канал, он работает, я доволен этим.

    if message.content == ".cookie":
        await client.delete_message(message)
        await client.send_message(message.author, ":cookie:")

проблема в том, что я хотел бы, чтобы пользователь мог отправить сообщение ".cookie" в канале или в личное сообщение боту и получить личное сообщение (cookie emoji).

с последним блоком кода. если я отправлю команду.cookie на канал, я получаю личное сообщение от бота. Если я отправлю команду.cookie в бот конфиденциально, я получаю сообщение об ошибке.

не уверен, как справиться с этим, спасибо

Теги:
python-3.x
discord
discord.py

1 ответ

1
Лучший ответ

Я не думаю, что можно удалить личные сообщения, которые отправляют вам люди. Вы можете добавить проверку на канал, чтобы убедиться, что он закрыт перед удалением сообщения.

if message.content == ".cookie":
    if not message.channel.is_private:
        await client.delete_message(message)
    await client.send_message(message.author, ":cookie:")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню