mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 19:28:17 +00:00
feat: change Guild.emojis to use collection (#388)
* feat(guild): change Guild.emojis to use collection * idk
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
|||||||
UpdateGuildPayload,
|
UpdateGuildPayload,
|
||||||
} from "../../types/mod.ts";
|
} from "../../types/mod.ts";
|
||||||
import { cache } from "../../util/cache.ts";
|
import { cache } from "../../util/cache.ts";
|
||||||
|
import { Collection } from "../../util/collection.ts";
|
||||||
import { structures } from "../structures/mod.ts";
|
import { structures } from "../structures/mod.ts";
|
||||||
import { cacheHandlers } from "./cache.ts";
|
import { cacheHandlers } from "./cache.ts";
|
||||||
|
|
||||||
@@ -115,13 +116,15 @@ export async function handleInternalGuildEmojisUpdate(data: DiscordPayload) {
|
|||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|
||||||
const cachedEmojis = guild.emojis;
|
const cachedEmojis = guild.emojis;
|
||||||
guild.emojis = payload.emojis;
|
guild.emojis = new Collection(
|
||||||
|
payload.emojis.map((emoji) => [emoji.id ?? emoji.name, emoji]),
|
||||||
|
);
|
||||||
|
|
||||||
cacheHandlers.set("guilds", payload.guild_id, guild);
|
cacheHandlers.set("guilds", payload.guild_id, guild);
|
||||||
|
|
||||||
eventHandlers.guildEmojisUpdate?.(
|
eventHandlers.guildEmojisUpdate?.(
|
||||||
guild,
|
guild,
|
||||||
payload.emojis,
|
guild.emojis,
|
||||||
cachedEmojis,
|
cachedEmojis,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -402,7 +402,9 @@ export async function getEmojis(guildID: string, addToCache = true) {
|
|||||||
if (addToCache) {
|
if (addToCache) {
|
||||||
const guild = await cacheHandlers.get("guilds", guildID);
|
const guild = await cacheHandlers.get("guilds", guildID);
|
||||||
if (!guild) throw new Error(Errors.GUILD_NOT_FOUND);
|
if (!guild) throw new Error(Errors.GUILD_NOT_FOUND);
|
||||||
guild.emojis = result;
|
|
||||||
|
result.forEach((emoji) => guild.emojis.set(emoji.id ?? emoji.name, emoji));
|
||||||
|
|
||||||
cacheHandlers.set("guilds", guildID, guild);
|
cacheHandlers.set("guilds", guildID, guild);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,7 +428,7 @@ export async function getEmoji(
|
|||||||
if (addToCache) {
|
if (addToCache) {
|
||||||
const guild = await cacheHandlers.get("guilds", guildID);
|
const guild = await cacheHandlers.get("guilds", guildID);
|
||||||
if (!guild) throw new Error(Errors.GUILD_NOT_FOUND);
|
if (!guild) throw new Error(Errors.GUILD_NOT_FOUND);
|
||||||
guild.emojis.push(result);
|
guild.emojis.set(result.id ?? result.name, result);
|
||||||
cacheHandlers.set(
|
cacheHandlers.set(
|
||||||
"guilds",
|
"guilds",
|
||||||
guildID,
|
guildID,
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ export async function createGuild(data: CreateGuildPayload, shardID: number) {
|
|||||||
channels = [],
|
channels = [],
|
||||||
members,
|
members,
|
||||||
presences = [],
|
presences = [],
|
||||||
|
emojis,
|
||||||
...rest
|
...rest
|
||||||
} = data;
|
} = data;
|
||||||
|
|
||||||
@@ -187,6 +188,9 @@ export async function createGuild(data: CreateGuildPayload, shardID: number) {
|
|||||||
new Collection(presences.map((p: Presence) => [p.user.id, p])),
|
new Collection(presences.map((p: Presence) => [p.user.id, p])),
|
||||||
),
|
),
|
||||||
memberCount: createNewProp(memberCount),
|
memberCount: createNewProp(memberCount),
|
||||||
|
emojis: createNewProp(
|
||||||
|
new Collection(emojis.map((emoji) => [emoji.id ?? emoji.name, emoji])),
|
||||||
|
),
|
||||||
voiceStates: createNewProp(
|
voiceStates: createNewProp(
|
||||||
new Collection(
|
new Collection(
|
||||||
voiceStates.map((vs: VoiceState) => [
|
voiceStates.map((vs: VoiceState) => [
|
||||||
@@ -229,7 +233,7 @@ export interface Guild {
|
|||||||
/** Explicit content filter level */
|
/** Explicit content filter level */
|
||||||
explicitContentFilter: number;
|
explicitContentFilter: number;
|
||||||
/** The custom guild emojis */
|
/** The custom guild emojis */
|
||||||
emojis: Emoji[];
|
emojis: Collection<string, Emoji>;
|
||||||
/** Enabled guild features */
|
/** Enabled guild features */
|
||||||
features: GuildFeatures[];
|
features: GuildFeatures[];
|
||||||
/** System channel flags */
|
/** System channel flags */
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import {
|
|||||||
Message,
|
Message,
|
||||||
Role,
|
Role,
|
||||||
} from "../api/structures/mod.ts";
|
} from "../api/structures/mod.ts";
|
||||||
|
import { Collection } from "../util/collection.ts";
|
||||||
import {
|
import {
|
||||||
DiscordPayload,
|
DiscordPayload,
|
||||||
Emoji,
|
Emoji,
|
||||||
@@ -141,8 +142,8 @@ export interface EventHandlers {
|
|||||||
/** Sent when a guild's emojis have been updated. */
|
/** Sent when a guild's emojis have been updated. */
|
||||||
guildEmojisUpdate?: (
|
guildEmojisUpdate?: (
|
||||||
guild: Guild,
|
guild: Guild,
|
||||||
emojis: Emoji[],
|
emojis: Collection<string, Emoji>,
|
||||||
cachedEmojis: Emoji[],
|
cachedEmojis: Collection<string, Emoji>,
|
||||||
) => unknown;
|
) => unknown;
|
||||||
/** Sent when a new user joins a guild. */
|
/** Sent when a new user joins a guild. */
|
||||||
guildMemberAdd?: (guild: Guild, member: Member) => unknown;
|
guildMemberAdd?: (guild: Guild, member: Member) => unknown;
|
||||||
|
|||||||
Reference in New Issue
Block a user