discorb 0.12.4 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|