mirror of
https://github.com/MathMan05/Fermi.git
synced 2026-08-28 02:54:08 +00:00
sticker map
This commit is contained in:
@@ -190,7 +190,7 @@ class Guild extends SnowFlake {
|
||||
html!: HTMLElement;
|
||||
emojis: emojipjson[] = [];
|
||||
large!: boolean;
|
||||
stickers!: Sticker[];
|
||||
stickers = new Map<string, Sticker>();
|
||||
members = new Set<Member>();
|
||||
static readonly contextmenu = new Contextmenu<Guild, void>("guild menu");
|
||||
static setupcontextmenu() {
|
||||
@@ -951,7 +951,7 @@ class Guild extends SnowFlake {
|
||||
containdiv.classList.add("stickersDiv");
|
||||
const genDiv = () => {
|
||||
containdiv.innerHTML = "";
|
||||
for (const sticker of this.stickers) {
|
||||
for (const [_, sticker] of this.stickers) {
|
||||
const div = document.createElement("div");
|
||||
div.classList.add("flexttb", "stickerOption");
|
||||
|
||||
@@ -1298,7 +1298,7 @@ class Guild extends SnowFlake {
|
||||
}
|
||||
settings.show();
|
||||
}
|
||||
onStickerUpdate = (_stickers: Sticker[]) => {};
|
||||
onStickerUpdate = (_stickers: Map<string, Sticker>) => {};
|
||||
addCommunity(settings: Settings, textChannels: Channel[]) {
|
||||
const com = settings.addButton(I18n.guild.community()).addForm("", () => {}, {
|
||||
fetchURL: this.info.api + "/guilds/" + this.id,
|
||||
@@ -1560,7 +1560,7 @@ class Guild extends SnowFlake {
|
||||
temp.resolveparent(this);
|
||||
}
|
||||
this.prevchannel = this.localuser.channels.get(this.perminfo.prevchannel);
|
||||
this.stickers = json.stickers.map((_) => new Sticker(_, this)) || [];
|
||||
this.stickers = new Map(json.stickers.map((_) => [_.id, new Sticker(_, this)] as const) || []);
|
||||
}
|
||||
get perminfo() {
|
||||
return this.localuser.perminfo.guilds[this.id];
|
||||
|
||||
@@ -1087,7 +1087,9 @@ class Localuser {
|
||||
case "GUILD_STICKERS_UPDATE": {
|
||||
const guild = this.guilds.get(temp.d.guild_id);
|
||||
if (!guild) break;
|
||||
guild.stickers = temp.d.stickers.map((_) => new Sticker(_, guild));
|
||||
guild.stickers = new Map(
|
||||
temp.d.stickers.map((_) => [_.id, new Sticker(_, guild)] as const),
|
||||
);
|
||||
guild.onStickerUpdate(guild.stickers);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -59,8 +59,8 @@ class Sticker extends SnowFlake {
|
||||
}
|
||||
const weakGuild = new WeakMap<Sticker, Guild>();
|
||||
for (const guild of localuser.guilds.values()) {
|
||||
if (guild.id !== "@me" && guild.stickers.length !== 0) {
|
||||
for (const sticker of guild.stickers) {
|
||||
if (guild.id !== "@me" && guild.stickers.size !== 0) {
|
||||
for (const [, sticker] of guild.stickers) {
|
||||
if (similar(sticker)) {
|
||||
weakGuild.set(sticker, guild);
|
||||
}
|
||||
@@ -74,7 +74,7 @@ class Sticker extends SnowFlake {
|
||||
}
|
||||
static getFromId(id: string, localuser: Localuser) {
|
||||
for (const guild of localuser.guilds.values()) {
|
||||
const stick = guild.stickers.find((_) => _.id === id);
|
||||
const stick = guild.stickers.get(id);
|
||||
if (stick) {
|
||||
return stick;
|
||||
}
|
||||
@@ -87,7 +87,7 @@ class Sticker extends SnowFlake {
|
||||
.values()
|
||||
.find((guild) => guild.emojis.find((emoji) => emoji.id === id));
|
||||
if (guild) {
|
||||
const sticker = guild.stickers.find((_) => _.id === id);
|
||||
const sticker = guild.stickers.get(id);
|
||||
if (sticker) return sticker;
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ class Sticker extends SnowFlake {
|
||||
...localuser.guilds.values().filter((guild) => guild !== localuser.focusGuild),
|
||||
]
|
||||
.filter((guild) => guild !== undefined)
|
||||
.filter((guild) => guild.id != "@me" && guild.stickers.length > 0);
|
||||
.filter((guild) => guild.id != "@me" && guild.stickers.size > 0);
|
||||
if (guilds.length === 0) {
|
||||
const title = document.createElement("h2");
|
||||
title.textContent = I18n.noStickers();
|
||||
@@ -240,7 +240,7 @@ class Sticker extends SnowFlake {
|
||||
updateSearch.call(this);
|
||||
title.textContent = guild.properties.name;
|
||||
body.innerHTML = "";
|
||||
for (const sticker of guild.stickers) {
|
||||
for (const [, sticker] of guild.stickers) {
|
||||
const stickerElem = document.createElement("div");
|
||||
stickerElem.classList.add("stickerSelect");
|
||||
stickerElem.append(sticker.getHTML());
|
||||
|
||||
Reference in New Issue
Block a user