Discord.pyでのon_raw_reaction_addの使用例とコード解説


というイベントが提供されており、ユーザーがメッセージにリアクションを追加したときにトリガーされます。このイベントを使用すると、ユーザーのリアクションに対してボットが反応することができます。

以下に、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ボットがユーザーのリアクションに応答することができます。ユーザーの反応に基づいて様々なアクションを実行するための有用なイベントです。