前提・実現したいこと
discord.pyでbotを作成しています。on_message_deleteを使ってメッセージが削除された際に特定のチャンネルにメッセージを送信するようにしました。ただ、後々Botがメッセージを一括削除する機能も加えたいのでBotが削除した場合は反応しないようにしたいです。
該当のソースコード
discord.py
1@client.event 2async def on_message_delete(message): 3 embedVar = discord.Embed(title='メッセージが削除されました。', description='チャンネル:' + str(message.channel), color=0xE74C3C) 4 embedVar.add_field(name=variables.embed_bar, value=f'\n{str(message.author)}' + 'によって送信されたメッセージ: 『' + 5 str(message.content) + '』が削除されました。') 6 channel = client.get_channel(variables.channel_id_delmsg) 7 await channel.send(embed=embedVar)
試したこと
下記のコードを使ってBotか否かチェックしようとしましたがメッセージそのものの送信者を取得してしまい想定通りに動きませんでした。
Python
1if message.author.bot: 2 return
また、監査ログ(AuditLog)のAPIを使って削除したユーザーがBotか否かチェックするコードを書きましたがBotのアクティビティは監査ログに記録されないようでこれもまた想定の通り動きませんでした。
補足情報
動作環境:
discord.py 1.7.1
Python 3.6.9
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。