From 8d687e35c06f924cd4fb236bda69ba1b764a4725 Mon Sep 17 00:00:00 2001 From: TopiSenpai Date: Thu, 10 Nov 2022 18:14:36 +0100 Subject: [PATCH] add support for nsfw application commands --- discord/application_command.go | 22 ++++++++++++++++++++++ discord/application_command_create.go | 3 +++ discord/application_command_raw.go | 2 ++ discord/application_command_update.go | 3 +++ 4 files changed, 30 insertions(+) diff --git a/discord/application_command.go b/discord/application_command.go index 010a730f..a0e06b78 100644 --- a/discord/application_command.go +++ b/discord/application_command.go @@ -29,6 +29,7 @@ type ApplicationCommand interface { DMPermission() bool Version() snowflake.ID CreatedAt() time.Time + NSFW() bool applicationCommand() } @@ -93,6 +94,7 @@ type SlashCommand struct { Options []ApplicationCommandOption defaultMemberPermissions Permissions dmPermission bool + nsfw bool version snowflake.ID } @@ -114,6 +116,7 @@ func (c *SlashCommand) UnmarshalJSON(data []byte) error { c.Options = v.Options c.defaultMemberPermissions = v.DefaultMemberPermissions c.dmPermission = v.DMPermission + c.nsfw = v.NSFW c.version = v.Version return nil } @@ -133,6 +136,7 @@ func (c SlashCommand) MarshalJSON() ([]byte, error) { Options: c.Options, DefaultMemberPermissions: c.defaultMemberPermissions, DMPermission: c.dmPermission, + NSFW: c.nsfw, Version: c.version, }) } @@ -172,6 +176,10 @@ func (c SlashCommand) DMPermission() bool { return c.dmPermission } +func (c SlashCommand) NSFW() bool { + return c.nsfw +} + func (c SlashCommand) Version() snowflake.ID { return c.version } @@ -197,6 +205,7 @@ type UserCommand struct { nameLocalized string defaultMemberPermissions Permissions dmPermission bool + nsfw bool version snowflake.ID } @@ -214,6 +223,7 @@ func (c *UserCommand) UnmarshalJSON(data []byte) error { c.nameLocalized = v.NameLocalized c.defaultMemberPermissions = v.DefaultMemberPermissions c.dmPermission = v.DMPermission + c.nsfw = v.NSFW c.version = v.Version return nil } @@ -229,6 +239,7 @@ func (c UserCommand) MarshalJSON() ([]byte, error) { NameLocalized: c.nameLocalized, DefaultMemberPermissions: c.defaultMemberPermissions, DMPermission: c.dmPermission, + NSFW: c.nsfw, Version: c.version, }) } @@ -268,6 +279,10 @@ func (c UserCommand) DMPermission() bool { return c.dmPermission } +func (c UserCommand) NSFW() bool { + return c.nsfw +} + func (c UserCommand) Version() snowflake.ID { return c.version } @@ -289,6 +304,7 @@ type MessageCommand struct { nameLocalized string defaultMemberPermissions Permissions dmPermission bool + nsfw bool version snowflake.ID } @@ -306,6 +322,7 @@ func (c *MessageCommand) UnmarshalJSON(data []byte) error { c.nameLocalized = v.NameLocalized c.defaultMemberPermissions = v.DefaultMemberPermissions c.dmPermission = v.DMPermission + c.nsfw = v.NSFW c.version = v.Version return nil } @@ -321,6 +338,7 @@ func (c MessageCommand) MarshalJSON() ([]byte, error) { NameLocalized: c.nameLocalized, DefaultMemberPermissions: c.defaultMemberPermissions, DMPermission: c.dmPermission, + NSFW: c.nsfw, Version: c.version, }) } @@ -360,6 +378,10 @@ func (c MessageCommand) DMPermission() bool { return c.dmPermission } +func (c MessageCommand) NSFW() bool { + return c.nsfw +} + func (c MessageCommand) Version() snowflake.ID { return c.version } diff --git a/discord/application_command_create.go b/discord/application_command_create.go index b8cb58f2..bf80a0fb 100644 --- a/discord/application_command_create.go +++ b/discord/application_command_create.go @@ -17,6 +17,7 @@ type SlashCommandCreate struct { Options []ApplicationCommandOption `json:"options,omitempty"` DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` // different behavior for 0 and null, optional DMPermission *bool `json:"dm_permission,omitempty"` + NSFW *bool `json:"nsfw,omitempty"` } func (c SlashCommandCreate) MarshalJSON() ([]byte, error) { @@ -45,6 +46,7 @@ type UserCommandCreate struct { NameLocalizations map[Locale]string `json:"name_localizations,omitempty"` DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` DMPermission *bool `json:"dm_permission,omitempty"` + NSFW *bool `json:"nsfw,omitempty"` } func (c UserCommandCreate) MarshalJSON() ([]byte, error) { @@ -73,6 +75,7 @@ type MessageCommandCreate struct { NameLocalizations map[Locale]string `json:"name_localizations,omitempty"` DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` DMPermission *bool `json:"dm_permission,omitempty"` + NSFW *bool `json:"nsfw,omitempty"` } func (c MessageCommandCreate) MarshalJSON() ([]byte, error) { diff --git a/discord/application_command_raw.go b/discord/application_command_raw.go index a4729009..a5fbe038 100644 --- a/discord/application_command_raw.go +++ b/discord/application_command_raw.go @@ -19,6 +19,7 @@ type rawSlashCommand struct { Options []ApplicationCommandOption `json:"options,omitempty"` DefaultMemberPermissions Permissions `json:"default_member_permissions"` DMPermission bool `json:"dm_permission"` + NSFW bool `json:"nsfw"` Version snowflake.ID `json:"version"` } @@ -54,5 +55,6 @@ type rawContextCommand struct { NameLocalized string `json:"name_localized,omitempty"` DefaultMemberPermissions Permissions `json:"default_member_permissions"` DMPermission bool `json:"dm_permission"` + NSFW bool `json:"nsfw"` Version snowflake.ID `json:"version"` } diff --git a/discord/application_command_update.go b/discord/application_command_update.go index 09287493..33764546 100644 --- a/discord/application_command_update.go +++ b/discord/application_command_update.go @@ -17,6 +17,7 @@ type SlashCommandUpdate struct { Options *[]ApplicationCommandOption `json:"options,omitempty"` DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` DMPermission *bool `json:"dm_permission,omitempty"` + NSFW *bool `json:"nsfw,omitempty"` } func (c SlashCommandUpdate) MarshalJSON() ([]byte, error) { @@ -45,6 +46,7 @@ type UserCommandUpdate struct { NameLocalizations *map[Locale]string `json:"name_localizations,omitempty"` DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` DMPermission *bool `json:"dm_permission,omitempty"` + NSFW *bool `json:"nsfw,omitempty"` } func (c UserCommandUpdate) MarshalJSON() ([]byte, error) { @@ -73,6 +75,7 @@ type MessageCommandUpdate struct { NameLocalizations *map[Locale]string `json:"name_localizations,omitempty"` DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` DMPermission *bool `json:"dm_permission,omitempty"` + NSFW *bool `json:"nsfw,omitempty"` } func (c MessageCommandUpdate) MarshalJSON() ([]byte, error) {