module Discorb # # Abstract class to make extension. # Include from this module to make your own extension. # @see file:docs/extension.md Extension # @abstract module Extension def initialize: (untyped client) -> void def events: -> untyped def self.included: (untyped base) -> untyped # # @private # Module for adding class methods to the extension class. module ClassMethods include Discorb::ApplicationCommand::Handler # # Define a new event. # # @param [Symbol] event_name The name of the event. # @param [Symbol] id The id of the event. Used to delete the event. # @param [Hash] metadata Other metadata. # # @return [Discorb::EventHandler] The event. def event: ( :event_receive event_name, ?id: Symbol?, **untyped metadata ) { (Symbol event_name, Discorb::json data) -> void } -> void | ( :ready event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :standby event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :resumed event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :error event_name, ?id: Symbol?, **untyped metadata ) { (Symbol event_name, Array[Object] args, Exception error) -> void } -> void | ( :setup event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :shard_standby event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Shard shard) -> void } -> void | ( :shard_resumed event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Shard shard) -> void } -> void | ( :guild_join event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_available event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild before, Discorb::Guild after) -> void } -> void | ( :guild_leave event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_destroy event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_integrations_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_ban_add event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild, Discorb::User user) -> void } -> void | ( :guild_ban_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild, Discorb::User user) -> void } -> void | ( :channel_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Channel channel) -> void } -> void | ( :channel_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Channel before, Discorb::Channel after) -> void } -> void | ( :channel_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Channel channel) -> void } -> void | ( :webhooks_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::WebhooksUpdateEvent event) -> void } -> void | ( :thread_new event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :thread_join event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :thread_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :thread_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel before, Discorb::ThreadChannel after) -> void } -> void | ( :thread_members_update event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ThreadChannel thread, Array[Discorb::ThreadChannel::Member] added, Array[Discorb::ThreadChannel::Member] removed ) -> void } -> void | ( :thread_member_update event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ThreadChannel thread, Discorb::ThreadChannel::Member before, Discorb::ThreadChannel::Member after ) -> void } -> void | ( :integration_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Integration integration) -> void } -> void | ( :integration_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Integration after) -> void } -> void | ( :integration_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Integration integration) -> void } -> void | ( :message event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Message message) -> void } -> void | ( :message_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::MessageUpdateEvent event) -> void } -> void | ( :message_delete event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::Message message, Discorb::Channel channel, Discorb::Guild guild ) -> void } -> void | ( :message_delete_id event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::Snowflake message_id, Discorb::Channel channel, Discorb::Guild guild ) -> void } -> void | ( :message_delete_bulk event_name, ?id: Symbol?, **untyped metadata ) { ( Array[Discorb::Message | Discorb::Gateway::UnknownDeleteBulkMessage] messages ) -> void } -> void | ( :message_pin_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::MessagePinEvent event) -> void } -> void | ( :typing_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::TypingStartEvent event) -> void } -> void | ( :reaction_add event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionEvent event) -> void } -> void | ( :reaction_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionEvent event) -> void } -> void | ( :reaction_remove_all event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionRemoveAllEvent event) -> void } -> void | ( :reaction_remove_emoji event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionRemoveEmojiEvent event) -> void } -> void | ( :role_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :role_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role before, Discorb::Role after) -> void } -> void | ( :role_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :member_add event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Member member) -> void } -> void | ( :member_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Member before, Discorb::Member after) -> void } -> void | ( :member_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Member member) -> void } -> void | ( :role_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :role_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role before, Discorb::Role after) -> void } -> void | ( :role_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :invite_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Invite invite) -> void } -> void | ( :invite_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Invite invite) -> void } -> void | ( :interaction_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Interaction interaction) -> void } -> void | ( :application_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction interaction) -> void } -> void | ( :slash_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction::ChatInputCommand interaction) -> void } -> void | ( :message_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction::MessageMenuCommand interaction) -> void } -> void | ( :user_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction::UserMenuCommand interaction) -> void } -> void | ( :button_click event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::MessageComponentInteraction::Button interaction) -> void } -> void | ( :select_menu_select event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::MessageComponentInteraction::SelectMenu interaction) -> void } -> void | ( :form_submit event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ModalInteraction interaction) -> void } -> void | ( :scheduled_event_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :scheduled_event_cancel event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :scheduled_event_edit event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ScheduledEvent before, Discorb::ScheduledEvent after ) -> void } -> void | ( :scheduled_event_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :scheduled_event_end event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :auto_moderation_rule_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::AutoModRule rule) -> void } -> void | ( :auto_moderation_rule_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::AutoModRule rule) -> void } -> void | ( :auto_moderation_rule_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::AutoModRule rule) -> void } -> void | ( :auto_moderation_action_execution event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::AutoModerationActionExecutionEvent event) -> void } -> void | ( :guild_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :thread_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :scheduled_event_update event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ScheduledEvent before, Discorb::ScheduledEvent after ) -> void } -> void | ( :voice_channel_connect event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_channel_disconnect event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_channel_move event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_channel_update event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_mute_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_mute_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_mute_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_server_mute_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_mute_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_mute_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_self_mute_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_mute_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_mute_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_deaf_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_deaf_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_deaf_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_server_deaf_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_deaf_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_deaf_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_self_deaf_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_deaf_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_deaf_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_stream_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_stream_end event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_stream_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_video_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_video_end event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_video_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :stage_instance_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::StageInstance `instance`) -> void } -> void | ( :stage_instance_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::StageInstance `instance`) -> void } -> void | ( :stage_instance_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::StageInstance before, Discorb::StageInstance after) -> void } -> void | ( :voice_state_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( Symbol event_name, ?id: Symbol?, **untyped metadata ) { (*untyped) -> void } -> void # # Define a new once event. # # @param [Symbol] event_name The name of the event. # @param [Symbol] id The id of the event. Used to delete the event. # @param [Hash] metadata Other metadata. # @param [Proc] block The block to execute when the event is triggered. # # @return [Discorb::EventHandler] The event. def once_event: ( :event_receive event_name, ?id: Symbol?, **untyped metadata ) { (Symbol event_name, Discorb::json data) -> void } -> void | ( :ready event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :standby event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :resumed event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :error event_name, ?id: Symbol?, **untyped metadata ) { (Symbol event_name, Array[Object] args, Exception error) -> void } -> void | ( :setup event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :shard_standby event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Shard shard) -> void } -> void | ( :shard_resumed event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Shard shard) -> void } -> void | ( :guild_join event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_available event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild before, Discorb::Guild after) -> void } -> void | ( :guild_leave event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_destroy event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_integrations_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_ban_add event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild, Discorb::User user) -> void } -> void | ( :guild_ban_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild, Discorb::User user) -> void } -> void | ( :channel_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Channel channel) -> void } -> void | ( :channel_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Channel before, Discorb::Channel after) -> void } -> void | ( :channel_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Channel channel) -> void } -> void | ( :webhooks_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::WebhooksUpdateEvent event) -> void } -> void | ( :thread_new event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :thread_join event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :thread_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :thread_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel before, Discorb::ThreadChannel after) -> void } -> void | ( :thread_members_update event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ThreadChannel thread, Array[Discorb::ThreadChannel::Member] added, Array[Discorb::ThreadChannel::Member] removed ) -> void } -> void | ( :thread_member_update event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ThreadChannel thread, Discorb::ThreadChannel::Member before, Discorb::ThreadChannel::Member after ) -> void } -> void | ( :integration_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Integration integration) -> void } -> void | ( :integration_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Integration after) -> void } -> void | ( :integration_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Integration integration) -> void } -> void | ( :message event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Message message) -> void } -> void | ( :message_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::MessageUpdateEvent event) -> void } -> void | ( :message_delete event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::Message message, Discorb::Channel channel, Discorb::Guild guild ) -> void } -> void | ( :message_delete_id event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::Snowflake message_id, Discorb::Channel channel, Discorb::Guild guild ) -> void } -> void | ( :message_delete_bulk event_name, ?id: Symbol?, **untyped metadata ) { ( Array[Discorb::Message | Discorb::Gateway::UnknownDeleteBulkMessage] messages ) -> void } -> void | ( :message_pin_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::MessagePinEvent event) -> void } -> void | ( :typing_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::TypingStartEvent event) -> void } -> void | ( :reaction_add event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionEvent event) -> void } -> void | ( :reaction_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionEvent event) -> void } -> void | ( :reaction_remove_all event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionRemoveAllEvent event) -> void } -> void | ( :reaction_remove_emoji event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::ReactionRemoveEmojiEvent event) -> void } -> void | ( :role_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :role_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role before, Discorb::Role after) -> void } -> void | ( :role_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :member_add event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Member member) -> void } -> void | ( :member_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Member before, Discorb::Member after) -> void } -> void | ( :member_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Member member) -> void } -> void | ( :role_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :role_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role before, Discorb::Role after) -> void } -> void | ( :role_remove event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Role role) -> void } -> void | ( :invite_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Invite invite) -> void } -> void | ( :invite_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Invite invite) -> void } -> void | ( :interaction_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Interaction interaction) -> void } -> void | ( :application_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction interaction) -> void } -> void | ( :slash_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction::ChatInputCommand interaction) -> void } -> void | ( :message_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction::MessageMenuCommand interaction) -> void } -> void | ( :user_command event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::CommandInteraction::UserMenuCommand interaction) -> void } -> void | ( :button_click event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::MessageComponentInteraction::Button interaction) -> void } -> void | ( :select_menu_select event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::MessageComponentInteraction::SelectMenu interaction) -> void } -> void | ( :form_submit event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ModalInteraction interaction) -> void } -> void | ( :scheduled_event_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :scheduled_event_cancel event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :scheduled_event_edit event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ScheduledEvent before, Discorb::ScheduledEvent after ) -> void } -> void | ( :scheduled_event_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :scheduled_event_end event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ScheduledEvent event) -> void } -> void | ( :auto_moderation_rule_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::AutoModRule rule) -> void } -> void | ( :auto_moderation_rule_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::AutoModRule rule) -> void } -> void | ( :auto_moderation_rule_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::AutoModRule rule) -> void } -> void | ( :auto_moderation_action_execution event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Gateway::AutoModerationActionExecutionEvent event) -> void } -> void | ( :guild_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :guild_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::Guild guild) -> void } -> void | ( :thread_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::ThreadChannel thread) -> void } -> void | ( :scheduled_event_update event_name, ?id: Symbol?, **untyped metadata ) { ( Discorb::ScheduledEvent before, Discorb::ScheduledEvent after ) -> void } -> void | ( :voice_channel_connect event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_channel_disconnect event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_channel_move event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_channel_update event_name, ?id: Symbol?, **untyped metadata ) { -> void } -> void | ( :voice_mute_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_mute_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_mute_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_server_mute_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_mute_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_mute_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_self_mute_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_mute_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_mute_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_deaf_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_deaf_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_deaf_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_server_deaf_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_deaf_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_server_deaf_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_self_deaf_enable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_deaf_disable event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_self_deaf_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_stream_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_stream_end event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_stream_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :voice_video_start event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_video_end event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState state) -> void } -> void | ( :voice_video_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( :stage_instance_create event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::StageInstance `instance`) -> void } -> void | ( :stage_instance_delete event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::StageInstance `instance`) -> void } -> void | ( :stage_instance_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::StageInstance before, Discorb::StageInstance after) -> void } -> void | ( :voice_state_update event_name, ?id: Symbol?, **untyped metadata ) { (Discorb::VoiceState before, Discorb::VoiceState after) -> void } -> void | ( Symbol event_name, ?id: Symbol?, **untyped metadata ) { (*untyped) -> void } -> void def self.extended: (untyped klass) -> untyped # # Add new top-level command. # # @param [String, Hash{Symbol => String}] command_name Command name. # If hash is passed, it must be a pair of Language code and Command name, and `:default` key is required. # You can use `_` instead of `-` in language code. # @param [String, Hash{Symbol => String}] description Command description. # If hash is passed, it must be a pair of Language code and Command description, and `:default` key is required. # You can use `_` instead of `-` in language code. # @param [Hash{String => Hash{:description => String, :optional => Boolean, :type => Object}}] options # Command options. # The key is the option name, the value is a hash with the following keys: # # | Key | Type | Description | # | --- | --- | --- | # | `:name_localizations` | Hash{Symbol => String} | Localizations of option name. | # | `:description` | `String` \| `Hash{Symbol => String}` | # Description of the option. If hash is passed, it must be a pair of Language code and description, # and `:default` key is required. You can use `_` instead of `-` in language code. | # | `:required` | Boolean(true | false) | # Whether the argument is required. `optional` will be used if not specified. | # | `:optional` | Boolean(true | false) | # Whether the argument is optional. `required` will be used if not specified. | # | `:type` | `Object` | Type of the option. | # | `:choices` | `Hash{String => String, Integer, Float}` | Type of the option. | # | `:choices_localizations` | `Hash{String => Hash{Symbol => String}}` | # Localization of the choice. Key must be the name of a choice. | # | `:default` | `Object` | Default value of the option. | # | `:channel_types` | `Array>` | Type of the channel option. | # | `:autocomplete` | `Proc` | Autocomplete function. | # | `:range` | `Range` | Range of the option. Only valid for numeric options. (`:int`, `:float`) | # # @param [Array<#to_s>, false, nil] guild_ids # Guild IDs to set the command to. `false` to global command, `nil` to use default. # @param [Boolean] dm_permission Whether the command is available in DM. # @param [Discorb::Permission] default_permission The default permission of the command. # @param [Proc] block Command block. # # @return [Discorb::ApplicationCommand::Command::ChatInputCommand] Command object. # # @see file:docs/application_command.md#register-slash-command Application Comamnds: Register Slash Command # @see file:docs/cli/setup.md CLI: setup def slash: ( String | ::Hash[Symbol, String] command_name, String | ::Hash[Symbol, String] description, ?::Hash[String, String | Integer | Float] options, ?guild_ids: (::Array[untyped] | bool)?, ?dm_permission: bool, ?default_permission: Discorb::Permission? ) -> Discorb::ApplicationCommand::Command::ChatInputCommand # # Add new command with group. # # @param [String, Hash{Symbol => String}] command_name Command name. # @param [String, Hash{Symbol => String}] description Command description. # @param [Array<#to_s>, false, nil] guild_ids # Guild IDs to set the command to. `false` to global command, `nil` to use default. # @param [Boolean] dm_permission Whether the command is available in DM. # @param [Discorb::Permission] default_permission The default permission of the command. # # @yield Block to yield with the command. # @yieldparam [Discorb::ApplicationCommand::Command::GroupCommand] group Group command. # # @return [Discorb::ApplicationCommand::Command::GroupCommand] Command object. # # @see file:docs/application_command.md Application Commands # @see file:docs/cli/setup.md CLI: setup def slash_group: ( String | ::Hash[Symbol, String] command_name, String | ::Hash[Symbol, String] description, ?guild_ids: (::Array[untyped] | bool)?, ?dm_permission: bool, ?default_permission: Discorb::Permission? ) ?{ (Discorb::ApplicationCommand::Command::GroupCommand group) -> void } -> Discorb::ApplicationCommand::Command::GroupCommand # # Add message context menu command. # # @param [String, Hash{Symbol => String}] command_name Command name. # @param [Array<#to_s>, false, nil] guild_ids # Guild IDs to set the command to. `false` to global command, `nil` to use default. # @param [Boolean] dm_permission Whether the command is available in DM. # @param [Discorb::Permission] default_permission The default permission of the command. # @param [Proc] block Command block. # @yield [interaction, message] Block to execute. # @yieldparam [Discorb::CommandInteraction::UserMenuCommand] interaction Interaction object. # @yieldparam [Discorb::Message] message Message object. # # @return [Discorb::ApplicationCommand::Command] Command object. def message_command: ( String | ::Hash[Symbol, String] command_name, ?guild_ids: (::Array[untyped] | bool)?, ?dm_permission: bool, ?default_permission: Discorb::Permission? ) ?{ ( Discorb::CommandInteraction::UserMenuCommand interaction, Discorb::Message message ) -> void } -> Discorb::ApplicationCommand::Command # # Add user context menu command. # # @param [String, Hash{Symbol => String}] command_name Command name. # @param [Array<#to_s>, false, nil] guild_ids # Guild IDs to set the command to. `false` to global command, `nil` to use default. # @param [Boolean] dm_permission Whether the command is available in DM. # @param [Discorb::Permission] default_permission The default permission of the command. # @param [Proc] block Command block. # @yield [interaction, user] Block to execute. # @yieldparam [Discorb::CommandInteraction::UserMenuCommand] interaction Interaction object. # @yieldparam [Discorb::User] user User object. # # @return [Discorb::ApplicationCommand::Command] Command object. def user_command: ( String | ::Hash[Symbol, String] command_name, ?guild_ids: (::Array[untyped] | bool)?, ?dm_permission: bool, ?default_permission: Discorb::Permission? ) ?{ ( Discorb::CommandInteraction::UserMenuCommand interaction, Discorb::User user ) -> void } -> Discorb::ApplicationCommand::Command # # Setup commands. # @async # @see Client#initialize # # @param [String] token Bot token. # @param [Array<#to_s>, false, nil] guild_ids # Guild IDs to use as default. If `false` is given, it will be global command. # # @note `token` parameter only required if you don't run client. def setup_commands: ( ?String? token, ?guild_ids: (::Array[untyped] | bool)? ) -> untyped # # Claer commands in specified guilds. # @async # @see Client#initialize # # @param [String] token Bot token. # @param [Array<#to_s>, false, nil] guild_ids Guild IDs to clear. # # @note `token` parameter only required if you don't run client. def clear_commands: ( String token, (::Array[untyped] | bool)? guild_ids ) -> untyped # @return [Hash{Symbol => Array}] The events of the extension. attr_reader events: ::Hash[Symbol, [Symbol?, Hash[untyped, untyped], ^( *untyped ) -> void]] # @return [Array] The commands of the extension. attr_reader commands: ::Array[Discorb::ApplicationCommand::Command] # @private attr_reader callable_commands: untyped end end end