UNPKG

hennus-api

Version:

Esta es una libreria para el bot Hennus

55 lines (54 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemberRolesManager = void 0; const types_1 = require("../../types"); const base_1 = require("./base"); const v10_1 = require("discord-api-types/v10"); class MemberRolesManager extends base_1.cacheManager { constructor(client, guildId, memberId) { super(client); const data = { member: memberId, guild: guildId }; Object.defineProperty(this, "data", { value: data }); const guild = this.client.guilds.resolve(data.guild); Object.defineProperty(this, "guild", { value: guild }); } ; async add(id) { const data = await this.client.rest.api.put(v10_1.Routes.guildMemberRole(this.data.guild, this.data.member, id)); if (data instanceof Error) throw data; this.guild.members.add(data); return new types_1.GuildMember(data, this.guild, this.client); } ; async remove(id) { const data = await this.client.rest.api.delete(v10_1.Routes.guildMemberRole(this.data.guild, this.data.member, id)); if (data instanceof Error) throw data; this.guild.members.add(data); return new types_1.GuildMember(data, this.guild, this.client); } ; setall(roles) { roles.forEach((role) => { if (!this.resolve(role)) this.cache.set(role.id, role); }); return this; } ; 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.MemberRolesManager = MemberRolesManager; ;