guilded.ts
Version:
A powerful NPM module that allows you to easily interact with the Guilded API.
43 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserManager = void 0;
const BaseManager_1 = require("./BaseManager");
const User_1 = require("../structures/User");
const collection_1 = require("@discordjs/collection");
const Server_1 = require("../structures/server/Server");
/**
* The manager of users that belong to the client.
* @example new UserManager(client);
*/
class UserManager extends BaseManager_1.BaseManager {
/** @param client The client the users belong to. */
constructor(client) {
super(client, client.options.maxUserCache);
}
fetch(arg1, arg2) {
if (arg2)
return this.fetchSingle(arg1, arg2);
return this.fetchMany(arg1);
}
/** @ignore */
async fetchSingle(server, user) {
user = user instanceof User_1.User ? user.id : user;
const cached = this.cache.get(user);
if (cached)
return cached;
server = server instanceof Server_1.Server ? server : await this.client.servers.fetch(server);
const member = await server.members.fetch(user);
return member.user;
}
/** @ignore */
async fetchMany(server) {
server = server instanceof Server_1.Server ? server : await this.client.servers.fetch(server);
const members = await server.members.fetch();
const users = new collection_1.Collection();
for (const { user } of members.values())
users.set(user.id, user);
return users;
}
}
exports.UserManager = UserManager;
//# sourceMappingURL=UserManager.js.map