Module: Discordrb::EventContainer
Overview
This module provides the functionality required for events and awaits. It is separated from the Bot class so users can make their own container modules and include them.
Class Method Summary collapse
-
.class_from_string(str) ⇒ Class
Utility method to return a class object from a string of its name.
-
.event_class(handler_class) ⇒ Class?
Returns the event class for a handler class type.
-
.handler_class(event_class) ⇒ Class
Returns the handler class for an event class type.
Instance Method Summary collapse
-
#add_handler(handler) ⇒ Object
(also: #<<)
Adds an event handler to this container.
-
#application_command(name, attributes = {}) {|event| ... } ⇒ ApplicationCommandEventHandler
This event is raised whenever an application command (slash command) is executed.
-
#application_command_permissions_update(attributes = {}) {|event| ... } ⇒ ApplicationCommandPermissionsUpdateEventHandler
This event is raised whenever an application command's permissions are updated.
-
#autocomplete(name = nil, attributes = {}) {|event| ... } ⇒ AutocompleteEventHandler
This event is raised whenever an autocomplete interaction is created.
-
#await(attributes = {}) {|event| ... } ⇒ AwaitEventHandler
This event is raised when an Await is triggered.
-
#button(attributes = {}) {|event| ... } ⇒ ButtonEventHandler
This event is raised whenever an button interaction is created.
-
#channel_create(attributes = {}) {|event| ... } ⇒ ChannelCreateEventHandler
This event is raised when a channel is created.
-
#channel_delete(attributes = {}) {|event| ... } ⇒ ChannelDeleteEventHandler
This event is raised when a channel is deleted.
-
#channel_pins_update(attributes = {}) {|event| ... } ⇒ ChannelPinsUpdateEventHandler
This event is raised whenever a message is pinned or unpinned.
-
#channel_recipient_add(attributes = {}) {|event| ... } ⇒ ChannelRecipientAddHandler
This event is raised when a recipient is added to a group channel.
-
#channel_recipient_remove(attributes = {}) {|event| ... } ⇒ ChannelRecipientRemoveHandler
This event is raised when a recipient is removed from a group channel.
-
#channel_select(attributes = {}) {|event| ... } ⇒ ChannelSelectEventHandler
This event is raised whenever an select channel interaction is created.
-
#channel_update(attributes = {}) {|event| ... } ⇒ ChannelUpdateEventHandler
This event is raised when a channel is updated.
-
#clear! ⇒ Object
Removes all events from this event handler.
-
#disconnected(attributes = {}) {|event| ... } ⇒ DisconnectEventHandler
This event is raised when the bot has disconnected from the WebSocket, due to the Bot#stop method or external causes.
-
#heartbeat(attributes = {}) {|event| ... } ⇒ HeartbeatEventHandler
This event is raised every time the bot sends a heartbeat over the galaxy.
-
#include_events(container) ⇒ Object
(also: #include!)
Adds all event handlers from another container into this one.
-
#interaction_create(attributes = {}) {|event| ... } ⇒ InteractionCreateEventHandler
This event is raised whenever an interaction event is received.
-
#invite_create(attributes = {}) {|event| ... } ⇒ InviteCreateEventHandler
This event is raised when an invite is created.
-
#invite_delete(attributes = {}) {|event| ... } ⇒ InviteDeleteEventHandler
This event is raised when an invite is deleted.
-
#member_join(attributes = {}) {|event| ... } ⇒ ServerMemberAddEventHandler
This event is raised when a new user joins a server.
-
#member_leave(attributes = {}) {|event| ... } ⇒ ServerMemberDeleteEventHandler
This event is raised when a member leaves a server.
-
#member_update(attributes = {}) {|event| ... } ⇒ ServerMemberUpdateEventHandler
This event is raised when a member update happens.
-
#mention(attributes = {}) {|event| ... } ⇒ MentionEventHandler
This event is raised when the bot is mentioned in a message.
-
#mentionable_select(attributes = {}) {|event| ... } ⇒ MentionableSelectEventHandler
This event is raised whenever an select mentionable interaction is created.
-
#message(attributes = {}) {|event| ... } ⇒ MessageEventHandler
This event is raised when a message is sent to a text channel the bot is currently in.
-
#message_delete(attributes = {}) {|event| ... } ⇒ MessageDeleteEventHandler
This event is raised when a message is deleted in a channel.
-
#message_edit(attributes = {}) {|event| ... } ⇒ MessageEditEventHandler
This event is raised when a message is edited in a channel.
-
#message_update(attributes = {}) {|event| ... } ⇒ MessageUpdateEventHandler
This event is raised whenever a message is updated.
-
#modal_submit(attributes = {}) {|event| ... } ⇒ ModalSubmitEventHandler
This event is raised whenever a modal is submitted.
-
#playing(attributes = {}) {|event| ... } ⇒ PlayingEventHandler
This event is raised when the game a user is playing changes.
-
#pm(attributes = {}) {|event| ... } ⇒ PrivateMessageEventHandler
(also: #private_message, #direct_message, #dm)
This event is raised when a private message is sent to the bot.
-
#presence(attributes = {}) {|event| ... } ⇒ PresenceEventHandler
This event is raised when a user's status (online/offline/idle) changes.
-
#raw(attributes = {}) {|event| ... } ⇒ RawEventHandler
This event is raised for every dispatch received over the gateway, whether supported by discordrb or not.
-
#reaction_add(attributes = {}) {|event| ... } ⇒ ReactionAddEventHandler
This event is raised when somebody reacts to a message.
-
#reaction_remove(attributes = {}) {|event| ... } ⇒ ReactionRemoveEventHandler
This event is raised when somebody removes a reaction from a message.
-
#reaction_remove_all(attributes = {}) {|event| ... } ⇒ ReactionRemoveAllEventHandler
This event is raised when somebody removes all reactions from a message.
-
#reaction_remove_emoji(attributes = {}) {|event| ... } ⇒ ReactionRemoveEmojiEventHandler
This event is raised when somebody removes all instances of a single reaction from a message.
-
#ready(attributes = {}) {|event| ... } ⇒ ReadyEventHandler
This event is raised when the READY packet is received, i.e.
-
#remove_application_command_handler(name) ⇒ Object
Remove an application command handler.
-
#remove_handler(handler) ⇒ Object
Removes an event handler from this container.
-
#role_select(attributes = {}) {|event| ... } ⇒ RoleSelectEventHandler
This event is raised whenever an select role interaction is created.
-
#server_create(attributes = {}) {|event| ... } ⇒ ServerCreateEventHandler
This event is raised when a server is created respective to the bot, i.e.
-
#server_delete(attributes = {}) {|event| ... } ⇒ ServerDeleteEventHandler
This event is raised when a server is deleted, or when the bot leaves a server.
-
#server_emoji(attributes = {}) {|event| ... } ⇒ ServerEmojiChangeEventHandler
This event is raised when an emoji or collection of emojis is created/deleted/updated.
-
#server_emoji_create(attributes = {}) {|event| ... } ⇒ ServerEmojiCreateEventHandler
This event is raised when an emoji is created.
-
#server_emoji_delete(attributes = {}) {|event| ... } ⇒ ServerEmojiDeleteEventHandler
This event is raised when an emoji is deleted.
-
#server_emoji_update(attributes = {}) {|event| ... } ⇒ ServerEmojiUpdateEventHandler
This event is raised when an emoji is updated.
-
#server_role_create(attributes = {}) {|event| ... } ⇒ ServerRoleCreateEventHandler
This event is raised when a role is created.
-
#server_role_delete(attributes = {}) {|event| ... } ⇒ ServerRoleDeleteEventHandler
This event is raised when a role is deleted.
-
#server_role_update(attributes = {}) {|event| ... } ⇒ ServerRoleUpdateEventHandler
This event is raised when a role is updated.
-
#server_update(attributes = {}) {|event| ... } ⇒ ServerUpdateEventHandler
This event is raised when a server is updated, for example if the name or region has changed.
-
#string_select(attributes = {}) {|event| ... } ⇒ StringSelectEventHandler
(also: #select_menu)
This event is raised whenever an select string interaction is created.
-
#typing(attributes = {}) {|event| ... } ⇒ TypingEventHandler
This event is raised when somebody starts typing in a channel the bot is also in.
-
#unknown(attributes = {}) {|event| ... } ⇒ UnknownEventHandler
This event is raised for a dispatch received over the gateway that is not currently handled otherwise by discordrb.
-
#user_ban(attributes = {}) {|event| ... } ⇒ UserBanEventHandler
This event is raised when a user is banned from a server.
-
#user_select(attributes = {}) {|event| ... } ⇒ UserSelectEventHandler
This event is raised whenever an select user interaction is created.
-
#user_unban(attributes = {}) {|event| ... } ⇒ UserUnbanEventHandler
This event is raised when a user is unbanned from a server.
-
#voice_server_update(attributes = {}) {|event| ... } ⇒ VoiceServerUpdateEventHandler
This event is raised when first connecting to a server's voice channel.
-
#voice_state_update(attributes = {}) {|event| ... } ⇒ VoiceStateUpdateEventHandler
This event is raised when a user's voice state changes.
-
#webhook_update(attributes = {}) {|event| ... } ⇒ WebhookUpdateEventHandler
This event is raised when a webhook is updated.
Methods included from Events
Class Method Details
.class_from_string(str) ⇒ Class
Utility method to return a class object from a string of its name. Mostly useful for internal stuff
794 795 796 797 798 |
# File 'lib/discordrb/container.rb', line 794 def self.class_from_string(str) str.split('::').inject(Object) do |mod, class_name| mod.const_get(class_name) end end |
.event_class(handler_class) ⇒ Class?
Returns the event class for a handler class type
784 785 786 787 788 789 |
# File 'lib/discordrb/container.rb', line 784 def self.event_class(handler_class) class_name = handler_class.to_s return nil unless class_name.end_with? 'Handler' EventContainer.class_from_string(class_name[0..-8]) end |
.handler_class(event_class) ⇒ Class
Returns the handler class for an event class type
776 777 778 |
# File 'lib/discordrb/container.rb', line 776 def self.handler_class(event_class) class_from_string("#{event_class}Handler") end |
Instance Method Details
#add_handler(handler) ⇒ Object Also known as: <<
Adds an event handler to this container. Usually, it's more expressive to just use one of the shorthand adder methods like #message, but if you want to create one manually you can use this.
744 745 746 747 748 749 |
# File 'lib/discordrb/container.rb', line 744 def add_handler(handler) clazz = EventContainer.event_class(handler.class) @event_handlers ||= {} @event_handlers[clazz] ||= [] @event_handlers[clazz] << handler end |
#application_command(name, attributes = {}) {|event| ... } ⇒ ApplicationCommandEventHandler
This event is raised whenever an application command (slash command) is executed.
569 570 571 572 573 574 575 576 577 578 |
# File 'lib/discordrb/container.rb', line 569 def application_command(name, attributes = {}, &block) @application_commands ||= {} unless block @application_commands[name] ||= ApplicationCommandEventHandler.new(attributes, nil) return @application_commands[name] end @application_commands[name] = ApplicationCommandEventHandler.new(attributes, block) end |
#application_command_permissions_update(attributes = {}) {|event| ... } ⇒ ApplicationCommandPermissionsUpdateEventHandler
This event is raised whenever an application command's permissions are updated.
695 696 697 |
# File 'lib/discordrb/container.rb', line 695 def (attributes = {}, &block) register_event(ApplicationCommandPermissionsUpdateEvent, attributes, block) end |
#autocomplete(name = nil, attributes = {}) {|event| ... } ⇒ AutocompleteEventHandler
This event is raised whenever an autocomplete interaction is created.
683 684 685 |
# File 'lib/discordrb/container.rb', line 683 def autocomplete(name = nil, attributes = {}, &block) register_event(AutocompleteEvent, attributes.merge!({ name: name }), block) end |
#await(attributes = {}) {|event| ... } ⇒ AwaitEventHandler
This event is raised when an Await is triggered. It provides an easy way to execute code on an await without having to rely on the await's block.
499 500 501 |
# File 'lib/discordrb/container.rb', line 499 def await(attributes = {}, &block) register_event(AwaitEvent, attributes, block) end |
#button(attributes = {}) {|event| ... } ⇒ ButtonEventHandler
This event is raised whenever an button interaction is created.
587 588 589 |
# File 'lib/discordrb/container.rb', line 587 def (attributes = {}, &block) register_event(ButtonEvent, attributes, block) end |
#channel_create(attributes = {}) {|event| ... } ⇒ ChannelCreateEventHandler
This event is raised when a channel is created.
240 241 242 |
# File 'lib/discordrb/container.rb', line 240 def channel_create(attributes = {}, &block) register_event(ChannelCreateEvent, attributes, block) end |
#channel_delete(attributes = {}) {|event| ... } ⇒ ChannelDeleteEventHandler
This event is raised when a channel is deleted.
262 263 264 |
# File 'lib/discordrb/container.rb', line 262 def channel_delete(attributes = {}, &block) register_event(ChannelDeleteEvent, attributes, block) end |
#channel_pins_update(attributes = {}) {|event| ... } ⇒ ChannelPinsUpdateEventHandler
This event is raised whenever a message is pinned or unpinned.
668 669 670 |
# File 'lib/discordrb/container.rb', line 668 def channel_pins_update(attributes = {}, &block) register_event(ChannelPinsUpdateEvent, attributes, block) end |
#channel_recipient_add(attributes = {}) {|event| ... } ⇒ ChannelRecipientAddHandler
This event is raised when a recipient is added to a group channel.
274 275 276 |
# File 'lib/discordrb/container.rb', line 274 def channel_recipient_add(attributes = {}, &block) register_event(ChannelRecipientAddEvent, attributes, block) end |
#channel_recipient_remove(attributes = {}) {|event| ... } ⇒ ChannelRecipientRemoveHandler
This event is raised when a recipient is removed from a group channel.
286 287 288 |
# File 'lib/discordrb/container.rb', line 286 def channel_recipient_remove(attributes = {}, &block) register_event(ChannelRecipientRemoveEvent, attributes, block) end |
#channel_select(attributes = {}) {|event| ... } ⇒ ChannelSelectEventHandler
This event is raised whenever an select channel interaction is created.
657 658 659 |
# File 'lib/discordrb/container.rb', line 657 def channel_select(attributes = {}, &block) register_event(ChannelSelectEvent, attributes, block) end |
#channel_update(attributes = {}) {|event| ... } ⇒ ChannelUpdateEventHandler
This event is raised when a channel is updated.
251 252 253 |
# File 'lib/discordrb/container.rb', line 251 def channel_update(attributes = {}, &block) register_event(ChannelUpdateEvent, attributes, block) end |
#clear! ⇒ Object
Removes all events from this event handler.
736 737 738 739 |
# File 'lib/discordrb/container.rb', line 736 def clear! @event_handlers&.clear @application_commands&.clear end |
#disconnected(attributes = {}) {|event| ... } ⇒ DisconnectEventHandler
This event is raised when the bot has disconnected from the WebSocket, due to the Bot#stop method or external causes. It's the recommended way to do clean-up tasks.
60 61 62 |
# File 'lib/discordrb/container.rb', line 60 def disconnected(attributes = {}, &block) register_event(DisconnectEvent, attributes, block) end |
#heartbeat(attributes = {}) {|event| ... } ⇒ HeartbeatEventHandler
This event is raised every time the bot sends a heartbeat over the galaxy. This happens roughly every 40 seconds, but may happen at a lower rate should Discord change their interval. It may also happen more quickly for periods of time, especially for unstable connections, since discordrb rather sends a heartbeat than not if there's a choice. (You shouldn't rely on all this to be accurately timed.)
All this makes this event useful to periodically trigger something, like doing some API request every hour, setting some kind of uptime variable or whatever else. The only limit is yourself.
75 76 77 |
# File 'lib/discordrb/container.rb', line 75 def heartbeat(attributes = {}, &block) register_event(HeartbeatEvent, attributes, block) end |
#include_events(container) ⇒ Object Also known as: include!
Adds all event handlers from another container into this one. Existing event handlers will be overwritten.
753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 |
# File 'lib/discordrb/container.rb', line 753 def include_events(container) application_command_handlers = container.instance_variable_get(:@application_commands) handlers = container.instance_variable_get :@event_handlers return unless handlers || application_command_handlers @event_handlers ||= {} @event_handlers.merge!(handlers || {}) { |_, old, new| old + new } @application_commands ||= {} @application_commands.merge!(application_command_handlers || {}) do |_, old, new| old.subcommands.merge!(new.subcommands) old end end |
#interaction_create(attributes = {}) {|event| ... } ⇒ InteractionCreateEventHandler
This event is raised whenever an interaction event is received.
559 560 561 |
# File 'lib/discordrb/container.rb', line 559 def interaction_create(attributes = {}, &block) register_event(InteractionCreateEvent, attributes, block) end |
#invite_create(attributes = {}) {|event| ... } ⇒ InviteCreateEventHandler
This event is raised when an invite is created.
534 535 536 |
# File 'lib/discordrb/container.rb', line 534 def invite_create(attributes = {}, &block) register_event(InviteCreateEvent, attributes, block) end |
#invite_delete(attributes = {}) {|event| ... } ⇒ InviteDeleteEventHandler
This event is raised when an invite is deleted.
545 546 547 |
# File 'lib/discordrb/container.rb', line 545 def invite_delete(attributes = {}, &block) register_event(InviteDeleteEvent, attributes, block) end |
#member_join(attributes = {}) {|event| ... } ⇒ ServerMemberAddEventHandler
This event is raised when a new user joins a server.
323 324 325 |
# File 'lib/discordrb/container.rb', line 323 def member_join(attributes = {}, &block) register_event(ServerMemberAddEvent, attributes, block) end |
#member_leave(attributes = {}) {|event| ... } ⇒ ServerMemberDeleteEventHandler
This event is raised when a member leaves a server.
344 345 346 |
# File 'lib/discordrb/container.rb', line 344 def member_leave(attributes = {}, &block) register_event(ServerMemberDeleteEvent, attributes, block) end |
#member_update(attributes = {}) {|event| ... } ⇒ ServerMemberUpdateEventHandler
This event is raised when a member update happens. This includes when a members nickname or roles are updated.
334 335 336 |
# File 'lib/discordrb/container.rb', line 334 def member_update(attributes = {}, &block) register_event(ServerMemberUpdateEvent, attributes, block) end |
#mention(attributes = {}) {|event| ... } ⇒ MentionEventHandler
This event is raised when the bot is mentioned in a message.
229 230 231 |
# File 'lib/discordrb/container.rb', line 229 def mention(attributes = {}, &block) register_event(MentionEvent, attributes, block) end |
#mentionable_select(attributes = {}) {|event| ... } ⇒ MentionableSelectEventHandler
This event is raised whenever an select mentionable interaction is created.
646 647 648 |
# File 'lib/discordrb/container.rb', line 646 def mentionable_select(attributes = {}, &block) register_event(MentionableSelectEvent, attributes, block) end |
#message(attributes = {}) {|event| ... } ⇒ MessageEventHandler
This event is raised when a message is sent to a text channel the bot is currently in.
40 41 42 |
# File 'lib/discordrb/container.rb', line 40 def (attributes = {}, &block) register_event(MessageEvent, attributes, block) end |
#message_delete(attributes = {}) {|event| ... } ⇒ MessageDeleteEventHandler
This event is raised when a message is deleted in a channel.
115 116 117 |
# File 'lib/discordrb/container.rb', line 115 def (attributes = {}, &block) register_event(MessageDeleteEvent, attributes, block) end |
#message_edit(attributes = {}) {|event| ... } ⇒ MessageEditEventHandler
This event is raised when a message is edited in a channel.
103 104 105 |
# File 'lib/discordrb/container.rb', line 103 def (attributes = {}, &block) register_event(MessageEditEvent, attributes, block) end |
#message_update(attributes = {}) {|event| ... } ⇒ MessageUpdateEventHandler
This event is raised whenever a message is updated. Message updates can be triggered from a user editing their own message, or from Discord automatically attaching embeds to the user's message for URLs contained in the message's content. If you only want to listen for users editing their own messages, use the #message_edit handler instead.
131 132 133 |
# File 'lib/discordrb/container.rb', line 131 def (attributes = {}, &block) register_event(MessageUpdateEvent, attributes, block) end |
#modal_submit(attributes = {}) {|event| ... } ⇒ ModalSubmitEventHandler
This event is raised whenever a modal is submitted.
613 614 615 |
# File 'lib/discordrb/container.rb', line 613 def modal_submit(attributes = {}, &block) register_event(ModalSubmitEvent, attributes, block) end |
#playing(attributes = {}) {|event| ... } ⇒ PlayingEventHandler
This event is raised when the game a user is playing changes.
209 210 211 |
# File 'lib/discordrb/container.rb', line 209 def (attributes = {}, &block) register_event(PlayingEvent, attributes, block) end |
#pm(attributes = {}) {|event| ... } ⇒ PrivateMessageEventHandler Also known as: private_message, direct_message, dm
This event is raised when a private message is sent to the bot.
517 518 519 |
# File 'lib/discordrb/container.rb', line 517 def pm(attributes = {}, &block) register_event(PrivateMessageEvent, attributes, block) end |
#presence(attributes = {}) {|event| ... } ⇒ PresenceEventHandler
This event is raised when a user's status (online/offline/idle) changes.
197 198 199 |
# File 'lib/discordrb/container.rb', line 197 def presence(attributes = {}, &block) register_event(PresenceEvent, attributes, block) end |
#raw(attributes = {}) {|event| ... } ⇒ RawEventHandler
This event is raised for every dispatch received over the gateway, whether supported by discordrb or not.
705 706 707 |
# File 'lib/discordrb/container.rb', line 705 def raw(attributes = {}, &block) register_event(RawEvent, attributes, block) end |
#reaction_add(attributes = {}) {|event| ... } ⇒ ReactionAddEventHandler
This event is raised when somebody reacts to a message.
145 146 147 |
# File 'lib/discordrb/container.rb', line 145 def reaction_add(attributes = {}, &block) register_event(ReactionAddEvent, attributes, block) end |
#reaction_remove(attributes = {}) {|event| ... } ⇒ ReactionRemoveEventHandler
This event is raised when somebody removes a reaction from a message.
160 161 162 |
# File 'lib/discordrb/container.rb', line 160 def reaction_remove(attributes = {}, &block) register_event(ReactionRemoveEvent, attributes, block) end |
#reaction_remove_all(attributes = {}) {|event| ... } ⇒ ReactionRemoveAllEventHandler
This event is raised when somebody removes all reactions from a message.
172 173 174 |
# File 'lib/discordrb/container.rb', line 172 def reaction_remove_all(attributes = {}, &block) register_event(ReactionRemoveAllEvent, attributes, block) end |
#reaction_remove_emoji(attributes = {}) {|event| ... } ⇒ ReactionRemoveEmojiEventHandler
This event is raised when somebody removes all instances of a single reaction from a message.
184 185 186 |
# File 'lib/discordrb/container.rb', line 184 def reaction_remove_emoji(attributes = {}, &block) register_event(ReactionRemoveEmojiEvent, attributes, block) end |
#ready(attributes = {}) {|event| ... } ⇒ ReadyEventHandler
This event is raised when the READY packet is received, i.e. servers and channels have finished initialization. It's the recommended way to do things when the bot has finished starting up.
50 51 52 |
# File 'lib/discordrb/container.rb', line 50 def ready(attributes = {}, &block) register_event(ReadyEvent, attributes, block) end |
#remove_application_command_handler(name) ⇒ Object
Remove an application command handler
731 732 733 |
# File 'lib/discordrb/container.rb', line 731 def remove_application_command_handler(name) @application_commands.delete(name) end |
#remove_handler(handler) ⇒ Object
Removes an event handler from this container. If you're looking for a way to do temporary events, I recommend Awaits instead of this.
723 724 725 726 727 |
# File 'lib/discordrb/container.rb', line 723 def remove_handler(handler) clazz = EventContainer.event_class(handler.class) @event_handlers ||= {} @event_handlers[clazz].delete(handler) end |
#role_select(attributes = {}) {|event| ... } ⇒ RoleSelectEventHandler
This event is raised whenever an select role interaction is created.
635 636 637 |
# File 'lib/discordrb/container.rb', line 635 def role_select(attributes = {}, &block) register_event(RoleSelectEvent, attributes, block) end |
#server_create(attributes = {}) {|event| ... } ⇒ ServerCreateEventHandler
This event is raised when a server is created respective to the bot, i.e. the bot joins a server or creates a new one itself.
377 378 379 |
# File 'lib/discordrb/container.rb', line 377 def server_create(attributes = {}, &block) register_event(ServerCreateEvent, attributes, block) end |
#server_delete(attributes = {}) {|event| ... } ⇒ ServerDeleteEventHandler
This event is raised when a server is deleted, or when the bot leaves a server. (These two cases are identical to Discord.)
398 399 400 |
# File 'lib/discordrb/container.rb', line 398 def server_delete(attributes = {}, &block) register_event(ServerDeleteEvent, attributes, block) end |
#server_emoji(attributes = {}) {|event| ... } ⇒ ServerEmojiChangeEventHandler
This event is raised when an emoji or collection of emojis is created/deleted/updated.
408 409 410 |
# File 'lib/discordrb/container.rb', line 408 def server_emoji(attributes = {}, &block) register_event(ServerEmojiChangeEvent, attributes, block) end |
#server_emoji_create(attributes = {}) {|event| ... } ⇒ ServerEmojiCreateEventHandler
This event is raised when an emoji is created.
420 421 422 |
# File 'lib/discordrb/container.rb', line 420 def server_emoji_create(attributes = {}, &block) register_event(ServerEmojiCreateEvent, attributes, block) end |
#server_emoji_delete(attributes = {}) {|event| ... } ⇒ ServerEmojiDeleteEventHandler
This event is raised when an emoji is deleted.
432 433 434 |
# File 'lib/discordrb/container.rb', line 432 def server_emoji_delete(attributes = {}, &block) register_event(ServerEmojiDeleteEvent, attributes, block) end |
#server_emoji_update(attributes = {}) {|event| ... } ⇒ ServerEmojiUpdateEventHandler
This event is raised when an emoji is updated.
445 446 447 |
# File 'lib/discordrb/container.rb', line 445 def server_emoji_update(attributes = {}, &block) register_event(ServerEmojiUpdateEvent, attributes, block) end |
#server_role_create(attributes = {}) {|event| ... } ⇒ ServerRoleCreateEventHandler
This event is raised when a role is created.
455 456 457 |
# File 'lib/discordrb/container.rb', line 455 def server_role_create(attributes = {}, &block) register_event(ServerRoleCreateEvent, attributes, block) end |
#server_role_delete(attributes = {}) {|event| ... } ⇒ ServerRoleDeleteEventHandler
This event is raised when a role is deleted.
465 466 467 |
# File 'lib/discordrb/container.rb', line 465 def server_role_delete(attributes = {}, &block) register_event(ServerRoleDeleteEvent, attributes, block) end |
#server_role_update(attributes = {}) {|event| ... } ⇒ ServerRoleUpdateEventHandler
This event is raised when a role is updated.
475 476 477 |
# File 'lib/discordrb/container.rb', line 475 def server_role_update(attributes = {}, &block) register_event(ServerRoleUpdateEvent, attributes, block) end |
#server_update(attributes = {}) {|event| ... } ⇒ ServerUpdateEventHandler
This event is raised when a server is updated, for example if the name or region has changed.
387 388 389 |
# File 'lib/discordrb/container.rb', line 387 def server_update(attributes = {}, &block) register_event(ServerUpdateEvent, attributes, block) end |
#string_select(attributes = {}) {|event| ... } ⇒ StringSelectEventHandler Also known as:
This event is raised whenever an select string interaction is created.
598 599 600 |
# File 'lib/discordrb/container.rb', line 598 def string_select(attributes = {}, &block) register_event(StringSelectEvent, attributes, block) end |
#typing(attributes = {}) {|event| ... } ⇒ TypingEventHandler
This event is raised when somebody starts typing in a channel the bot is also in. The official Discord client would display the typing indicator for five seconds after receiving this event. If the user continues typing after five seconds, the event will be re-raised.
90 91 92 |
# File 'lib/discordrb/container.rb', line 90 def typing(attributes = {}, &block) register_event(TypingEvent, attributes, block) end |
#unknown(attributes = {}) {|event| ... } ⇒ UnknownEventHandler
This event is raised for a dispatch received over the gateway that is not currently handled otherwise by discordrb.
716 717 718 |
# File 'lib/discordrb/container.rb', line 716 def unknown(attributes = {}, &block) register_event(UnknownEvent, attributes, block) end |
#user_ban(attributes = {}) {|event| ... } ⇒ UserBanEventHandler
This event is raised when a user is banned from a server.
355 356 357 |
# File 'lib/discordrb/container.rb', line 355 def user_ban(attributes = {}, &block) register_event(UserBanEvent, attributes, block) end |
#user_select(attributes = {}) {|event| ... } ⇒ UserSelectEventHandler
This event is raised whenever an select user interaction is created.
624 625 626 |
# File 'lib/discordrb/container.rb', line 624 def user_select(attributes = {}, &block) register_event(UserSelectEvent, attributes, block) end |
#user_unban(attributes = {}) {|event| ... } ⇒ UserUnbanEventHandler
This event is raised when a user is unbanned from a server.
366 367 368 |
# File 'lib/discordrb/container.rb', line 366 def user_unban(attributes = {}, &block) register_event(UserUnbanEvent, attributes, block) end |
#voice_server_update(attributes = {}) {|event| ... } ⇒ VoiceServerUpdateEventHandler
This event is raised when first connecting to a server's voice channel.
313 314 315 |
# File 'lib/discordrb/container.rb', line 313 def voice_server_update(attributes = {}, &block) register_event(VoiceServerUpdateEvent, attributes, block) end |
#voice_state_update(attributes = {}) {|event| ... } ⇒ VoiceStateUpdateEventHandler
This event is raised when a user's voice state changes. This includes when a user joins, leaves, or moves between voice channels, as well as their mute and deaf status for themselves and on the server.
303 304 305 |
# File 'lib/discordrb/container.rb', line 303 def voice_state_update(attributes = {}, &block) register_event(VoiceStateUpdateEvent, attributes, block) end |
#webhook_update(attributes = {}) {|event| ... } ⇒ WebhookUpdateEventHandler
This event is raised when a webhook is updated.
487 488 489 |
# File 'lib/discordrb/container.rb', line 487 def webhook_update(attributes = {}, &block) register_event(WebhookUpdateEvent, attributes, block) end |