mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
feat(bot,types): Add MessageCall (#3628)
* Add message#call * Update message transformer for message calls Co-authored-by: LTS20050703 <lts20050703@gmail.com> --------- Co-authored-by: LTS20050703 <lts20050703@gmail.com>
This commit is contained in:
@@ -31,6 +31,7 @@ import type {
|
||||
DiscordInviteStageInstance,
|
||||
DiscordMember,
|
||||
DiscordMessage,
|
||||
DiscordMessageCall,
|
||||
DiscordMessageInteractionMetadata,
|
||||
DiscordPoll,
|
||||
DiscordPollMedia,
|
||||
@@ -86,7 +87,14 @@ import { transformIntegration, type Integration } from './transformers/integrati
|
||||
import { transformInteraction, transformInteractionDataOption, type Interaction, type InteractionDataOption } from './transformers/interaction.js'
|
||||
import { transformInvite, type Invite } from './transformers/invite.js'
|
||||
import { transformMember, type Member } from './transformers/member.js'
|
||||
import { transformMessage, type Message, type MessageInteractionMetadata, transformMessageInteractionMetadata } from './transformers/message.js'
|
||||
import {
|
||||
transformMessage,
|
||||
transformMessageCall,
|
||||
transformMessageInteractionMetadata,
|
||||
type Message,
|
||||
type MessageCall,
|
||||
type MessageInteractionMetadata,
|
||||
} from './transformers/message.js'
|
||||
import { transformGuildOnboarding, type GuildOnboarding } from './transformers/onboarding.js'
|
||||
import { transformPoll, transformPollMedia, type Poll, type PollMedia } from './transformers/poll.js'
|
||||
import { transformPresence, type PresenceUpdate } from './transformers/presence.js'
|
||||
@@ -122,6 +130,7 @@ export interface Transformers {
|
||||
interaction: (bot: Bot, payload: DiscordInteraction, interaction: Interaction) => any
|
||||
message: (bot: Bot, payload: DiscordMessage, message: Message) => any
|
||||
messageInteractionMetadata: (bot: Bot, payload: DiscordMessageInteractionMetadata, metadata: MessageInteractionMetadata) => any
|
||||
messageCall: (bot: Bot, payload: DiscordMessageCall, call: MessageCall) => any
|
||||
user: (bot: Bot, payload: DiscordUser, user: User) => any
|
||||
member: (bot: Bot, payload: DiscordMember, member: Member) => any
|
||||
role: (bot: Bot, payload: DiscordRole, role: Role) => any
|
||||
@@ -380,6 +389,10 @@ export interface Transformers {
|
||||
thread: boolean
|
||||
type: boolean
|
||||
webhookId: boolean
|
||||
call: {
|
||||
participants: boolean
|
||||
endedTimestamp: boolean
|
||||
}
|
||||
}
|
||||
role: {
|
||||
name: boolean
|
||||
@@ -574,6 +587,7 @@ export interface Transformers {
|
||||
member: (bot: Bot, payload: DiscordMember, guildId: BigString, userId: BigString) => Member
|
||||
message: (bot: Bot, payload: DiscordMessage) => Message
|
||||
messageInteractionMetadata: (bot: Bot, payload: DiscordMessageInteractionMetadata) => MessageInteractionMetadata
|
||||
messageCall: (bot: Bot, payload: DiscordMessageCall) => MessageCall
|
||||
role: (bot: Bot, payload: { role: DiscordRole } & { guildId: BigString }) => Role
|
||||
voiceState: (bot: Bot, payload: { voiceState: DiscordVoiceState } & { guildId: bigint }) => VoiceState
|
||||
interaction: (bot: Bot, payload: DiscordInteraction) => Interaction
|
||||
@@ -648,6 +662,9 @@ export function createTransformers(options: Partial<Transformers>, opts?: Create
|
||||
messageInteractionMetadata(bot, payload, metadata) {
|
||||
return metadata
|
||||
},
|
||||
messageCall(bot, payload, call) {
|
||||
return call
|
||||
},
|
||||
role(bot, payload, role) {
|
||||
return role
|
||||
},
|
||||
@@ -979,6 +996,10 @@ export function createTransformers(options: Partial<Transformers>, opts?: Create
|
||||
thread: opts?.defaultDesiredPropertiesValue ?? false,
|
||||
type: opts?.defaultDesiredPropertiesValue ?? false,
|
||||
webhookId: opts?.defaultDesiredPropertiesValue ?? false,
|
||||
call: {
|
||||
participants: opts?.defaultDesiredPropertiesValue ?? false,
|
||||
endedTimestamp: opts?.defaultDesiredPropertiesValue ?? false,
|
||||
},
|
||||
},
|
||||
role: {
|
||||
name: opts?.defaultDesiredPropertiesValue ?? false,
|
||||
@@ -1181,6 +1202,7 @@ export function createTransformers(options: Partial<Transformers>, opts?: Create
|
||||
member: options.member ?? transformMember,
|
||||
message: options.message ?? transformMessage,
|
||||
messageInteractionMetadata: options.messageInteractionMetadata ?? transformMessageInteractionMetadata,
|
||||
messageCall: options.messageCall ?? transformMessageCall,
|
||||
presence: options.presence ?? transformPresence,
|
||||
role: options.role ?? transformRole,
|
||||
user: options.user ?? transformUser,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
DiscordApplicationIntegrationType,
|
||||
type DiscordMessage,
|
||||
type DiscordMessageCall,
|
||||
type DiscordMessageInteractionMetadata,
|
||||
type InteractionTypes,
|
||||
type MessageActivityTypes,
|
||||
@@ -270,6 +271,8 @@ export interface Message extends MessageBase {
|
||||
thread?: Channel
|
||||
/** If the message is generated by a webhook, this is the webhook's id */
|
||||
webhookId?: bigint
|
||||
/** The call associated with the message */
|
||||
call?: MessageCall
|
||||
}
|
||||
|
||||
const EMPTY_STRING = ''
|
||||
@@ -383,6 +386,7 @@ export function transformMessage(bot: Bot, payload: DiscordMessage): Message {
|
||||
if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, { channel: payload.thread, guildId })
|
||||
if (props.type) message.type = payload.type
|
||||
if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id)
|
||||
if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call)
|
||||
|
||||
return bot.transformers.customizers.message(bot, payload, message)
|
||||
}
|
||||
@@ -415,6 +419,16 @@ export function transformMessageInteractionMetadata(bot: Bot, payload: DiscordMe
|
||||
return bot.transformers.customizers.messageInteractionMetadata(bot, payload, metadata)
|
||||
}
|
||||
|
||||
export function transformMessageCall(bot: Bot, payload: DiscordMessageCall): MessageCall {
|
||||
const call = {} as MessageCall
|
||||
const props = bot.transformers.desiredProperties.message.call
|
||||
|
||||
if (props.participants && payload.participants) call.participants = payload.participants.map((x) => bot.transformers.snowflake(x))
|
||||
if (props.endedTimestamp && payload.ended_timestamp) call.endedTimestamp = Date.parse(payload.ended_timestamp)
|
||||
|
||||
return bot.transformers.customizers.messageCall(bot, payload, call)
|
||||
}
|
||||
|
||||
export interface MessageInteractionMetadata {
|
||||
/** Id of the interaction */
|
||||
id: bigint
|
||||
@@ -431,3 +445,10 @@ export interface MessageInteractionMetadata {
|
||||
/** Metadata for the interaction that was used to open the modal, present only on modal submit interactions */
|
||||
triggeringInteractionMetadata?: MessageInteractionMetadata
|
||||
}
|
||||
|
||||
export interface MessageCall {
|
||||
/** Array of user object ids that participated in the call */
|
||||
participants: bigint[]
|
||||
/** Time when call ended */
|
||||
endedTimestamp: number
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user