guilded.ts
Version:
A powerful NPM module that allows you to easily interact with the Guilded API.
125 lines • 5.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServerMemberManager = void 0;
const BaseManager_1 = require("../BaseManager");
const ServerMember_1 = require("../../structures/server/ServerMember");
const collection_1 = require("@discordjs/collection");
/**
* The manager of members that belong to a server.
* @example new ServerMemberManager(server);
*/
class ServerMemberManager extends BaseManager_1.BaseManager {
server;
/** @param server The server the members belongs to. */
constructor(server) {
super(server.client, server.client.options.maxServerMemberCache);
this.server = server;
}
fetch(arg1, arg2) {
if (typeof arg1 === 'string' || arg1 instanceof ServerMember_1.ServerMember)
return this.fetchSingle(arg1, arg2);
return this.fetchMany(arg1);
}
/** @ignore */
async fetchSingle(member, options) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
const cached = this.cache.get(member);
if (cached && !options?.force)
return cached;
const raw = await this.client.api.serverMembers.fetch(this.server.id, member);
return new ServerMember_1.ServerMember(this.server, raw, options?.cache);
}
/** @ignore */
async fetchMany(options) {
const raw = await this.client.api.serverMembers.fetch(this.server.id);
const members = new collection_1.Collection();
for (const data of raw) {
const member = new ServerMember_1.ServerMember(this.server, data, options?.cache);
members.set(member.id, member);
}
return members;
}
/**
* Fetch a social link from a member in the server.
* @param member The member to fetch the social link from.
* @param type The type of social link to fetch.
* @returns The fetched social link.
* @example members.fetchSocialLink(member, 'youtube');
*/
fetchSocialLink(member, type) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.client.api.serverMembers.fetchSocialLink(this.server.id, member, type);
}
/**
* Set the nickname of a member in the server.
* @param member The member to edit.
* @param nickname The nickname of the member.
* @returns The nickname of the member.
* @example members.setNickname(member, 'new nickname');
*/
setNickname(member, nickname) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.client.api.serverMembers.setNickname(this.server.id, member, nickname);
}
/**
* Remove the nickname of a member in the server.
* @param member The member to edit.
* @example members.removeNickname(member);
*/
removeNickname(member) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.client.api.serverMembers.removeNickname(this.server.id, member);
}
/**
* Kick a member from the server.
* @param member The member to kick.
* @example members.kick(member);
*/
kick(member) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.client.api.serverMembers.kick(this.server.id, member);
}
/**
* Ban a member from the server.
* @param member The member to ban.
* @param reason The reason of the ban.
* @returns The created ban.
* @example members.ban(member);
*/
ban(member, reason) {
return this.server.bans.create(member, reason);
}
/**
* Unban a member from the server.
* @param member The member to unban.
* @example members.unban(member);
*/
unban(member) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.server.bans.remove(member);
}
/**
* Award XP to a member in the server.
* @param member The member to award XP to.
* @param amount The amount of XP to award to the member.
* @returns The total amount of XP the server member has.
* @example members.awardXp(member, 100);
*/
awardXp(member, amount) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.client.api.serverMembers.awardXp(this.server.id, member, amount);
}
/**
* Set XP of a member in the server.
* @param member The member to set XP for.
* @param amount The total XP of the server member.
* @returns The total amount of XP the server member has.
* @example members.setXp(member, 100);
*/
setXp(member, amount) {
member = member instanceof ServerMember_1.ServerMember ? member.id : member;
return this.client.api.serverMembers.setXp(this.server.id, member, amount);
}
}
exports.ServerMemberManager = ServerMemberManager;
//# sourceMappingURL=ServerMemberManager.js.map