discorb 0.12.4 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +10 -0
- data/docs/application_command.md +10 -8
- data/docs/events.md +53 -1
- data/lib/discorb/application.rb +31 -1
- data/lib/discorb/audit_logs.rb +28 -16
- data/lib/discorb/channel.rb +12 -5
- data/lib/discorb/client.rb +4 -4
- data/lib/discorb/common.rb +26 -1
- data/lib/discorb/components.rb +12 -0
- data/lib/discorb/dictionary.rb +1 -1
- data/lib/discorb/embed.rb +4 -0
- data/lib/discorb/emoji.rb +4 -0
- data/lib/discorb/event.rb +265 -24
- data/lib/discorb/event_handler.rb +39 -0
- data/lib/discorb/extension.rb +4 -4
- data/lib/discorb/file.rb +4 -0
- data/lib/discorb/flag.rb +4 -0
- data/lib/discorb/gateway.rb +56 -1
- data/lib/discorb/gateway_requests.rb +4 -0
- data/lib/discorb/guild.rb +113 -0
- data/lib/discorb/image.rb +7 -5
- data/lib/discorb/intents.rb +8 -3
- data/lib/discorb/log.rb +4 -0
- data/lib/discorb/member.rb +1 -1
- data/lib/discorb/message.rb +4 -0
- data/lib/discorb/permission.rb +4 -0
- data/lib/discorb/rate_limit.rb +6 -2
- data/lib/discorb/sticker.rb +9 -0
- data/lib/discorb/user.rb +1 -0
- data/lib/discorb.rb +1 -1
- data/po/yard.pot +4 -4
- data/sig/discorb.rbs +7 -7
- metadata +3 -2
data/lib/discorb/intents.rb
CHANGED
@@ -19,6 +19,7 @@ module Discorb
|
|
19
19
|
dm_messages: 1 << 12,
|
20
20
|
dm_reactions: 1 << 13,
|
21
21
|
dm_typing: 1 << 14,
|
22
|
+
scheduled_events: 1 << 16,
|
22
23
|
}.freeze
|
23
24
|
|
24
25
|
#
|
@@ -38,6 +39,7 @@ module Discorb
|
|
38
39
|
# @param dm_messages [Boolean] Whether dm messages related events are enabled.
|
39
40
|
# @param dm_reactions [Boolean] Whether dm reactions related events are enabled.
|
40
41
|
# @param dm_typing [Boolean] Whether dm typing related events are enabled.
|
42
|
+
# @param scheduled_events [Boolean] Whether events related scheduled events are enabled.
|
41
43
|
#
|
42
44
|
# @note You must enable privileged intents to use `members` and/or `presences` intents.
|
43
45
|
#
|
@@ -55,7 +57,8 @@ module Discorb
|
|
55
57
|
typing: true,
|
56
58
|
dm_messages: true,
|
57
59
|
dm_reactions: true,
|
58
|
-
dm_typing: true
|
60
|
+
dm_typing: true,
|
61
|
+
scheduled_events: true)
|
59
62
|
@raw_value = {
|
60
63
|
guilds: guilds,
|
61
64
|
members: members,
|
@@ -72,6 +75,7 @@ module Discorb
|
|
72
75
|
dm_messages: dm_messages,
|
73
76
|
dm_reactions: dm_reactions,
|
74
77
|
dm_typing: dm_typing,
|
78
|
+
scheduled_events: scheduled_events,
|
75
79
|
}
|
76
80
|
end
|
77
81
|
|
@@ -124,13 +128,14 @@ module Discorb
|
|
124
128
|
end
|
125
129
|
|
126
130
|
# Create new intent object with default values.
|
131
|
+
# This will return intents without members and presence.
|
127
132
|
def default
|
128
|
-
from_value(
|
133
|
+
from_value(@intent_bits.values.reduce(:+) - @intent_bits[:members] - @intent_bits[:presences])
|
129
134
|
end
|
130
135
|
|
131
136
|
# Create new intent object with all intents.
|
132
137
|
def all
|
133
|
-
from_value(
|
138
|
+
from_value(@intent_bits.values.reduce(:+))
|
134
139
|
end
|
135
140
|
|
136
141
|
# Create new intent object with no intents.
|
data/lib/discorb/log.rb
CHANGED
data/lib/discorb/member.rb
CHANGED
@@ -233,7 +233,7 @@ module Discorb
|
|
233
233
|
@joined_at = member_data[:joined_at] && Time.iso8601(member_data[:joined_at])
|
234
234
|
@hoisted_role_id = member_data[:hoisted_role]
|
235
235
|
@deaf = member_data[:deaf]
|
236
|
-
@custom_avatar = member_data[:avatar] && Asset.new(member_data[:avatar])
|
236
|
+
@custom_avatar = member_data[:avatar] && Asset.new(self, member_data[:avatar])
|
237
237
|
super(user_data)
|
238
238
|
@display_avatar = @avatar || @custom_avatar
|
239
239
|
@client.guilds[@guild_id].members[@id] = self unless @guild_id.nil? || @client.guilds[@guild_id].nil?
|
data/lib/discorb/message.rb
CHANGED
data/lib/discorb/permission.rb
CHANGED
data/lib/discorb/rate_limit.rb
CHANGED
@@ -14,6 +14,10 @@ module Discorb
|
|
14
14
|
@global = false
|
15
15
|
end
|
16
16
|
|
17
|
+
def inspect
|
18
|
+
"#<#{self.class}>"
|
19
|
+
end
|
20
|
+
|
17
21
|
#
|
18
22
|
# Wait for the rate limit to reset.
|
19
23
|
#
|
@@ -23,8 +27,8 @@ module Discorb
|
|
23
27
|
def wait(method, path)
|
24
28
|
return if path.start_with?("https://")
|
25
29
|
|
26
|
-
if @global
|
27
|
-
time =
|
30
|
+
if @global && @global > Time.now.to_f
|
31
|
+
time = @global - Time.now.to_f
|
28
32
|
@client.log.info("global rate limit reached, waiting #{time} seconds")
|
29
33
|
sleep(time)
|
30
34
|
@global = false
|
data/lib/discorb/sticker.rb
CHANGED
@@ -51,6 +51,15 @@ module Discorb
|
|
51
51
|
# @!attribute [r] guild
|
52
52
|
# @macro client_cache
|
53
53
|
# @return [Discorb::Guild] The guild the sticker is in.
|
54
|
+
@sticker_type = {
|
55
|
+
1 => :official,
|
56
|
+
2 => :guild,
|
57
|
+
}.freeze
|
58
|
+
@sticker_format = {
|
59
|
+
1 => :png,
|
60
|
+
2 => :apng,
|
61
|
+
3 => :lottie,
|
62
|
+
}
|
54
63
|
|
55
64
|
def guild
|
56
65
|
@client.guilds[@guild_id]
|
data/lib/discorb/user.rb
CHANGED
data/lib/discorb.rb
CHANGED
@@ -41,7 +41,7 @@ end
|
|
41
41
|
|
42
42
|
require_order = %w[common flag dictionary error rate_limit http intents emoji_table modules] +
|
43
43
|
%w[user member guild emoji channel embed message] +
|
44
|
-
%w[application audit_logs color components event] +
|
44
|
+
%w[application audit_logs color components event event_handler] +
|
45
45
|
%w[file guild_template image integration interaction invite log permission] +
|
46
46
|
%w[presence reaction role sticker utils voice_state webhook] +
|
47
47
|
%w[gateway_requests gateway app_command] +
|
data/po/yard.pot
CHANGED
@@ -4784,7 +4784,7 @@ msgstr ""
|
|
4784
4784
|
msgid "The block to execute when the event is triggered."
|
4785
4785
|
msgstr ""
|
4786
4786
|
|
4787
|
-
# @return [Discorb::
|
4787
|
+
# @return [Discorb::EventHandler]
|
4788
4788
|
#: ../lib/discorb/client.rb:104
|
4789
4789
|
#: ../lib/discorb/client.rb:118
|
4790
4790
|
#: ../lib/discorb/extension.rb:24
|
@@ -7040,7 +7040,7 @@ msgstr ""
|
|
7040
7040
|
msgid "a new instance of NotSupportedWarning"
|
7041
7041
|
msgstr ""
|
7042
7042
|
|
7043
|
-
# Discorb::
|
7043
|
+
# Discorb::EventHandler
|
7044
7044
|
#: ../lib/discorb/event.rb:5
|
7045
7045
|
msgid "Represents a event.\n"
|
7046
7046
|
"This class shouldn't be instantiated directly.\n"
|
@@ -7073,7 +7073,7 @@ msgstr ""
|
|
7073
7073
|
msgid "a new instance of Event"
|
7074
7074
|
msgstr ""
|
7075
7075
|
|
7076
|
-
# Discorb::
|
7076
|
+
# Discorb::EventHandler#call
|
7077
7077
|
#: ../lib/discorb/event.rb:29
|
7078
7078
|
msgid "Calls the block associated with the event."
|
7079
7079
|
msgstr ""
|
@@ -7135,7 +7135,7 @@ msgstr ""
|
|
7135
7135
|
msgid "Define a new once event."
|
7136
7136
|
msgstr ""
|
7137
7137
|
|
7138
|
-
# @return [Hash{Symbol => Array<Discorb::
|
7138
|
+
# @return [Hash{Symbol => Array<Discorb::EventHandler>}]
|
7139
7139
|
#: ../lib/discorb/extension.rb:48
|
7140
7140
|
msgid "The events of the extension."
|
7141
7141
|
msgstr ""
|
data/sig/discorb.rbs
CHANGED
@@ -2183,12 +2183,12 @@ module Discorb
|
|
2183
2183
|
# _@return_ — The event.
|
2184
2184
|
#
|
2185
2185
|
# _@see_ `file:docs/Events.md`
|
2186
|
-
def on: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::
|
2186
|
+
def on: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::EventHandler
|
2187
2187
|
|
2188
2188
|
# Almost same as {#on}, but only triggers the event once.
|
2189
2189
|
#
|
2190
2190
|
# _@return_ — The event.
|
2191
|
-
def once: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::
|
2191
|
+
def once: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::EventHandler
|
2192
2192
|
|
2193
2193
|
# Remove event by ID.
|
2194
2194
|
#
|
@@ -3981,7 +3981,7 @@ module Discorb
|
|
3981
3981
|
module Command
|
3982
3982
|
#
|
3983
3983
|
# Module to handle commands.
|
3984
|
-
module
|
3984
|
+
module EventHandler
|
3985
3985
|
# Add new top-level command.
|
3986
3986
|
#
|
3987
3987
|
# _@param_ `command_name` — Command name.
|
@@ -4548,7 +4548,7 @@ module Discorb
|
|
4548
4548
|
|
4549
4549
|
#
|
4550
4550
|
# A module to handle gateway events.
|
4551
|
-
module
|
4551
|
+
module EventHandler
|
4552
4552
|
def connect_gateway: (untyped first) -> untyped
|
4553
4553
|
|
4554
4554
|
def send_gateway: (untyped opcode, **untyped value) -> untyped
|
@@ -5798,7 +5798,7 @@ module Discorb
|
|
5798
5798
|
# _@param_ `block` — The block to execute when the event is triggered.
|
5799
5799
|
#
|
5800
5800
|
# _@return_ — The event.
|
5801
|
-
def event: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::
|
5801
|
+
def event: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::EventHandler
|
5802
5802
|
|
5803
5803
|
# Define a new once event.
|
5804
5804
|
#
|
@@ -5811,7 +5811,7 @@ module Discorb
|
|
5811
5811
|
# _@param_ `block` — The block to execute when the event is triggered.
|
5812
5812
|
#
|
5813
5813
|
# _@return_ — The event.
|
5814
|
-
def once_event: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::
|
5814
|
+
def once_event: (Symbol event_name, ?id: Symbol?, **::Hash[untyped, untyped] metadata) -> Discorb::EventHandler
|
5815
5815
|
|
5816
5816
|
def self.extended: (untyped obj) -> untyped
|
5817
5817
|
|
@@ -5886,7 +5886,7 @@ module Discorb
|
|
5886
5886
|
def setup_commands: (?String? token, ?guild_ids: (::Array[untyped] | bool)?) -> untyped
|
5887
5887
|
|
5888
5888
|
# _@return_ — The events of the extension.
|
5889
|
-
attr_reader events: ::Hash[Symbol, ::Array[Discorb::
|
5889
|
+
attr_reader events: ::Hash[Symbol, ::Array[Discorb::EventHandler]]
|
5890
5890
|
|
5891
5891
|
# _@return_ — The commands of the extension.
|
5892
5892
|
attr_reader commands: ::Array[Discorb::ApplicationCommand::Command]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: discorb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sevenc-nanashi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- lib/discorb/emoji_table.rb
|
145
145
|
- lib/discorb/error.rb
|
146
146
|
- lib/discorb/event.rb
|
147
|
+
- lib/discorb/event_handler.rb
|
147
148
|
- lib/discorb/exe/about.rb
|
148
149
|
- lib/discorb/exe/irb.rb
|
149
150
|
- lib/discorb/exe/new.rb
|