rubycord 1.0.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 +7 -0
- data/lib/rubycord/allowed_mentions.rb +34 -0
- data/lib/rubycord/api/application.rb +200 -0
- data/lib/rubycord/api/channel.rb +597 -0
- data/lib/rubycord/api/interaction.rb +52 -0
- data/lib/rubycord/api/invite.rb +42 -0
- data/lib/rubycord/api/server.rb +557 -0
- data/lib/rubycord/api/user.rb +153 -0
- data/lib/rubycord/api/webhook.rb +138 -0
- data/lib/rubycord/api.rb +356 -0
- data/lib/rubycord/await.rb +49 -0
- data/lib/rubycord/bot.rb +1757 -0
- data/lib/rubycord/cache.rb +259 -0
- data/lib/rubycord/colour_rgb.rb +41 -0
- data/lib/rubycord/commands/command_bot.rb +519 -0
- data/lib/rubycord/commands/container.rb +110 -0
- data/lib/rubycord/commands/events.rb +9 -0
- data/lib/rubycord/commands/parser.rb +325 -0
- data/lib/rubycord/commands/rate_limiter.rb +142 -0
- data/lib/rubycord/container.rb +753 -0
- data/lib/rubycord/data/activity.rb +269 -0
- data/lib/rubycord/data/application.rb +48 -0
- data/lib/rubycord/data/attachment.rb +109 -0
- data/lib/rubycord/data/audit_logs.rb +343 -0
- data/lib/rubycord/data/channel.rb +996 -0
- data/lib/rubycord/data/component.rb +227 -0
- data/lib/rubycord/data/embed.rb +249 -0
- data/lib/rubycord/data/emoji.rb +80 -0
- data/lib/rubycord/data/integration.rb +120 -0
- data/lib/rubycord/data/interaction.rb +798 -0
- data/lib/rubycord/data/invite.rb +135 -0
- data/lib/rubycord/data/member.rb +370 -0
- data/lib/rubycord/data/message.rb +412 -0
- data/lib/rubycord/data/overwrite.rb +106 -0
- data/lib/rubycord/data/profile.rb +89 -0
- data/lib/rubycord/data/reaction.rb +31 -0
- data/lib/rubycord/data/recipient.rb +32 -0
- data/lib/rubycord/data/role.rb +246 -0
- data/lib/rubycord/data/server.rb +1002 -0
- data/lib/rubycord/data/user.rb +261 -0
- data/lib/rubycord/data/voice_region.rb +43 -0
- data/lib/rubycord/data/voice_state.rb +39 -0
- data/lib/rubycord/data/webhook.rb +232 -0
- data/lib/rubycord/data.rb +40 -0
- data/lib/rubycord/errors.rb +737 -0
- data/lib/rubycord/events/await.rb +46 -0
- data/lib/rubycord/events/bans.rb +58 -0
- data/lib/rubycord/events/channels.rb +186 -0
- data/lib/rubycord/events/generic.rb +126 -0
- data/lib/rubycord/events/guilds.rb +191 -0
- data/lib/rubycord/events/interactions.rb +480 -0
- data/lib/rubycord/events/invites.rb +123 -0
- data/lib/rubycord/events/lifetime.rb +29 -0
- data/lib/rubycord/events/members.rb +91 -0
- data/lib/rubycord/events/message.rb +337 -0
- data/lib/rubycord/events/presence.rb +127 -0
- data/lib/rubycord/events/raw.rb +45 -0
- data/lib/rubycord/events/reactions.rb +156 -0
- data/lib/rubycord/events/roles.rb +86 -0
- data/lib/rubycord/events/threads.rb +94 -0
- data/lib/rubycord/events/typing.rb +70 -0
- data/lib/rubycord/events/voice_server_update.rb +45 -0
- data/lib/rubycord/events/voice_state_update.rb +103 -0
- data/lib/rubycord/events/webhooks.rb +62 -0
- data/lib/rubycord/gateway.rb +867 -0
- data/lib/rubycord/id_object.rb +37 -0
- data/lib/rubycord/light/data.rb +60 -0
- data/lib/rubycord/light/integrations.rb +71 -0
- data/lib/rubycord/light/light_bot.rb +56 -0
- data/lib/rubycord/light.rb +6 -0
- data/lib/rubycord/logger.rb +118 -0
- data/lib/rubycord/paginator.rb +55 -0
- data/lib/rubycord/permissions.rb +251 -0
- data/lib/rubycord/version.rb +5 -0
- data/lib/rubycord/voice/encoder.rb +113 -0
- data/lib/rubycord/voice/network.rb +366 -0
- data/lib/rubycord/voice/sodium.rb +96 -0
- data/lib/rubycord/voice/voice_bot.rb +408 -0
- data/lib/rubycord/webhooks/builder.rb +100 -0
- data/lib/rubycord/webhooks/client.rb +132 -0
- data/lib/rubycord/webhooks/embeds.rb +248 -0
- data/lib/rubycord/webhooks/modal.rb +78 -0
- data/lib/rubycord/webhooks/version.rb +7 -0
- data/lib/rubycord/webhooks/view.rb +192 -0
- data/lib/rubycord/webhooks.rb +12 -0
- data/lib/rubycord/websocket.rb +70 -0
- data/lib/rubycord.rb +140 -0
- metadata +231 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 89d357064b36d980f45709bddaed645f5b770ec7bdc603705a97396d5d8c443c
|
4
|
+
data.tar.gz: de9a916f7c8f269ef312d919e13970b7e96859efcac227095fb7b2cf45588c76
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bbb5843ba99c0c809a1f4537b3a11554345c3cd524dff4f83ec048ed7b769de3a961219aaf3ba96f6bb7b536a8f9af4ba990b3f8d78c0ba26201d775b52a745a
|
7
|
+
data.tar.gz: 2a7acdfa98d2624473d1a3c8e30b65c9c0c4f40b31d31858fbcd7d87bab5c42b40158057bad15d2328eb61e3186daef4593a1fc1a3aae19a57e06a103302420e
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "rubycord/id_object"
|
2
|
+
|
3
|
+
module Rubycord
|
4
|
+
# Builder class for `allowed_mentions` when sending messages.
|
5
|
+
class AllowedMentions
|
6
|
+
# @return [Array<"users", "roles", "everyone">, nil]
|
7
|
+
attr_accessor :parse
|
8
|
+
|
9
|
+
# @return [Array<String, Integer>, nil]
|
10
|
+
attr_accessor :users
|
11
|
+
|
12
|
+
# @return [Array<String, Integer>, nil]
|
13
|
+
attr_accessor :roles
|
14
|
+
|
15
|
+
# @param parse [Array<"users", "roles", "everyone">] Mention types that can be inferred from the message.
|
16
|
+
# `users` and `roles` allow for all mentions of the respective type to ping. `everyone` allows usage of `@everyone` and `@here`
|
17
|
+
# @param users [Array<User, String, Integer>] Users or user IDs that can be pinged. Cannot be used in conjunction with `"users"` in `parse`
|
18
|
+
# @param roles [Array<Role, String, Integer>] Roles or role IDs that can be pinged. Cannot be used in conjunction with `"roles"` in `parse`
|
19
|
+
def initialize(parse: nil, users: nil, roles: nil)
|
20
|
+
@parse = parse
|
21
|
+
@users = users
|
22
|
+
@roles = roles
|
23
|
+
end
|
24
|
+
|
25
|
+
# @!visibility private
|
26
|
+
def to_hash
|
27
|
+
{
|
28
|
+
parse: @parse,
|
29
|
+
users: @users&.map { |user| user.is_a?(IDObject) ? user.id : user },
|
30
|
+
roles: @roles&.map { |role| role.is_a?(IDObject) ? role.id : role }
|
31
|
+
}.compact
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,200 @@
|
|
1
|
+
# API calls for slash commands.
|
2
|
+
module Rubycord::API::Application
|
3
|
+
module_function
|
4
|
+
|
5
|
+
# Get a list of global application commands.
|
6
|
+
# https://discord.com/developers/docs/interactions/slash-commands#get-global-application-commands
|
7
|
+
def get_global_commands(token, application_id)
|
8
|
+
Rubycord::API.request(
|
9
|
+
:applications_aid_commands,
|
10
|
+
nil,
|
11
|
+
:get,
|
12
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/commands",
|
13
|
+
Authorization: token
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Get a global application command by ID.
|
18
|
+
# https://discord.com/developers/docs/interactions/slash-commands#get-global-application-command
|
19
|
+
def get_global_command(token, application_id, command_id)
|
20
|
+
Rubycord::API.request(
|
21
|
+
:applications_aid_commands_cid,
|
22
|
+
nil,
|
23
|
+
:get,
|
24
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/commands/#{command_id}",
|
25
|
+
Authorization: token
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Create a global application command.
|
30
|
+
# https://discord.com/developers/docs/interactions/slash-commands#create-global-application-command
|
31
|
+
def create_global_command(token, application_id, name, description, options = [], default_permission = nil, type = 1)
|
32
|
+
Rubycord::API.request(
|
33
|
+
:applications_aid_commands,
|
34
|
+
nil,
|
35
|
+
:post,
|
36
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/commands",
|
37
|
+
{name: name, description: description, options: options, default_permission: default_permission, type: type}.to_json,
|
38
|
+
Authorization: token,
|
39
|
+
content_type: :json
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Edit a global application command.
|
44
|
+
# https://discord.com/developers/docs/interactions/slash-commands#edit-global-application-command
|
45
|
+
def edit_global_command(token, application_id, command_id, name = nil, description = nil, options = nil, default_permission = nil, type = 1)
|
46
|
+
Rubycord::API.request(
|
47
|
+
:applications_aid_commands_cid,
|
48
|
+
nil,
|
49
|
+
:patch,
|
50
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/commands/#{command_id}",
|
51
|
+
{name: name, description: description, options: options, default_permission: default_permission, type: type}.compact.to_json,
|
52
|
+
Authorization: token,
|
53
|
+
content_type: :json
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Delete a global application command.
|
58
|
+
# https://discord.com/developers/docs/interactions/slash-commands#delete-global-application-command
|
59
|
+
def delete_global_command(token, application_id, command_id)
|
60
|
+
Rubycord::API.request(
|
61
|
+
:applications_aid_commands_cid,
|
62
|
+
nil,
|
63
|
+
:delete,
|
64
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/commands/#{command_id}",
|
65
|
+
Authorization: token
|
66
|
+
)
|
67
|
+
end
|
68
|
+
|
69
|
+
# Set global application commands in bulk.
|
70
|
+
# https://discord.com/developers/docs/interactions/slash-commands#bulk-overwrite-global-application-commands
|
71
|
+
def bulk_overwrite_global_commands(token, application_id, commands)
|
72
|
+
Rubycord::API.request(
|
73
|
+
:applications_aid_commands,
|
74
|
+
nil,
|
75
|
+
:put,
|
76
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/commands",
|
77
|
+
commands.to_json,
|
78
|
+
Authorization: token,
|
79
|
+
content_type: :json
|
80
|
+
)
|
81
|
+
end
|
82
|
+
|
83
|
+
# Get a guild's commands for an application.
|
84
|
+
# https://discord.com/developers/docs/interactions/slash-commands#get-guild-application-commands
|
85
|
+
def get_guild_commands(token, application_id, guild_id)
|
86
|
+
Rubycord::API.request(
|
87
|
+
:applications_aid_guilds_gid_commands,
|
88
|
+
guild_id,
|
89
|
+
:get,
|
90
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands",
|
91
|
+
Authorization: token
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Get a guild command by ID.
|
96
|
+
# https://discord.com/developers/docs/interactions/slash-commands#get-guild-application-command
|
97
|
+
def get_guild_command(token, application_id, guild_id, command_id)
|
98
|
+
Rubycord::API.request(
|
99
|
+
:applications_aid_guilds_gid_commands_cid,
|
100
|
+
guild_id,
|
101
|
+
:get,
|
102
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/#{command_id}",
|
103
|
+
Authorization: token
|
104
|
+
)
|
105
|
+
end
|
106
|
+
|
107
|
+
# Create an application command for a guild.
|
108
|
+
# https://discord.com/developers/docs/interactions/slash-commands#create-guild-application-command
|
109
|
+
def create_guild_command(token, application_id, guild_id, name, description, options = nil, default_permission = nil, type = 1)
|
110
|
+
Rubycord::API.request(
|
111
|
+
:applications_aid_guilds_gid_commands,
|
112
|
+
guild_id,
|
113
|
+
:post,
|
114
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands",
|
115
|
+
{name: name, description: description, options: options, default_permission: default_permission, type: type}.to_json,
|
116
|
+
Authorization: token,
|
117
|
+
content_type: :json
|
118
|
+
)
|
119
|
+
end
|
120
|
+
|
121
|
+
# Edit an application command for a guild.
|
122
|
+
# https://discord.com/developers/docs/interactions/slash-commands#edit-guild-application-command
|
123
|
+
def edit_guild_command(token, application_id, guild_id, command_id, name = nil, description = nil, options = nil, default_permission = nil, type = 1)
|
124
|
+
Rubycord::API.request(
|
125
|
+
:applications_aid_guilds_gid_commands_cid,
|
126
|
+
guild_id,
|
127
|
+
:patch,
|
128
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/#{command_id}",
|
129
|
+
{name: name, description: description, options: options, default_permission: default_permission, type: type}.compact.to_json,
|
130
|
+
Authorization: token,
|
131
|
+
content_type: :json
|
132
|
+
)
|
133
|
+
end
|
134
|
+
|
135
|
+
# Delete an application command for a guild.
|
136
|
+
# https://discord.com/developers/docs/interactions/slash-commands#delete-guild-application-command
|
137
|
+
def delete_guild_command(token, application_id, guild_id, command_id)
|
138
|
+
Rubycord::API.request(
|
139
|
+
:applications_aid_guilds_gid_commands_cid,
|
140
|
+
guild_id,
|
141
|
+
:delete,
|
142
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/#{command_id}",
|
143
|
+
Authorization: token
|
144
|
+
)
|
145
|
+
end
|
146
|
+
|
147
|
+
# Set guild commands in bulk.
|
148
|
+
# https://discord.com/developers/docs/interactions/slash-commands#bulk-overwrite-guild-application-commands
|
149
|
+
def bulk_overwrite_guild_commands(token, application_id, guild_id, commands)
|
150
|
+
Rubycord::API.request(
|
151
|
+
:applications_aid_guilds_gid_commands,
|
152
|
+
guild_id,
|
153
|
+
:put,
|
154
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands",
|
155
|
+
commands.to_json,
|
156
|
+
Authorization: token,
|
157
|
+
content_type: :json
|
158
|
+
)
|
159
|
+
end
|
160
|
+
|
161
|
+
# Get the permissions for a specific guild command.
|
162
|
+
# https://discord.com/developers/docs/interactions/slash-commands#get-application-command-permissions
|
163
|
+
def get_guild_command_permissions(token, application_id, guild_id)
|
164
|
+
Rubycord::API.request(
|
165
|
+
:applications_aid_guilds_gid_commands_permissions,
|
166
|
+
guild_id,
|
167
|
+
:get,
|
168
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/permissions",
|
169
|
+
Authorization: token
|
170
|
+
)
|
171
|
+
end
|
172
|
+
|
173
|
+
# Edit the permissions for a specific guild command.
|
174
|
+
# https://discord.com/developers/docs/interactions/slash-commands#edit-application-command-permissions
|
175
|
+
def edit_guild_command_permissions(token, application_id, guild_id, command_id, permissions)
|
176
|
+
Rubycord::API.request(
|
177
|
+
:applications_aid_guilds_gid_commands_cid_permissions,
|
178
|
+
guild_id,
|
179
|
+
:put,
|
180
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/#{command_id}/permissions",
|
181
|
+
{permissions: permissions}.to_json,
|
182
|
+
Authorization: token,
|
183
|
+
content_type: :json
|
184
|
+
)
|
185
|
+
end
|
186
|
+
|
187
|
+
# Edit permissions for all commands in a guild.
|
188
|
+
# https://discord.com/developers/docs/interactions/slash-commands#batch-edit-application-command-permissions
|
189
|
+
def batch_edit_command_permissions(token, application_id, guild_id, permissions)
|
190
|
+
Rubycord::API.request(
|
191
|
+
:applications_aid_guilds_gid_commands_cid_permissions,
|
192
|
+
guild_id,
|
193
|
+
:put,
|
194
|
+
"#{Rubycord::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/permissions",
|
195
|
+
permissions.to_json,
|
196
|
+
Authorization: token,
|
197
|
+
content_type: :json
|
198
|
+
)
|
199
|
+
end
|
200
|
+
end
|