Ошибка отправки личного сообщения в 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 в бот конфиденциально, я получаю сообщение об ошибке.
не уверен, как справиться с этим, спасибо
Я не думаю, что можно удалить личные сообщения, которые отправляют вам люди. Вы можете добавить проверку на канал, чтобы убедиться, что он закрыт перед удалением сообщения.
if message.content == ".cookie":
if not message.channel.is_private:
await client.delete_message(message)
await client.send_message(message.author, ":cookie:")