class Discorb::Intents
Represents intents.
Attributes
Public Class Methods
Create new intent object with all intents.
# File lib/discorb/intents.rb, line 128 def all from_value(32_767) end
Create new intent object with default values.
# File lib/discorb/intents.rb, line 123 def default from_value(32_509) end
Create new intent object from raw value. @param value [Integer] The value of the intent.
# File lib/discorb/intents.rb, line 114 def from_value(value) raw_value = {} @intent_bits.each do |intent, bit| raw_value[intent] = value & bit != 0 end new(**raw_value) end
Create new intents object with default (no members and presence) intents.
@param guilds [Boolean] Whether guild related events are enabled. @param members [Boolean] Whether guild members related events are enabled.
@note You must enable members intent on developers portal.
@param bans [Boolean] Whether guild ban related events are enabled. @param emojis [Boolean] Whether guild emojis related events are enabled. @param integrations [Boolean] Whether guild integration related events are enabled. @param webhooks [Boolean] Whether guild webhooks related events are enabled. @param invites [Boolean] Whether guild invite related events are enabled. @param voice_states [Boolean] Whether guild voice state related events are enabled. @param presences [Boolean] Whether guild presences related events are enabled.
@note You must enable members intent on developers portal.
@param messages [Boolean] Whether guild messages related events are enabled. @param reactions [Boolean] Whether guild reaction related events are enabled. @param dm_messages [Boolean] Whether dm messages related events are enabled. @param dm_reactions [Boolean] Whether dm reactions related events are enabled. @param dm_typing [Boolean] Whether dm typing related events are enabled.
# File lib/discorb/intents.rb, line 44 def initialize(guilds: true, members: false, bans: true, emojis: true, integrations: true, webhooks: true, invites: true, voice_states: true, presences: false, messages: true, reactions: true, typing: true, dm_messages: true, dm_reactions: true, dm_typing: true) @raw_value = { guilds: guilds, members: members, bans: bans, emojis: emojis, integrations: integrations, webhooks: webhooks, invites: invites, voice_states: voice_states, presences: presences, messages: messages, reactions: reactions, typing: typing, dm_messages: dm_messages, dm_reactions: dm_reactions, dm_typing: dm_typing, } end
Create new intent object with no intents.
# File lib/discorb/intents.rb, line 133 def none from_value(0) end
Public Instance Methods
# File lib/discorb/intents.rb, line 107 def inspect "#<#{self.class} value=#{value}>" end
(see Flag#method_missing
)
# File lib/discorb/intents.rb, line 81 def method_missing(name, args = nil) if @raw_value.key?(name) @raw_value[name] elsif name.end_with?("=") && @raw_value.key?(name[0..-2].to_sym) raise ArgumentError, "true/false expected" if (!args.is_a? TrueClass) || args.is_a?(FalseClass) @raw_value[name[0..-2].to_sym] = args else super end end
# File lib/discorb/intents.rb, line 93 def respond_to_missing?(sym, include_private) @raw_value.key?(name) ? true : super end
Returns value of the intent. @return [Integer] The value of the intent.
# File lib/discorb/intents.rb, line 99 def value res = 0 self.class.intent_bits.each do |intent, bit| res += bit if @raw_value[intent] end res end