UNPKG

hennus-api

Version:

Esta es una libreria para el bot Hennus

63 lines (62 loc) 2.11 kB
"use strict"; 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; ;