Class: Discorb::Intents
- Inherits:
-
Object
- Object
- Discorb::Intents
- Defined in:
- lib/discorb/intents.rb
Overview
Represents intents.
Class Method Summary collapse
-
.all -> Object
Create new intent object with all intents.
-
.from_value(value) -> Object
Create new intent object from raw value.
-
.none -> Object
Create new intent object with no intents.
Instance Method Summary collapse
-
#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: nil, scheduled_events: true) -> Intents
constructor
Create new intents object with default (no members and presence) intents.
- #inspect -> Object
-
#method_missing(name, args = nil) -> Object
Returns the value of the flag.
- #respond_to_missing?(name, include_private) -> Boolean
- #to_h -> Object
-
#value -> Integer
Returns value of the intent.
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: nil, scheduled_events: true) -> Intents
You must enable privileged intents to use members
and/or presences
intents.
Message Content Intent is not required to use message_content
intents for now, this will be required in April 30, 2022. Learn More. You should specify message_content
intent for preventing unexpected changes in the future.
Create new intents object with default (no members and presence) intents.
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 |
# 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: nil, scheduled_events: true) @raw_value = { guilds: guilds, members: members, bans: bans, emojis: emojis, integrations: integrations, webhooks: webhooks, invites: invites, voice_states: voice_states, presences: presences, messages: , reactions: reactions, typing: typing, dm_messages: , dm_reactions: dm_reactions, dm_typing: dm_typing, message_content: , scheduled_events: scheduled_events, } 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.
94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/discorb/intents.rb', line 94 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" unless args.is_a?(TrueClass) || args.is_a?(FalseClass) @raw_value[name[0..-2].to_sym] = args else super end end |
Class Method Details
.all -> Object
Create new intent object with all intents.
144 145 146 |
# File 'lib/discorb/intents.rb', line 144 def all from_value(INTENT_BITS.values.reduce(:+)) end |
.from_value(value) -> Object
Create new intent object from raw value.
131 132 133 134 135 136 137 |
# File 'lib/discorb/intents.rb', line 131 def from_value(value) raw_value = {} INTENT_BITS.each do |intent, bit| raw_value[intent] = value & bit != 0 end new(**raw_value) end |
.none -> Object
Create new intent object with no intents.
149 150 151 |
# File 'lib/discorb/intents.rb', line 149 def none from_value(0) end |
Instance Method Details
#inspect -> Object
120 121 122 |
# File 'lib/discorb/intents.rb', line 120 def inspect "#<#{self.class} value=#{value}>" end |
#respond_to_missing?(name, include_private) -> Boolean
106 107 108 |
# File 'lib/discorb/intents.rb', line 106 def respond_to_missing?(name, include_private) @raw_value.key?(name) ? true : super end |
#to_h -> Object
124 125 126 |
# File 'lib/discorb/intents.rb', line 124 def to_h @raw_value end |
#value -> Integer
Returns value of the intent.
112 113 114 115 116 117 118 |
# File 'lib/discorb/intents.rb', line 112 def value res = 0 INTENT_BITS.each do |intent, bit| res += bit if @raw_value[intent] end res end |