feat(Message): add call (#10283)

* feat(Message): add `call`

* refactor: make `endedAt` a getter

* types: fix `endedAt` return type

* types(Message): add `call` property

* docs: requested changes

---------

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
This commit is contained in:
Danial Raza 2024-06-08 22:30:21 +02:00 committed by GitHub
parent 3cdddbe31d
commit 68031210f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 31 additions and 0 deletions

View file

@ -417,6 +417,30 @@ class Message extends Base {
} else {
this.poll ??= null;
}
/**
* A call associated with a message
* @typedef {Object} MessageCall
* @property {Readonly<?Date>} endedAt The time the call ended
* @property {?number} endedTimestamp The timestamp the call ended
* @property {Snowflake[]} participants The ids of the users that participated in the call
*/
if (data.call) {
/**
* The call associated with the message
* @type {?MessageCall}
*/
this.call = {
endedTimestamp: data.call.ended_timestamp ? Date.parse(data.call.ended_timestamp) : null,
participants: data.call.participants,
get endedAt() {
return this.endedTimestamp && new Date(this.endedTimestamp);
},
};
} else {
this.call ??= null;
}
}
/**

View file

@ -2027,6 +2027,12 @@ export class LimitedCollection<Key, Value> extends Collection<Key, Value> {
public keepOverLimit: ((value: Value, key: Key, collection: this) => boolean) | null;
}
export interface MessageCall {
get endedAt(): Date | null;
endedTimestamp: number | null;
participants: readonly Snowflake[];
}
export type MessageComponentType = Exclude<ComponentType, ComponentType.TextInput | ComponentType.ActionRow>;
export interface MessageCollectorOptionsParams<
@ -2118,6 +2124,7 @@ export class Message<InGuild extends boolean = boolean> extends Base {
public get thread(): AnyThreadChannel | null;
public tts: boolean;
public poll: Poll | null;
public call: MessageCall | null;
public type: MessageType;
public get url(): string;
public webhookId: Snowflake | null;