イベント一覧
すべてのイベントクラスは bostie.events にあります。イベントのガイドで説明しているとおり、@bot.listen で受け取ります。インテントの列は、Discord がそのイベントを送るために必要なインテントを示し、どれか 1 つがあれば十分です。空欄は、Discord がインテントなしで送るか、リクエストへの応答としてのみ送ることを意味します。すべてのゲートウェイイベントは shard_id、raw_json、raw も持ちます。各フィールドとその型は API リファレンスに載っています。
セッション
| イベント |
ディスパッチ |
インテント |
フィールド |
Ready |
READY |
|
user、guilds(各サーバーの GuildCreate が届くまでは利用不可)、application、session_id、shard |
Resumed |
RESUMED |
|
|
UserUpdate |
USER_UPDATE |
|
user(Bot 自身のもの)、old |
GatewayRateLimited |
RATE_LIMITED |
|
opcode、retry_after、meta |
サーバー
| イベント |
ディスパッチ |
インテント |
フィールド |
GuildCreate |
GUILD_CREATE |
GUILDS |
guild、joined、channels、threads、voice_states、stage_instances、guild_scheduled_events、soundboard_sounds、members、presences |
GuildUpdate |
GUILD_UPDATE |
GUILDS |
guild、old |
GuildDelete |
GUILD_DELETE |
GUILDS |
guild_id、unavailable、guild(キャッシュ済み) |
RoleCreate |
GUILD_ROLE_CREATE |
GUILDS |
guild_id、role |
RoleUpdate |
GUILD_ROLE_UPDATE |
GUILDS |
guild_id、role、old |
RoleDelete |
GUILD_ROLE_DELETE |
GUILDS |
guild_id、role_id、role(キャッシュ済み) |
EmojisUpdate |
GUILD_EMOJIS_UPDATE |
GUILD_EXPRESSIONS |
guild_id、emojis、old |
StickersUpdate |
GUILD_STICKERS_UPDATE |
GUILD_EXPRESSIONS |
guild_id、stickers、old |
SoundboardSoundCreate |
GUILD_SOUNDBOARD_SOUND_CREATE |
GUILD_EXPRESSIONS |
sound |
SoundboardSoundUpdate |
GUILD_SOUNDBOARD_SOUND_UPDATE |
GUILD_EXPRESSIONS |
sound、old |
SoundboardSoundDelete |
GUILD_SOUNDBOARD_SOUND_DELETE |
GUILD_EXPRESSIONS |
sound_id、guild_id、sound |
SoundboardSoundsUpdate |
GUILD_SOUNDBOARD_SOUNDS_UPDATE |
GUILD_EXPRESSIONS |
soundboard_sounds、guild_id、old |
SoundboardSounds |
SOUNDBOARD_SOUNDS |
|
soundboard_sounds、guild_id(bot.request_soundboard_sounds への応答) |
AuditLogEntryCreate |
GUILD_AUDIT_LOG_ENTRY_CREATE |
GUILD_MODERATION |
guild_id、entry |
BanAdd |
GUILD_BAN_ADD |
GUILD_MODERATION |
guild_id、user |
BanRemove |
GUILD_BAN_REMOVE |
GUILD_MODERATION |
guild_id、user |
GuildIntegrationsUpdate |
GUILD_INTEGRATIONS_UPDATE |
GUILD_INTEGRATIONS |
guild_id |
IntegrationCreate |
INTEGRATION_CREATE |
GUILD_INTEGRATIONS |
guild_id、integration |
IntegrationUpdate |
INTEGRATION_UPDATE |
GUILD_INTEGRATIONS |
guild_id、integration |
IntegrationDelete |
INTEGRATION_DELETE |
GUILD_INTEGRATIONS |
id、guild_id、application_id |
WebhooksUpdate |
WEBHOOKS_UPDATE |
GUILD_WEBHOOKS |
guild_id、channel_id |
CommandPermissionsUpdate |
APPLICATION_COMMAND_PERMISSIONS_UPDATE |
|
permissions |
メンバーとプレゼンス
| イベント |
ディスパッチ |
インテント |
フィールド |
MemberJoin |
GUILD_MEMBER_ADD |
GUILD_MEMBERS |
guild_id、member |
MemberUpdate |
GUILD_MEMBER_UPDATE |
GUILD_MEMBERS |
guild_id、user、roles、nick、joined_at、communication_disabled_until などのメンバーのフィールド、old |
MemberRemove |
GUILD_MEMBER_REMOVE |
GUILD_MEMBERS |
guild_id、user、member(キャッシュ済み) |
MembersChunk |
GUILD_MEMBERS_CHUNK |
|
guild_id、members、presences、not_found、chunk_index、chunk_count、nonce(bot.request_members への応答) |
PresenceUpdate |
PRESENCE_UPDATE |
GUILD_PRESENCES |
guild_id、presence、old |
チャンネルとスレッド
| イベント |
ディスパッチ |
インテント |
フィールド |
ChannelCreate |
CHANNEL_CREATE |
GUILDS |
channel |
ChannelUpdate |
CHANNEL_UPDATE |
GUILDS |
channel、old |
ChannelDelete |
CHANNEL_DELETE |
GUILDS |
channel |
ChannelPinsUpdate |
CHANNEL_PINS_UPDATE |
GUILDS、DIRECT_MESSAGES |
guild_id、channel_id、last_pin_timestamp |
ThreadCreate |
THREAD_CREATE |
GUILDS |
channel、newly_created、member |
ThreadUpdate |
THREAD_UPDATE |
GUILDS |
channel、old |
ThreadDelete |
THREAD_DELETE |
GUILDS |
id、guild_id、parent_id、type、thread(キャッシュ済み) |
ThreadListSync |
THREAD_LIST_SYNC |
GUILDS |
guild_id、channel_ids、threads、members |
ThreadMemberUpdate |
THREAD_MEMBER_UPDATE |
GUILDS |
guild_id、thread_member(Bot 自身のもの) |
ThreadMembersUpdate |
THREAD_MEMBERS_UPDATE |
GUILDS、GUILD_MEMBERS |
id、guild_id、member_count、added_members、removed_member_ids |
StageInstanceCreate |
STAGE_INSTANCE_CREATE |
GUILDS |
stage_instance |
StageInstanceUpdate |
STAGE_INSTANCE_UPDATE |
GUILDS |
stage_instance、old |
StageInstanceDelete |
STAGE_INSTANCE_DELETE |
GUILDS |
stage_instance |
InviteCreate |
INVITE_CREATE |
GUILD_INVITES |
code、channel_id、guild_id、inviter、max_age、max_uses、expires_at など |
InviteDelete |
INVITE_DELETE |
GUILD_INVITES |
channel_id、guild_id、code |
メッセージ、リアクション、投票
| イベント |
ディスパッチ |
インテント |
フィールド |
MessageCreate |
MESSAGE_CREATE |
GUILD_MESSAGES、DIRECT_MESSAGES |
message |
MessageUpdate |
MESSAGE_UPDATE |
GUILD_MESSAGES、DIRECT_MESSAGES |
message、old |
MessageDelete |
MESSAGE_DELETE |
GUILD_MESSAGES、DIRECT_MESSAGES |
id、channel_id、guild_id、message(キャッシュ済み) |
MessageDeleteBulk |
MESSAGE_DELETE_BULK |
GUILD_MESSAGES |
ids、channel_id、guild_id、messages(キャッシュ済み) |
TypingStart |
TYPING_START |
GUILD_MESSAGE_TYPING、DIRECT_MESSAGE_TYPING |
channel_id、guild_id、user_id、timestamp、member |
ReactionAdd |
MESSAGE_REACTION_ADD |
GUILD_MESSAGE_REACTIONS、DIRECT_MESSAGE_REACTIONS |
user_id、channel_id、message_id、guild_id、emoji、burst、type、member、message_author_id、burst_colors |
ReactionRemove |
MESSAGE_REACTION_REMOVE |
GUILD_MESSAGE_REACTIONS、DIRECT_MESSAGE_REACTIONS |
user_id、channel_id、message_id、guild_id、emoji、burst、type |
ReactionRemoveAll |
MESSAGE_REACTION_REMOVE_ALL |
GUILD_MESSAGE_REACTIONS、DIRECT_MESSAGE_REACTIONS |
channel_id、message_id、guild_id |
ReactionRemoveEmoji |
MESSAGE_REACTION_REMOVE_EMOJI |
GUILD_MESSAGE_REACTIONS、DIRECT_MESSAGE_REACTIONS |
channel_id、message_id、guild_id、emoji |
PollVoteAdd |
MESSAGE_POLL_VOTE_ADD |
GUILD_MESSAGE_POLLS、DIRECT_MESSAGE_POLLS |
user_id、channel_id、message_id、guild_id、answer_id |
PollVoteRemove |
MESSAGE_POLL_VOTE_REMOVE |
GUILD_MESSAGE_POLLS、DIRECT_MESSAGE_POLLS |
user_id、channel_id、message_id、guild_id、answer_id |
メッセージの内容と AutoModerationActionExecution の content には MESSAGE_CONTENT インテントが必要です。ただし、DM と、Bot をメンションしたメッセージは例外です。
ボイス
| イベント |
ディスパッチ |
インテント |
フィールド |
VoiceStateUpdate |
VOICE_STATE_UPDATE |
GUILD_VOICE_STATES |
voice_state、old |
VoiceServerUpdate |
VOICE_SERVER_UPDATE |
|
token、guild_id、endpoint |
VoiceChannelEffectSend |
VOICE_CHANNEL_EFFECT_SEND |
GUILD_VOICE_STATES |
channel_id、guild_id、user_id、emoji、animation_type、animation_id、sound_id、sound_volume |
VoiceChannelStatusUpdate |
VOICE_CHANNEL_STATUS_UPDATE |
GUILDS |
id、guild_id、status |
VoiceChannelStartTimeUpdate |
VOICE_CHANNEL_START_TIME_UPDATE |
GUILDS |
id、guild_id、voice_start_time |
ChannelInfo |
CHANNEL_INFO |
|
guild_id、channels(bot.request_channel_info への応答) |
Bot 自身のボイス接続のイベントは、ボイスのガイドに一覧があります。
インタラクション、モデレーション、イベント
| イベント |
ディスパッチ |
インテント |
フィールド |
InteractionCreate |
INTERACTION_CREATE |
|
interaction |
AutoModerationRuleCreate |
AUTO_MODERATION_RULE_CREATE |
AUTO_MODERATION_CONFIGURATION |
rule |
AutoModerationRuleUpdate |
AUTO_MODERATION_RULE_UPDATE |
AUTO_MODERATION_CONFIGURATION |
rule |
AutoModerationRuleDelete |
AUTO_MODERATION_RULE_DELETE |
AUTO_MODERATION_CONFIGURATION |
rule |
AutoModerationActionExecution |
AUTO_MODERATION_ACTION_EXECUTION |
AUTO_MODERATION_EXECUTION |
guild_id、action、rule_id、rule_trigger_type、user_id、channel_id、message_id、content、matched_keyword、matched_content |
ScheduledEventCreate |
GUILD_SCHEDULED_EVENT_CREATE |
GUILD_SCHEDULED_EVENTS |
scheduled_event |
ScheduledEventUpdate |
GUILD_SCHEDULED_EVENT_UPDATE |
GUILD_SCHEDULED_EVENTS |
scheduled_event、old |
ScheduledEventDelete |
GUILD_SCHEDULED_EVENT_DELETE |
GUILD_SCHEDULED_EVENTS |
scheduled_event |
ScheduledEventUserAdd |
GUILD_SCHEDULED_EVENT_USER_ADD |
GUILD_SCHEDULED_EVENTS |
guild_scheduled_event_id、user_id、guild_id |
ScheduledEventUserRemove |
GUILD_SCHEDULED_EVENT_USER_REMOVE |
GUILD_SCHEDULED_EVENTS |
guild_scheduled_event_id、user_id、guild_id |
収益化
| イベント |
ディスパッチ |
インテント |
フィールド |
EntitlementCreate |
ENTITLEMENT_CREATE |
|
entitlement(テスト用のエンタイトルメントでは PartialEntitlement) |
EntitlementUpdate |
ENTITLEMENT_UPDATE |
|
entitlement。サブスクリプションの場合は終了時のみ送信されます |
EntitlementDelete |
ENTITLEMENT_DELETE |
|
entitlement |
SubscriptionCreate |
SUBSCRIPTION_CREATE |
|
subscription |
SubscriptionUpdate |
SUBSCRIPTION_UPDATE |
|
subscription |
SubscriptionDelete |
SUBSCRIPTION_DELETE |
|
subscription |
ウェブフックイベント
Discord はこれらのイベントを、アプリの Webhook Events URL にだけ送ります。この URL は ASGIApp で受け付けられます。上のエンタイトルメントのイベントもそこに届きます。
| イベント |
種類 |
フィールド |
ApplicationAuthorized |
APPLICATION_AUTHORIZED |
integration_type、user、scopes、guild |
ApplicationDeauthorized |
APPLICATION_DEAUTHORIZED |
user |
QuestUserEnrollment |
QUEST_USER_ENROLLMENT |
|
LobbyMessageCreate |
LOBBY_MESSAGE_CREATE |
message |
LobbyMessageUpdate |
LOBBY_MESSAGE_UPDATE |
message |
LobbyMessageDelete |
LOBBY_MESSAGE_DELETE |
id、lobby_id |
GameDirectMessageCreate |
GAME_DIRECT_MESSAGE_CREATE |
message |
GameDirectMessageUpdate |
GAME_DIRECT_MESSAGE_UPDATE |
message |
GameDirectMessageDelete |
GAME_DIRECT_MESSAGE_DELETE |
message |
すべてのディスパッチ
| イベント |
ディスパッチ |
インテント |
フィールド |
RawEvent |
すべて |
|
name、seq、raw、raw_json。モデル化されているかどうかにかかわらず、すべてのディスパッチで届きます |
Bot のイベント
これらは Discord ではなく bostie から届くイベントで、名前も bostie 独自のものです。
| イベント |
名前 |
フィールド |
送信されるタイミング |
Starting |
bot.starting |
|
start() が同期と接続を始める直前。REST は使えます |
Started |
bot.started |
|
すべてのシャードの準備ができたとき。start() ごとに 1 回 |
Stopping |
bot.stopping |
|
Started の後に close() が始まったとき。ゲートウェイはまだ開いています |
Stopped |
bot.stopped |
|
close() が完了したとき。ゲートウェイも REST も使えなくなっています |
ShardReady |
shard.ready |
shard_id |
シャードの新しいセッションの準備ができ、そのサーバーが届いたとき |
ShardDisconnect |
shard.disconnect |
shard_id、code、reason、resuming |
シャードの接続が切れたとき |
ShardStop |
shard.stop |
shard_id、code、reason |
シャードが完全に停止したとき |
ShardBackpressure |
shard.backpressure |
shard_id、queued_bytes |
イベントループが追いつかないため、シャードが読み込みを一時停止したとき |
ListenerError |
bot.listener_error |
listener、event、error |
リスナーが例外を送出したとき |
TaskError |
bot.task_error |
task、error |
バックグラウンドタスクが例外を送出したとき |