以下に、on_raw_reaction_add
の使用例とコード解説を示します。
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.reactions = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print('Bot is ready')
@bot.event
async def on_raw_reaction_add(payload):
# リアクションが追加されたメッセージの情報を取得
channel = bot.get_channel(payload.channel_id)
message = await channel.fetch_message(payload.message_id)
# リアクションを追加したユーザーの情報を取得
guild = bot.get_guild(payload.guild_id)
user = guild.get_member(payload.user_id)
# リアクションを追加したユーザーに反応する
if payload.emoji.name == "????":
await channel.send(f'{user.mention}さん、いいね!')
elif payload.emoji.name == "????":
await channel.send(f'{user.mention}さん、残念ですね。')
bot.run('YOUR_BOT_TOKEN')
この例では、on_raw_reaction_add
イベントがトリガーされたときに、リアクションを追加したユーザーに対してメッセージを送信するコードが示されています。payload
オブジェクトを使用して、リアクションが追加されたメッセージやユーザーの情報を取得することができます。
このコードでは、リアクションが????の場合は「いいね!」と、????の場合は「残念ですね。」というメッセージを追加したユーザーに送信しています。必要に応じて、他のリアクションに対する動作を追加することもできます。
このように、on_raw_reaction_add
イベントを使用することで、Discordボットがユーザーのリアクションに応答することができます。ユーザーの反応に基づいて様々なアクションを実行するための有用なイベントです。