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