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