hennus-api
Version:
Esta es una libreria para el bot Hennus
63 lines (62 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RolesManager = void 0;
const base_1 = require("./base");
const types_1 = require("../../types");
const collection_1 = require("@discordjs/collection");
class RolesManager extends base_1.cacheManager {
constructor(client, Iterable) {
const roles = (Iterable ?? []).map((role) => new types_1.GuildRoles(role, this.client));
const map = roles.map((x) => [x.id, x]);
super(client, map);
this._maps = false;
}
;
fetch(id) {
const cache = this.cache.get(id);
return cache;
}
;
async fetchall(guildId) {
if (this._maps)
return this.cache;
this._maps = true;
let roles = await this.rest.get("guildRoles", guildId);
if (roles && Array.isArray(roles))
roles.forEach((role) => { if (!this.resolve(role))
this.cache.set(role.id, role); });
return this.cache;
}
;
searchlist(ids) {
const map = this.cache.map((role) => { if (ids.includes(role.id))
return role; return undefined; }).filter((x) => x != undefined);
return map;
}
;
setall(Iterable) {
if (!this._maps && Array.isArray(Iterable)) {
this._maps = true;
const roles = (Iterable ?? []).map((role) => new types_1.GuildRoles(role, this.client));
const map = roles.map((x) => [x.id, x]);
this.cache.concat(new collection_1.Collection(map));
}
return this.cache;
}
get color() {
const coloredRoles = this.cache.filter(role => role.color);
if (!coloredRoles.size)
return undefined;
return coloredRoles.reduce((prev, role) => (role.position > 0 ? role : prev));
}
;
get hoist() {
const hoistedRoles = this.cache.filter(role => role.hoist);
if (!hoistedRoles.size)
return undefined;
return hoistedRoles.reduce((prev, role) => (role.position > 0 ? role : prev));
}
;
}
exports.RolesManager = RolesManager;
;