mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
refactor!: move dirs outside of src/ (#2032)
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import type { Channel } from "../../types/channels/channel.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
import type { Bot } from "../../bot.ts";
|
||||
|
||||
export async function handleChannelCreate(bot: Bot, payload: DiscordGatewayPayload) {
|
||||
const channel = bot.transformers.channel(bot, { channel: payload.d as SnakeCasedPropertiesDeep<Channel> });
|
||||
|
||||
bot.events.channelCreate(bot, channel);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import type { Channel } from "../../types/channels/channel.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleChannelDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Channel>;
|
||||
if (!payload.guild_id) return;
|
||||
|
||||
bot.events.channelDelete(
|
||||
bot,
|
||||
bot.transformers.channel(bot, {
|
||||
channel: payload,
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
}),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { ChannelPinsUpdate } from "../../types/channels/channelPinsUpdate.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleChannelPinsUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ChannelPinsUpdate>;
|
||||
|
||||
bot.events.channelPinsUpdate(bot, {
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
lastPinTimestamp: payload.last_pin_timestamp ? Date.parse(payload.last_pin_timestamp) : undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { Channel } from "../../types/channels/channel.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleChannelUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Channel>;
|
||||
const channel = bot.transformers.channel(bot, { channel: payload });
|
||||
|
||||
bot.events.channelUpdate(bot, channel);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { StageInstance } from "../../types/channels/stageInstance.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleStageInstanceCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<StageInstance>;
|
||||
|
||||
bot.events.stageInstanceCreate(bot, {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
topic: payload.topic,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { StageInstance } from "../../types/channels/stageInstance.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleStageInstanceDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<StageInstance>;
|
||||
|
||||
bot.events.stageInstanceDelete(bot, {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
topic: payload.topic,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { StageInstance } from "../../types/channels/stageInstance.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleStageInstanceUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<StageInstance>;
|
||||
|
||||
bot.events.stageInstanceUpdate(bot, {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
topic: payload.topic,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { Channel } from "../../types/channels/channel.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleThreadCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Channel>;
|
||||
|
||||
bot.events.threadCreate(bot, bot.transformers.channel(bot, { channel: payload }));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { Channel } from "../../types/channels/channel.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleThreadDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Channel>;
|
||||
bot.events.threadDelete(bot, bot.transformers.channel(bot, { channel: payload }));
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { ThreadListSync } from "../../types/channels/threads/threadListSync.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleThreadListSync(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ThreadListSync>;
|
||||
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||
return {
|
||||
guildId,
|
||||
channelIds: payload.channel_ids?.map((id) => bot.transformers.snowflake(id)),
|
||||
threads: payload.threads.map((thread) => bot.transformers.channel(bot, { channel: 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,
|
||||
joinTimestamp: Date.parse(member.join_timestamp),
|
||||
})),
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { ThreadMembersUpdate } from "../../types/channels/threads/threadMembersUpdate.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleThreadMembersUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ThreadMembersUpdate>;
|
||||
bot.events.threadMembersUpdate(bot, {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
addedMembers: payload.added_members?.map((member) => bot.transformers.threadMember(bot, member)),
|
||||
removedMemberIds: payload.removed_member_ids?.map((id) => bot.transformers.snowflake(id)),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
|
||||
export async function handleThreadMemberUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
// This event is documented for completeness, but unlikely to be used by most bots
|
||||
return;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { Channel } from "../../types/channels/channel.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleThreadUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Channel>;
|
||||
|
||||
bot.events.threadUpdate(bot, bot.transformers.channel(bot, { channel: payload }));
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { GuildEmojisUpdate } from "../../types/emojis/guildEmojisUpdate.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
import { Collection } from "../../util/collection.ts";
|
||||
|
||||
export async function handleGuildEmojisUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildEmojisUpdate>;
|
||||
|
||||
bot.events.guildEmojisUpdate(bot, {
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
emojis: new Collection(payload.emojis.map((emoji) => [bot.transformers.snowflake(emoji.id!), emoji])),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildBanAddRemove } from "../../types/guilds/guildBanAddRemove.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildBanAdd(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildBanAddRemove>;
|
||||
bot.events.guildBanAdd(bot, bot.transformers.user(bot, payload.user), bot.transformers.snowflake(payload.guild_id));
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildBanAddRemove } from "../../types/guilds/guildBanAddRemove.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildBanRemove(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildBanAddRemove>;
|
||||
|
||||
await bot.events.guildBanRemove(
|
||||
bot,
|
||||
bot.transformers.user(bot, payload.user),
|
||||
bot.transformers.snowflake(payload.guild_id),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Guild } from "../../types/guilds/guild.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleGuildCreate(bot: Bot, data: DiscordGatewayPayload, shardId: number) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Guild>;
|
||||
bot.events.guildCreate(bot, bot.transformers.guild(bot, { guild: payload, shardId }));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { UnavailableGuild } from "../../types/guilds/unavailableGuild.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildDelete(bot: Bot, data: DiscordGatewayPayload, shardId: number) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<UnavailableGuild>;
|
||||
bot.events.guildDelete(bot, bot.transformers.snowflake(payload.id), shardId);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildIntegrationsUpdate } from "../../types/integrations/guildIntegrationsUpdate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildIntegrationsUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildIntegrationsUpdate>;
|
||||
|
||||
bot.events.integrationUpdate(bot, { guildId: bot.transformers.snowflake(payload.guild_id) });
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Guild } from "../../types/guilds/guild.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleGuildLoaded(bot: Bot, data: DiscordGatewayPayload, shardId: number) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Guild>;
|
||||
|
||||
const guild = bot.transformers.guild(bot, { guild: payload, shardId });
|
||||
bot.events.guildLoaded(bot, guild);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import type { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Guild } from "../../types/guilds/guild.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildUpdate(bot: Bot, data: DiscordGatewayPayload, shardId: number) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Guild>;
|
||||
|
||||
bot.events.guildUpdate(bot, bot.transformers.guild(bot, { guild: payload, shardId }));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ScheduledEvent } from "../../../types/guilds/scheduledEvents.ts";
|
||||
import type { Bot } from "../../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../../types/util.ts";
|
||||
|
||||
export function handleGuildScheduledEventCreate(bot: Bot, data: DiscordGatewayPayload, shardId: number) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ScheduledEvent>;
|
||||
bot.events.scheduledEventCreate(bot, bot.transformers.scheduledEvent(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ScheduledEvent } from "../../../types/guilds/scheduledEvents.ts";
|
||||
import type { Bot } from "../../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../../types/util.ts";
|
||||
|
||||
export function handleGuildScheduledEventDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ScheduledEvent>;
|
||||
bot.events.scheduledEventDelete(bot, bot.transformers.scheduledEvent(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ScheduledEvent } from "../../../types/guilds/scheduledEvents.ts";
|
||||
import type { Bot } from "../../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../../types/util.ts";
|
||||
|
||||
export function handleGuildScheduledEventUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ScheduledEvent>;
|
||||
bot.events.scheduledEventUpdate(bot, bot.transformers.scheduledEvent(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { Bot } from "../../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../../types/gateway/gatewayPayload.ts";
|
||||
import { ScheduledEventUserAdd } from "../../../types/guilds/scheduledEvents.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../../types/util.ts";
|
||||
|
||||
export function handleGuildScheduledEventUserAdd(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ScheduledEventUserAdd>;
|
||||
|
||||
return bot.events.scheduledEventUserAdd(bot, {
|
||||
guildScheduledEventId: bot.transformers.snowflake(payload.guild_scheduled_event_id),
|
||||
userId: bot.transformers.snowflake(payload.user_id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { Bot } from "../../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../../types/gateway/gatewayPayload.ts";
|
||||
import { ScheduledEventUserRemove } from "../../../types/guilds/scheduledEvents.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../../types/util.ts";
|
||||
|
||||
export function handleGuildScheduledEventUserRemove(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<ScheduledEventUserRemove>;
|
||||
|
||||
return bot.events.scheduledEventUserRemove(bot, {
|
||||
guildScheduledEventId: bot.transformers.snowflake(payload.guild_scheduled_event_id),
|
||||
userId: bot.transformers.snowflake(payload.user_id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { IntegrationCreateUpdate } from "../../types/integrations/integrationCreateUpdate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleIntegrationCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
bot.events.integrationCreate(
|
||||
bot,
|
||||
bot.transformers.integration(bot, data.d as SnakeCasedPropertiesDeep<IntegrationCreateUpdate>),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { IntegrationDelete } from "../../types/integrations/integrationDelete.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleIntegrationDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<IntegrationDelete>;
|
||||
|
||||
bot.events.integrationDelete(bot, {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
applicationId: payload.application_id ? bot.transformers.snowflake(payload.application_id) : undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { IntegrationCreateUpdate } from "../../types/integrations/integrationCreateUpdate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleIntegrationUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
bot.events.integrationUpdate(
|
||||
bot,
|
||||
bot.transformers.integration(bot, data.d as SnakeCasedPropertiesDeep<IntegrationCreateUpdate>),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Interaction } from "../../types/interactions/interaction.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleInteractionCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
bot.cache.unrepliedInteractions.add(bot.transformers.snowflake((data.d as SnakeCasedPropertiesDeep<Interaction>).id));
|
||||
bot.events.interactionCreate(bot, bot.transformers.interaction(bot, data.d as SnakeCasedPropertiesDeep<Interaction>));
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { InviteCreate } from "../../types/invites/inviteCreate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleInviteCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
bot.events.inviteCreate(bot, bot.transformers.invite(bot, data.d as SnakeCasedPropertiesDeep<InviteCreate>));
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { InviteDelete } from "../../types/invites/inviteDelete.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleInviteDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<InviteDelete>;
|
||||
|
||||
bot.events.inviteDelete(bot, {
|
||||
/** The channel of the invite */
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
/** The guild of the invite */
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
/** The unique invite code */
|
||||
code: payload.code,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { statusTypes } from "../../transformers/presence.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildMembersChunk } from "../../types/members/guildMembersChunk.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildMembersChunk(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildMembersChunk>;
|
||||
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||
|
||||
if (payload.nonce && payload.chunk_index >= payload.chunk_count - 1) {
|
||||
bot.cache.fetchAllMembersProcessingRequests.get(payload.nonce)?.(
|
||||
`Member fetching complete. Nonce: ${payload.nonce}`,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
guildId,
|
||||
members: payload.members.map((m) =>
|
||||
bot.transformers.member(bot, m, guildId, bot.transformers.snowflake(m.user.id))
|
||||
),
|
||||
chunkIndex: payload.chunk_index,
|
||||
chunkCount: payload.chunk_count,
|
||||
notFound: payload.not_found?.map((id) => bot.transformers.snowflake(id)),
|
||||
presences: payload.presences?.map((presence) => ({
|
||||
user: bot.transformers.user(bot, presence.user),
|
||||
guildId,
|
||||
status: statusTypes[presence.status],
|
||||
activities: presence.activities.map((activity) => bot.transformers.activity(bot, activity)),
|
||||
clientStatus: {
|
||||
desktop: presence.client_status.desktop,
|
||||
mobile: presence.client_status.mobile,
|
||||
web: presence.client_status.web,
|
||||
},
|
||||
})),
|
||||
nonce: payload.nonce,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildMemberAdd } from "../../types/members/guildMemberAdd.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildMemberAdd(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberAdd>;
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||
const user = bot.transformers.user(bot, payload.user);
|
||||
const member = bot.transformers.member(bot, payload, guildId, user.id);
|
||||
bot.events.guildMemberAdd(bot, member, user);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildMemberRemove } from "../../types/members/guildMemberRemove.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildMemberRemove(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberRemove>;
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||
const user = bot.transformers.user(bot, payload.user);
|
||||
|
||||
bot.events.guildMemberRemove(bot, user, guildId);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildMemberUpdate } from "../../types/members/guildMemberUpdate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildMemberUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildMemberUpdate>;
|
||||
|
||||
const user = bot.transformers.user(bot, payload.user);
|
||||
bot.events.guildMemberUpdate(
|
||||
bot,
|
||||
bot.transformers.member(bot, payload, bot.transformers.snowflake(payload.guild_id), user.id),
|
||||
user,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Message } from "../../types/messages/message.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Message>;
|
||||
|
||||
bot.events.messageCreate(bot, bot.transformers.message(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { MessageDelete } from "../../types/messages/messageDelete.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageDelete>;
|
||||
|
||||
bot.events.messageDelete(bot, {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { MessageDeleteBulk } from "../../types/messages/messageDeleteBulk.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageDeleteBulk(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageDeleteBulk>;
|
||||
|
||||
return {
|
||||
ids: payload.ids.map((id) => bot.transformers.snowflake(id)),
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { MessageReactionAdd } from "../../types/messages/messageReactionAdd.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageReactionAdd(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageReactionAdd>;
|
||||
|
||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
||||
const userId = bot.transformers.snowflake(payload.user_id);
|
||||
bot.events.reactionAdd(bot, {
|
||||
userId,
|
||||
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,
|
||||
emoji: bot.transformers.emoji(bot, payload.emoji),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { MessageReactionRemove } from "../../types/messages/messageReactionRemove.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageReactionRemove(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageReactionRemove>;
|
||||
|
||||
bot.events.reactionRemove(bot, {
|
||||
userId: bot.transformers.snowflake(payload.user_id),
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
messageId: bot.transformers.snowflake(payload.message_id),
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
emoji: bot.transformers.emoji(bot, payload.emoji),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { MessageReactionRemoveAll } from "../../types/messages/messageReactionRemoveAll.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageReactionRemoveAll(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageReactionRemoveAll>;
|
||||
|
||||
bot.events.reactionRemoveAll(bot, {
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
messageId: bot.transformers.snowflake(payload.message_id),
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { MessageReactionRemoveEmoji } from "../../types/messages/messageReactionRemoveEmoji.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageReactionRemoveEmoji(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<MessageReactionRemoveEmoji>;
|
||||
|
||||
bot.events.reactionRemoveEmoji(bot, {
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
messageId: bot.transformers.snowflake(payload.message_id),
|
||||
guildId: payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined,
|
||||
emoji: bot.transformers.emoji(bot, payload.emoji),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { Message } from "../../types/messages/message.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleMessageUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<Message>;
|
||||
if (!payload.edited_timestamp) return;
|
||||
|
||||
bot.events.messageUpdate(bot, bot.transformers.message(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { PresenceUpdate } from "../../types/activity/presenceUpdate.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handlePresenceUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<PresenceUpdate>;
|
||||
bot.events.presenceUpdate(bot, bot.transformers.presence(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { DiscordReady } from "../../types/gateway/ready.ts";
|
||||
|
||||
export function handleReady(bot: Bot, data: DiscordGatewayPayload, shardId: number) {
|
||||
const payload = data.d as DiscordReady;
|
||||
// Triggered on each shard
|
||||
bot.events.ready(
|
||||
bot,
|
||||
{
|
||||
shardId,
|
||||
v: payload.v,
|
||||
user: bot.transformers.user(bot, payload.user),
|
||||
guilds: payload.guilds.map((p) => bot.transformers.snowflake(p.id)),
|
||||
sessionId: payload.session_id,
|
||||
shard: payload.shard,
|
||||
applicationId: bot.transformers.snowflake(payload.application.id),
|
||||
},
|
||||
payload,
|
||||
);
|
||||
|
||||
if (!bot.id) bot.id = bot.transformers.snowflake(payload.user.id);
|
||||
if (!bot.applicationId) bot.applicationId = bot.transformers.snowflake(payload.application.id);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { TypingStart } from "../../types/misc/typingStart.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleTypingStart(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<TypingStart>;
|
||||
|
||||
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
||||
const userId = bot.transformers.snowflake(payload.user_id);
|
||||
|
||||
bot.events.typingStart(bot, {
|
||||
guildId,
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
userId,
|
||||
timestamp: payload.timestamp,
|
||||
member: payload.member && guildId ? bot.transformers.member(bot, payload.member, guildId, userId) : undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { User } from "../../types/users/user.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleUserUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<User>;
|
||||
bot.events.botUpdate(bot, bot.transformers.user(bot, payload));
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
//channels
|
||||
export * from "./channels/CHANNEL_CREATE.ts";
|
||||
export * from "./channels/CHANNEL_DELETE.ts";
|
||||
export * from "./channels/CHANNEL_PINS_UPDATE.ts";
|
||||
export * from "./channels/CHANNEL_UPDATE.ts";
|
||||
export * from "./channels/STAGE_INSTANCE_CREATE.ts";
|
||||
export * from "./channels/STAGE_INSTANCE_UPDATE.ts";
|
||||
export * from "./channels/STAGE_INSTANCE_DELETE.ts";
|
||||
export * from "./channels/THREAD_CREATE.ts";
|
||||
export * from "./channels/THREAD_DELETE.ts";
|
||||
export * from "./channels/THREAD_LIST_SYNC.ts";
|
||||
export * from "./channels/THREAD_MEMBERS_UPDATE.ts";
|
||||
export * from "./channels/THREAD_MEMBER_UPDATE.ts";
|
||||
export * from "./channels/THREAD_UPDATE.ts";
|
||||
|
||||
//emojis
|
||||
export * from "./emojis/GUILD_EMOJIS_UPDATE.ts";
|
||||
|
||||
//guilds
|
||||
export * from "./guilds/GUILD_BAN_ADD.ts";
|
||||
export * from "./guilds/GUILD_BAN_REMOVE.ts";
|
||||
export * from "./guilds/GUILD_CREATE.ts";
|
||||
export * from "./guilds/GUILD_DELETE.ts";
|
||||
export * from "./guilds/GUILD_INTEGRATIONS_UPDATE.ts";
|
||||
export * from "./guilds/GUILD_UPDATE.ts";
|
||||
|
||||
//intergrations
|
||||
export * from "./integrations/INTEGRATION_CREATE.ts";
|
||||
export * from "./integrations/INTEGRATION_DELETE.ts";
|
||||
export * from "./integrations/INTEGRATION_UPDATE.ts";
|
||||
export * from "./interactions/INTERACTION_CREATE.ts";
|
||||
|
||||
//invites
|
||||
export * from "./invites/INVITE_CREATE.ts";
|
||||
|
||||
//members
|
||||
export * from "./members/GUILD_MEMBERS_CHUNK.ts";
|
||||
export * from "./members/GUILD_MEMBER_ADD.ts";
|
||||
export * from "./members/GUILD_MEMBER_REMOVE.ts";
|
||||
export * from "./members/GUILD_MEMBER_UPDATE.ts";
|
||||
|
||||
//messages
|
||||
export * from "./messages/MESSAGE_CREATE.ts";
|
||||
export * from "./messages/MESSAGE_DELETE.ts";
|
||||
export * from "./messages/MESSAGE_DELETE_BULK.ts";
|
||||
export * from "./messages/MESSAGE_REACTION_ADD.ts";
|
||||
export * from "./messages/MESSAGE_REACTION_REMOVE.ts";
|
||||
export * from "./messages/MESSAGE_REACTION_REMOVE_ALL.ts";
|
||||
export * from "./messages/MESSAGE_REACTION_REMOVE_EMOJI.ts";
|
||||
export * from "./messages/MESSAGE_UPDATE.ts";
|
||||
|
||||
//misc
|
||||
export * from "./misc/PRESENCE_UPDATE.ts";
|
||||
export * from "./misc/READY.ts";
|
||||
export * from "./misc/TYPING_START.ts";
|
||||
export * from "./misc/USER_UPDATE.ts";
|
||||
|
||||
//roles
|
||||
export * from "./roles/GUILD_ROLE_CREATE.ts";
|
||||
export * from "./roles/GUILD_ROLE_DELETE.ts";
|
||||
export * from "./roles/GUILD_ROLE_UPDATE.ts";
|
||||
|
||||
//voice
|
||||
export * from "./voice/VOICE_SERVER_UPDATE.ts";
|
||||
export * from "./voice/VOICE_STATE_UPDATE.ts";
|
||||
|
||||
//webhooks
|
||||
export * from "./webhooks/WEBHOOKS_UPDATE.ts";
|
||||
|
||||
//guilds
|
||||
export * from "./guilds/GUILD_LOADED_DD.ts";
|
||||
export * from "./guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.ts";
|
||||
export * from "./guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.ts";
|
||||
export * from "./guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.ts";
|
||||
export * from "./guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.ts";
|
||||
export * from "./guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.ts";
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildRoleCreate } from "../../types/guilds/guildRoleCreate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildRoleCreate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildRoleCreate>;
|
||||
bot.events.roleCreate(
|
||||
bot,
|
||||
bot.transformers.role(bot, { role: payload.role, guildId: bot.transformers.snowflake(payload.guild_id) }),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildRoleDelete } from "../../types/guilds/guildRoleDelete.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildRoleDelete(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildRoleDelete>;
|
||||
bot.events.roleDelete(bot, {
|
||||
roleId: bot.transformers.snowflake(payload.role_id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { GuildRoleUpdate } from "../../types/guilds/guildRoleUpdate.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleGuildRoleUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<GuildRoleUpdate>;
|
||||
|
||||
bot.events.roleUpdate(
|
||||
bot,
|
||||
bot.transformers.role(bot, { role: payload.role, guildId: bot.transformers.snowflake(payload.guild_id) }),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { VoiceServerUpdate } from "../../types/voice/voiceServerUpdate.ts";
|
||||
|
||||
export async function handleVoiceServerUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<VoiceServerUpdate>;
|
||||
|
||||
bot.events.voiceServerUpdate(bot, {
|
||||
token: payload.token,
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
endpoint: payload.endpoint ?? undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { VoiceState } from "../../types/voice/voiceState.ts";
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export async function handleVoiceStateUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<VoiceState>;
|
||||
if (!payload.guild_id) return;
|
||||
|
||||
const guildId = bot.transformers.snowflake(payload.guild_id);
|
||||
const userId = bot.transformers.snowflake(payload.user_id);
|
||||
|
||||
bot.events.voiceStateUpdate(bot, {
|
||||
guildId,
|
||||
userId,
|
||||
channelId: payload.channel_id ? bot.transformers.snowflake(payload.channel_id) : undefined,
|
||||
member: payload.member ? bot.transformers.member(bot, payload.member, guildId, userId) : undefined,
|
||||
user: payload.member ? bot.transformers.user(bot, payload.member.user) : undefined,
|
||||
sessionId: payload.session_id,
|
||||
deaf: payload.deaf,
|
||||
mute: payload.mute,
|
||||
selfDeaf: payload.self_deaf,
|
||||
selfMute: payload.self_mute,
|
||||
selfStream: payload.self_stream,
|
||||
selfVideo: payload.self_video,
|
||||
suppress: payload.suppress,
|
||||
requestToSpeakTimestamp: payload.request_to_speak_timestamp
|
||||
? Date.parse(payload.request_to_speak_timestamp)
|
||||
: undefined,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import type { DiscordGatewayPayload } from "../../types/gateway/gatewayPayload.ts";
|
||||
import type { WebhookUpdate } from "../../types/webhooks/webhooksUpdate.ts";
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { SnakeCasedPropertiesDeep } from "../../types/util.ts";
|
||||
|
||||
export function handleWebhooksUpdate(bot: Bot, data: DiscordGatewayPayload) {
|
||||
const payload = data.d as SnakeCasedPropertiesDeep<WebhookUpdate>;
|
||||
bot.events.webhooksUpdate(bot, {
|
||||
channelId: bot.transformers.snowflake(payload.channel_id),
|
||||
guildId: bot.transformers.snowflake(payload.guild_id),
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user