sig/discorb/permissions.rbs
module Discorb
#
# Represents a permission per guild.
# ## Flag fields
#
# | Field | Value |
# |-------|-------|
# |`1 << 0`|`:create_instant_invite`|
# |`1 << 1`|`:kick_members`|
# |`1 << 2`|`:ban_members`|
# |`1 << 3`|`:administrator`|
# |`1 << 4`|`:manage_channels`|
# |`1 << 5`|`:manage_guild`|
# |`1 << 6`|`:add_reactions`|
# |`1 << 7`|`:view_audit_log`|
# |`1 << 8`|`:priority_speaker`|
# |`1 << 9`|`:stream`|
# |`1 << 10`|`:view_channel`|
# |`1 << 11`|`:send_messages`|
# |`1 << 12`|`:send_tts_messages`|
# |`1 << 13`|`:manage_messages`|
# |`1 << 14`|`:embed_links`|
# |`1 << 15`|`:attach_files`|
# |`1 << 16`|`:read_message_history`|
# |`1 << 17`|`:mention_everyone`|
# |`1 << 18`|`:use_external_emojis`|
# |`1 << 19`|`:view_guild_insights`|
# |`1 << 20`|`:connect`|
# |`1 << 21`|`:speak`|
# |`1 << 22`|`:mute_members`|
# |`1 << 23`|`:deafen_members`|
# |`1 << 24`|`:move_members`|
# |`1 << 25`|`:use_vad`|
# |`1 << 26`|`:change_nickname`|
# |`1 << 27`|`:manage_nicknames`|
# |`1 << 28`|`:manage_roles`|
# |`1 << 29`|`:manage_webhooks`|
# |`1 << 30`|`:manage_emojis`|
# |`1 << 31`|`:use_slash_commands`|
# |`1 << 32`|`:request_to_speak`|
# |`1 << 34`|`:manage_threads`|
# |`1 << 35`|`:use_public_threads`|
# |`1 << 36`|`:use_private_threads`|
class Permission < Discorb::Flag
attr_accessor create_instant_invite: bool
attr_accessor kick_members: bool
attr_accessor ban_members: bool
attr_accessor administrator: bool
attr_accessor manage_channels: bool
attr_accessor manage_guild: bool
attr_accessor add_reactions: bool
attr_accessor view_audit_log: bool
attr_accessor priority_speaker: bool
attr_accessor stream: bool
attr_accessor view_channel: bool
attr_accessor send_messages: bool
attr_accessor send_tts_messages: bool
attr_accessor manage_messages: bool
attr_accessor embed_links: bool
attr_accessor attach_files: bool
attr_accessor read_message_history: bool
attr_accessor mention_everyone: bool
attr_accessor use_external_emojis: bool
attr_accessor view_guild_insights: bool
attr_accessor connect: bool
attr_accessor speak: bool
attr_accessor mute_members: bool
attr_accessor deafen_members: bool
attr_accessor move_members: bool
attr_accessor use_vad: bool
attr_accessor change_nickname: bool
attr_accessor manage_nicknames: bool
attr_accessor manage_roles: bool
attr_accessor manage_webhooks: bool
attr_accessor manage_emojis: bool
attr_accessor use_slash_commands: bool
attr_accessor request_to_speak: bool
attr_accessor manage_threads: bool
attr_accessor use_public_threads: bool
attr_accessor use_private_threads: bool
end
#
# Represents a permission per channel.
class PermissionOverwrite
#
# Initializes a new PermissionOverwrite.
# @private
#
# @param allow [Integer] The allowed permissions.
# @param deny [Integer] The denied permissions.
def initialize: (Integer allow, Integer deny) -> void
%a{pure}
def allow: -> Discorb::Permission
%a{pure}
def deny: -> Discorb::Permission
%a{pure}
def allow_value: -> Integer
%a{pure}
def deny_value: -> Integer
%a{pure}
def inspect: -> String
#
# Converts the permission overwrite to a hash.
#
# @return [Hash] The permission overwrite as a hash.
%a{pure}
def to_hash: -> Hash[Symbol, bool]
#
# Union of the permission overwrites.
#
# @param [Discorb::PermissionOverwrite] other The other permission overwrite.
#
# @return [Discorb::PermissionOverwrite] The union of the permission overwrites.
def +: (Discorb::PermissionOverwrite other) -> Discorb::PermissionOverwrite
#
# Returns whether overwrite of the given field.
#
# @param [Symbol] field The field to check.
#
# @return [true, false, nil] Whether the field is allowed, denied or not set.
%a{pure}
def []: (Symbol field) -> bool?
#
# Sets the given field to the given value.
#
# @param [Symbol] key The field to set.
# @param [Boolean] bool The value to set.
def []=: (Symbol key, bool `bool`) -> untyped
#
# Returns the value of the flag.
def method_missing: (untyped method, ?untyped `bool`) -> untyped
def respond_to_missing?: (untyped method, untyped _arg) -> bool
#
# Initializes a permission overwrite from a hash.
#
# @param [Hash] hash The hash to initialize the permission overwrite from.
#
# @return [Discorb::PermissionOverwrite] The permission overwrite.
def self.from_hash: (
::Hash[Symbol, bool] hash
) -> Discorb::PermissionOverwrite
end
end