Class: Discorb::Intents

Inherits:
Object
  • Object
show all
Defined in:
lib/discorb/intents.rb

Overview

Represents intents.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#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, message_content: false, scheduled_events: true, automod_configuration: true, automod_execution: true) -> Intents

Note:

You must enable privileged intents to use members presences and/or message_content intents.

Create new intents object with default (no members and presence) intents.

Parameters:

  • guilds (Boolean) (defaults to: true)

    Whether guild related events are enabled.

  • members (Boolean) (defaults to: false)

    Whether guild members related events are enabled.

  • bans (Boolean) (defaults to: true)

    Whether guild ban related events are enabled.

  • emojis (Boolean) (defaults to: true)

    Whether guild emojis related events are enabled.

  • integrations (Boolean) (defaults to: true)

    Whether guild integration related events are enabled.

  • webhooks (Boolean) (defaults to: true)

    Whether guild webhooks related events are enabled.

  • invites (Boolean) (defaults to: true)

    Whether guild invite related events are enabled.

  • voice_states (Boolean) (defaults to: true)

    Whether guild voice state related events are enabled.

  • presences (Boolean) (defaults to: false)

    Whether guild presences related events are enabled.

  • messages (Boolean) (defaults to: true)

    Whether guild messages related events are enabled.

  • reactions (Boolean) (defaults to: true)

    Whether guild reaction related events are enabled.

  • dm_messages (Boolean) (defaults to: true)

    Whether dm messages related events are enabled.

  • dm_reactions (Boolean) (defaults to: true)

    Whether dm reactions related events are enabled.

  • dm_typing (Boolean) (defaults to: true)

    Whether dm typing related events are enabled.

  • message_content (Boolean) (defaults to: false)

    Whether message content will be sent with events.

  • scheduled_events (Boolean) (defaults to: true)

    Whether events related scheduled events are enabled.

  • automod_configuration (Boolean) (defaults to: true)

    Whether automod configuration related events are enabled.

  • automod_execution (Boolean) (defaults to: true)

    Whether automod execution related events are enabled.

[View source]

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/discorb/intents.rb', line 53

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,
  message_content: false,
  scheduled_events: true,
  automod_configuration: true,
  automod_execution: 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,
    message_content: message_content,
    scheduled_events: scheduled_events,
    automod_configuration: automod_configuration,
    automod_execution: automod_execution
  }
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, args = nil) -> Object

Returns the value of the flag.

[View source]

100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/discorb/intents.rb', line 100

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)
    unless args.is_a?(TrueClass) || args.is_a?(FalseClass)
      raise ArgumentError, "true/false expected"
    end

    @raw_value[name[0..-2].to_sym] = args
  else
    super
  end
end

Class Method Details

.all -> Object

Create new intent object with all intents.

[View source]

148
149
150
# File 'lib/discorb/intents.rb', line 148

def all
  from_value(INTENT_BITS.values.reduce(:+))
end

.from_value(value) -> Object

Create new intent object from raw value.

Parameters:

  • value (Integer)

    The value of the intent.

[View source]

137
138
139
140
141
# File 'lib/discorb/intents.rb', line 137

def from_value(value)
  raw_value = {}
  INTENT_BITS.each { |intent, bit| raw_value[intent] = value & bit != 0 }
  new(**raw_value)
end

.none -> Object

Create new intent object with no intents.

[View source]

153
154
155
# File 'lib/discorb/intents.rb', line 153

def none
  from_value(0)
end

Instance Method Details

#inspect -> Object

[View source]

126
127
128
# File 'lib/discorb/intents.rb', line 126

def inspect
  "#<#{self.class} value=#{value}>"
end

#respond_to_missing?(name, include_private) -> Boolean

Returns:

  • (Boolean)
[View source]

114
115
116
# File 'lib/discorb/intents.rb', line 114

def respond_to_missing?(name, include_private)
  @raw_value.key?(name) ? true : super
end

#to_h -> Object

[View source]

130
131
132
# File 'lib/discorb/intents.rb', line 130

def to_h
  @raw_value
end

#value -> Integer

Returns value of the intent.

Returns:

  • (Integer)

    The value of the intent.

[View source]

120
121
122
123
124
# File 'lib/discorb/intents.rb', line 120

def value
  res = 0
  INTENT_BITS.each { |intent, bit| res += bit if @raw_value[intent] }
  res
end