Я пришел к этому осознанию незадолго до этого, поэтому добавлю его в качестве ответа, так как это хорошо. Вы можете просто использовать isinstance
, чтобы проверить тип канала, поскольку dpy имеет разные внутренние классы для всех каналов.
@bot.event
async def on_reaction_add(reaciton, user):
if not isinstance(reaciton.message.channel, discord.DMChannel):
# Not a dm
return
print("Hey this should be a dm")
Этот код будет означать, что он всегда работает только с кодом в dms. В качестве альтернативы вы можете удалить not и поместить свой dm-код в оператор if