mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 03:18:17 +00:00
change: ids to use bigint instead of string (#892)
* p1 of bigints change * shtuff fixes and bits * Commit from GitHub Actions (Lint) * finish bigint structs * typings fixes * Commit from GitHub Actions (Lint) * more fixes * Commit from GitHub Actions (Lint) * more fixes * Commit from GitHub Actions (Lint) * blame wolf * Commit from GitHub Actions (Lint) * foxed * Commit from GitHub Actions (Lint) * fix unit tests * Commit from GitHub Actions (Lint) * change: guildUpdate guild ID can't change * delete server has been renamed to delete guild * fixes Co-authored-by: Skillz4Killz <Skillz4Killz@users.noreply.github.com> Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com>
This commit is contained in:
@@ -2,12 +2,19 @@ import { eventHandlers } from "../../bot.ts";
|
||||
import { cacheHandlers } from "../../cache.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gateway_payload.ts";
|
||||
import { GuildBanAddRemove } from "../../types/guilds/guild_ban_add_remove.ts";
|
||||
import { snowflakeToBigint } from "../../util/bigint.ts";
|
||||
|
||||
export async function handleGuildBanAdd(data: DiscordGatewayPayload) {
|
||||
const payload = data.d as GuildBanAddRemove;
|
||||
const guild = await cacheHandlers.get("guilds", payload.guildId);
|
||||
const guild = await cacheHandlers.get(
|
||||
"guilds",
|
||||
snowflakeToBigint(payload.guildId),
|
||||
);
|
||||
if (!guild) return;
|
||||
|
||||
const member = await cacheHandlers.get("members", payload.user.id);
|
||||
const member = await cacheHandlers.get(
|
||||
"members",
|
||||
snowflakeToBigint(payload.user.id),
|
||||
);
|
||||
eventHandlers.guildBanAdd?.(guild, payload.user, member);
|
||||
}
|
||||
|
||||
@@ -2,12 +2,19 @@ import { eventHandlers } from "../../bot.ts";
|
||||
import { cacheHandlers } from "../../cache.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gateway_payload.ts";
|
||||
import { GuildBanAddRemove } from "../../types/guilds/guild_ban_add_remove.ts";
|
||||
import { snowflakeToBigint } from "../../util/bigint.ts";
|
||||
|
||||
export async function handleGuildBanRemove(data: DiscordGatewayPayload) {
|
||||
const payload = data.d as GuildBanAddRemove;
|
||||
const guild = await cacheHandlers.get("guilds", payload.guildId);
|
||||
const guild = await cacheHandlers.get(
|
||||
"guilds",
|
||||
snowflakeToBigint(payload.guildId),
|
||||
);
|
||||
if (!guild) return;
|
||||
|
||||
const member = await cacheHandlers.get("members", payload.user.id);
|
||||
const member = await cacheHandlers.get(
|
||||
"members",
|
||||
snowflakeToBigint(payload.user.id),
|
||||
);
|
||||
eventHandlers.guildBanRemove?.(guild, payload.user, member);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cache, cacheHandlers } from "../../cache.ts";
|
||||
import { structures } from "../../structures/mod.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gateway_payload.ts";
|
||||
import { Guild } from "../../types/guilds/guild.ts";
|
||||
import { snowflakeToBigint } from "../../util/bigint.ts";
|
||||
import { ws } from "../../ws/ws.ts";
|
||||
|
||||
export async function handleGuildCreate(
|
||||
@@ -11,24 +12,24 @@ export async function handleGuildCreate(
|
||||
) {
|
||||
const payload = data.d as Guild;
|
||||
// When shards resume they emit GUILD_CREATE again.
|
||||
if (await cacheHandlers.has("guilds", payload.id)) return;
|
||||
if (await cacheHandlers.has("guilds", snowflakeToBigint(payload.id))) return;
|
||||
|
||||
const discordenoGuild = await structures.createDiscordenoGuild(
|
||||
const guild = await structures.createDiscordenoGuild(
|
||||
payload,
|
||||
shardId,
|
||||
);
|
||||
await cacheHandlers.set("guilds", discordenoGuild.id, discordenoGuild);
|
||||
await cacheHandlers.set("guilds", guild.id, guild);
|
||||
|
||||
const shard = ws.shards.get(shardId);
|
||||
|
||||
if (shard?.unavailableGuildIds.has(payload.id)) {
|
||||
await cacheHandlers.delete("unavailableGuilds", payload.id);
|
||||
if (shard?.unavailableGuildIds.has(guild.id)) {
|
||||
await cacheHandlers.delete("unavailableGuilds", guild.id);
|
||||
|
||||
shard.unavailableGuildIds.delete(payload.id);
|
||||
shard.unavailableGuildIds.delete(guild.id);
|
||||
|
||||
return eventHandlers.guildAvailable?.(discordenoGuild);
|
||||
return eventHandlers.guildAvailable?.(guild);
|
||||
}
|
||||
|
||||
if (!cache.isReady) return eventHandlers.guildLoaded?.(discordenoGuild);
|
||||
eventHandlers.guildCreate?.(discordenoGuild);
|
||||
if (!cache.isReady) return eventHandlers.guildLoaded?.(guild);
|
||||
eventHandlers.guildCreate?.(guild);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { eventHandlers } from "../../bot.ts";
|
||||
import { cacheHandlers } from "../../cache.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gateway_payload.ts";
|
||||
import { UnavailableGuild } from "../../types/guilds/unavailable_guild.ts";
|
||||
import { snowflakeToBigint } from "../../util/bigint.ts";
|
||||
import { ws } from "../../ws/ws.ts";
|
||||
|
||||
export async function handleGuildDelete(
|
||||
@@ -10,16 +11,19 @@ export async function handleGuildDelete(
|
||||
) {
|
||||
const payload = data.d as UnavailableGuild;
|
||||
|
||||
const guild = await cacheHandlers.get("guilds", payload.id);
|
||||
const guild = await cacheHandlers.get(
|
||||
"guilds",
|
||||
snowflakeToBigint(payload.id),
|
||||
);
|
||||
if (!guild) return;
|
||||
|
||||
await cacheHandlers.delete("guilds", payload.id);
|
||||
await cacheHandlers.delete("guilds", guild.id);
|
||||
|
||||
if (payload.unavailable) {
|
||||
const shard = ws.shards.get(shardId);
|
||||
if (shard) shard.unavailableGuildIds.add(payload.id);
|
||||
if (shard) shard.unavailableGuildIds.add(guild.id);
|
||||
|
||||
await cacheHandlers.set("unavailableGuilds", payload.id, Date.now());
|
||||
await cacheHandlers.set("unavailableGuilds", guild.id, Date.now());
|
||||
|
||||
eventHandlers.guildUnavailable?.(guild);
|
||||
} else {
|
||||
@@ -31,7 +35,7 @@ export async function handleGuildDelete(
|
||||
"loop",
|
||||
`1. Running forEach messages loop in CHANNEL_DELTE file.`,
|
||||
);
|
||||
if (message.guildId === payload.id) {
|
||||
if (message.guildId === guild.id) {
|
||||
cacheHandlers.delete("messages", message.id);
|
||||
}
|
||||
});
|
||||
@@ -41,7 +45,7 @@ export async function handleGuildDelete(
|
||||
"loop",
|
||||
`2. Running forEach channels loop in CHANNEL_DELTE file.`,
|
||||
);
|
||||
if (channel.guildId === payload.id) {
|
||||
if (channel.guildId === guild.id) {
|
||||
cacheHandlers.delete("channels", channel.id);
|
||||
}
|
||||
});
|
||||
@@ -51,9 +55,9 @@ export async function handleGuildDelete(
|
||||
"loop",
|
||||
`3. Running forEach members loop in CHANNEL_DELTE file.`,
|
||||
);
|
||||
if (!member.guilds.has(payload.id)) return;
|
||||
if (!member.guilds.has(guild.id)) return;
|
||||
|
||||
member.guilds.delete(payload.id);
|
||||
member.guilds.delete(guild.id);
|
||||
|
||||
if (!member.guilds.size) {
|
||||
return cacheHandlers.delete("members", member.id);
|
||||
|
||||
@@ -2,13 +2,17 @@ import { eventHandlers } from "../../bot.ts";
|
||||
import { cacheHandlers } from "../../cache.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gateway_payload.ts";
|
||||
import { GuildIntegrationsUpdate } from "../../types/integration/guild_integrations_update.ts";
|
||||
import { snowflakeToBigint } from "../../util/bigint.ts";
|
||||
|
||||
export async function handleGuildIntegrationsUpdate(
|
||||
data: DiscordGatewayPayload,
|
||||
) {
|
||||
const payload = data.d as GuildIntegrationsUpdate;
|
||||
|
||||
const guild = await cacheHandlers.get("guilds", payload.guildId);
|
||||
const guild = await cacheHandlers.get(
|
||||
"guilds",
|
||||
snowflakeToBigint(payload.guildId),
|
||||
);
|
||||
if (!guild) return;
|
||||
|
||||
eventHandlers.guildIntegrationsUpdate?.(guild);
|
||||
|
||||
@@ -3,13 +3,18 @@ import { cacheHandlers } from "../../cache.ts";
|
||||
import { GuildUpdateChange } from "../../types/discordeno/guild_update_change.ts";
|
||||
import { DiscordGatewayPayload } from "../../types/gateway/gateway_payload.ts";
|
||||
import { Guild } from "../../types/guilds/guild.ts";
|
||||
import { snowflakeToBigint } from "../../util/bigint.ts";
|
||||
|
||||
export async function handleGuildUpdate(data: DiscordGatewayPayload) {
|
||||
const payload = data.d as Guild;
|
||||
const newGuild = await cacheHandlers.get("guilds", payload.id);
|
||||
const newGuild = await cacheHandlers.get(
|
||||
"guilds",
|
||||
snowflakeToBigint(payload.id),
|
||||
);
|
||||
if (!newGuild) return;
|
||||
|
||||
const keysToSkip = [
|
||||
"id",
|
||||
"roles",
|
||||
"guildHashes",
|
||||
"guildId",
|
||||
@@ -40,7 +45,7 @@ export async function handleGuildUpdate(data: DiscordGatewayPayload) {
|
||||
}
|
||||
}).filter((change) => change) as GuildUpdateChange[];
|
||||
|
||||
await cacheHandlers.set("guilds", payload.id, newGuild);
|
||||
await cacheHandlers.set("guilds", newGuild.id, newGuild);
|
||||
|
||||
eventHandlers.guildUpdate?.(newGuild, changes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user