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: false, scheduled_events: true, automod_configuration: true, automod_execution: 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: 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.
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: , reactions: reactions, typing: typing, dm_messages: , dm_reactions: dm_reactions, dm_typing: dm_typing, 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.
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.
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.
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.
153 154 155 |
# File 'lib/discorb/intents.rb', line 153 def none from_value(0) end |
Instance Method Details
#inspect -> Object
126 127 128 |
# File 'lib/discorb/intents.rb', line 126 def inspect "#<#{self.class} value=#{value}>" end |
#respond_to_missing?(name, include_private) -> Boolean
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
130 131 132 |
# File 'lib/discorb/intents.rb', line 130 def to_h @raw_value end |
#value -> Integer
Returns value of the intent.
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 |