hennus-api
Version:
Esta es una libreria para el bot Hennus
75 lines (74 loc) • 2.43 kB
JavaScript
"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;
;