UNPKG

hennus-api

Version:

Esta es una libreria para el bot Hennus

75 lines (74 loc) 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MembersManager = void 0; const types_1 = require("../../types"); const base_1 = require("./base"); class MembersManager extends base_1.cacheManager { constructor(client, guildId) { super(client); this.guildId = guildId; this._maps = false; Object.defineProperty(this, "guildId", { value: guildId }); } ; async fetch(id, options) { const cache = this.cache.get(id); if (options?.force) { const member = await this.rest.get("guildMember", options.guildId ?? this.guildId, id); if (!cache && member) this.cache.set(id, member); return member; } else return cache; } ; async fetchall() { if (this._maps) return this.cache; this._maps = true; const members = await this.rest.get("guildMembers", this.guildId) ?? []; members.forEach((member) => { const user = member.user; if (user) { if (!this.cache.has(user.id)) this.cache.set(user.id, member); if (!this.client.users.resolve(user.id)) this.client.users.cache.set(user.id, user); } ; }); return this.cache; } ; setall(members, guild) { if (!this._maps && Array.isArray(members)) { this._maps = true; members.forEach((member) => { const user = member.user; if (user) { if (!this.cache.has(user.id)) { this.cache.set(user.id, new types_1.GuildMember(member, guild, this.client)); } if (!this.client.users.resolve(user.id)) { this.client.users.cache.set(user.id, new types_1.User(user, this.client)); } } }); } return this.cache; } add(member) { const cache = this.resolve(member.user?.id ?? ""); if (member.user && cache) { this.cache.delete(member.user?.id); this.cache.set(member.user.id, member); } else if (member.user) this.cache.set(member.user.id, member); return this; } ; } exports.MembersManager = MembersManager; ;