From bbe3c636f11b081bcbde355acbe8f100d828db7e Mon Sep 17 00:00:00 2001 From: ITOH <72305210+itohatweb@users.noreply.github.com> Date: Sun, 7 Mar 2021 16:32:15 +0100 Subject: [PATCH] feat(types/interaction): add "resolved" field to DiscordInteractionCommand (#603) * fix(types): DiscordMember not extending DiscordBaseMember * add(types): DiscordInteractionDataResolved * add(types): resolved field to DiscordInteractionData * fix(types): DiscordInteractionData options is optional * Apply suggestions from code review Co-authored-by: ayntee Co-authored-by: ayntee --- src/types/api/interaction.ts | 25 +++++++++++++++++++++++-- src/types/api/member.ts | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/types/api/interaction.ts b/src/types/api/interaction.ts index d9cb62f7c..993409fc9 100644 --- a/src/types/api/interaction.ts +++ b/src/types/api/interaction.ts @@ -1,4 +1,9 @@ -import { DiscordMember } from "./mod.ts"; +import { + DiscordChannel, + DiscordMember, + DiscordRole, + DiscordUser, +} from "./mod.ts"; export interface DiscordInteractionCommand { /** id of the interaction */ @@ -31,8 +36,24 @@ export interface DiscordInteractionData { id: string; /** the name of the invoked command */ name: string; + /** converted users + roles + channels */ + resolved?: DiscordApplicationCommandInteractionDataResolved; /** the params + values from the user */ - options: DiscordInteractionDataOption[]; + options?: DiscordInteractionDataOption[]; +} + +export interface DiscordApplicationCommandInteractionDataResolved { + /** the IDs and User objects */ + users?: Record; + /** the IDs and partial Member objects */ + members?: Record>; + /** the IDs and Role objects */ + roles?: Record; + /** the IDs and partial Channel objects */ + channels?: Record< + string, + Pick + >; } export interface DiscordInteractionDataOption { diff --git a/src/types/api/member.ts b/src/types/api/member.ts index e17403cb0..3eaf32740 100644 --- a/src/types/api/member.ts +++ b/src/types/api/member.ts @@ -83,7 +83,7 @@ export interface DiscordBaseMember { } /** https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-structure */ -export interface DiscordMember { +export interface DiscordMember extends DiscordBaseMember { /** the user this guild member represents */ user?: DiscordUser; }