Skip to content

Commit

Permalink
Implement default_member_permissions and contexts
Browse files Browse the repository at this point in the history
  • Loading branch information
wouterdedroog committed Mar 18, 2024
1 parent 79d23cb commit abe76cd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
16 changes: 8 additions & 8 deletions lib/discordrb/api/application.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,27 +30,27 @@ def get_global_command(token, application_id, command_id)

# Create a global application command.
# https://discord.com/developers/docs/interactions/slash-commands#create-global-application-command
def create_global_command(token, application_id, name, description, options = [], default_permission = nil, type = 1)
def create_global_command(token, application_id, name, description, options = [], default_permission = nil, type = 1, default_member_permissions = nil, contexts = nil)
Discordrb::API.request(
:applications_aid_commands,
nil,
:post,
"#{Discordrb::API.api_base}/applications/#{application_id}/commands",
{ name: name, description: description, options: options, default_permission: default_permission, type: type }.to_json,
{ name: name, description: description, options: options, default_permission: default_permission, type: type, default_member_permissions: default_member_permissions, contexts: contexts }.to_json,
Authorization: token,
content_type: :json
)
end

# Edit a global application command.
# https://discord.com/developers/docs/interactions/slash-commands#edit-global-application-command
def edit_global_command(token, application_id, command_id, name = nil, description = nil, options = nil, default_permission = nil, type = 1)
def edit_global_command(token, application_id, command_id, name = nil, description = nil, options = nil, default_permission = nil, type = 1, default_member_permissions = nil, contexts = nil)
Discordrb::API.request(
:applications_aid_commands_cid,
nil,
:patch,
"#{Discordrb::API.api_base}/applications/#{application_id}/commands/#{command_id}",
{ name: name, description: description, options: options, default_permission: default_permission, type: type }.compact.to_json,
{ name: name, description: description, options: options, default_permission: default_permission, type: type, default_member_permissions: default_member_permissions, contexts: contexts }.compact.to_json,
Authorization: token,
content_type: :json
)
Expand Down Expand Up @@ -108,27 +108,27 @@ def get_guild_command(token, application_id, guild_id, command_id)

# Create an application command for a guild.
# https://discord.com/developers/docs/interactions/slash-commands#create-guild-application-command
def create_guild_command(token, application_id, guild_id, name, description, options = nil, default_permission = nil, type = 1)
def create_guild_command(token, application_id, guild_id, name, description, options = nil, default_permission = nil, type = 1, default_member_permissions = nil, contexts = nil)
Discordrb::API.request(
:applications_aid_guilds_gid_commands,
guild_id,
:post,
"#{Discordrb::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands",
{ name: name, description: description, options: options, default_permission: default_permission, type: type }.to_json,
{ name: name, description: description, options: options, default_permission: default_permission, type: type, default_member_permissions: default_member_permissions, contexts: contexts }.to_json,
Authorization: token,
content_type: :json
)
end

# Edit an application command for a guild.
# https://discord.com/developers/docs/interactions/slash-commands#edit-guild-application-command
def edit_guild_command(token, application_id, guild_id, command_id, name = nil, description = nil, options = nil, default_permission = nil, type = 1)
def edit_guild_command(token, application_id, guild_id, command_id, name = nil, description = nil, options = nil, default_permission = nil, type = 1, default_member_permissions = nil, contexts = nil)
Discordrb::API.request(
:applications_aid_guilds_gid_commands_cid,
guild_id,
:patch,
"#{Discordrb::API.api_base}/applications/#{application_id}/guilds/#{guild_id}/commands/#{command_id}",
{ name: name, description: description, options: options, default_permission: default_permission, type: type }.compact.to_json,
{ name: name, description: description, options: options, default_permission: default_permission, type: type, default_member_permissions: default_member_permissions, contexts: contexts }.compact.to_json,
Authorization: token,
content_type: :json
)
Expand Down
12 changes: 6 additions & 6 deletions lib/discordrb/bot.rb
Original file line number Diff line number Diff line change
Expand Up @@ -832,17 +832,17 @@ def get_application_command(command_id, server_id: nil)
# end
# end
# end
def register_application_command(name, description, server_id: nil, default_permission: nil, type: :chat_input)
def register_application_command(name, description, server_id: nil, default_permission: nil, type: :chat_input, default_member_permissions: nil, contexts: nil)
type = ApplicationCommand::TYPES[type] || type

builder = Interactions::OptionBuilder.new
permission_builder = Interactions::PermissionBuilder.new
yield(builder, permission_builder) if block_given?

resp = if server_id
API::Application.create_guild_command(@token, profile.id, server_id, name, description, builder.to_a, default_permission, type)
API::Application.create_guild_command(@token, profile.id, server_id, name, description, builder.to_a, default_permission, type, default_member_permissions, contexts)
else
API::Application.create_global_command(@token, profile.id, name, description, builder.to_a, default_permission, type)
API::Application.create_global_command(@token, profile.id, name, description, builder.to_a, default_permission, type, default_member_permissions, contexts)
end
cmd = ApplicationCommand.new(JSON.parse(resp), self, server_id)

Expand All @@ -857,7 +857,7 @@ def register_application_command(name, description, server_id: nil, default_perm

# @yieldparam [OptionBuilder]
# @yieldparam [PermissionBuilder]
def edit_application_command(command_id, server_id: nil, name: nil, description: nil, default_permission: nil, type: :chat_input)
def edit_application_command(command_id, server_id: nil, name: nil, description: nil, default_permission: nil, type: :chat_input, default_member_permissions: nil, contexts: nil)
type = ApplicationCommand::TYPES[type] || type

builder = Interactions::OptionBuilder.new
Expand All @@ -866,9 +866,9 @@ def edit_application_command(command_id, server_id: nil, name: nil, description:
yield(builder, permission_builder) if block_given?

resp = if server_id
API::Application.edit_guild_command(@token, profile.id, server_id, command_id, name, description, builder.to_a, default_permission, type)
API::Application.edit_guild_command(@token, profile.id, server_id, command_id, name, description, builder.to_a, default_permission, type, default_member_permissions, contexts)
else
API::Application.edit_global_command(@token, profile.id, command_id, name, description, builder.to_a, default_permission, type)
API::Application.edit_global_command(@token, profile.id, command_id, name, description, builder.to_a, default_permission, type, default_member_permissions, contexts)
end
cmd = ApplicationCommand.new(JSON.parse(resp), self, server_id)

Expand Down

0 comments on commit abe76cd

Please sign in to comment.