mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
feat(bot)!: Use an "extra" params for transformers (#4372)
Co-authored-by: Link <link20050703@gmail.com>
This commit is contained in:
@@ -103,7 +103,7 @@ await memoryBenchmark(
|
||||
() => ({
|
||||
cache: [] as any[],
|
||||
}), // function returns a new instance of object wanted to test with
|
||||
(object, event: DiscordMessage) => object.cache.push(bot.transformers.message(bot, { message: event, shardId: 0 })),
|
||||
(object, event: DiscordMessage) => object.cache.push(bot.transformers.message(bot, event)),
|
||||
// function specify how to add event to the object/ run the object
|
||||
[...new Array(MESSAGE_SIZE)].map(
|
||||
() =>
|
||||
@@ -442,7 +442,7 @@ function oldtransformMessage(bot: Bot, payload: DiscordMessage): any {
|
||||
: undefined,
|
||||
}
|
||||
: undefined,
|
||||
thread: payload.thread ? bot.transformers.channel(bot, { channel: payload.thread, guildId }) : undefined,
|
||||
thread: payload.thread ? bot.transformers.channel(bot, payload.thread, { guildId }) : undefined,
|
||||
components: payload.components?.map((component) => bot.transformers.component(bot, component)),
|
||||
stickerItems: payload.sticker_items?.map((sticker) => ({
|
||||
id: bot.transformers.snowflake(sticker.id),
|
||||
|
||||
@@ -4,10 +4,7 @@ export async function handleChannelCreate(bot: Bot, payload: DiscordGatewayPaylo
|
||||
if (!bot.events.channelCreate) return
|
||||
|
||||
const data = payload.d as DiscordChannel
|
||||
const channel = bot.transformers.channel(bot, {
|
||||
channel: data,
|
||||
guildId: data.guild_id ? bot.transformers.snowflake(data.guild_id) : undefined,
|
||||
})
|
||||
const channel = bot.transformers.channel(bot, data, { guildId: data.guild_id })
|
||||
|
||||
bot.events.channelCreate(channel)
|
||||
}
|
||||
|
||||
@@ -6,10 +6,5 @@ export async function handleChannelDelete(bot: Bot, data: DiscordGatewayPayload)
|
||||
|
||||
const payload = data.d as DiscordChannel
|
||||
|
||||
bot.events.channelDelete(
|
||||
bot.transformers.channel(bot, {
|
||||
channel: payload,
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
}),
|
||||
)
|
||||
bot.events.channelDelete(bot.transformers.channel(bot, payload, { guildId: payload.guild_id }))
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ export async function handleChannelUpdate(bot: Bot, data: DiscordGatewayPayload)
|
||||
if (!bot.events.channelUpdate) return
|
||||
|
||||
const payload = data.d as DiscordChannel
|
||||
const channel = bot.transformers.channel(bot, { channel: payload })
|
||||
const channel = bot.transformers.channel(bot, payload)
|
||||
|
||||
bot.events.channelUpdate(channel)
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ export async function handleThreadCreate(bot: Bot, data: DiscordGatewayPayload):
|
||||
|
||||
const payload = data.d as DiscordChannel
|
||||
|
||||
bot.events.threadCreate(bot.transformers.channel(bot, { channel: payload }))
|
||||
bot.events.threadCreate(bot.transformers.channel(bot, payload))
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ export async function handleThreadDelete(bot: Bot, data: DiscordGatewayPayload):
|
||||
|
||||
const payload = data.d as DiscordChannel
|
||||
|
||||
bot.events.threadDelete(bot.transformers.channel(bot, { channel: payload }))
|
||||
bot.events.threadDelete(bot.transformers.channel(bot, payload))
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ export async function handleThreadListSync(bot: Bot, data: DiscordGatewayPayload
|
||||
bot.events.threadListSync({
|
||||
guildId,
|
||||
channelIds: payload.channel_ids?.map((id) => bot.transformers.snowflake(id)),
|
||||
threads: payload.threads.map((thread) => bot.transformers.channel(bot, { channel: thread, guildId })),
|
||||
threads: payload.threads.map((thread) => bot.transformers.channel(bot, thread, { guildId })),
|
||||
members: payload.members.map((member) => ({
|
||||
id: member.id ? bot.transformers.snowflake(member.id) : undefined,
|
||||
userId: member.user_id ? bot.transformers.snowflake(member.user_id) : undefined,
|
||||
|
||||
@@ -6,5 +6,5 @@ export async function handleThreadUpdate(bot: Bot, data: DiscordGatewayPayload):
|
||||
|
||||
const payload = data.d as DiscordChannel
|
||||
|
||||
bot.events.threadUpdate(bot.transformers.channel(bot, { channel: payload }))
|
||||
bot.events.threadUpdate(bot.transformers.channel(bot, payload))
|
||||
}
|
||||
|
||||
@@ -5,5 +5,5 @@ export async function handleGuildCreate(bot: Bot, data: DiscordGatewayPayload, s
|
||||
if (!bot.events.guildCreate) return
|
||||
|
||||
const payload = data.d as DiscordGuild
|
||||
bot.events.guildCreate(bot.transformers.guild(bot, { guild: payload, shardId }))
|
||||
bot.events.guildCreate(bot.transformers.guild(bot, payload, { shardId }))
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ export async function handleGuildUpdate(bot: Bot, data: DiscordGatewayPayload, s
|
||||
|
||||
const payload = data.d as DiscordGuild
|
||||
|
||||
bot.events.guildUpdate(bot.transformers.guild(bot, { guild: payload, shardId }))
|
||||
bot.events.guildUpdate(bot.transformers.guild(bot, payload, { shardId }))
|
||||
}
|
||||
|
||||
@@ -4,10 +4,7 @@ import type { Bot } from '../../index.js'
|
||||
export async function handleInteractionCreate(bot: Bot, data: DiscordGatewayPayload, shardId: number): Promise<void> {
|
||||
if (!bot.events.interactionCreate) return
|
||||
|
||||
bot.events.interactionCreate(
|
||||
bot.transformers.interaction(bot, {
|
||||
interaction: data.d as DiscordInteraction,
|
||||
shardId,
|
||||
}),
|
||||
)
|
||||
const payload = data.d as DiscordInteraction
|
||||
|
||||
bot.events.interactionCreate(bot.transformers.interaction(bot, payload, { shardId }))
|
||||
}
|
||||
|
||||
@@ -4,5 +4,7 @@ import type { Bot } from '../../index.js'
|
||||
export async function handleInviteCreate(bot: Bot, data: DiscordGatewayPayload, shardId: number): Promise<void> {
|
||||
if (!bot.events.inviteCreate) return
|
||||
|
||||
bot.events.inviteCreate(bot.transformers.invite(bot, { invite: data.d as DiscordInviteCreate, shardId }))
|
||||
const payload = data.d as DiscordInviteCreate
|
||||
|
||||
bot.events.inviteCreate(bot.transformers.invite(bot, payload, { shardId }))
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@ export async function handleGuildMemberAdd(bot: Bot, data: DiscordGatewayPayload
|
||||
const payload = data.d as DiscordGuildMemberAdd
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id)
|
||||
const user = bot.transformers.user(bot, payload.user)
|
||||
const member = bot.transformers.member(bot, payload, guildId, payload.user.id)
|
||||
const member = bot.transformers.member(bot, payload, { guildId, userId: payload.user.id })
|
||||
bot.events.guildMemberAdd(member, user)
|
||||
}
|
||||
|
||||
@@ -7,6 +7,9 @@ export async function handleGuildMemberUpdate(bot: Bot, data: DiscordGatewayPayl
|
||||
const payload = data.d as DiscordGuildMemberUpdate
|
||||
|
||||
const user = bot.transformers.user(bot, payload.user)
|
||||
// @ts-expect-error Flags in the update are nullable, while on the member they are be always present
|
||||
bot.events.guildMemberUpdate(bot.transformers.member(bot, payload, bot.transformers.snowflake(payload.guild_id), user.id), user)
|
||||
bot.events.guildMemberUpdate(
|
||||
// @ts-expect-error Flags in the update are nullable, while on the member they are be always present
|
||||
bot.transformers.member(bot, payload, { guildId: payload.guild_id, userId: payload.user.id }),
|
||||
user,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ export async function handleMessageCreate(bot: Bot, data: DiscordGatewayPayload,
|
||||
|
||||
const payload = data.d as DiscordMessage
|
||||
|
||||
bot.events.messageCreate(bot.transformers.message(bot, { message: payload, shardId }))
|
||||
bot.events.messageCreate(bot.transformers.message(bot, payload, { shardId }))
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ export async function handleMessageReactionAdd(bot: Bot, data: DiscordGatewayPay
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
messageId: bot.transformers.snowflake(payload.message_id),
|
||||
guildId,
|
||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, userId) : undefined,
|
||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, { guildId, userId }) : undefined,
|
||||
user: payload.member ? bot.transformers.user(bot, payload.member.user) : undefined,
|
||||
// @ts-expect-error TODO: Deal with partials
|
||||
emoji: bot.transformers.emoji(bot, payload.emoji),
|
||||
|
||||
@@ -7,5 +7,5 @@ export async function handleMessageUpdate(bot: Bot, data: DiscordGatewayPayload,
|
||||
const payload = data.d as DiscordMessage
|
||||
if (!payload.edited_timestamp) return
|
||||
|
||||
bot.events.messageUpdate(bot.transformers.message(bot, { message: payload, shardId }))
|
||||
bot.events.messageUpdate(bot.transformers.message(bot, payload, { shardId }))
|
||||
}
|
||||
|
||||
@@ -14,6 +14,6 @@ export async function handleTypingStart(bot: Bot, data: DiscordGatewayPayload):
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
userId,
|
||||
timestamp: payload.timestamp,
|
||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, userId) : undefined,
|
||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, { guildId, userId }) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,8 +6,7 @@ export async function handleGuildRoleCreate(bot: Bot, data: DiscordGatewayPayloa
|
||||
|
||||
const payload = data.d as DiscordGuildRoleCreate
|
||||
bot.events.roleCreate(
|
||||
bot.transformers.role(bot, {
|
||||
role: payload.role,
|
||||
bot.transformers.role(bot, payload.role, {
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
}),
|
||||
)
|
||||
|
||||
@@ -7,8 +7,7 @@ export async function handleGuildRoleUpdate(bot: Bot, data: DiscordGatewayPayloa
|
||||
const payload = data.d as DiscordGuildRoleUpdate
|
||||
|
||||
bot.events.roleUpdate(
|
||||
bot.transformers.role(bot, {
|
||||
role: payload.role,
|
||||
bot.transformers.role(bot, payload.role, {
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
}),
|
||||
)
|
||||
|
||||
@@ -10,5 +10,5 @@ export async function handleVoiceStateUpdate(bot: Bot, data: DiscordGatewayPaylo
|
||||
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id)
|
||||
|
||||
bot.events.voiceStateUpdate(bot.transformers.voiceState(bot, { voiceState: payload, guildId }))
|
||||
bot.events.voiceStateUpdate(bot.transformers.voiceState(bot, payload, { guildId }))
|
||||
}
|
||||
|
||||
+46
-55
@@ -45,7 +45,6 @@ import type {
|
||||
DiscordInvite,
|
||||
DiscordInviteMetadata,
|
||||
DiscordListArchivedThreads,
|
||||
DiscordMessage,
|
||||
DiscordPrunedCount,
|
||||
DiscordTokenExchange,
|
||||
DiscordTokenRevocation,
|
||||
@@ -155,7 +154,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.automodRule(bot, snakelize(await bot.rest.createAutomodRule(guildId, options, reason)))
|
||||
},
|
||||
createChannel: async (guildId, options, reason) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.createChannel(guildId, options, reason)), guildId })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.createChannel(guildId, options, reason)), { guildId })
|
||||
},
|
||||
createEmoji: async (guildId, options, reason) => {
|
||||
return bot.transformers.emoji(bot, snakelize(await bot.rest.createEmoji(guildId, options, reason)))
|
||||
@@ -164,7 +163,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.emoji(bot, snakelize(await bot.rest.createApplicationEmoji(options)))
|
||||
},
|
||||
createForumThread: async (channelId, options, reason) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.createForumThread(channelId, options, reason)) })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.createForumThread(channelId, options, reason)))
|
||||
},
|
||||
createGlobalApplicationCommand: async (command, options) => {
|
||||
return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.createGlobalApplicationCommand(command, options)))
|
||||
@@ -182,7 +181,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return await bot.rest.createInvite(channelId, options, reason)
|
||||
},
|
||||
createRole: async (guildId, options, reason) => {
|
||||
return bot.transformers.role(bot, { role: snakelize(await bot.rest.createRole(guildId, options, reason)), guildId })
|
||||
return bot.transformers.role(bot, snakelize(await bot.rest.createRole(guildId, options, reason)), { guildId })
|
||||
},
|
||||
createScheduledEvent: async (guildId, options, reason) => {
|
||||
return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.createScheduledEvent(guildId, options, reason)))
|
||||
@@ -206,7 +205,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.user(bot, snakelize(await bot.rest.editBotProfile(options)))
|
||||
},
|
||||
editChannel: async (channelId, options, reason) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.editChannel(channelId, options, reason)) })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.editChannel(channelId, options, reason)))
|
||||
},
|
||||
editEmoji: async (guildId, id, options, reason) => {
|
||||
return bot.transformers.emoji(bot, snakelize(await bot.rest.editEmoji(guildId, id, options, reason)))
|
||||
@@ -215,13 +214,13 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.emoji(bot, snakelize(await bot.rest.editApplicationEmoji(id, options)))
|
||||
},
|
||||
editFollowupMessage: async (token, messageId, options) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.editFollowupMessage(token, messageId, options)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.editFollowupMessage(token, messageId, options)))
|
||||
},
|
||||
editGlobalApplicationCommand: async (commandId, options) => {
|
||||
return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.editGlobalApplicationCommand(commandId, options)))
|
||||
},
|
||||
editGuild: async (guildId, options, reason) => {
|
||||
return bot.transformers.guild(bot, { guild: snakelize(await bot.rest.editGuild(guildId, options, reason)), shardId: 0 })
|
||||
return bot.transformers.guild(bot, snakelize(await bot.rest.editGuild(guildId, options, reason)))
|
||||
},
|
||||
editGuildApplicationCommand: async (commandId, guildId, options) => {
|
||||
return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.editGuildApplicationCommand(commandId, guildId, options)))
|
||||
@@ -233,19 +232,16 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.template(bot, snakelize(await bot.rest.editGuildTemplate(guildId, templateCode, options)))
|
||||
},
|
||||
editMessage: async (channelId, messageId, options) => {
|
||||
return bot.transformers.message(bot, {
|
||||
message: snakelize(await bot.rest.editMessage(channelId, messageId, options)) as DiscordMessage,
|
||||
shardId: 0,
|
||||
})
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.editMessage(channelId, messageId, options)))
|
||||
},
|
||||
editOriginalInteractionResponse: async (token, options) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.editOriginalInteractionResponse(token, options)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.editOriginalInteractionResponse(token, options)))
|
||||
},
|
||||
editRole: async (guildId, roleId, options, reason) => {
|
||||
return bot.transformers.role(bot, { role: snakelize(await bot.rest.editRole(guildId, roleId, options, reason)), guildId })
|
||||
return bot.transformers.role(bot, snakelize(await bot.rest.editRole(guildId, roleId, options, reason)), { guildId })
|
||||
},
|
||||
editRolePositions: async (guildId, options, reason) => {
|
||||
return snakelize(await bot.rest.editRolePositions(guildId, options, reason)).map((role) => bot.transformers.role(bot, { role, guildId }))
|
||||
return snakelize(await bot.rest.editRolePositions(guildId, options, reason)).map((role) => bot.transformers.role(bot, role, { guildId }))
|
||||
},
|
||||
editScheduledEvent: async (guildId, eventId, options, reason) => {
|
||||
return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.editScheduledEvent(guildId, eventId, options, reason)))
|
||||
@@ -257,10 +253,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.webhook(bot, snakelize(await bot.rest.editWebhook(webhookId, options, reason)))
|
||||
},
|
||||
editWebhookMessage: async (webhookId, token, messageId, options) => {
|
||||
return bot.transformers.message(bot, {
|
||||
message: snakelize(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)) as DiscordMessage,
|
||||
shardId: 0,
|
||||
})
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)))
|
||||
},
|
||||
editWebhookWithToken: async (webhookId, token, options) => {
|
||||
return bot.transformers.webhook(bot, snakelize(await bot.rest.editWebhookWithToken(webhookId, token, options)))
|
||||
@@ -275,7 +268,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
const result = await bot.rest.executeWebhook(webhookId, token, options)
|
||||
if (!result) return
|
||||
|
||||
return bot.transformers.message(bot, { message: snakelize(result) as DiscordMessage, shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(result))
|
||||
},
|
||||
followAnnouncement: async (sourceChannelId, targetChannelId) => {
|
||||
return await bot.rest.followAnnouncement(sourceChannelId, targetChannelId)
|
||||
@@ -283,15 +276,15 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
getActiveThreads: async (guildId) => {
|
||||
const result = await bot.rest.getActiveThreads(guildId)
|
||||
return {
|
||||
threads: result.threads.map((thread) => bot.transformers.channel(bot, { guildId, channel: snakelize(thread) })),
|
||||
threads: result.threads.map((thread) => bot.transformers.channel(bot, snakelize(thread), { guildId })),
|
||||
members: result.members.map((member) => bot.transformers.threadMember(bot, snakelize(member), { guildId })),
|
||||
}
|
||||
},
|
||||
getApplicationInfo: async () => {
|
||||
return bot.transformers.application(bot, { application: snakelize(await bot.rest.getApplicationInfo()), shardId: 0 })
|
||||
return bot.transformers.application(bot, snakelize(await bot.rest.getApplicationInfo()))
|
||||
},
|
||||
editApplicationInfo: async (body) => {
|
||||
return bot.transformers.application(bot, { application: snakelize(await bot.rest.editApplicationInfo(body)), shardId: 0 })
|
||||
return bot.transformers.application(bot, snakelize(await bot.rest.editApplicationInfo(body)))
|
||||
},
|
||||
getCurrentAuthenticationInfo: async (bearerToken) => {
|
||||
return await bot.rest.getCurrentAuthenticationInfo(bearerToken)
|
||||
@@ -332,23 +325,23 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return await bot.rest.getBans(guildId, options)
|
||||
},
|
||||
getChannel: async (channelId) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.getChannel(channelId)) })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.getChannel(channelId)))
|
||||
},
|
||||
getChannelInvites: async (channelId) => {
|
||||
return await bot.rest.getChannelInvites(channelId)
|
||||
// return (await bot.rest.getChannelInvites(channelId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
|
||||
},
|
||||
getChannels: async (guildId) => {
|
||||
return (await bot.rest.getChannels(guildId)).map((res) => bot.transformers.channel(bot, { channel: snakelize(res), guildId }))
|
||||
return (await bot.rest.getChannels(guildId)).map((res) => bot.transformers.channel(bot, snakelize(res), { guildId }))
|
||||
},
|
||||
getChannelWebhooks: async (channelId) => {
|
||||
return (await bot.rest.getChannelWebhooks(channelId)).map((res) => bot.transformers.webhook(bot, snakelize(res)))
|
||||
},
|
||||
getDmChannel: async (userId) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.getDmChannel(userId)) })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.getDmChannel(userId)))
|
||||
},
|
||||
getGroupDmChannel: async (options) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.getGroupDmChannel(options)) })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.getGroupDmChannel(options)))
|
||||
},
|
||||
getEmoji: async (guildId, emojiId) => {
|
||||
return bot.transformers.emoji(bot, snakelize(await bot.rest.getEmoji(guildId, emojiId)))
|
||||
@@ -367,7 +360,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
}
|
||||
},
|
||||
getFollowupMessage: async (token, messageId) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.getFollowupMessage(token, messageId)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.getFollowupMessage(token, messageId)))
|
||||
},
|
||||
getGatewayBot: async () => {
|
||||
return bot.transformers.gatewayBot(bot, snakelize(await bot.rest.getGatewayBot()))
|
||||
@@ -379,12 +372,12 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return (await bot.rest.getGlobalApplicationCommands(options)).map((res) => bot.transformers.applicationCommand(bot, snakelize(res)))
|
||||
},
|
||||
getGuild: async (guildId, options) => {
|
||||
return bot.transformers.guild(bot, { guild: snakelize(await bot.rest.getGuild(guildId, options)), shardId: 0 })
|
||||
return bot.transformers.guild(bot, snakelize(await bot.rest.getGuild(guildId, options)))
|
||||
},
|
||||
getGuilds: async (bearerToken, options) => {
|
||||
return (await bot.rest.getGuilds(bearerToken, options)).map<Partial<typeof bot.transformers.$inferredTypes.guild>>((res) =>
|
||||
// @ts-expect-error getGuilds returns partial guilds
|
||||
bot.transformers.guild(bot, { guild: snakelize(res), shardId: 0 }),
|
||||
bot.transformers.guild(bot, snakelize(res)),
|
||||
)
|
||||
},
|
||||
getGuildApplicationCommand: async (commandId, guildId) => {
|
||||
@@ -418,16 +411,16 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
)
|
||||
},
|
||||
getInvite: async (inviteCode, options) => {
|
||||
return bot.transformers.invite(bot, { invite: snakelize(await bot.rest.getInvite(inviteCode, options)), shardId: 0 })
|
||||
return bot.transformers.invite(bot, snakelize(await bot.rest.getInvite(inviteCode, options)))
|
||||
},
|
||||
getInvites: async (guildId) => {
|
||||
return (await bot.rest.getInvites(guildId)).map((res) => bot.transformers.invite(bot, { invite: snakelize(res), shardId: 0 }))
|
||||
return (await bot.rest.getInvites(guildId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
|
||||
},
|
||||
getMessage: async (channelId, messageId) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.getMessage(channelId, messageId)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.getMessage(channelId, messageId)))
|
||||
},
|
||||
getMessages: async (channelId, options) => {
|
||||
return (await bot.rest.getMessages(channelId, options)).map((res) => bot.transformers.message(bot, { message: snakelize(res), shardId: 0 }))
|
||||
return (await bot.rest.getMessages(channelId, options)).map((res) => bot.transformers.message(bot, snakelize(res)))
|
||||
},
|
||||
getStickerPack: async (stickerPackId) => {
|
||||
return bot.transformers.stickerPack(bot, snakelize(await bot.rest.getStickerPack(stickerPackId)))
|
||||
@@ -436,7 +429,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return (await bot.rest.getStickerPacks()).map((res) => bot.transformers.stickerPack(bot, snakelize(res)))
|
||||
},
|
||||
getOriginalInteractionResponse: async (token) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.getOriginalInteractionResponse(token)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.getOriginalInteractionResponse(token)))
|
||||
},
|
||||
getChannelPins: async (channelId, options) => {
|
||||
const res = snakelize(await bot.rest.getChannelPins(channelId, options))
|
||||
@@ -447,7 +440,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
}
|
||||
},
|
||||
getPinnedMessages: async (channelId) => {
|
||||
return (await bot.rest.getPinnedMessages(channelId)).map((res) => bot.transformers.message(bot, { message: snakelize(res), shardId: 0 }))
|
||||
return (await bot.rest.getPinnedMessages(channelId)).map((res) => bot.transformers.message(bot, snakelize(res)))
|
||||
},
|
||||
getPrivateArchivedThreads: async (channelId, options) => {
|
||||
return await bot.rest.getPrivateArchivedThreads(channelId, options)
|
||||
@@ -462,10 +455,10 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return await bot.rest.getPublicArchivedThreads(channelId, options)
|
||||
},
|
||||
getRoles: async (guildId) => {
|
||||
return snakelize(await bot.rest.getRoles(guildId)).map((role) => bot.transformers.role(bot, { role, guildId }))
|
||||
return snakelize(await bot.rest.getRoles(guildId)).map((role) => bot.transformers.role(bot, role, { guildId }))
|
||||
},
|
||||
getRole: async (guildId, roleId) => {
|
||||
return bot.transformers.role(bot, { role: snakelize(await bot.rest.getRole(guildId, roleId)), guildId })
|
||||
return bot.transformers.role(bot, snakelize(await bot.rest.getRole(guildId, roleId)), { guildId })
|
||||
},
|
||||
getScheduledEvent: async (guildId, eventId, options) => {
|
||||
return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.getScheduledEvent(guildId, eventId, options)))
|
||||
@@ -477,7 +470,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return (await bot.rest.getScheduledEventUsers(guildId, eventId, options)).map((u) => {
|
||||
return {
|
||||
user: bot.transformers.user(bot, snakelize(u.user)),
|
||||
member: u.member && bot.transformers.member(bot, snakelize(u.member), guildId, bot.transformers.snowflake(u.user.id)),
|
||||
member: u.member && bot.transformers.member(bot, snakelize(u.member), { guildId, userId: bot.transformers.snowflake(u.user.id) }),
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -488,10 +481,10 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.stageInstance(bot, snakelize(await bot.rest.getStageInstance(channelId)))
|
||||
},
|
||||
getOwnVoiceState: async (guildId) => {
|
||||
return bot.transformers.voiceState(bot, { guildId, voiceState: snakelize(await bot.rest.getOwnVoiceState(guildId)) })
|
||||
return bot.transformers.voiceState(bot, snakelize(await bot.rest.getOwnVoiceState(guildId)), { guildId })
|
||||
},
|
||||
getUserVoiceState: async (guildId, userId) => {
|
||||
return bot.transformers.voiceState(bot, { guildId, voiceState: snakelize(await bot.rest.getUserVoiceState(guildId, userId)) })
|
||||
return bot.transformers.voiceState(bot, snakelize(await bot.rest.getUserVoiceState(guildId, userId)), { guildId })
|
||||
},
|
||||
getSticker: async (stickerId) => {
|
||||
return bot.transformers.sticker(bot, snakelize(await bot.rest.getSticker(stickerId)))
|
||||
@@ -527,7 +520,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.webhook(bot, snakelize(await bot.rest.getWebhook(webhookId)))
|
||||
},
|
||||
getWebhookMessage: async (webhookId, token, messageId, options) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)))
|
||||
},
|
||||
getWebhookWithToken: async (webhookId, token) => {
|
||||
return bot.transformers.webhook(bot, snakelize(await bot.rest.getWebhookWithToken(webhookId, token)))
|
||||
@@ -542,21 +535,19 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
return bot.transformers.widgetSettings(bot, snakelize(await bot.rest.getWidgetSettings(guildId)))
|
||||
},
|
||||
publishMessage: async (channelId, messageId) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.publishMessage(channelId, messageId)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.publishMessage(channelId, messageId)))
|
||||
},
|
||||
sendMessage: async (channelId, options) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.sendMessage(channelId, options)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.sendMessage(channelId, options)))
|
||||
},
|
||||
sendFollowupMessage: async (token, options) => {
|
||||
return bot.transformers.message(bot, { message: snakelize(await bot.rest.sendFollowupMessage(token, options)), shardId: 0 })
|
||||
return bot.transformers.message(bot, snakelize(await bot.rest.sendFollowupMessage(token, options)))
|
||||
},
|
||||
startThreadWithMessage: async (channelId, messageId, options, reason) => {
|
||||
return bot.transformers.channel(bot, {
|
||||
channel: snakelize(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason)),
|
||||
})
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason)))
|
||||
},
|
||||
startThreadWithoutMessage: async (channelId, options, reason) => {
|
||||
return bot.transformers.channel(bot, { channel: snakelize(await bot.rest.startThreadWithoutMessage(channelId, options, reason)) })
|
||||
return bot.transformers.channel(bot, snakelize(await bot.rest.startThreadWithoutMessage(channelId, options, reason)))
|
||||
},
|
||||
syncGuildTemplate: async (guildId) => {
|
||||
return bot.transformers.template(bot, snakelize(await bot.rest.syncGuildTemplate(guildId)))
|
||||
@@ -572,21 +563,21 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
)
|
||||
},
|
||||
editBotMember: async (guildId, options, reason) => {
|
||||
return bot.transformers.member(bot, snakelize(await bot.rest.editBotMember(guildId, options, reason)), guildId, bot.id)
|
||||
return bot.transformers.member(bot, snakelize(await bot.rest.editBotMember(guildId, options, reason)), { guildId, userId: bot.id })
|
||||
},
|
||||
editMember: async (guildId, userId, options, reason) => {
|
||||
return bot.transformers.member(bot, snakelize(await bot.rest.editMember(guildId, userId, options, reason)), guildId, userId)
|
||||
return bot.transformers.member(bot, snakelize(await bot.rest.editMember(guildId, userId, options, reason)), { guildId, userId })
|
||||
},
|
||||
getMember: async (guildId, userId) => {
|
||||
return bot.transformers.member(bot, snakelize(await bot.rest.getMember(guildId, userId)), guildId, userId)
|
||||
return bot.transformers.member(bot, snakelize(await bot.rest.getMember(guildId, userId)), { guildId, userId })
|
||||
},
|
||||
getCurrentMember: async (guildId, bearerToken) => {
|
||||
const res = await bot.rest.getCurrentMember(guildId, bearerToken)
|
||||
return bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id))
|
||||
return bot.transformers.member(bot, snakelize(res), { guildId, userId: bot.transformers.snowflake(res.user.id) })
|
||||
},
|
||||
getMembers: async (guildId, options) => {
|
||||
return (await bot.rest.getMembers(guildId, options)).map((res) =>
|
||||
bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id)),
|
||||
bot.transformers.member(bot, snakelize(res), { guildId, userId: bot.transformers.snowflake(res.user.id) }),
|
||||
)
|
||||
},
|
||||
pruneMembers: async (guildId, options, reason) => {
|
||||
@@ -594,7 +585,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
},
|
||||
searchMembers: async (guildId, query, options) => {
|
||||
return (await bot.rest.searchMembers(guildId, query, options)).map((res) =>
|
||||
bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id)),
|
||||
bot.transformers.member(bot, snakelize(res), { guildId, userId: bot.transformers.snowflake(res.user.id) }),
|
||||
)
|
||||
},
|
||||
bulkBanMembers: async (guildId, options, reason) => {
|
||||
@@ -764,7 +755,7 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
|
||||
if (!response) return
|
||||
|
||||
return bot.transformers.interactionCallbackResponse(bot, { interactionCallbackResponse: snakelize(response), shardId: 0 })
|
||||
return bot.transformers.interactionCallbackResponse(bot, snakelize(response))
|
||||
},
|
||||
triggerTypingIndicator: async (channelId) => {
|
||||
return await bot.rest.triggerTypingIndicator(channelId)
|
||||
|
||||
@@ -263,7 +263,7 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
payload: DiscordActivityLocation,
|
||||
activityLocation: SetupDesiredProps<ActivityLocation, TProps, TBehavior>,
|
||||
) => any
|
||||
application: (bot: Bot<TProps, TBehavior>, payload: DiscordApplication, application: Application) => any
|
||||
application: (bot: Bot<TProps, TBehavior>, payload: DiscordApplication, application: Application, extra?: { shardId?: number }) => any
|
||||
applicationCommand: (bot: Bot<TProps, TBehavior>, payload: DiscordApplicationCommand, applicationCommand: ApplicationCommand) => any
|
||||
applicationCommandOption: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
@@ -293,7 +293,12 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
payload: DiscordAvatarDecorationData,
|
||||
avatarDecorationData: SetupDesiredProps<AvatarDecorationData, TProps, TBehavior>,
|
||||
) => any
|
||||
channel: (bot: Bot<TProps, TBehavior>, payload: DiscordChannel, channel: SetupDesiredProps<Channel, TProps, TBehavior>) => any
|
||||
channel: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordChannel,
|
||||
channel: SetupDesiredProps<Channel, TProps, TBehavior>,
|
||||
extra?: { guildId?: bigint },
|
||||
) => any
|
||||
collectibles: (bot: Bot<TProps, TBehavior>, payload: DiscordCollectibles, collectibles: SetupDesiredProps<Collectibles, TProps, TBehavior>) => any
|
||||
component: (bot: Bot<TProps, TBehavior>, payload: DiscordMessageComponent, component: Component) => any
|
||||
defaultReactionEmoji: (
|
||||
@@ -306,7 +311,12 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
entitlement: (bot: Bot<TProps, TBehavior>, payload: DiscordEntitlement, entitlement: SetupDesiredProps<Entitlement, TProps, TBehavior>) => any
|
||||
forumTag: (bot: Bot<TProps, TBehavior>, payload: DiscordForumTag, forumTag: SetupDesiredProps<ForumTag, TProps, TBehavior>) => any
|
||||
gatewayBot: (bot: Bot<TProps, TBehavior>, payload: DiscordGetGatewayBot, getGatewayBot: GetGatewayBot) => any
|
||||
guild: (bot: Bot<TProps, TBehavior>, payload: DiscordGuild, guild: SetupDesiredProps<Guild, TProps, TBehavior>) => any
|
||||
guild: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordGuild,
|
||||
guild: SetupDesiredProps<Guild, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
guildOnboarding: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordGuildOnboarding,
|
||||
@@ -330,8 +340,9 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
integration: (bot: Bot<TProps, TBehavior>, payload: DiscordIntegrationCreateUpdate, integration: Integration) => any
|
||||
interaction: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { interaction: DiscordInteraction; shardId: number },
|
||||
payload: DiscordInteraction,
|
||||
interaction: SetupDesiredProps<Interaction, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
interactionCallback: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
@@ -342,50 +353,71 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordInteractionCallbackResponse,
|
||||
interactionCallbackResponse: SetupDesiredProps<InteractionCallbackResponse, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
interactionDataOptions: (bot: Bot<TProps, TBehavior>, payload: DiscordInteractionDataOption, interactionDataOptions: InteractionDataOption) => any
|
||||
interactionDataResolved: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { resolved: DiscordInteractionDataResolved; guildId?: bigint },
|
||||
payload: DiscordInteractionDataResolved,
|
||||
interactionDataResolved: InteractionDataResolved,
|
||||
extra?: { shardId?: number; guildId?: bigint },
|
||||
) => any
|
||||
interactionResource: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordInteractionResource,
|
||||
interactionResource: SetupDesiredProps<InteractionResource, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
invite: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordInviteCreate | DiscordInviteMetadata,
|
||||
invite: SetupDesiredProps<Invite, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
inviteStageInstance: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordInviteStageInstance,
|
||||
inviteStageInstance: SetupDesiredProps<InviteStageInstance, TProps, TBehavior>,
|
||||
extra?: { guildId?: bigint },
|
||||
) => any
|
||||
lobby: (bot: Bot<TProps, TBehavior>, payload: DiscordLobby, lobby: SetupDesiredProps<Lobby, TProps, TBehavior>) => any
|
||||
lobbyMember: (bot: Bot<TProps, TBehavior>, payload: DiscordLobbyMember, lobbyMember: SetupDesiredProps<LobbyMember, TProps, TBehavior>) => any
|
||||
mediaGalleryItem: (bot: Bot<TProps, TBehavior>, payload: DiscordMediaGalleryItem, item: MediaGalleryItem) => any
|
||||
member: (bot: Bot<TProps, TBehavior>, payload: DiscordMember, member: SetupDesiredProps<Member, TProps, TBehavior>) => any
|
||||
message: (bot: Bot<TProps, TBehavior>, payload: DiscordMessage, message: SetupDesiredProps<Message, TProps, TBehavior>) => any
|
||||
member: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMember,
|
||||
member: SetupDesiredProps<Member, TProps, TBehavior>,
|
||||
extra?: { guildId?: bigint; userId?: bigint },
|
||||
) => any
|
||||
message: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMessage,
|
||||
message: SetupDesiredProps<Message, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
messageCall: (bot: Bot<TProps, TBehavior>, payload: DiscordMessageCall, call: SetupDesiredProps<MessageCall, TProps, TBehavior>) => any
|
||||
messageInteractionMetadata: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMessageInteractionMetadata,
|
||||
metadata: SetupDesiredProps<MessageInteractionMetadata, TProps, TBehavior>,
|
||||
) => any
|
||||
messagePin: (bot: Bot<TProps, TBehavior>, payload: DiscordMessagePin, call: SetupDesiredProps<MessagePin, TProps, TBehavior>) => any
|
||||
messagePin: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMessagePin,
|
||||
call: SetupDesiredProps<MessagePin, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
messageSnapshot: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMessageSnapshot,
|
||||
messageSnapshot: SetupDesiredProps<MessageSnapshot, TProps, TBehavior>,
|
||||
extra?: { shardId?: number },
|
||||
) => any
|
||||
nameplate: (bot: Bot<TProps, TBehavior>, payload: DiscordNameplate, nameplate: SetupDesiredProps<Nameplate, TProps, TBehavior>) => any
|
||||
poll: (bot: Bot<TProps, TBehavior>, payload: DiscordPoll, poll: SetupDesiredProps<Poll, TProps, TBehavior>) => any
|
||||
pollMedia: (bot: Bot<TProps, TBehavior>, payload: DiscordPollMedia, pollMedia: SetupDesiredProps<PollMedia, TProps, TBehavior>) => any
|
||||
presence: (bot: Bot<TProps, TBehavior>, payload: DiscordPresenceUpdate, presence: PresenceUpdate) => any
|
||||
role: (bot: Bot<TProps, TBehavior>, payload: DiscordRole, role: SetupDesiredProps<Role, TProps, TBehavior>) => any
|
||||
role: (bot: Bot<TProps, TBehavior>, payload: DiscordRole, role: SetupDesiredProps<Role, TProps, TBehavior>, extra?: { guildId?: bigint }) => any
|
||||
roleColors: (bot: Bot<TProps, TBehavior>, payload: DiscordRoleColors, roleColors: SetupDesiredProps<RoleColors, TProps, TBehavior>) => any
|
||||
scheduledEvent: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
@@ -427,7 +459,12 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
userPrimaryGuild: SetupDesiredProps<UserPrimaryGuild, TProps, TBehavior>,
|
||||
) => any
|
||||
voiceRegion: (bot: Bot<TProps, TBehavior>, payload: DiscordVoiceRegion, voiceRegion: VoiceRegion) => any
|
||||
voiceState: (bot: Bot<TProps, TBehavior>, payload: DiscordVoiceState, voiceState: SetupDesiredProps<VoiceState, TProps, TBehavior>) => any
|
||||
voiceState: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordVoiceState,
|
||||
voiceState: SetupDesiredProps<VoiceState, TProps, TBehavior>,
|
||||
extra?: { guildId?: bigint },
|
||||
) => any
|
||||
webhook: (bot: Bot<TProps, TBehavior>, payload: DiscordWebhook, webhook: SetupDesiredProps<Webhook, TProps, TBehavior>) => any
|
||||
welcomeScreen: (bot: Bot<TProps, TBehavior>, payload: DiscordWelcomeScreen, welcomeScreen: WelcomeScreen) => any
|
||||
widget: (bot: Bot<TProps, TBehavior>, payload: DiscordGuildWidget, widget: GuildWidget) => any
|
||||
@@ -454,7 +491,7 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
activity: (bot: Bot<TProps, TBehavior>, payload: DiscordActivity) => Activity
|
||||
activityInstance: (bot: Bot<TProps, TBehavior>, payload: DiscordActivityInstance) => SetupDesiredProps<ActivityInstance, TProps, TBehavior>
|
||||
activityLocation: (bot: Bot<TProps, TBehavior>, payload: DiscordActivityLocation) => SetupDesiredProps<ActivityLocation, TProps, TBehavior>
|
||||
application: (bot: Bot<TProps, TBehavior>, payload: { application: DiscordApplication; shardId: number }) => Application
|
||||
application: (bot: Bot<TProps, TBehavior>, payload: DiscordApplication, extra?: { shardId?: number }) => Application
|
||||
applicationCommand: (bot: Bot<TProps, TBehavior>, payload: DiscordApplicationCommand) => ApplicationCommand
|
||||
applicationCommandOption: (bot: Bot<TProps, TBehavior>, payload: DiscordApplicationCommandOption) => ApplicationCommandOption
|
||||
applicationCommandOptionChoice: (bot: Bot<TProps, TBehavior>, payload: DiscordApplicationCommandOptionChoice) => ApplicationCommandOptionChoice
|
||||
@@ -470,7 +507,7 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordAvatarDecorationData,
|
||||
) => SetupDesiredProps<AvatarDecorationData, TProps, TBehavior>
|
||||
channel: (bot: Bot<TProps, TBehavior>, payload: { channel: DiscordChannel; guildId?: BigString }) => SetupDesiredProps<Channel, TProps, TBehavior>
|
||||
channel: (bot: Bot<TProps, TBehavior>, payload: DiscordChannel, extra?: { guildId?: BigString }) => SetupDesiredProps<Channel, TProps, TBehavior>
|
||||
collectibles: (bot: Bot<TProps, TBehavior>, payload: DiscordCollectibles) => SetupDesiredProps<Collectibles, TProps, TBehavior>
|
||||
component: (bot: Bot<TProps, TBehavior>, payload: DiscordMessageComponent) => Component
|
||||
defaultReactionEmoji: (
|
||||
@@ -482,7 +519,7 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
entitlement: (bot: Bot<TProps, TBehavior>, payload: DiscordEntitlement) => SetupDesiredProps<Entitlement, TProps, TBehavior>
|
||||
forumTag: (bot: Bot<TProps, TBehavior>, payload: DiscordForumTag) => SetupDesiredProps<ForumTag, TProps, TBehavior>
|
||||
gatewayBot: (bot: Bot<TProps, TBehavior>, payload: DiscordGetGatewayBot) => GetGatewayBot
|
||||
guild: (bot: Bot<TProps, TBehavior>, payload: { guild: DiscordGuild; shardId: number }) => SetupDesiredProps<Guild, TProps, TBehavior>
|
||||
guild: (bot: Bot<TProps, TBehavior>, payload: DiscordGuild, extra?: { shardId?: number }) => SetupDesiredProps<Guild, TProps, TBehavior>
|
||||
guildOnboarding: (bot: Bot<TProps, TBehavior>, payload: DiscordGuildOnboarding) => SetupDesiredProps<GuildOnboarding, TProps, TBehavior>
|
||||
guildOnboardingPrompt: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
@@ -493,29 +530,35 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
integration: (bot: Bot<TProps, TBehavior>, payload: DiscordIntegrationCreateUpdate) => Integration
|
||||
interaction: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { interaction: DiscordInteraction; shardId: number },
|
||||
payload: DiscordInteraction,
|
||||
extra?: { shardId?: number },
|
||||
) => SetupDesiredProps<Interaction, TProps, TBehavior>
|
||||
interactionCallback: (bot: Bot<TProps, TBehavior>, payload: DiscordInteractionCallback) => SetupDesiredProps<InteractionCallback, TProps, TBehavior>
|
||||
interactionCallbackResponse: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { interactionCallbackResponse: DiscordInteractionCallbackResponse; shardId: number },
|
||||
payload: DiscordInteractionCallbackResponse,
|
||||
extra?: { shardId?: number },
|
||||
) => SetupDesiredProps<InteractionCallbackResponse, TProps, TBehavior>
|
||||
interactionDataOptions: (bot: Bot<TProps, TBehavior>, payload: DiscordInteractionDataOption) => InteractionDataOption
|
||||
interactionDataResolved: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { resolved: DiscordInteractionDataResolved; shardId: number; guildId?: bigint },
|
||||
payload: DiscordInteractionDataResolved,
|
||||
extra?: { shardId?: number; guildId?: BigString },
|
||||
) => TransformProperty<InteractionDataResolved, TProps, TBehavior>
|
||||
interactionResource: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { interactionResource: DiscordInteractionResource; shardId: number },
|
||||
payload: DiscordInteractionResource,
|
||||
extra?: { shardId?: number },
|
||||
) => SetupDesiredProps<InteractionResource, TProps, TBehavior>
|
||||
invite: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { invite: DiscordInviteCreate | DiscordInviteMetadata; shardId: number },
|
||||
payload: DiscordInviteCreate | DiscordInviteMetadata,
|
||||
extra?: { shardId?: number },
|
||||
) => SetupDesiredProps<Invite, TProps, TBehavior>
|
||||
inviteStageInstance: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordInviteStageInstance & { guildId: BigString },
|
||||
payload: DiscordInviteStageInstance,
|
||||
extra?: { guildId: BigString },
|
||||
) => SetupDesiredProps<InviteStageInstance, TProps, TBehavior>
|
||||
lobby: (bot: Bot<TProps, TBehavior>, payload: DiscordLobby) => SetupDesiredProps<Lobby, TProps, TBehavior>
|
||||
lobbyMember: (bot: Bot<TProps, TBehavior>, payload: DiscordLobbyMember) => SetupDesiredProps<LobbyMember, TProps, TBehavior>
|
||||
@@ -523,25 +566,29 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
member: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMember,
|
||||
guildId: BigString | undefined,
|
||||
userId: BigString,
|
||||
extra?: { guildId?: BigString; userId?: BigString },
|
||||
) => SetupDesiredProps<Member, TProps, TBehavior>
|
||||
message: (bot: Bot<TProps, TBehavior>, payload: { message: DiscordMessage; shardId: number }) => SetupDesiredProps<Message, TProps, TBehavior>
|
||||
message: (bot: Bot<TProps, TBehavior>, payload: DiscordMessage, extra?: { shardId?: number }) => SetupDesiredProps<Message, TProps, TBehavior>
|
||||
messageCall: (bot: Bot<TProps, TBehavior>, payload: DiscordMessageCall) => SetupDesiredProps<MessageCall, TProps, TBehavior>
|
||||
messageInteractionMetadata: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMessageInteractionMetadata,
|
||||
) => SetupDesiredProps<MessageInteractionMetadata, TProps, TBehavior>
|
||||
messagePin: (bot: Bot<TProps, TBehavior>, payload: DiscordMessagePin) => SetupDesiredProps<MessagePin, TProps, TBehavior>
|
||||
messagePin: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMessagePin,
|
||||
extra?: { shardId?: number },
|
||||
) => SetupDesiredProps<MessagePin, TProps, TBehavior>
|
||||
messageSnapshot: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { messageSnapshot: DiscordMessageSnapshot; shardId: number },
|
||||
payload: DiscordMessageSnapshot,
|
||||
extra?: { shardId?: number },
|
||||
) => SetupDesiredProps<MessageSnapshot, TProps, TBehavior>
|
||||
nameplate: (bot: Bot<TProps, TBehavior>, payload: DiscordNameplate) => SetupDesiredProps<Nameplate, TProps, TBehavior>
|
||||
poll: (bot: Bot<TProps, TBehavior>, payload: DiscordPoll) => SetupDesiredProps<Poll, TProps, TBehavior>
|
||||
pollMedia: (bot: Bot<TProps, TBehavior>, payload: DiscordPollMedia) => SetupDesiredProps<PollMedia, TProps, TBehavior>
|
||||
presence: (bot: Bot<TProps, TBehavior>, payload: DiscordPresenceUpdate) => PresenceUpdate
|
||||
role: (bot: Bot<TProps, TBehavior>, payload: { role: DiscordRole; guildId: BigString }) => SetupDesiredProps<Role, TProps, TBehavior>
|
||||
role: (bot: Bot<TProps, TBehavior>, payload: DiscordRole, extra?: { guildId?: BigString }) => SetupDesiredProps<Role, TProps, TBehavior>
|
||||
roleColors: (bot: Bot<TProps, TBehavior>, payload: DiscordRoleColors) => SetupDesiredProps<RoleColors, TProps, TBehavior>
|
||||
scheduledEvent: (bot: Bot<TProps, TBehavior>, payload: DiscordScheduledEvent) => SetupDesiredProps<ScheduledEvent, TProps, TBehavior>
|
||||
scheduledEventRecurrenceRule: (
|
||||
@@ -565,7 +612,8 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
voiceRegion: (bot: Bot<TProps, TBehavior>, payload: DiscordVoiceRegion) => VoiceRegion
|
||||
voiceState: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: { voiceState: DiscordVoiceState; guildId: BigString },
|
||||
payload: DiscordVoiceState,
|
||||
extra?: { guildId?: BigString },
|
||||
) => SetupDesiredProps<VoiceState, TProps, TBehavior>
|
||||
webhook: (bot: Bot<TProps, TBehavior>, payload: DiscordWebhook) => SetupDesiredProps<Webhook, TProps, TBehavior>
|
||||
welcomeScreen: (bot: Bot<TProps, TBehavior>, payload: DiscordWelcomeScreen) => WelcomeScreen
|
||||
|
||||
@@ -7,70 +7,70 @@ import {
|
||||
iconHashToBigInt,
|
||||
} from '../index.js'
|
||||
|
||||
export function transformApplication(bot: Bot, payload: { application: DiscordApplication; shardId: number }): Application {
|
||||
export function transformApplication(bot: Bot, payload: DiscordApplication, extra?: { shardId?: number }): Application {
|
||||
const application = {
|
||||
name: payload.application.name,
|
||||
description: payload.application.description,
|
||||
rpcOrigins: payload.application.rpc_origins,
|
||||
botPublic: payload.application.bot_public,
|
||||
botRequireCodeGrant: payload.application.bot_require_code_grant,
|
||||
termsOfServiceUrl: payload.application.terms_of_service_url,
|
||||
privacyPolicyUrl: payload.application.privacy_policy_url,
|
||||
verifyKey: payload.application.verify_key,
|
||||
primarySkuId: payload.application.primary_sku_id,
|
||||
slug: payload.application.slug,
|
||||
coverImage: payload.application.cover_image ? iconHashToBigInt(payload.application.cover_image) : undefined,
|
||||
flags: payload.application.flags,
|
||||
name: payload.name,
|
||||
description: payload.description,
|
||||
rpcOrigins: payload.rpc_origins,
|
||||
botPublic: payload.bot_public,
|
||||
botRequireCodeGrant: payload.bot_require_code_grant,
|
||||
termsOfServiceUrl: payload.terms_of_service_url,
|
||||
privacyPolicyUrl: payload.privacy_policy_url,
|
||||
verifyKey: payload.verify_key,
|
||||
primarySkuId: payload.primary_sku_id,
|
||||
slug: payload.slug,
|
||||
coverImage: payload.cover_image ? iconHashToBigInt(payload.cover_image) : undefined,
|
||||
flags: payload.flags,
|
||||
|
||||
id: bot.transformers.snowflake(payload.application.id),
|
||||
icon: payload.application.icon ? iconHashToBigInt(payload.application.icon) : undefined,
|
||||
owner: payload.application.owner
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
icon: payload.icon ? iconHashToBigInt(payload.icon) : undefined,
|
||||
owner: payload.owner
|
||||
? // @ts-expect-error the partial here wont break anything
|
||||
bot.transformers.user(bot, payload.application.owner)
|
||||
bot.transformers.user(bot, payload.owner)
|
||||
: undefined,
|
||||
team: payload.application.team ? bot.transformers.team(bot, payload.application.team) : undefined,
|
||||
guildId: payload.application.guild_id ? bot.transformers.snowflake(payload.application.guild_id) : undefined,
|
||||
customInstallUrl: payload.application.custom_install_url,
|
||||
team: payload.team ? bot.transformers.team(bot, payload.team) : undefined,
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
customInstallUrl: payload.custom_install_url,
|
||||
// @ts-expect-error the partial here wont break anything
|
||||
guild: payload.application.guild ? bot.transformers.guild(bot, { guild: payload.application.guild, shardId: payload.shardId }) : undefined,
|
||||
approximateGuildCount: payload.application.approximate_guild_count,
|
||||
approximateUserInstallCount: payload.application.approximate_user_install_count,
|
||||
approximateUserAuthorizationCount: payload.application.approximate_user_authorization_count,
|
||||
bot: payload.application.bot ? bot.transformers.user(bot, payload.application.bot as DiscordUser) : undefined,
|
||||
interactionsEndpointUrl: payload.application.interactions_endpoint_url ? payload.application.interactions_endpoint_url : undefined,
|
||||
redirectUris: payload.application.redirect_uris,
|
||||
roleConnectionsVerificationUrl: payload.application.role_connections_verification_url,
|
||||
tags: payload.application.tags,
|
||||
installParams: payload.application.install_params
|
||||
guild: payload.guild ? bot.transformers.guild(bot, payload.guild, { shardId: extra?.shardId }) : undefined,
|
||||
approximateGuildCount: payload.approximate_guild_count,
|
||||
approximateUserInstallCount: payload.approximate_user_install_count,
|
||||
approximateUserAuthorizationCount: payload.approximate_user_authorization_count,
|
||||
bot: payload.bot ? bot.transformers.user(bot, payload.bot as DiscordUser) : undefined,
|
||||
interactionsEndpointUrl: payload.interactions_endpoint_url ? payload.interactions_endpoint_url : undefined,
|
||||
redirectUris: payload.redirect_uris,
|
||||
roleConnectionsVerificationUrl: payload.role_connections_verification_url,
|
||||
tags: payload.tags,
|
||||
installParams: payload.install_params
|
||||
? {
|
||||
scopes: payload.application.install_params.scopes,
|
||||
permissions: bot.transformers.snowflake(payload.application.install_params.permissions),
|
||||
scopes: payload.install_params.scopes,
|
||||
permissions: bot.transformers.snowflake(payload.install_params.permissions),
|
||||
}
|
||||
: undefined,
|
||||
integrationTypesConfig: payload.application.integration_types_config
|
||||
integrationTypesConfig: payload.integration_types_config
|
||||
? {
|
||||
[DiscordApplicationIntegrationType.GuildInstall]: payload.application.integration_types_config['0']?.oauth2_install_params
|
||||
[DiscordApplicationIntegrationType.GuildInstall]: payload.integration_types_config['0']?.oauth2_install_params
|
||||
? {
|
||||
oauth2InstallParams: {
|
||||
scopes: payload.application.integration_types_config['0'].oauth2_install_params.scopes,
|
||||
permissions: bot.transformers.snowflake(payload.application.integration_types_config['0'].oauth2_install_params.permissions),
|
||||
scopes: payload.integration_types_config['0'].oauth2_install_params.scopes,
|
||||
permissions: bot.transformers.snowflake(payload.integration_types_config['0'].oauth2_install_params.permissions),
|
||||
},
|
||||
}
|
||||
: undefined,
|
||||
[DiscordApplicationIntegrationType.UserInstall]: payload.application.integration_types_config['1']?.oauth2_install_params
|
||||
[DiscordApplicationIntegrationType.UserInstall]: payload.integration_types_config['1']?.oauth2_install_params
|
||||
? {
|
||||
oauth2InstallParams: {
|
||||
scopes: payload.application.integration_types_config['1'].oauth2_install_params.scopes,
|
||||
permissions: bot.transformers.snowflake(payload.application.integration_types_config['1'].oauth2_install_params.permissions),
|
||||
scopes: payload.integration_types_config['1'].oauth2_install_params.scopes,
|
||||
permissions: bot.transformers.snowflake(payload.integration_types_config['1'].oauth2_install_params.permissions),
|
||||
},
|
||||
}
|
||||
: undefined,
|
||||
}
|
||||
: undefined,
|
||||
eventWebhooksUrl: payload.application.event_webhooks_url,
|
||||
eventWebhooksStatus: payload.application.event_webhooks_status,
|
||||
eventWebhooksTypes: payload.application.event_webhooks_types,
|
||||
eventWebhooksUrl: payload.event_webhooks_url,
|
||||
eventWebhooksStatus: payload.event_webhooks_status,
|
||||
eventWebhooksTypes: payload.event_webhooks_types,
|
||||
} as Application
|
||||
|
||||
return bot.transformers.customizers.application(bot, payload.application, application)
|
||||
return bot.transformers.customizers.application(bot, payload, application, extra)
|
||||
}
|
||||
|
||||
@@ -76,62 +76,61 @@ export const baseChannel: Channel = {
|
||||
},
|
||||
}
|
||||
|
||||
export function transformChannel(bot: Bot, payload: { channel: DiscordChannel; guildId?: BigString }) {
|
||||
export function transformChannel(bot: Bot, payload: DiscordChannel, extra?: { guildId?: BigString }) {
|
||||
const channel = Object.create(baseChannel) as SetupDesiredProps<Channel, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
const props = bot.transformers.desiredProperties.channel
|
||||
channel.toggles = new ChannelToggles(payload.channel)
|
||||
channel.toggles = new ChannelToggles(payload)
|
||||
|
||||
if (props.id && payload.channel.id) channel.id = bot.transformers.snowflake(payload.channel.id)
|
||||
if (props.guildId && (payload.guildId ?? payload.channel.guild_id))
|
||||
channel.guildId = payload.guildId ? bot.transformers.snowflake(payload.guildId) : bot.transformers.snowflake(payload.channel.guild_id!)
|
||||
if (props.type) channel.type = payload.channel.type
|
||||
if (props.position) channel.position = payload.channel.position
|
||||
if (props.name && payload.channel.name) channel.name = payload.channel.name
|
||||
if (props.topic && payload.channel.topic) channel.topic = payload.channel.topic
|
||||
if (props.lastMessageId && payload.channel.last_message_id) channel.lastMessageId = bot.transformers.snowflake(payload.channel.last_message_id)
|
||||
if (props.bitrate && payload.channel.bitrate) channel.bitrate = payload.channel.bitrate
|
||||
if (props.userLimit) channel.userLimit = payload.channel.user_limit
|
||||
if (props.rateLimitPerUser) channel.rateLimitPerUser = payload.channel.rate_limit_per_user
|
||||
if (props.ownerId && payload.channel.owner_id) channel.ownerId = bot.transformers.snowflake(payload.channel.owner_id)
|
||||
if (props.lastPinTimestamp && payload.channel.last_pin_timestamp) channel.lastPinTimestamp = Date.parse(payload.channel.last_pin_timestamp)
|
||||
if (props.rtcRegion && payload.channel.rtc_region) channel.rtcRegion = payload.channel.rtc_region
|
||||
if (props.videoQualityMode && payload.channel.video_quality_mode) channel.videoQualityMode = payload.channel.video_quality_mode
|
||||
if (props.messageCount) channel.messageCount = payload.channel.message_count
|
||||
if (props.memberCount) channel.memberCount = payload.channel.member_count
|
||||
if (props.id && payload.id) channel.id = bot.transformers.snowflake(payload.id)
|
||||
if (props.guildId && (extra?.guildId ?? payload.guild_id))
|
||||
channel.guildId = extra?.guildId ? bot.transformers.snowflake(extra.guildId) : bot.transformers.snowflake(payload.guild_id!)
|
||||
if (props.type) channel.type = payload.type
|
||||
if (props.position) channel.position = payload.position
|
||||
if (props.name && payload.name) channel.name = payload.name
|
||||
if (props.topic && payload.topic) channel.topic = payload.topic
|
||||
if (props.lastMessageId && payload.last_message_id) channel.lastMessageId = bot.transformers.snowflake(payload.last_message_id)
|
||||
if (props.bitrate && payload.bitrate) channel.bitrate = payload.bitrate
|
||||
if (props.userLimit) channel.userLimit = payload.user_limit
|
||||
if (props.rateLimitPerUser) channel.rateLimitPerUser = payload.rate_limit_per_user
|
||||
if (props.ownerId && payload.owner_id) channel.ownerId = bot.transformers.snowflake(payload.owner_id)
|
||||
if (props.lastPinTimestamp && payload.last_pin_timestamp) channel.lastPinTimestamp = Date.parse(payload.last_pin_timestamp)
|
||||
if (props.rtcRegion && payload.rtc_region) channel.rtcRegion = payload.rtc_region
|
||||
if (props.videoQualityMode && payload.video_quality_mode) channel.videoQualityMode = payload.video_quality_mode
|
||||
if (props.messageCount) channel.messageCount = payload.message_count
|
||||
if (props.memberCount) channel.memberCount = payload.member_count
|
||||
if (props.threadMetadata) {
|
||||
channel.internalThreadMetadata = {} as NonNullable<Channel['internalThreadMetadata']>
|
||||
if (payload.channel.thread_metadata?.archive_timestamp)
|
||||
channel.internalThreadMetadata.archiveTimestamp = Date.parse(payload.channel.thread_metadata.archive_timestamp)
|
||||
if (payload.channel.thread_metadata?.create_timestamp)
|
||||
channel.internalThreadMetadata.createTimestamp = Date.parse(payload.channel.thread_metadata.create_timestamp)
|
||||
if (payload.channel.thread_metadata?.auto_archive_duration)
|
||||
channel.internalThreadMetadata.autoArchiveDuration = payload.channel.thread_metadata.auto_archive_duration
|
||||
if (payload.thread_metadata?.archive_timestamp)
|
||||
channel.internalThreadMetadata.archiveTimestamp = Date.parse(payload.thread_metadata.archive_timestamp)
|
||||
if (payload.thread_metadata?.create_timestamp)
|
||||
channel.internalThreadMetadata.createTimestamp = Date.parse(payload.thread_metadata.create_timestamp)
|
||||
if (payload.thread_metadata?.auto_archive_duration)
|
||||
channel.internalThreadMetadata.autoArchiveDuration = payload.thread_metadata.auto_archive_duration
|
||||
}
|
||||
if (props.defaultAutoArchiveDuration && payload.channel.default_auto_archive_duration)
|
||||
channel.defaultAutoArchiveDuration = payload.channel.default_auto_archive_duration
|
||||
if (props.permissions && payload.channel.permissions) channel.permissions = new Permissions(payload.channel.permissions)
|
||||
if (props.flags) channel.flags = payload.channel.flags
|
||||
if (props.permissionOverwrites && payload.channel.permission_overwrites)
|
||||
channel.internalOverwrites = payload.channel.permission_overwrites.map((o) => packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type))
|
||||
if (props.parentId && payload.channel.parent_id) channel.parentId = bot.transformers.snowflake(payload.channel.parent_id)
|
||||
if (props.recipients && payload.channel.recipients) channel.recipients = payload.channel.recipients.map((u) => bot.transformers.user(bot, u))
|
||||
if (props.icon && payload.channel.icon) channel.icon = iconHashToBigInt(payload.channel.icon)
|
||||
if (props.applicationId && payload.channel.application_id) channel.applicationId = bot.transformers.snowflake(payload.channel.application_id)
|
||||
if (props.member && payload.channel.member)
|
||||
channel.member = bot.transformers.threadMember(bot, payload.channel.member, { guildId: payload.guildId })
|
||||
if (props.totalMessageSent && payload.channel.total_message_sent !== undefined) channel.totalMessageSent = payload.channel.total_message_sent
|
||||
if (props.availableTags && payload.channel.available_tags)
|
||||
channel.availableTags = payload.channel.available_tags.map((x) => bot.transformers.forumTag(bot, x))
|
||||
if (props.appliedTags && payload.channel.applied_tags) channel.appliedTags = payload.channel.applied_tags.map((x) => bot.transformers.snowflake(x))
|
||||
if (props.defaultReactionEmoji && payload.channel.default_reaction_emoji)
|
||||
channel.defaultReactionEmoji = bot.transformers.defaultReactionEmoji(bot, payload.channel.default_reaction_emoji)
|
||||
if (props.defaultThreadRateLimitPerUser && payload.channel.default_thread_rate_limit_per_user)
|
||||
channel.defaultThreadRateLimitPerUser = payload.channel.default_thread_rate_limit_per_user
|
||||
if (props.defaultSortOrder && payload.channel.default_sort_order !== undefined) channel.defaultSortOrder = payload.channel.default_sort_order
|
||||
if (props.defaultForumLayout && payload.channel.default_forum_layout !== undefined)
|
||||
channel.defaultForumLayout = payload.channel.default_forum_layout
|
||||
if (props.defaultAutoArchiveDuration && payload.default_auto_archive_duration)
|
||||
channel.defaultAutoArchiveDuration = payload.default_auto_archive_duration
|
||||
if (props.permissions && payload.permissions) channel.permissions = new Permissions(payload.permissions)
|
||||
if (props.flags) channel.flags = payload.flags
|
||||
if (props.permissionOverwrites && payload.permission_overwrites)
|
||||
channel.internalOverwrites = payload.permission_overwrites.map((o) => packOverwrites(o.allow ?? '0', o.deny ?? '0', o.id, o.type))
|
||||
if (props.parentId && payload.parent_id) channel.parentId = bot.transformers.snowflake(payload.parent_id)
|
||||
if (props.recipients && payload.recipients) channel.recipients = payload.recipients.map((u) => bot.transformers.user(bot, u))
|
||||
if (props.icon && payload.icon) channel.icon = iconHashToBigInt(payload.icon)
|
||||
if (props.applicationId && payload.application_id) channel.applicationId = bot.transformers.snowflake(payload.application_id)
|
||||
if (props.member && payload.member) channel.member = bot.transformers.threadMember(bot, payload.member, { guildId: extra?.guildId })
|
||||
if (props.totalMessageSent && payload.total_message_sent !== undefined) channel.totalMessageSent = payload.total_message_sent
|
||||
if (props.availableTags && payload.available_tags) channel.availableTags = payload.available_tags.map((x) => bot.transformers.forumTag(bot, x))
|
||||
if (props.appliedTags && payload.applied_tags) channel.appliedTags = payload.applied_tags.map((x) => bot.transformers.snowflake(x))
|
||||
if (props.defaultReactionEmoji && payload.default_reaction_emoji)
|
||||
channel.defaultReactionEmoji = bot.transformers.defaultReactionEmoji(bot, payload.default_reaction_emoji)
|
||||
if (props.defaultThreadRateLimitPerUser && payload.default_thread_rate_limit_per_user)
|
||||
channel.defaultThreadRateLimitPerUser = payload.default_thread_rate_limit_per_user
|
||||
if (props.defaultSortOrder && payload.default_sort_order !== undefined) channel.defaultSortOrder = payload.default_sort_order
|
||||
if (props.defaultForumLayout && payload.default_forum_layout !== undefined) channel.defaultForumLayout = payload.default_forum_layout
|
||||
|
||||
return bot.transformers.customizers.channel(bot, payload.channel, channel)
|
||||
return bot.transformers.customizers.channel(bot, payload, channel, {
|
||||
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
export function transformForumTag(bot: Bot, payload: DiscordForumTag): ForumTag {
|
||||
|
||||
@@ -21,33 +21,32 @@ export const baseGuild: Guild = {
|
||||
},
|
||||
}
|
||||
|
||||
export function transformGuild(bot: Bot, payload: { guild: DiscordGuild; shardId: number }): Guild {
|
||||
const guildId = bot.transformers.snowflake(payload.guild.id)
|
||||
export function transformGuild(bot: Bot, payload: DiscordGuild, extra?: { shardId?: number }): Guild {
|
||||
const guildId = bot.transformers.snowflake(payload.id)
|
||||
const props = bot.transformers.desiredProperties.guild
|
||||
const guild: SetupDesiredProps<Guild, TransformersDesiredProperties, DesiredPropertiesBehavior> = Object.create(baseGuild)
|
||||
|
||||
if (props.afkTimeout && payload.guild.afk_timeout) guild.afkTimeout = payload.guild.afk_timeout
|
||||
if (props.approximateMemberCount && payload.guild.approximate_member_count) guild.approximateMemberCount = payload.guild.approximate_member_count
|
||||
if (props.approximatePresenceCount && payload.guild.approximate_presence_count)
|
||||
guild.approximatePresenceCount = payload.guild.approximate_presence_count
|
||||
if (props.defaultMessageNotifications) guild.defaultMessageNotifications = payload.guild.default_message_notifications
|
||||
if (props.description && payload.guild.description) guild.description = payload.guild.description
|
||||
if (props.toggles) guild.toggles = new GuildToggles(payload.guild)
|
||||
if (props.explicitContentFilter) guild.explicitContentFilter = payload.guild.explicit_content_filter
|
||||
if (props.maxMembers && payload.guild.max_members) guild.maxMembers = payload.guild.max_members
|
||||
if (props.maxPresences && payload.guild.max_presences) guild.maxPresences = payload.guild.max_presences ?? undefined
|
||||
if (props.maxVideoChannelUsers && payload.guild.max_video_channel_users) guild.maxVideoChannelUsers = payload.guild.max_video_channel_users
|
||||
if (props.maxStageVideoChannelUsers && payload.guild.max_stage_video_channel_users)
|
||||
guild.maxStageVideoChannelUsers = payload.guild.max_stage_video_channel_users
|
||||
if (props.mfaLevel) guild.mfaLevel = payload.guild.mfa_level
|
||||
if (props.name && payload.guild.name) guild.name = payload.guild.name
|
||||
if (props.nsfwLevel) guild.nsfwLevel = payload.guild.nsfw_level
|
||||
if (props.preferredLocale && payload.guild.preferred_locale) guild.preferredLocale = payload.guild.preferred_locale
|
||||
if (props.premiumSubscriptionCount && payload.guild.premium_subscription_count !== undefined)
|
||||
guild.premiumSubscriptionCount = payload.guild.premium_subscription_count
|
||||
if (props.premiumTier) guild.premiumTier = payload.guild.premium_tier
|
||||
if (props.stageInstances && payload.guild.stage_instances)
|
||||
guild.stageInstances = payload.guild.stage_instances.map((si) => ({
|
||||
if (props.afkTimeout && payload.afk_timeout) guild.afkTimeout = payload.afk_timeout
|
||||
if (props.approximateMemberCount && payload.approximate_member_count) guild.approximateMemberCount = payload.approximate_member_count
|
||||
if (props.approximatePresenceCount && payload.approximate_presence_count) guild.approximatePresenceCount = payload.approximate_presence_count
|
||||
if (props.defaultMessageNotifications) guild.defaultMessageNotifications = payload.default_message_notifications
|
||||
if (props.description && payload.description) guild.description = payload.description
|
||||
if (props.toggles) guild.toggles = new GuildToggles(payload)
|
||||
if (props.explicitContentFilter) guild.explicitContentFilter = payload.explicit_content_filter
|
||||
if (props.maxMembers && payload.max_members) guild.maxMembers = payload.max_members
|
||||
if (props.maxPresences && payload.max_presences) guild.maxPresences = payload.max_presences ?? undefined
|
||||
if (props.maxVideoChannelUsers && payload.max_video_channel_users) guild.maxVideoChannelUsers = payload.max_video_channel_users
|
||||
if (props.maxStageVideoChannelUsers && payload.max_stage_video_channel_users)
|
||||
guild.maxStageVideoChannelUsers = payload.max_stage_video_channel_users
|
||||
if (props.mfaLevel) guild.mfaLevel = payload.mfa_level
|
||||
if (props.name && payload.name) guild.name = payload.name
|
||||
if (props.nsfwLevel) guild.nsfwLevel = payload.nsfw_level
|
||||
if (props.preferredLocale && payload.preferred_locale) guild.preferredLocale = payload.preferred_locale
|
||||
if (props.premiumSubscriptionCount && payload.premium_subscription_count !== undefined)
|
||||
guild.premiumSubscriptionCount = payload.premium_subscription_count
|
||||
if (props.premiumTier) guild.premiumTier = payload.premium_tier
|
||||
if (props.stageInstances && payload.stage_instances)
|
||||
guild.stageInstances = payload.stage_instances.map((si) => ({
|
||||
/** The id of this Stage instance */
|
||||
id: bot.transformers.snowflake(si.id),
|
||||
/** The guild id of the associated Stage channel */
|
||||
@@ -57,97 +56,96 @@ export function transformGuild(bot: Bot, payload: { guild: DiscordGuild; shardId
|
||||
/** The topic of the Stage instance (1-120 characters) */
|
||||
topic: si.topic,
|
||||
}))
|
||||
if (props.channels && (!!payload.guild.channels || !!payload.guild.threads))
|
||||
if (props.channels && (!!payload.channels || !!payload.threads))
|
||||
guild.channels = new Collection(
|
||||
[...(payload.guild.channels ?? []), ...(payload.guild.threads ?? [])].map((channel) => {
|
||||
const result = bot.transformers.channel(bot, { channel, guildId })
|
||||
[...(payload.channels ?? []), ...(payload.threads ?? [])].map((channel) => {
|
||||
const result = bot.transformers.channel(bot, channel, { guildId })
|
||||
// TODO: We should check that id exists, or else the collection will have undefined as it's key (This is valid for all the collections below as well)
|
||||
// @ts-expect-error: We TODO above
|
||||
// @ts-expect-error: See TODO above
|
||||
return [result.id, result]
|
||||
}),
|
||||
)
|
||||
if (props.members && payload.guild.members)
|
||||
if (props.members && payload.members)
|
||||
guild.members = new Collection(
|
||||
payload.guild.members.map((member) => {
|
||||
const result = bot.transformers.member(bot, member, guildId, bot.transformers.snowflake(member.user!.id))
|
||||
// @ts-expect-error: We TODO above
|
||||
payload.members.map((member) => {
|
||||
const result = bot.transformers.member(bot, member, { guildId, userId: bot.transformers.snowflake(member.user!.id) })
|
||||
// @ts-expect-error: See TODO above
|
||||
return [result.id, result]
|
||||
}),
|
||||
)
|
||||
if (props.roles && payload.guild.roles)
|
||||
if (props.roles && payload.roles)
|
||||
guild.roles = new Collection(
|
||||
payload.guild.roles.map((role) => {
|
||||
const result = bot.transformers.role(bot, { role, guildId })
|
||||
// @ts-expect-error: We TODO above
|
||||
payload.roles.map((role) => {
|
||||
const result = bot.transformers.role(bot, role, { guildId })
|
||||
// @ts-expect-error: See TODO above
|
||||
return [result.id, result]
|
||||
}),
|
||||
)
|
||||
if (props.emojis && payload.guild.emojis)
|
||||
if (props.emojis && payload.emojis)
|
||||
guild.emojis = new Collection(
|
||||
payload.guild.emojis.map((emoji) => {
|
||||
payload.emojis.map((emoji) => {
|
||||
const result = bot.transformers.emoji(bot, emoji)
|
||||
// @ts-expect-error: We TODO above
|
||||
// @ts-expect-error: See TODO above
|
||||
return [result.id!, result]
|
||||
}),
|
||||
)
|
||||
if (props.voiceStates && payload.guild.voice_states)
|
||||
if (props.voiceStates && payload.voice_states)
|
||||
guild.voiceStates = new Collection(
|
||||
payload.guild.voice_states.map((voiceState) => {
|
||||
const result = bot.transformers.voiceState(bot, { voiceState, guildId })
|
||||
// @ts-expect-error: We TODO above
|
||||
payload.voice_states.map((voiceState) => {
|
||||
const result = bot.transformers.voiceState(bot, voiceState, { guildId })
|
||||
// @ts-expect-error: See TODO above
|
||||
return [result.userId, result]
|
||||
}),
|
||||
)
|
||||
if (props.stickers && payload.guild.stickers)
|
||||
if (props.stickers && payload.stickers)
|
||||
guild.stickers = new Collection(
|
||||
payload.guild.stickers?.map((sticker) => {
|
||||
payload.stickers?.map((sticker) => {
|
||||
const result = bot.transformers.sticker(bot, sticker)
|
||||
// @ts-expect-error: We TODO above
|
||||
// @ts-expect-error: See TODO above
|
||||
return [result.id, result]
|
||||
}),
|
||||
)
|
||||
if (props.systemChannelFlags && payload.guild.system_channel_flags) guild.systemChannelFlags = payload.guild.system_channel_flags
|
||||
if (props.vanityUrlCode && payload.guild.vanity_url_code) guild.vanityUrlCode = payload.guild.vanity_url_code
|
||||
if (props.verificationLevel) guild.verificationLevel = payload.guild.verification_level
|
||||
if (props.welcomeScreen && payload.guild.welcome_screen)
|
||||
if (props.systemChannelFlags && payload.system_channel_flags) guild.systemChannelFlags = payload.system_channel_flags
|
||||
if (props.vanityUrlCode && payload.vanity_url_code) guild.vanityUrlCode = payload.vanity_url_code
|
||||
if (props.verificationLevel) guild.verificationLevel = payload.verification_level
|
||||
if (props.welcomeScreen && payload.welcome_screen)
|
||||
guild.welcomeScreen = {
|
||||
description: payload.guild.welcome_screen.description ?? undefined,
|
||||
welcomeChannels: payload.guild.welcome_screen.welcome_channels.map((wc) => ({
|
||||
description: payload.welcome_screen.description ?? undefined,
|
||||
welcomeChannels: payload.welcome_screen.welcome_channels.map((wc) => ({
|
||||
channelId: bot.transformers.snowflake(wc.channel_id),
|
||||
description: wc.description,
|
||||
emojiId: wc.emoji_id ? bot.transformers.snowflake(wc.emoji_id) : undefined,
|
||||
emojiName: wc.emoji_name ?? undefined,
|
||||
})),
|
||||
}
|
||||
if (props.discoverySplash && payload.guild.discovery_splash) guild.discoverySplash = iconHashToBigInt(payload.guild.discovery_splash)
|
||||
if (props.joinedAt && payload.guild.joined_at) guild.joinedAt = Date.parse(payload.guild.joined_at)
|
||||
if (props.memberCount && payload.guild.member_count) guild.memberCount = payload.guild.member_count ?? 0
|
||||
if (props.shardId) guild.shardId = payload.shardId
|
||||
if (props.icon && payload.guild.icon) guild.icon = iconHashToBigInt(payload.guild.icon)
|
||||
if (props.banner && payload.guild.banner) guild.banner = iconHashToBigInt(payload.guild.banner)
|
||||
if (props.splash && payload.guild.splash) guild.splash = iconHashToBigInt(payload.guild.splash)
|
||||
if (props.id && payload.guild.id) guild.id = guildId
|
||||
if (props.ownerId && payload.guild.owner_id) guild.ownerId = bot.transformers.snowflake(payload.guild.owner_id)
|
||||
if (props.permissions && payload.guild.permissions) guild.permissions = bot.transformers.snowflake(payload.guild.permissions)
|
||||
if (props.afkChannelId && payload.guild.afk_channel_id) guild.afkChannelId = bot.transformers.snowflake(payload.guild.afk_channel_id)
|
||||
if (props.widgetChannelId && payload.guild.widget_channel_id) guild.widgetChannelId = bot.transformers.snowflake(payload.guild.widget_channel_id)
|
||||
if (props.applicationId && payload.guild.application_id) guild.applicationId = bot.transformers.snowflake(payload.guild.application_id)
|
||||
if (props.systemChannelId && payload.guild.system_channel_id) guild.systemChannelId = bot.transformers.snowflake(payload.guild.system_channel_id)
|
||||
if (props.rulesChannelId && payload.guild.rules_channel_id) guild.rulesChannelId = bot.transformers.snowflake(payload.guild.rules_channel_id)
|
||||
if (props.publicUpdatesChannelId && payload.guild.public_updates_channel_id)
|
||||
guild.publicUpdatesChannelId = bot.transformers.snowflake(payload.guild.public_updates_channel_id)
|
||||
if (props.premiumProgressBarEnabled && payload.guild.premium_progress_bar_enabled)
|
||||
guild.premiumProgressBarEnabled = payload.guild.premium_progress_bar_enabled
|
||||
if (props.large && payload.guild.large) guild.large = payload.guild.large
|
||||
if (props.owner && payload.guild.owner) guild.owner = payload.guild.owner
|
||||
if (props.widgetEnabled && payload.guild.widget_enabled) guild.widgetEnabled = payload.guild.widget_enabled
|
||||
if (props.unavailable && payload.guild.unavailable) guild.unavailable = payload.guild.unavailable
|
||||
if (props.iconHash && payload.guild.icon_hash) guild.iconHash = iconHashToBigInt(payload.guild.icon_hash)
|
||||
if (props.presences && payload.guild.presences)
|
||||
guild.presences = payload.guild.presences?.map((presence) => bot.transformers.presence(bot, presence as DiscordPresenceUpdate))
|
||||
if (props.safetyAlertsChannelId && payload.guild.safety_alerts_channel_id)
|
||||
guild.safetyAlertsChannelId = bot.transformers.snowflake(payload.guild.safety_alerts_channel_id)
|
||||
if (props.incidentsData && payload.guild.incidents_data) guild.incidentsData = bot.transformers.incidentsData(bot, payload.guild.incidents_data)
|
||||
if (props.discoverySplash && payload.discovery_splash) guild.discoverySplash = iconHashToBigInt(payload.discovery_splash)
|
||||
if (props.joinedAt && payload.joined_at) guild.joinedAt = Date.parse(payload.joined_at)
|
||||
if (props.memberCount && payload.member_count) guild.memberCount = payload.member_count ?? 0
|
||||
if (props.shardId && extra?.shardId) guild.shardId = extra.shardId
|
||||
if (props.icon && payload.icon) guild.icon = iconHashToBigInt(payload.icon)
|
||||
if (props.banner && payload.banner) guild.banner = iconHashToBigInt(payload.banner)
|
||||
if (props.splash && payload.splash) guild.splash = iconHashToBigInt(payload.splash)
|
||||
if (props.id && payload.id) guild.id = guildId
|
||||
if (props.ownerId && payload.owner_id) guild.ownerId = bot.transformers.snowflake(payload.owner_id)
|
||||
if (props.permissions && payload.permissions) guild.permissions = bot.transformers.snowflake(payload.permissions)
|
||||
if (props.afkChannelId && payload.afk_channel_id) guild.afkChannelId = bot.transformers.snowflake(payload.afk_channel_id)
|
||||
if (props.widgetChannelId && payload.widget_channel_id) guild.widgetChannelId = bot.transformers.snowflake(payload.widget_channel_id)
|
||||
if (props.applicationId && payload.application_id) guild.applicationId = bot.transformers.snowflake(payload.application_id)
|
||||
if (props.systemChannelId && payload.system_channel_id) guild.systemChannelId = bot.transformers.snowflake(payload.system_channel_id)
|
||||
if (props.rulesChannelId && payload.rules_channel_id) guild.rulesChannelId = bot.transformers.snowflake(payload.rules_channel_id)
|
||||
if (props.publicUpdatesChannelId && payload.public_updates_channel_id)
|
||||
guild.publicUpdatesChannelId = bot.transformers.snowflake(payload.public_updates_channel_id)
|
||||
if (props.premiumProgressBarEnabled && payload.premium_progress_bar_enabled) guild.premiumProgressBarEnabled = payload.premium_progress_bar_enabled
|
||||
if (props.large && payload.large) guild.large = payload.large
|
||||
if (props.owner && payload.owner) guild.owner = payload.owner
|
||||
if (props.widgetEnabled && payload.widget_enabled) guild.widgetEnabled = payload.widget_enabled
|
||||
if (props.unavailable && payload.unavailable) guild.unavailable = payload.unavailable
|
||||
if (props.iconHash && payload.icon_hash) guild.iconHash = iconHashToBigInt(payload.icon_hash)
|
||||
if (props.presences && payload.presences)
|
||||
guild.presences = payload.presences?.map((presence) => bot.transformers.presence(bot, presence as DiscordPresenceUpdate))
|
||||
if (props.safetyAlertsChannelId && payload.safety_alerts_channel_id)
|
||||
guild.safetyAlertsChannelId = bot.transformers.snowflake(payload.safety_alerts_channel_id)
|
||||
if (props.incidentsData && payload.incidents_data) guild.incidentsData = bot.transformers.incidentsData(bot, payload.incidents_data)
|
||||
|
||||
return bot.transformers.customizers.guild(bot, payload.guild, guild)
|
||||
return bot.transformers.customizers.guild(bot, payload, guild, extra)
|
||||
}
|
||||
|
||||
@@ -13,10 +13,10 @@ import {
|
||||
import { Collection } from '@discordeno/utils'
|
||||
import type {
|
||||
Attachment,
|
||||
BigString,
|
||||
Bot,
|
||||
CompleteDesiredProperties,
|
||||
DesiredPropertiesBehavior,
|
||||
DiscordChannel,
|
||||
Interaction,
|
||||
InteractionCallback,
|
||||
InteractionCallbackResponse,
|
||||
@@ -136,81 +136,75 @@ export const baseInteraction: SetupDesiredProps<Interaction, CompleteDesiredProp
|
||||
},
|
||||
}
|
||||
|
||||
export function transformInteraction(bot: Bot, payload: { interaction: DiscordInteraction; shardId: number }): Interaction {
|
||||
const guildId = payload.interaction.guild_id ? bot.transformers.snowflake(payload.interaction.guild_id) : undefined
|
||||
export function transformInteraction(bot: Bot, payload: DiscordInteraction, extra?: { shardId?: number }): Interaction {
|
||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined
|
||||
|
||||
const interaction: SetupDesiredProps<Interaction, TransformersDesiredProperties, DesiredPropertiesBehavior> = Object.create(baseInteraction)
|
||||
const props = bot.transformers.desiredProperties.interaction
|
||||
// Typescript has an hard time with this, so we need to tell him for sure this is a Bot
|
||||
interaction.bot = bot as unknown as Bot
|
||||
|
||||
interaction.bot = bot
|
||||
interaction.acknowledged = false
|
||||
|
||||
if (props.id && payload.interaction.id) interaction.id = bot.transformers.snowflake(payload.interaction.id)
|
||||
if (props.applicationId && payload.interaction.application_id)
|
||||
interaction.applicationId = bot.transformers.snowflake(payload.interaction.application_id)
|
||||
if (props.type && payload.interaction.type) interaction.type = payload.interaction.type
|
||||
if (props.token && payload.interaction.token) interaction.token = payload.interaction.token
|
||||
if (props.version && payload.interaction.version) interaction.version = payload.interaction.version
|
||||
if (props.locale && payload.interaction.locale) interaction.locale = payload.interaction.locale
|
||||
if (props.guildLocale && payload.interaction.guild_locale) interaction.guildLocale = payload.interaction.guild_locale
|
||||
if (props.guild && payload.interaction.guild)
|
||||
// @ts-expect-error payload.interaction.guild is a Partial<DiscordGuild>
|
||||
interaction.guild = bot.transformers.guild(bot, { guild: payload.interaction.guild, shardId: payload.shardId })
|
||||
if (props.id && payload.id) interaction.id = bot.transformers.snowflake(payload.id)
|
||||
if (props.applicationId && payload.application_id) interaction.applicationId = bot.transformers.snowflake(payload.application_id)
|
||||
if (props.type && payload.type) interaction.type = payload.type
|
||||
if (props.token && payload.token) interaction.token = payload.token
|
||||
if (props.version && payload.version) interaction.version = payload.version
|
||||
if (props.locale && payload.locale) interaction.locale = payload.locale
|
||||
if (props.guildLocale && payload.guild_locale) interaction.guildLocale = payload.guild_locale
|
||||
if (props.guild && payload.guild)
|
||||
// @ts-expect-error payload.guild is a Partial<DiscordGuild>
|
||||
interaction.guild = bot.transformers.guild(bot, payload.guild, { shardId: extra?.shardId })
|
||||
if (props.guildId && guildId) interaction.guildId = guildId
|
||||
if (props.user) {
|
||||
if (payload.interaction.member?.user) interaction.user = bot.transformers.user(bot, payload.interaction.member?.user)
|
||||
else if (payload.interaction.user) interaction.user = bot.transformers.user(bot, payload.interaction.user)
|
||||
if (payload.member?.user) interaction.user = bot.transformers.user(bot, payload.member?.user)
|
||||
else if (payload.user) interaction.user = bot.transformers.user(bot, payload.user)
|
||||
}
|
||||
if (props.appPermissions && payload.interaction.app_permissions)
|
||||
interaction.appPermissions = bot.transformers.snowflake(payload.interaction.app_permissions)
|
||||
if (props.message && payload.interaction.message)
|
||||
interaction.message = bot.transformers.message(bot, { message: payload.interaction.message, shardId: 0 })
|
||||
if (props.channel && payload.interaction.channel)
|
||||
interaction.channel = bot.transformers.channel(bot, { channel: payload.interaction.channel as DiscordChannel, guildId })
|
||||
if (props.channelId && payload.interaction.channel_id) interaction.channelId = bot.transformers.snowflake(payload.interaction.channel_id)
|
||||
if (props.member && guildId && payload.interaction.member)
|
||||
interaction.member = bot.transformers.member(
|
||||
bot,
|
||||
payload.interaction.member,
|
||||
if (props.appPermissions && payload.app_permissions) interaction.appPermissions = bot.transformers.snowflake(payload.app_permissions)
|
||||
if (props.message && payload.message) interaction.message = bot.transformers.message(bot, payload.message, { shardId: extra?.shardId })
|
||||
if (props.channel && payload.channel)
|
||||
// @ts-expect-error payload.channel is a Partial<>
|
||||
interaction.channel = bot.transformers.channel(bot, payload.channel, { guildId })
|
||||
if (props.channelId && payload.channel_id) interaction.channelId = bot.transformers.snowflake(payload.channel_id)
|
||||
if (props.member && guildId && payload.member)
|
||||
interaction.member = bot.transformers.member(bot, payload.member, {
|
||||
guildId,
|
||||
payload.interaction.member?.user.id ?? payload.interaction.user?.id,
|
||||
)
|
||||
if (props.entitlements && payload.interaction.entitlements)
|
||||
interaction.entitlements = payload.interaction.entitlements.map((e) => bot.transformers.entitlement(bot, e))
|
||||
if (props.authorizingIntegrationOwners && payload.interaction.authorizing_integration_owners) {
|
||||
userId: payload.member?.user.id ?? payload.user?.id,
|
||||
})
|
||||
if (props.entitlements && payload.entitlements) interaction.entitlements = payload.entitlements.map((e) => bot.transformers.entitlement(bot, e))
|
||||
if (props.authorizingIntegrationOwners && payload.authorizing_integration_owners) {
|
||||
interaction.authorizingIntegrationOwners = {}
|
||||
|
||||
if (payload.interaction.authorizing_integration_owners['0'])
|
||||
if (payload.authorizing_integration_owners['0'])
|
||||
interaction.authorizingIntegrationOwners[DiscordApplicationIntegrationType.GuildInstall] = bot.transformers.snowflake(
|
||||
payload.interaction.authorizing_integration_owners['0'],
|
||||
payload.authorizing_integration_owners['0'],
|
||||
)
|
||||
if (payload.interaction.authorizing_integration_owners['1'])
|
||||
if (payload.authorizing_integration_owners['1'])
|
||||
interaction.authorizingIntegrationOwners[DiscordApplicationIntegrationType.UserInstall] = bot.transformers.snowflake(
|
||||
payload.interaction.authorizing_integration_owners['1'],
|
||||
payload.authorizing_integration_owners['1'],
|
||||
)
|
||||
}
|
||||
if (props.context && payload.interaction.context) interaction.context = payload.interaction.context
|
||||
if (props.attachmentSizeLimit && payload.interaction.attachment_size_limit)
|
||||
interaction.attachmentSizeLimit = payload.interaction.attachment_size_limit
|
||||
if (props.data && payload.interaction.data) {
|
||||
if (props.context && payload.context) interaction.context = payload.context
|
||||
if (props.attachmentSizeLimit && payload.attachment_size_limit) interaction.attachmentSizeLimit = payload.attachment_size_limit
|
||||
if (props.data && payload.data) {
|
||||
interaction.data = {
|
||||
type: payload.interaction.data.type,
|
||||
componentType: payload.interaction.data.component_type,
|
||||
customId: payload.interaction.data.custom_id,
|
||||
components: payload.interaction.data.components?.map((component) => bot.transformers.component(bot, component)),
|
||||
values: payload.interaction.data.values,
|
||||
id: payload.interaction.data.id ? bot.transformers.snowflake(payload.interaction.data.id) : undefined,
|
||||
name: payload.interaction.data.name,
|
||||
resolved: payload.interaction.data.resolved
|
||||
? bot.transformers.interactionDataResolved(bot, { resolved: payload.interaction.data.resolved, shardId: payload.shardId, guildId })
|
||||
type: payload.data.type,
|
||||
componentType: payload.data.component_type,
|
||||
customId: payload.data.custom_id,
|
||||
components: payload.data.components?.map((component) => bot.transformers.component(bot, component)),
|
||||
values: payload.data.values,
|
||||
id: payload.data.id ? bot.transformers.snowflake(payload.data.id) : undefined,
|
||||
name: payload.data.name,
|
||||
resolved: payload.data.resolved
|
||||
? bot.transformers.interactionDataResolved(bot, payload.data.resolved, { shardId: extra?.shardId, guildId })
|
||||
: undefined,
|
||||
options: payload.interaction.data.options?.map((opt) => bot.transformers.interactionDataOptions(bot, opt)),
|
||||
targetId: payload.interaction.data.target_id ? bot.transformers.snowflake(payload.interaction.data.target_id) : undefined,
|
||||
options: payload.data.options?.map((opt) => bot.transformers.interactionDataOptions(bot, opt)),
|
||||
targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined,
|
||||
}
|
||||
}
|
||||
|
||||
// Typescript has an hard time with interaction.bot, so we need to tell him for sure this interaction is the of the correct type
|
||||
return bot.transformers.customizers.interaction(bot, payload, interaction as unknown as typeof bot.transformers.$inferredTypes.interaction)
|
||||
return bot.transformers.customizers.interaction(bot, payload, interaction as unknown as typeof bot.transformers.$inferredTypes.interaction, extra)
|
||||
}
|
||||
|
||||
export function transformInteractionDataOption(bot: Bot, option: DiscordInteractionDataOption): InteractionDataOption {
|
||||
@@ -227,37 +221,38 @@ export function transformInteractionDataOption(bot: Bot, option: DiscordInteract
|
||||
|
||||
export function transformInteractionDataResolved(
|
||||
bot: Bot,
|
||||
payload: { resolved: DiscordInteractionDataResolved; shardId: number; guildId?: bigint },
|
||||
payload: DiscordInteractionDataResolved,
|
||||
extra?: { shardId?: number; guildId?: BigString },
|
||||
): TransformProperty<InteractionDataResolved, TransformersDesiredProperties, DesiredPropertiesBehavior.RemoveKey> {
|
||||
const transformed: InteractionDataResolved = {}
|
||||
|
||||
if (payload.resolved.messages) {
|
||||
if (payload.messages) {
|
||||
transformed.messages = new Collection(
|
||||
Object.entries(payload.resolved.messages).map(([_id, value]) => {
|
||||
Object.entries(payload.messages).map(([_id, value]) => {
|
||||
// @ts-expect-error TODO: Deal with partials
|
||||
const message = bot.transformers.message(bot, { message: value, shardId: payload.shardId }) as Message
|
||||
const message = bot.transformers.message(bot, value, { shardId: extra?.shardId }) as Message
|
||||
return [message.id, message]
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
if (payload.resolved.users) {
|
||||
if (payload.users) {
|
||||
transformed.users = new Collection(
|
||||
Object.entries(payload.resolved.users).map(([_id, value]) => {
|
||||
Object.entries(payload.users).map(([_id, value]) => {
|
||||
const user = bot.transformers.user(bot, value) as User
|
||||
return [user.id, user]
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
if (payload.guildId && payload.resolved.members) {
|
||||
if (extra?.guildId && payload.members) {
|
||||
transformed.members = new Collection(
|
||||
Object.entries(payload.resolved.members).map(([id, value]) => {
|
||||
Object.entries(payload.members).map(([id, value]) => {
|
||||
// @ts-expect-error TODO: Deal with partials, value is missing 2 values but the transformer can handle it, despite what the types says
|
||||
const member = bot.transformers.member(bot, value, payload.guildId!, bot.transformers.snowflake(id)) as InteractionResolvedDataMember<
|
||||
TransformersDesiredProperties,
|
||||
DesiredPropertiesBehavior
|
||||
>
|
||||
const member = bot.transformers.member(bot, value, {
|
||||
guildId: extra.guildId,
|
||||
userId: bot.transformers.snowflake(id),
|
||||
}) as InteractionResolvedDataMember<TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
// We need to tell TS that we are sure the id is a bigint
|
||||
return [member.id as bigint, member]
|
||||
@@ -265,19 +260,19 @@ export function transformInteractionDataResolved(
|
||||
)
|
||||
}
|
||||
|
||||
if (payload.guildId && payload.resolved.roles) {
|
||||
if (extra?.guildId && payload.roles) {
|
||||
transformed.roles = new Collection(
|
||||
Object.entries(payload.resolved.roles).map(([_id, value]) => {
|
||||
const role = bot.transformers.role(bot, { role: value, guildId: payload.guildId! }) as Role
|
||||
Object.entries(payload.roles).map(([_id, value]) => {
|
||||
const role = bot.transformers.role(bot, value, { guildId: extra.guildId }) as Role
|
||||
return [role.id, role]
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
if (payload.resolved.channels) {
|
||||
if (payload.channels) {
|
||||
transformed.channels = new Collection(
|
||||
Object.entries(payload.resolved.channels).map(([_id, value]) => {
|
||||
const channel = bot.transformers.channel(bot, { channel: value }) as unknown as InteractionResolvedDataChannel<
|
||||
Object.entries(payload.channels).map(([_id, value]) => {
|
||||
const channel = bot.transformers.channel(bot, value) as unknown as InteractionResolvedDataChannel<
|
||||
TransformersDesiredProperties,
|
||||
DesiredPropertiesBehavior
|
||||
>
|
||||
@@ -287,9 +282,9 @@ export function transformInteractionDataResolved(
|
||||
)
|
||||
}
|
||||
|
||||
if (payload.resolved.attachments) {
|
||||
if (payload.attachments) {
|
||||
transformed.attachments = new Collection(
|
||||
Object.entries(payload.resolved.attachments).map(([key, value]) => {
|
||||
Object.entries(payload.attachments).map(([key, value]) => {
|
||||
const id = bot.transformers.snowflake(key)
|
||||
const attachment = bot.transformers.attachment(bot, value) as Attachment
|
||||
return [id, attachment]
|
||||
@@ -297,25 +292,24 @@ export function transformInteractionDataResolved(
|
||||
)
|
||||
}
|
||||
|
||||
return bot.transformers.customizers.interactionDataResolved(bot, payload, transformed)
|
||||
return bot.transformers.customizers.interactionDataResolved(bot, payload, transformed, {
|
||||
shardId: extra?.shardId,
|
||||
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
export function transformInteractionCallbackResponse(
|
||||
bot: Bot,
|
||||
payload: { interactionCallbackResponse: DiscordInteractionCallbackResponse; shardId: number },
|
||||
payload: DiscordInteractionCallbackResponse,
|
||||
extra?: { shardId?: number },
|
||||
): InteractionCallbackResponse {
|
||||
const props = bot.transformers.desiredProperties.interactionCallbackResponse
|
||||
const response = {} as SetupDesiredProps<InteractionCallbackResponse, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.interaction && payload.interactionCallbackResponse.interaction)
|
||||
response.interaction = bot.transformers.interactionCallback(bot, payload.interactionCallbackResponse.interaction)
|
||||
if (props.resource && payload.interactionCallbackResponse.resource)
|
||||
response.resource = bot.transformers.interactionResource(bot, {
|
||||
interactionResource: payload.interactionCallbackResponse.resource,
|
||||
shardId: payload.shardId,
|
||||
})
|
||||
if (props.interaction && payload.interaction) response.interaction = bot.transformers.interactionCallback(bot, payload.interaction)
|
||||
if (props.resource && payload.resource) response.resource = bot.transformers.interactionResource(bot, payload.resource, { shardId: extra?.shardId })
|
||||
|
||||
return bot.transformers.customizers.interactionCallbackResponse(bot, payload.interactionCallbackResponse, response)
|
||||
return bot.transformers.customizers.interactionCallbackResponse(bot, payload, response, extra)
|
||||
}
|
||||
|
||||
export function transformInteractionCallback(bot: Bot, payload: DiscordInteractionCallback): InteractionCallback {
|
||||
@@ -332,18 +326,13 @@ export function transformInteractionCallback(bot: Bot, payload: DiscordInteracti
|
||||
return bot.transformers.customizers.interactionCallback(bot, payload, callback)
|
||||
}
|
||||
|
||||
export function transformInteractionResource(
|
||||
bot: Bot,
|
||||
payload: { interactionResource: DiscordInteractionResource; shardId: number },
|
||||
): InteractionResource {
|
||||
export function transformInteractionResource(bot: Bot, payload: DiscordInteractionResource, extra?: { shardId?: number }): InteractionResource {
|
||||
const props = bot.transformers.desiredProperties.interactionResource
|
||||
const resource = {} as SetupDesiredProps<InteractionResource, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.type && payload.interactionResource.type) resource.type = payload.interactionResource.type
|
||||
if (props.activityInstance && payload.interactionResource.activity_instance)
|
||||
resource.activityInstance = payload.interactionResource.activity_instance
|
||||
if (props.message && payload.interactionResource.message)
|
||||
resource.message = bot.transformers.message(bot, { message: payload.interactionResource.message, shardId: payload.shardId })
|
||||
if (props.type && payload.type) resource.type = payload.type
|
||||
if (props.activityInstance && payload.activity_instance) resource.activityInstance = payload.activity_instance
|
||||
if (props.message && payload.message) resource.message = bot.transformers.message(bot, payload.message, { shardId: extra?.shardId })
|
||||
|
||||
return bot.transformers.customizers.interactionResource(bot, payload.interactionResource, resource)
|
||||
return bot.transformers.customizers.interactionResource(bot, payload, resource, extra)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { DiscordApplication, DiscordInviteCreate, DiscordInviteMetadata } from '@discordeno/types'
|
||||
import type { DiscordInviteCreate, DiscordInviteMetadata } from '@discordeno/types'
|
||||
import {
|
||||
type Bot,
|
||||
type DesiredPropertiesBehavior,
|
||||
@@ -9,49 +9,43 @@ import {
|
||||
type TransformersDesiredProperties,
|
||||
} from '../index.js'
|
||||
|
||||
export function transformInvite(bot: Bot, payload: { invite: DiscordInviteCreate | DiscordInviteMetadata; shardId: number }): Invite {
|
||||
export function transformInvite(bot: Bot, payload: DiscordInviteCreate | DiscordInviteMetadata, extra?: { shardId?: number }): Invite {
|
||||
const props = bot.transformers.desiredProperties.invite
|
||||
const invite = {} as SetupDesiredProps<Invite, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.type && 'type' in payload.invite) invite.type = payload.invite.type
|
||||
if (props.code && payload.invite.code) invite.code = payload.invite.code
|
||||
if (props.createdAt && payload.invite.created_at) invite.createdAt = Date.parse(payload.invite.created_at)
|
||||
if (props.inviter && payload.invite.inviter) invite.inviter = bot.transformers.user(bot, payload.invite.inviter)
|
||||
if (props.maxAge) invite.maxAge = payload.invite.max_age
|
||||
if (props.maxUses) invite.maxUses = payload.invite.max_uses
|
||||
if (props.targetType && payload.invite.target_type) invite.targetType = payload.invite.target_type
|
||||
if (props.targetUser && payload.invite.target_user) invite.targetUser = bot.transformers.user(bot, payload.invite.target_user)
|
||||
if (props.targetApplication && payload.invite.target_application)
|
||||
invite.targetApplication = bot.transformers.application(bot, {
|
||||
application: payload.invite.target_application as DiscordApplication,
|
||||
shardId: payload.shardId,
|
||||
})
|
||||
if (props.temporary && payload.invite.temporary) invite.temporary = payload.invite.temporary
|
||||
if (props.uses && payload.invite.uses) invite.uses = payload.invite.uses
|
||||
if (props.type && 'type' in payload) invite.type = payload.type
|
||||
if (props.code && payload.code) invite.code = payload.code
|
||||
if (props.createdAt && payload.created_at) invite.createdAt = Date.parse(payload.created_at)
|
||||
if (props.inviter && payload.inviter) invite.inviter = bot.transformers.user(bot, payload.inviter)
|
||||
if (props.maxAge) invite.maxAge = payload.max_age
|
||||
if (props.maxUses) invite.maxUses = payload.max_uses
|
||||
if (props.targetType && payload.target_type) invite.targetType = payload.target_type
|
||||
if (props.targetUser && payload.target_user) invite.targetUser = bot.transformers.user(bot, payload.target_user)
|
||||
if (props.targetApplication && payload.target_application)
|
||||
// @ts-expect-error TODO: Partials
|
||||
invite.targetApplication = bot.transformers.application(bot, payload.target_application, { shardId: extra?.shardId })
|
||||
if (props.temporary && payload.temporary) invite.temporary = payload.temporary
|
||||
if (props.uses && payload.uses) invite.uses = payload.uses
|
||||
|
||||
if (isInviteWithMetadata(payload.invite)) {
|
||||
if (props.channelId && payload.invite.channel?.id) invite.channelId = bot.transformers.snowflake(payload.invite.channel.id)
|
||||
if (props.guildId && payload.invite.guild?.id) invite.guildId = bot.transformers.snowflake(payload.invite.guild.id)
|
||||
if (props.approximateMemberCount && payload.invite.approximate_member_count)
|
||||
invite.approximateMemberCount = payload.invite.approximate_member_count
|
||||
if (props.approximatePresenceCount && payload.invite.approximate_presence_count !== undefined)
|
||||
invite.approximatePresenceCount = payload.invite.approximate_presence_count
|
||||
if (props.guildScheduledEvent && payload.invite.guild_scheduled_event)
|
||||
invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.invite.guild_scheduled_event)
|
||||
if (props.stageInstance && payload.invite.guild?.id && payload.invite.stage_instance) {
|
||||
invite.stageInstance = bot.transformers.inviteStageInstance(bot, {
|
||||
...payload.invite.stage_instance,
|
||||
guildId: bot.transformers.snowflake(payload.invite.guild.id),
|
||||
})
|
||||
if (isInviteWithMetadata(payload)) {
|
||||
if (props.channelId && payload.channel?.id) invite.channelId = bot.transformers.snowflake(payload.channel.id)
|
||||
if (props.guildId && payload.guild?.id) invite.guildId = bot.transformers.snowflake(payload.guild.id)
|
||||
if (props.approximateMemberCount && payload.approximate_member_count) invite.approximateMemberCount = payload.approximate_member_count
|
||||
if (props.approximatePresenceCount && payload.approximate_presence_count !== undefined)
|
||||
invite.approximatePresenceCount = payload.approximate_presence_count
|
||||
if (props.guildScheduledEvent && payload.guild_scheduled_event)
|
||||
invite.guildScheduledEvent = bot.transformers.scheduledEvent(bot, payload.guild_scheduled_event)
|
||||
if (props.stageInstance && payload.guild?.id && payload.stage_instance) {
|
||||
invite.stageInstance = bot.transformers.inviteStageInstance(bot, payload.stage_instance, { guildId: payload.guild.id })
|
||||
}
|
||||
if (props.expiresAt && payload.invite.expires_at) {
|
||||
invite.expiresAt = Date.parse(payload.invite.expires_at)
|
||||
if (props.expiresAt && payload.expires_at) {
|
||||
invite.expiresAt = Date.parse(payload.expires_at)
|
||||
}
|
||||
if (props.flags && payload.invite.flags) invite.flags = new ToggleBitfield(payload.invite.flags)
|
||||
if (props.flags && payload.flags) invite.flags = new ToggleBitfield(payload.flags)
|
||||
} else {
|
||||
if (props.channelId && payload.invite.channel_id) invite.channelId = bot.transformers.snowflake(payload.invite.channel_id)
|
||||
if (props.guildId && payload.invite.guild_id) invite.guildId = bot.transformers.snowflake(payload.invite.guild_id)
|
||||
if (props.channelId && payload.channel_id) invite.channelId = bot.transformers.snowflake(payload.channel_id)
|
||||
if (props.guildId && payload.guild_id) invite.guildId = bot.transformers.snowflake(payload.guild_id)
|
||||
}
|
||||
|
||||
return bot.transformers.customizers.invite(bot, payload.invite, invite)
|
||||
return bot.transformers.customizers.invite(bot, payload, invite, extra)
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export function transformLobby(bot: Bot, payload: DiscordLobby): Lobby {
|
||||
if (props.applicationId && payload.application_id) lobby.applicationId = bot.transformers.snowflake(payload.application_id)
|
||||
if (props.metadata && payload.metadata) lobby.metadata = payload.metadata
|
||||
if (props.members && payload.members) lobby.members = payload.members.map((member) => bot.transformers.lobbyMember(bot, member))
|
||||
if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot, { channel: payload.linked_channel })
|
||||
if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot, payload.linked_channel)
|
||||
|
||||
return bot.transformers.customizers.lobby(bot, payload, lobby)
|
||||
}
|
||||
|
||||
@@ -36,12 +36,12 @@ export const baseMember: Member = {
|
||||
},
|
||||
}
|
||||
|
||||
export function transformMember(bot: Bot, payload: DiscordMember, guildId: BigString | undefined, userId: BigString): Member {
|
||||
export function transformMember(bot: Bot, payload: DiscordMember, extra?: { guildId?: BigString; userId?: BigString }): Member {
|
||||
const member: SetupDesiredProps<Member, TransformersDesiredProperties, DesiredPropertiesBehavior> = Object.create(baseMember)
|
||||
const props = bot.transformers.desiredProperties.member
|
||||
|
||||
if (props.id && userId) member.id = typeof userId === 'string' ? bot.transformers.snowflake(userId) : userId
|
||||
if (props.guildId && guildId) member.guildId = typeof guildId === 'string' ? bot.transformers.snowflake(guildId) : guildId
|
||||
if (props.id && extra?.userId) member.id = typeof extra.userId === 'string' ? bot.transformers.snowflake(extra.userId) : extra.userId
|
||||
if (props.guildId && extra?.guildId) member.guildId = typeof extra.guildId === 'string' ? bot.transformers.snowflake(extra.guildId) : extra.guildId
|
||||
if (props.user && payload.user) member.user = bot.transformers.user(bot, payload.user)
|
||||
if (props.nick && payload.nick) member.nick = payload.nick
|
||||
if (props.roles && payload.roles) member.roles = payload.roles.map((id) => bot.transformers.snowflake(id))
|
||||
@@ -56,5 +56,8 @@ export function transformMember(bot: Bot, payload: DiscordMember, guildId: BigSt
|
||||
if (props.avatarDecorationData && payload.avatar_decoration_data)
|
||||
member.avatarDecorationData = bot.transformers.avatarDecorationData(bot, payload.avatar_decoration_data)
|
||||
|
||||
return bot.transformers.customizers.member(bot, payload, member)
|
||||
return bot.transformers.customizers.member(bot, payload, member, {
|
||||
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
userId: extra?.userId ? bot.transformers.snowflake(extra.userId) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import {
|
||||
type DiscordApplication,
|
||||
DiscordApplicationIntegrationType,
|
||||
type DiscordMessage,
|
||||
type DiscordMessageCall,
|
||||
@@ -142,102 +141,97 @@ export const baseMessage: Message = {
|
||||
},
|
||||
}
|
||||
|
||||
export function transformMessage(bot: Bot, payload: { message: DiscordMessage; shardId: number }): Message {
|
||||
const guildId = payload.message.guild_id ? bot.transformers.snowflake(payload.message.guild_id) : undefined
|
||||
const userId = payload.message.author?.id ? bot.transformers.snowflake(payload.message.author.id) : undefined
|
||||
export function transformMessage(bot: Bot, payload: DiscordMessage, extra?: { shardId?: number }): Message {
|
||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined
|
||||
const userId = payload.author?.id ? bot.transformers.snowflake(payload.author.id) : undefined
|
||||
|
||||
const message: SetupDesiredProps<Message, TransformersDesiredProperties, DesiredPropertiesBehavior> = Object.create(baseMessage)
|
||||
message.bitfield = new ToggleBitfield()
|
||||
message.flags = new ToggleBitfield(payload.message.flags)
|
||||
message.flags = new ToggleBitfield(payload.flags)
|
||||
|
||||
const props = bot.transformers.desiredProperties.message
|
||||
|
||||
if (props.author && payload.message.author) message.author = bot.transformers.user(bot, payload.message.author)
|
||||
if (props.application && payload.message.application)
|
||||
message.application = bot.transformers.application(bot, {
|
||||
application: payload.message.application as DiscordApplication,
|
||||
shardId: payload.shardId,
|
||||
})
|
||||
if (props.applicationId && payload.message.application_id) message.applicationId = bot.transformers.snowflake(payload.message.application_id)
|
||||
if (props.attachments && payload.message.attachments?.length)
|
||||
message.attachments = payload.message.attachments.map((attachment) => bot.transformers.attachment(bot, attachment))
|
||||
if (props.channelId && payload.message.channel_id) message.channelId = bot.transformers.snowflake(payload.message.channel_id)
|
||||
if (props.components && payload.message.components?.length)
|
||||
message.components = payload.message.components.map((comp) => bot.transformers.component(bot, comp))
|
||||
if (props.content) message.content = payload.message.content ?? EMPTY_STRING
|
||||
if (props.editedTimestamp && payload.message.edited_timestamp) message.editedTimestamp = Date.parse(payload.message.edited_timestamp)
|
||||
if (props.embeds && payload.message.embeds?.length) message.embeds = payload.message.embeds.map((embed) => bot.transformers.embed(bot, embed))
|
||||
if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author)
|
||||
if (props.application && payload.application)
|
||||
// @ts-expect-error TODO: Partials
|
||||
message.application = bot.transformers.application(bot, payload.application, { shardId: extra?.shardId })
|
||||
if (props.applicationId && payload.application_id) message.applicationId = bot.transformers.snowflake(payload.application_id)
|
||||
if (props.attachments && payload.attachments?.length)
|
||||
message.attachments = payload.attachments.map((attachment) => bot.transformers.attachment(bot, attachment))
|
||||
if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id)
|
||||
if (props.components && payload.components?.length) message.components = payload.components.map((comp) => bot.transformers.component(bot, comp))
|
||||
if (props.content) message.content = payload.content ?? EMPTY_STRING
|
||||
if (props.editedTimestamp && payload.edited_timestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp)
|
||||
if (props.embeds && payload.embeds?.length) message.embeds = payload.embeds.map((embed) => bot.transformers.embed(bot, embed))
|
||||
if (props.guildId && guildId) message.guildId = guildId
|
||||
if (props.id && payload.message.id) message.id = bot.transformers.snowflake(payload.message.id)
|
||||
if (props.interactionMetadata && payload.message.interaction_metadata)
|
||||
message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.message.interaction_metadata)
|
||||
if (props.interaction && payload.message.interaction) {
|
||||
if (props.id && payload.id) message.id = bot.transformers.snowflake(payload.id)
|
||||
if (props.interactionMetadata && payload.interaction_metadata)
|
||||
message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.interaction_metadata)
|
||||
if (props.interaction && payload.interaction) {
|
||||
const interaction = {} as SetupDesiredProps<MessageInteraction, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
const messageInteractionProps = bot.transformers.desiredProperties.messageInteraction
|
||||
|
||||
if (messageInteractionProps.id) {
|
||||
interaction.id = bot.transformers.snowflake(payload.message.interaction.id)
|
||||
interaction.id = bot.transformers.snowflake(payload.interaction.id)
|
||||
}
|
||||
if (messageInteractionProps.member && payload.message.interaction.member) {
|
||||
if (messageInteractionProps.member && payload.interaction.member) {
|
||||
// @ts-expect-error TODO: partial - check why this is partial and handle as needed
|
||||
interaction.member = bot.transformers.member(bot, payload.message.interaction.member, guildId, payload.message.interaction.user.id)
|
||||
interaction.member = bot.transformers.member(bot, payload.interaction.member, { guildId, userId: payload.interaction.user.id })
|
||||
}
|
||||
if (messageInteractionProps.name) {
|
||||
interaction.name = payload.message.interaction.name
|
||||
interaction.name = payload.interaction.name
|
||||
}
|
||||
if (messageInteractionProps.type) {
|
||||
interaction.type = payload.message.interaction.type
|
||||
interaction.type = payload.interaction.type
|
||||
}
|
||||
if (messageInteractionProps.user) {
|
||||
interaction.user = bot.transformers.user(bot, payload.message.interaction.user)
|
||||
interaction.user = bot.transformers.user(bot, payload.interaction.user)
|
||||
}
|
||||
|
||||
message.interaction = interaction
|
||||
}
|
||||
if (props.member && guildId && userId && payload.message.member)
|
||||
if (props.member && guildId && userId && payload.member)
|
||||
// @ts-expect-error TODO: partial
|
||||
message.member = bot.transformers.member(bot, payload.message.member, guildId, userId)
|
||||
if (payload.message.mention_everyone) message.mentionEveryone = true
|
||||
if (props.mentionedChannelIds && payload.message.mention_channels?.length) {
|
||||
message.member = bot.transformers.member(bot, payload.member, { guildId, userId })
|
||||
if (payload.mention_everyone) message.mentionEveryone = true
|
||||
if (props.mentionedChannelIds && payload.mention_channels?.length) {
|
||||
message.mentionedChannelIds = [
|
||||
// Keep any ids tht discord sends
|
||||
...(payload.message.mention_channels ?? []).map((m) => bot.transformers.snowflake(m.id)),
|
||||
...(payload.mention_channels ?? []).map((m) => bot.transformers.snowflake(m.id)),
|
||||
// Add any other ids that can be validated in a channel mention format
|
||||
...(payload.message.content?.match(CHANNEL_MENTION_REGEX) ?? []).map((text) =>
|
||||
...(payload.content?.match(CHANNEL_MENTION_REGEX) ?? []).map((text) =>
|
||||
// converts the <#123> into 123
|
||||
bot.transformers.snowflake(text.substring(2, text.length - 1)),
|
||||
),
|
||||
]
|
||||
}
|
||||
if (props.mentionedRoleIds && payload.message.mention_roles?.length)
|
||||
message.mentionedRoleIds = payload.message.mention_roles.map((id) => bot.transformers.snowflake(id))
|
||||
if (props.mentions && payload.message.mentions?.length) message.mentions = payload.message.mentions.map((user) => bot.transformers.user(bot, user))
|
||||
if (props.messageReference && payload.message.message_reference) {
|
||||
if (props.mentionedRoleIds && payload.mention_roles?.length)
|
||||
message.mentionedRoleIds = payload.mention_roles.map((id) => bot.transformers.snowflake(id))
|
||||
if (props.mentions && payload.mentions?.length) message.mentions = payload.mentions.map((user) => bot.transformers.user(bot, user))
|
||||
if (props.messageReference && payload.message_reference) {
|
||||
const reference = {} as NonNullable<Message['messageReference']>
|
||||
const messageReferenceProps = bot.transformers.desiredProperties.messageReference
|
||||
|
||||
if (messageReferenceProps.channelId && payload.message.message_reference.channel_id) {
|
||||
reference.channelId = bot.transformers.snowflake(payload.message.message_reference.channel_id)
|
||||
if (messageReferenceProps.channelId && payload.message_reference.channel_id) {
|
||||
reference.channelId = bot.transformers.snowflake(payload.message_reference.channel_id)
|
||||
}
|
||||
if (messageReferenceProps.guildId && payload.message.message_reference.guild_id) {
|
||||
reference.guildId = bot.transformers.snowflake(payload.message.message_reference.guild_id)
|
||||
if (messageReferenceProps.guildId && payload.message_reference.guild_id) {
|
||||
reference.guildId = bot.transformers.snowflake(payload.message_reference.guild_id)
|
||||
}
|
||||
if (messageReferenceProps.messageId && payload.message.message_reference.message_id) {
|
||||
reference.messageId = bot.transformers.snowflake(payload.message.message_reference.message_id)
|
||||
if (messageReferenceProps.messageId && payload.message_reference.message_id) {
|
||||
reference.messageId = bot.transformers.snowflake(payload.message_reference.message_id)
|
||||
}
|
||||
|
||||
message.messageReference = reference
|
||||
}
|
||||
if (props.referencedMessage && payload.message.referenced_message)
|
||||
message.referencedMessage = bot.transformers.message(bot, { message: payload.message.referenced_message, shardId: payload.shardId })
|
||||
if (props.messageSnapshots && payload.message.message_snapshots)
|
||||
message.messageSnapshots = payload.message.message_snapshots.map((snap) =>
|
||||
bot.transformers.messageSnapshot(bot, { messageSnapshot: snap, shardId: payload.shardId }),
|
||||
)
|
||||
if (props.nonce && payload.message.nonce) message.nonce = payload.message.nonce
|
||||
if (payload.message.pinned) message.pinned = true
|
||||
if (props.reactions && payload.message.reactions?.length) {
|
||||
message.reactions = payload.message.reactions.map((reaction) => ({
|
||||
if (props.referencedMessage && payload.referenced_message)
|
||||
message.referencedMessage = bot.transformers.message(bot, payload.referenced_message, { shardId: extra?.shardId })
|
||||
if (props.messageSnapshots && payload.message_snapshots)
|
||||
message.messageSnapshots = payload.message_snapshots.map((snap) => bot.transformers.messageSnapshot(bot, snap, { shardId: extra?.shardId }))
|
||||
if (props.nonce && payload.nonce) message.nonce = payload.nonce
|
||||
if (payload.pinned) message.pinned = true
|
||||
if (props.reactions && payload.reactions?.length) {
|
||||
message.reactions = payload.reactions.map((reaction) => ({
|
||||
me: reaction.me,
|
||||
meBurst: reaction.me_burst,
|
||||
count: reaction.count,
|
||||
@@ -250,43 +244,41 @@ export function transformMessage(bot: Bot, payload: { message: DiscordMessage; s
|
||||
burstColors: reaction.burst_colors,
|
||||
}))
|
||||
}
|
||||
if (props.stickerItems && payload.message.sticker_items?.length)
|
||||
message.stickerItems = payload.message.sticker_items.map((item) => ({
|
||||
if (props.stickerItems && payload.sticker_items?.length)
|
||||
message.stickerItems = payload.sticker_items.map((item) => ({
|
||||
id: bot.transformers.snowflake(item.id),
|
||||
name: item.name,
|
||||
formatType: item.format_type,
|
||||
}))
|
||||
if (payload.message.tts) message.tts = true
|
||||
if (props.thread && payload.message.thread) message.thread = bot.transformers.channel(bot, { channel: payload.message.thread, guildId })
|
||||
if (props.type) message.type = payload.message.type
|
||||
if (props.webhookId && payload.message.webhook_id) message.webhookId = bot.transformers.snowflake(payload.message.webhook_id)
|
||||
if (props.poll && payload.message.poll) message.poll = bot.transformers.poll(bot, payload.message.poll)
|
||||
if (props.call && payload.message.call) message.call = bot.transformers.messageCall(bot, payload.message.call)
|
||||
if (payload.tts) message.tts = true
|
||||
if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, 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.poll && payload.poll) message.poll = bot.transformers.poll(bot, payload.poll)
|
||||
if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call)
|
||||
|
||||
return bot.transformers.customizers.message(bot, payload.message, message)
|
||||
return bot.transformers.customizers.message(bot, payload, message, extra)
|
||||
}
|
||||
|
||||
export function transformMessagePin(bot: Bot, payload: DiscordMessagePin): MessagePin {
|
||||
export function transformMessagePin(bot: Bot, payload: DiscordMessagePin, extra?: { shardId?: number }): MessagePin {
|
||||
const props = bot.transformers.desiredProperties.messagePin
|
||||
const messagePin = {} as SetupDesiredProps<MessagePin, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.pinnedAt && payload.pinned_at) messagePin.pinnedAt = Date.parse(payload.pinned_at)
|
||||
if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, { message: payload.message, shardId: 0 })
|
||||
if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, payload.message, { shardId: extra?.shardId })
|
||||
|
||||
return bot.transformers.customizers.messagePin(bot, payload, messagePin)
|
||||
return bot.transformers.customizers.messagePin(bot, payload, messagePin, extra)
|
||||
}
|
||||
|
||||
export function transformMessageSnapshot(bot: Bot, payload: { messageSnapshot: DiscordMessageSnapshot; shardId: number }): MessageSnapshot {
|
||||
export function transformMessageSnapshot(bot: Bot, payload: DiscordMessageSnapshot, extra?: { shardId?: number }): MessageSnapshot {
|
||||
const props = bot.transformers.desiredProperties.messageSnapshot
|
||||
const messageSnapshot = {} as SetupDesiredProps<MessageSnapshot, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.message && payload.messageSnapshot.message)
|
||||
messageSnapshot.message = bot.transformers.message(bot, {
|
||||
message: payload.messageSnapshot.message as DiscordMessage,
|
||||
shardId: payload.shardId,
|
||||
}) as Message
|
||||
if (props.message && payload.message)
|
||||
// @ts-expect-error TODO: Partials
|
||||
messageSnapshot.message = bot.transformers.message(bot, payload.message, { shardId: extra?.shardId }) as Message
|
||||
|
||||
return bot.transformers.customizers.messageSnapshot(bot, payload.messageSnapshot, messageSnapshot)
|
||||
return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot, extra)
|
||||
}
|
||||
|
||||
export function transformMessageInteractionMetadata(bot: Bot, payload: DiscordMessageInteractionMetadata): MessageInteractionMetadata {
|
||||
|
||||
@@ -51,31 +51,31 @@ export const baseRole: Role = {
|
||||
},
|
||||
}
|
||||
|
||||
export function transformRole(bot: Bot, payload: { role: DiscordRole; guildId: BigString }): Role {
|
||||
export function transformRole(bot: Bot, payload: DiscordRole, extra?: { guildId?: BigString }): Role {
|
||||
const role: SetupDesiredProps<Role, TransformersDesiredProperties, DesiredPropertiesBehavior> = Object.create(baseRole)
|
||||
const props = bot.transformers.desiredProperties.role
|
||||
if (props.id && payload.role.id) role.id = bot.transformers.snowflake(payload.role.id)
|
||||
if (props.id && payload.id) role.id = bot.transformers.snowflake(payload.id)
|
||||
// Role name can be an empty string
|
||||
if (props.name && payload.role.name !== undefined) role.name = payload.role.name
|
||||
if (props.position) role.position = payload.role.position
|
||||
if (props.guildId && payload.guildId) role.guildId = bot.transformers.snowflake(payload.guildId)
|
||||
if (props.color && payload.role.color !== undefined) role.color = payload.role.color
|
||||
if (props.permissions && payload.role.permissions) role.permissions = new Permissions(payload.role.permissions)
|
||||
if (props.icon && payload.role.icon) role.icon = iconHashToBigInt(payload.role.icon)
|
||||
if (props.unicodeEmoji && payload.role.unicode_emoji) role.unicodeEmoji = payload.role.unicode_emoji
|
||||
if (props.flags) role.flags = payload.role.flags
|
||||
if (props.tags && payload.role.tags) {
|
||||
if (props.name && payload.name !== undefined) role.name = payload.name
|
||||
if (props.position) role.position = payload.position
|
||||
if (props.guildId && extra?.guildId) role.guildId = bot.transformers.snowflake(extra?.guildId)
|
||||
if (props.color && payload.color !== undefined) role.color = payload.color
|
||||
if (props.permissions && payload.permissions) role.permissions = new Permissions(payload.permissions)
|
||||
if (props.icon && payload.icon) role.icon = iconHashToBigInt(payload.icon)
|
||||
if (props.unicodeEmoji && payload.unicode_emoji) role.unicodeEmoji = payload.unicode_emoji
|
||||
if (props.flags) role.flags = payload.flags
|
||||
if (props.tags && payload.tags) {
|
||||
role.internalTags = {}
|
||||
if (payload.role.tags.bot_id) role.internalTags.botId = bot.transformers.snowflake(payload.role.tags.bot_id)
|
||||
if (payload.role.tags.integration_id) role.internalTags.integrationId = bot.transformers.snowflake(payload.role.tags.integration_id)
|
||||
if (payload.role.tags.subscription_listing_id)
|
||||
role.internalTags.subscriptionListingId = bot.transformers.snowflake(payload.role.tags.subscription_listing_id)
|
||||
}
|
||||
if (props.toggles) {
|
||||
role.toggles = new RoleToggles(payload.role)
|
||||
if (payload.tags.bot_id) role.internalTags.botId = bot.transformers.snowflake(payload.tags.bot_id)
|
||||
if (payload.tags.integration_id) role.internalTags.integrationId = bot.transformers.snowflake(payload.tags.integration_id)
|
||||
if (payload.tags.subscription_listing_id)
|
||||
role.internalTags.subscriptionListingId = bot.transformers.snowflake(payload.tags.subscription_listing_id)
|
||||
}
|
||||
if (props.toggles) role.toggles = new RoleToggles(payload)
|
||||
|
||||
return bot.transformers.customizers.role(bot, payload.role, role)
|
||||
return bot.transformers.customizers.role(bot, payload, role, {
|
||||
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
export function transformRoleColors(bot: Bot, payload: DiscordRoleColors): RoleColors {
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
import type { BigString, DiscordInviteStageInstance, DiscordMember } from '@discordeno/types'
|
||||
import type { BigString, DiscordInviteStageInstance } from '@discordeno/types'
|
||||
import type { Bot, DesiredPropertiesBehavior, InviteStageInstance, SetupDesiredProps, TransformersDesiredProperties } from '../index.js'
|
||||
|
||||
export function transformInviteStageInstance(bot: Bot, payload: DiscordInviteStageInstance & { guildId: BigString }): InviteStageInstance {
|
||||
export function transformInviteStageInstance(bot: Bot, payload: DiscordInviteStageInstance, extra?: { guildId?: BigString }): InviteStageInstance {
|
||||
const props = bot.transformers.desiredProperties.inviteStageInstance
|
||||
const inviteStageInstance = {} as SetupDesiredProps<InviteStageInstance, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.members && payload.members) {
|
||||
inviteStageInstance.members = payload.members.map((member) =>
|
||||
bot.transformers.member(
|
||||
bot,
|
||||
member as DiscordMember,
|
||||
payload.guildId,
|
||||
member.user?.id ? bot.transformers.snowflake(member.user.id) : undefined!,
|
||||
),
|
||||
// @ts-expect-error TODO: Partials
|
||||
bot.transformers.member(bot, member, {
|
||||
guildId: extra?.guildId,
|
||||
userId: member.user?.id,
|
||||
}),
|
||||
)
|
||||
}
|
||||
if (props.participantCount) inviteStageInstance.participantCount = payload.participant_count
|
||||
if (props.speakerCount) inviteStageInstance.participantCount = payload.participant_count
|
||||
if (props.topic && payload.topic) inviteStageInstance.topic = payload.topic
|
||||
|
||||
return bot.transformers.customizers.inviteStageInstance(bot, payload, inviteStageInstance)
|
||||
return bot.transformers.customizers.inviteStageInstance(bot, payload, inviteStageInstance, {
|
||||
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -8,12 +8,10 @@ export function transformThreadMember(bot: Bot, payload: DiscordThreadMember, ex
|
||||
joinTimestamp: Date.parse(payload.join_timestamp),
|
||||
flags: payload.flags,
|
||||
member: payload.member
|
||||
? bot.transformers.member(
|
||||
bot,
|
||||
payload.member,
|
||||
extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
bot.transformers.snowflake(payload.user_id),
|
||||
)
|
||||
? bot.transformers.member(bot, payload.member, {
|
||||
guildId: extra?.guildId,
|
||||
userId: payload.user_id,
|
||||
})
|
||||
: undefined,
|
||||
} as ThreadMember
|
||||
|
||||
|
||||
@@ -2,17 +2,19 @@ import type { BigString, DiscordVoiceState } from '@discordeno/types'
|
||||
import type { Bot, DesiredPropertiesBehavior, SetupDesiredProps, TransformersDesiredProperties, VoiceState } from '../index.js'
|
||||
import { VoiceStateToggles } from './toggles/voice.js'
|
||||
|
||||
export function transformVoiceState(bot: Bot, payload: { voiceState: DiscordVoiceState; guildId: BigString }): VoiceState {
|
||||
export function transformVoiceState(bot: Bot, payload: DiscordVoiceState, extra?: { guildId?: BigString }): VoiceState {
|
||||
const props = bot.transformers.desiredProperties.voiceState
|
||||
const voiceState = {} as SetupDesiredProps<VoiceState, TransformersDesiredProperties, DesiredPropertiesBehavior>
|
||||
|
||||
if (props.requestToSpeakTimestamp && payload.voiceState.request_to_speak_timestamp)
|
||||
voiceState.requestToSpeakTimestamp = Date.parse(payload.voiceState.request_to_speak_timestamp)
|
||||
if (props.channelId && payload.voiceState.channel_id) voiceState.channelId = bot.transformers.snowflake(payload.voiceState.channel_id)
|
||||
if (props.guildId) voiceState.guildId = bot.transformers.snowflake(payload.guildId)
|
||||
if (props.toggles) voiceState.toggles = new VoiceStateToggles(payload.voiceState)
|
||||
if (props.sessionId) voiceState.sessionId = payload.voiceState.session_id
|
||||
if (props.userId && payload.voiceState.user_id) voiceState.userId = bot.transformers.snowflake(payload.voiceState.user_id) ?? 0n
|
||||
if (props.requestToSpeakTimestamp && payload.request_to_speak_timestamp)
|
||||
voiceState.requestToSpeakTimestamp = Date.parse(payload.request_to_speak_timestamp)
|
||||
if (props.channelId && payload.channel_id) voiceState.channelId = bot.transformers.snowflake(payload.channel_id)
|
||||
if (props.guildId && extra?.guildId) voiceState.guildId = bot.transformers.snowflake(extra.guildId)
|
||||
if (props.toggles) voiceState.toggles = new VoiceStateToggles(payload)
|
||||
if (props.sessionId) voiceState.sessionId = payload.session_id
|
||||
if (props.userId && payload.user_id) voiceState.userId = bot.transformers.snowflake(payload.user_id)
|
||||
|
||||
return bot.transformers.customizers.voiceState(bot, payload.voiceState, voiceState)
|
||||
return bot.transformers.customizers.voiceState(bot, payload, voiceState, {
|
||||
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export function transformWidget(bot: Bot, payload: DiscordGuildWidget): GuildWid
|
||||
name: payload.name,
|
||||
instantInvite: payload.instant_invite ?? undefined,
|
||||
// @ts-expect-error TODO: Deal with partials
|
||||
channels: payload.channels.map((channel) => bot.transformers.channel(bot, { channel })),
|
||||
channels: payload.channels.map((channel) => bot.transformers.channel(bot, channel)),
|
||||
// @ts-expect-error TODO: Deal with partials
|
||||
members: payload.members.map((user) => bot.transformers.user(bot, user)),
|
||||
presenceCount: payload.presence_count,
|
||||
|
||||
Reference in New Issue
Block a user