class Discorb::Intents

Represents intents.

Attributes

intent_bits[R]

Public Class Methods

all() click to toggle source

Create new intent object with all intents.

# File lib/discorb/intents.rb, line 128
def all
  from_value(32_767)
end
default() click to toggle source

Create new intent object with default values.

# File lib/discorb/intents.rb, line 123
def default
  from_value(32_509)
end
from_value(value) click to toggle source

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
new(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) click to toggle source

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
none() click to toggle source

Create new intent object with no intents.

# File lib/discorb/intents.rb, line 133
def none
  from_value(0)
end

Public Instance Methods

inspect() click to toggle source
# File lib/discorb/intents.rb, line 107
def inspect
  "#<#{self.class} value=#{value}>"
end
method_missing(name, args = nil) click to toggle source

(see Flag#method_missing)

Calls superclass method
# 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
respond_to_missing?(sym, include_private) click to toggle source
Calls superclass method
# File lib/discorb/intents.rb, line 93
def respond_to_missing?(sym, include_private)
  @raw_value.key?(name) ? true : super
end
value() click to toggle source

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