@jubbio/core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/Client.d.ts +147 -0
- package/dist/Client.js +471 -0
- package/dist/builders/ActionRowBuilder.d.ts +53 -0
- package/dist/builders/ActionRowBuilder.js +68 -0
- package/dist/builders/ButtonBuilder.d.ts +77 -0
- package/dist/builders/ButtonBuilder.js +96 -0
- package/dist/builders/EmbedBuilder.d.ts +157 -0
- package/dist/builders/EmbedBuilder.js +199 -0
- package/dist/builders/ModalBuilder.d.ts +122 -0
- package/dist/builders/ModalBuilder.js +162 -0
- package/dist/builders/SelectMenuBuilder.d.ts +123 -0
- package/dist/builders/SelectMenuBuilder.js +165 -0
- package/dist/builders/SlashCommandBuilder.d.ts +197 -0
- package/dist/builders/SlashCommandBuilder.js +324 -0
- package/dist/builders/index.d.ts +9 -0
- package/dist/builders/index.js +26 -0
- package/dist/enums.d.ts +196 -0
- package/dist/enums.js +216 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +128 -0
- package/dist/managers/BaseManager.d.ts +69 -0
- package/dist/managers/BaseManager.js +106 -0
- package/dist/managers/ChannelManager.d.ts +98 -0
- package/dist/managers/ChannelManager.js +209 -0
- package/dist/managers/GuildMemberManager.d.ts +74 -0
- package/dist/managers/GuildMemberManager.js +156 -0
- package/dist/managers/RoleManager.d.ts +84 -0
- package/dist/managers/RoleManager.js +207 -0
- package/dist/managers/index.d.ts +7 -0
- package/dist/managers/index.js +24 -0
- package/dist/rest/REST.d.ts +483 -0
- package/dist/rest/REST.js +805 -0
- package/dist/rest/index.d.ts +1 -0
- package/dist/rest/index.js +18 -0
- package/dist/sharding/ShardingManager.d.ts +179 -0
- package/dist/sharding/ShardingManager.js +375 -0
- package/dist/sharding/index.d.ts +4 -0
- package/dist/sharding/index.js +21 -0
- package/dist/structures/Channel.d.ts +120 -0
- package/dist/structures/Channel.js +224 -0
- package/dist/structures/Collection.d.ts +53 -0
- package/dist/structures/Collection.js +115 -0
- package/dist/structures/Guild.d.ts +59 -0
- package/dist/structures/Guild.js +90 -0
- package/dist/structures/GuildMember.d.ts +130 -0
- package/dist/structures/GuildMember.js +208 -0
- package/dist/structures/Interaction.d.ts +224 -0
- package/dist/structures/Interaction.js +404 -0
- package/dist/structures/Message.d.ts +93 -0
- package/dist/structures/Message.js +145 -0
- package/dist/structures/User.d.ts +37 -0
- package/dist/structures/User.js +65 -0
- package/dist/structures/index.d.ts +7 -0
- package/dist/structures/index.js +25 -0
- package/dist/structures.d.ts +1 -0
- package/dist/structures.js +19 -0
- package/dist/types.d.ts +255 -0
- package/dist/types.js +3 -0
- package/dist/utils/BitField.d.ts +66 -0
- package/dist/utils/BitField.js +138 -0
- package/dist/utils/Collection.d.ts +116 -0
- package/dist/utils/Collection.js +265 -0
- package/dist/utils/Collector.d.ts +152 -0
- package/dist/utils/Collector.js +314 -0
- package/dist/utils/DataResolver.d.ts +61 -0
- package/dist/utils/DataResolver.js +146 -0
- package/dist/utils/Formatters.d.ts +145 -0
- package/dist/utils/Formatters.js +213 -0
- package/dist/utils/IntentsBitField.d.ts +85 -0
- package/dist/utils/IntentsBitField.js +99 -0
- package/dist/utils/Partials.d.ts +105 -0
- package/dist/utils/Partials.js +149 -0
- package/dist/utils/PermissionsBitField.d.ts +118 -0
- package/dist/utils/PermissionsBitField.js +145 -0
- package/dist/utils/SnowflakeUtil.d.ts +63 -0
- package/dist/utils/SnowflakeUtil.js +93 -0
- package/dist/utils/Sweepers.d.ts +127 -0
- package/dist/utils/Sweepers.js +270 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +30 -0
- package/package.json +37 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Manager for guild members with caching and lazy loading
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GuildMemberManager = void 0;
|
|
7
|
+
const BaseManager_1 = require("./BaseManager");
|
|
8
|
+
const Collection_1 = require("../utils/Collection");
|
|
9
|
+
/**
|
|
10
|
+
* Manages guild members
|
|
11
|
+
*/
|
|
12
|
+
class GuildMemberManager extends BaseManager_1.CachedManager {
|
|
13
|
+
/** The guild this manager belongs to */
|
|
14
|
+
guild;
|
|
15
|
+
constructor(guild, iterable) {
|
|
16
|
+
// Use a simple object as placeholder since we don't have GuildMember class yet
|
|
17
|
+
super(guild.client, Object, iterable);
|
|
18
|
+
this.guild = guild;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Add a member to the cache
|
|
22
|
+
*/
|
|
23
|
+
_add(data, cache = true) {
|
|
24
|
+
const id = data.user?.id ?? data.id;
|
|
25
|
+
const existing = this.cache.get(id);
|
|
26
|
+
if (existing) {
|
|
27
|
+
if (cache) {
|
|
28
|
+
Object.assign(existing, data);
|
|
29
|
+
}
|
|
30
|
+
return existing;
|
|
31
|
+
}
|
|
32
|
+
const member = {
|
|
33
|
+
id,
|
|
34
|
+
guildId: this.guild.id,
|
|
35
|
+
user: data.user,
|
|
36
|
+
nick: data.nick,
|
|
37
|
+
roles: data.roles ?? [],
|
|
38
|
+
joinedAt: data.joined_at ? new Date(data.joined_at) : null,
|
|
39
|
+
premiumSince: data.premium_since ? new Date(data.premium_since) : null,
|
|
40
|
+
deaf: data.deaf ?? false,
|
|
41
|
+
mute: data.mute ?? false,
|
|
42
|
+
pending: data.pending ?? false,
|
|
43
|
+
permissions: data.permissions,
|
|
44
|
+
communicationDisabledUntil: data.communication_disabled_until
|
|
45
|
+
? new Date(data.communication_disabled_until)
|
|
46
|
+
: null,
|
|
47
|
+
// Helper methods
|
|
48
|
+
get displayName() {
|
|
49
|
+
return this.nick ?? this.user?.display_name ?? this.user?.username ?? 'Unknown';
|
|
50
|
+
},
|
|
51
|
+
toString() {
|
|
52
|
+
return `<@${this.id}>`;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
if (cache) {
|
|
56
|
+
this.cache.set(id, member);
|
|
57
|
+
}
|
|
58
|
+
return member;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Fetch a member from the API
|
|
62
|
+
*/
|
|
63
|
+
async fetch(id, options) {
|
|
64
|
+
if (!options?.force) {
|
|
65
|
+
const existing = this.cache.get(id);
|
|
66
|
+
if (existing)
|
|
67
|
+
return existing;
|
|
68
|
+
}
|
|
69
|
+
const data = await this.client.rest.request('GET', `/guilds/${this.guild.id}/members/${id}`);
|
|
70
|
+
return this._add(data, options?.cache ?? true);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Fetch multiple members
|
|
74
|
+
*/
|
|
75
|
+
async fetchMany(options) {
|
|
76
|
+
const params = new URLSearchParams();
|
|
77
|
+
if (options?.limit)
|
|
78
|
+
params.set('limit', String(options.limit));
|
|
79
|
+
if (options?.after)
|
|
80
|
+
params.set('after', options.after);
|
|
81
|
+
if (options?.query)
|
|
82
|
+
params.set('query', options.query);
|
|
83
|
+
const data = await this.client.rest.request('GET', `/guilds/${this.guild.id}/members?${params}`);
|
|
84
|
+
const members = new Collection_1.Collection();
|
|
85
|
+
for (const memberData of data) {
|
|
86
|
+
const member = this._add(memberData);
|
|
87
|
+
members.set(member.id, member);
|
|
88
|
+
}
|
|
89
|
+
return members;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Search for members by query
|
|
93
|
+
*/
|
|
94
|
+
async search(options) {
|
|
95
|
+
return this.fetchMany({ query: options.query, limit: options.limit ?? 10 });
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Kick a member
|
|
99
|
+
*/
|
|
100
|
+
async kick(id, reason) {
|
|
101
|
+
await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/members/${id}`, reason ? { reason } : undefined);
|
|
102
|
+
this.cache.delete(id);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Ban a member
|
|
106
|
+
*/
|
|
107
|
+
async ban(id, options) {
|
|
108
|
+
await this.client.rest.request('PUT', `/guilds/${this.guild.id}/bans/${id}`, {
|
|
109
|
+
delete_message_days: options?.deleteMessageDays,
|
|
110
|
+
reason: options?.reason,
|
|
111
|
+
});
|
|
112
|
+
this.cache.delete(id);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Unban a user
|
|
116
|
+
*/
|
|
117
|
+
async unban(id, reason) {
|
|
118
|
+
await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/bans/${id}`, reason ? { reason } : undefined);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Edit a member
|
|
122
|
+
*/
|
|
123
|
+
async edit(id, data) {
|
|
124
|
+
const body = {};
|
|
125
|
+
if (data.nick !== undefined)
|
|
126
|
+
body.nick = data.nick;
|
|
127
|
+
if (data.roles !== undefined)
|
|
128
|
+
body.roles = data.roles;
|
|
129
|
+
if (data.mute !== undefined)
|
|
130
|
+
body.mute = data.mute;
|
|
131
|
+
if (data.deaf !== undefined)
|
|
132
|
+
body.deaf = data.deaf;
|
|
133
|
+
if (data.channel_id !== undefined)
|
|
134
|
+
body.channel_id = data.channel_id;
|
|
135
|
+
if (data.communication_disabled_until !== undefined) {
|
|
136
|
+
body.communication_disabled_until = data.communication_disabled_until?.toISOString() ?? null;
|
|
137
|
+
}
|
|
138
|
+
const result = await this.client.rest.request('PATCH', `/guilds/${this.guild.id}/members/${id}`, body);
|
|
139
|
+
return this._add(result);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Add a role to a member
|
|
143
|
+
*/
|
|
144
|
+
async addRole(memberId, roleId, reason) {
|
|
145
|
+
await this.client.rest.request('PUT', `/guilds/${this.guild.id}/members/${memberId}/roles/${roleId}`, reason ? { reason } : undefined);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Remove a role from a member
|
|
149
|
+
*/
|
|
150
|
+
async removeRole(memberId, roleId, reason) {
|
|
151
|
+
await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/members/${memberId}/roles/${roleId}`, reason ? { reason } : undefined);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.GuildMemberManager = GuildMemberManager;
|
|
155
|
+
exports.default = GuildMemberManager;
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpbGRNZW1iZXJNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXJzL0d1aWxkTWVtYmVyTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILCtDQUE4QztBQUM5QyxvREFBaUQ7QUFFakQ7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLDJCQUEwQjtJQUNoRSx3Q0FBd0M7SUFDeEIsS0FBSyxDQUFNO0lBRTNCLFlBQVksS0FBVSxFQUFFLFFBQXdCO1FBQzlDLCtFQUErRTtRQUMvRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxDQUFDLElBQVMsRUFBRSxLQUFLLEdBQUcsSUFBSTtRQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFO1lBQ0YsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lB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R0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDM0MsT0FBTyxFQUNQLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3hDLElBQUksQ0FDTCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsTUFBZTtRQUM3RCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDNUIsS0FBSyxFQUNMLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksUUFBUSxVQUFVLE1BQU0sRUFBRSxFQUM5RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsTUFBZTtRQUNoRSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDNUIsUUFBUSxFQUNSLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksUUFBUSxVQUFVLE1BQU0sRUFBRSxFQUM5RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJNRCxnREFxTUM7QUFFRCxrQkFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBNYW5hZ2VyIGZvciBndWlsZCBtZW1iZXJzIHdpdGggY2FjaGluZyBhbmQgbGF6eSBsb2FkaW5nXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVkTWFuYWdlciB9IGZyb20gJy4vQmFzZU1hbmFnZXInO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvQ29sbGVjdGlvbic7XHJcblxyXG4vKipcclxuICogTWFuYWdlcyBndWlsZCBtZW1iZXJzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR3VpbGRNZW1iZXJNYW5hZ2VyIGV4dGVuZHMgQ2FjaGVkTWFuYWdlcjxzdHJpbmcsIGFueT4ge1xyXG4gIC8qKiBUaGUgZ3VpbGQgdGhpcyBtYW5hZ2VyIGJlbG9uZ3MgdG8gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgZ3VpbGQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZ3VpbGQ6IGFueSwgaXRlcmFibGU/OiBJdGVyYWJsZTxhbnk+KSB7XHJcbiAgICAvLyBVc2UgYSBzaW1wbGUgb2JqZWN0IGFzIHBsYWNlaG9sZGVyIHNpbmNlIHdlIGRvbid0IGhhdmUgR3VpbGRNZW1iZXIgY2xhc3MgeWV0XHJcbiAgICBzdXBlcihndWlsZC5jbGllbnQsIE9iamVjdCBhcyBhbnksIGl0ZXJhYmxlKTtcclxuICAgIHRoaXMuZ3VpbGQgPSBndWlsZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG1lbWJlciB0byB0aGUgY2FjaGVcclxuICAgKi9cclxuICBfYWRkKGRhdGE6IGFueSwgY2FjaGUgPSB0cnVlKTogYW55IHtcclxuICAgIGNvbnN0IGlkID0gZGF0YS51c2VyPy5pZCA/PyBkYXRhLmlkO1xyXG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmNhY2hlLmdldChpZCk7XHJcbiAgICBcclxuICAgIGlmIChleGlzdGluZykge1xyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IG1lbWJlciA9IHtcclxuICAgICAgaWQsXHJcbiAgICAgIGd1aWxkSWQ6IHRoaXMuZ3VpbGQuaWQsXHJcbiAgICAgIHVzZXI6IGRhdGEudXNlcixcclxuICAgICAgbmljazogZGF0YS5uaWNrLFxyXG4gICAgICByb2xlczogZGF0YS5yb2xlcyA/PyBbXSxcclxuICAgICAgam9pbmVkQXQ6IGRhdGEuam9pbmVkX2F0ID8gbmV3IERhdGUoZGF0YS5qb2luZWRfYXQpIDogbnVsbCxcclxuICAgICAgcHJlbWl1bVNpbmNlOiBkYXRhLnByZW1pdW1fc2luY2UgPyBuZXcgRGF0ZShkYXRhLnByZW1pdW1fc2luY2UpIDogbnVsbCxcclxuICAgICAgZGVhZjogZGF0YS5kZWFmID8/IGZhbHNlLFxyXG4gICAgICBtdXRlOiBkYXRhLm11dGUgPz8gZmFsc2UsXHJcbiAgICAgIHBlbmRpbmc6IGRhdGEucGVuZGluZyA/PyBmYWxzZSxcclxuICAgICAgcGVybWlzc2lvbnM6IGRhdGEucGVybWlzc2lvbnMsXHJcbiAgICAgIGNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsOiBkYXRhLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwgXHJcbiAgICAgICAgPyBuZXcgRGF0ZShkYXRhLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpIFxyXG4gICAgICAgIDogbnVsbCxcclxuICAgICAgXHJcbiAgICAgIC8vIEhlbHBlciBtZXRob2RzXHJcbiAgICAgIGdldCBkaXNwbGF5TmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5uaWNrID8/IHRoaXMudXNlcj8uZGlzcGxheV9uYW1lID8/IHRoaXMudXNlcj8udXNlcm5hbWUgPz8gJ1Vua25vd24nO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgdG9TdHJpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIGA8QCR7dGhpcy5pZH0+YDtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICBcclxuICAgIGlmIChjYWNoZSkge1xyXG4gICAgICB0aGlzLmNhY2hlLnNldChpZCwgbWVtYmVyKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIG1lbWJlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoIGEgbWVtYmVyIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIGZldGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCFvcHRpb25zPy5mb3JjZSkge1xyXG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcclxuICAgICAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoXHJcbiAgICAgICdHRVQnLFxyXG4gICAgICBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L21lbWJlcnMvJHtpZH1gXHJcbiAgICApO1xyXG4gICAgXHJcbiAgICByZXR1cm4gdGhpcy5fYWRkKGRhdGEsIG9wdGlvbnM/LmNhY2hlID8/IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggbXVsdGlwbGUgbWVtYmVyc1xyXG4gICAqL1xyXG4gIGFzeW5jIGZldGNoTWFueShvcHRpb25zPzogeyBcclxuICAgIGxpbWl0PzogbnVtYmVyOyBcclxuICAgIGFmdGVyPzogc3RyaW5nO1xyXG4gICAgcXVlcnk/OiBzdHJpbmc7XHJcbiAgfSk6IFByb21pc2U8Q29sbGVjdGlvbjxzdHJpbmcsIGFueT4+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcclxuICAgIGlmIChvcHRpb25zPy5saW1pdCkgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0aW9ucy5saW1pdCkpO1xyXG4gICAgaWYgKG9wdGlvbnM/LmFmdGVyKSBwYXJhbXMuc2V0KCdhZnRlcicsIG9wdGlvbnMuYWZ0ZXIpO1xyXG4gICAgaWYgKG9wdGlvbnM/LnF1ZXJ5KSBwYXJhbXMuc2V0KCdxdWVyeScsIG9wdGlvbnMucXVlcnkpO1xyXG4gICAgXHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KFxyXG4gICAgICAnR0VUJyxcclxuICAgICAgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9tZW1iZXJzPyR7cGFyYW1zfWBcclxuICAgICk7XHJcbiAgICBcclxuICAgIGNvbnN0IG1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbjxzdHJpbmcsIGFueT4oKTtcclxuICAgIGZvciAoY29uc3QgbWVtYmVyRGF0YSBvZiBkYXRhKSB7XHJcbiAgICAgIGNvbnN0IG1lbWJlciA9IHRoaXMuX2FkZChtZW1iZXJEYXRhKTtcclxuICAgICAgbWVtYmVycy5zZXQobWVtYmVyLmlkLCBtZW1iZXIpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gbWVtYmVycztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBmb3IgbWVtYmVycyBieSBxdWVyeVxyXG4gICAqL1xyXG4gIGFzeW5jIHNlYXJjaChvcHRpb25zOiB7IHF1ZXJ5OiBzdHJpbmc7IGxpbWl0PzogbnVtYmVyIH0pOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5mZXRjaE1hbnkoeyBxdWVyeTogb3B0aW9ucy5xdWVyeSwgbGltaXQ6IG9wdGlvbnMubGltaXQgPz8gMTAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBLaWNrIGEgbWVtYmVyXHJcbiAgICovXHJcbiAgYXN5bmMga2ljayhpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ0RFTEVURScsXHJcbiAgICAgIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vbWVtYmVycy8ke2lkfWAsXHJcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcclxuICAgICk7XHJcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCYW4gYSBtZW1iZXJcclxuICAgKi9cclxuICBhc3luYyBiYW4oaWQ6IHN0cmluZywgb3B0aW9ucz86IHsgZGVsZXRlTWVzc2FnZURheXM/OiBudW1iZXI7IHJlYXNvbj86IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoXHJcbiAgICAgICdQVVQnLFxyXG4gICAgICBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L2JhbnMvJHtpZH1gLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGVsZXRlX21lc3NhZ2VfZGF5czogb3B0aW9ucz8uZGVsZXRlTWVzc2FnZURheXMsXHJcbiAgICAgICAgcmVhc29uOiBvcHRpb25zPy5yZWFzb24sXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJhbiBhIHVzZXJcclxuICAgKi9cclxuICBhc3luYyB1bmJhbihpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ0RFTEVURScsXHJcbiAgICAgIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vYmFucy8ke2lkfWAsXHJcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZGl0IGEgbWVtYmVyXHJcbiAgICovXHJcbiAgYXN5bmMgZWRpdChpZDogc3RyaW5nLCBkYXRhOiB7XHJcbiAgICBuaWNrPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHJvbGVzPzogc3RyaW5nW107XHJcbiAgICBtdXRlPzogYm9vbGVhbjtcclxuICAgIGRlYWY/OiBib29sZWFuO1xyXG4gICAgY2hhbm5lbF9pZD86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsPzogRGF0ZSB8IG51bGw7XHJcbiAgfSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcclxuICAgIGlmIChkYXRhLm5pY2sgIT09IHVuZGVmaW5lZCkgYm9keS5uaWNrID0gZGF0YS5uaWNrO1xyXG4gICAgaWYgKGRhdGEucm9sZXMgIT09IHVuZGVmaW5lZCkgYm9keS5yb2xlcyA9IGRhdGEucm9sZXM7XHJcbiAgICBpZiAoZGF0YS5tdXRlICE9PSB1bmRlZmluZWQpIGJvZHkubXV0ZSA9IGRhdGEubXV0ZTtcclxuICAgIGlmIChkYXRhLmRlYWYgIT09IHVuZGVmaW5lZCkgYm9keS5kZWFmID0gZGF0YS5kZWFmO1xyXG4gICAgaWYgKGRhdGEuY2hhbm5lbF9pZCAhPT0gdW5kZWZpbmVkKSBib2R5LmNoYW5uZWxfaWQgPSBkYXRhLmNoYW5uZWxfaWQ7XHJcbiAgICBpZiAoZGF0YS5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgYm9keS5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsID0gZGF0YS5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsPy50b0lTT1N0cmluZygpID8/IG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ1BBVENIJyxcclxuICAgICAgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9tZW1iZXJzLyR7aWR9YCxcclxuICAgICAgYm9keVxyXG4gICAgKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIHRoaXMuX2FkZChyZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgcm9sZSB0byBhIG1lbWJlclxyXG4gICAqL1xyXG4gIGFzeW5jIGFkZFJvbGUobWVtYmVySWQ6IHN0cmluZywgcm9sZUlkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KFxyXG4gICAgICAnUFVUJyxcclxuICAgICAgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9tZW1iZXJzLyR7bWVtYmVySWR9L3JvbGVzLyR7cm9sZUlkfWAsXHJcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSByb2xlIGZyb20gYSBtZW1iZXJcclxuICAgKi9cclxuICBhc3luYyByZW1vdmVSb2xlKG1lbWJlcklkOiBzdHJpbmcsIHJvbGVJZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ0RFTEVURScsXHJcbiAgICAgIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vbWVtYmVycy8ke21lbWJlcklkfS9yb2xlcy8ke3JvbGVJZH1gLFxyXG4gICAgICByZWFzb24gPyB7IHJlYXNvbiB9IDogdW5kZWZpbmVkXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgR3VpbGRNZW1iZXJNYW5hZ2VyO1xyXG4iXX0=
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manager for roles with caching and lazy loading
|
|
3
|
+
*/
|
|
4
|
+
import { CachedManager } from './BaseManager';
|
|
5
|
+
import { Collection } from '../utils/Collection';
|
|
6
|
+
/**
|
|
7
|
+
* Manages roles for a guild
|
|
8
|
+
*/
|
|
9
|
+
export declare class RoleManager extends CachedManager<string, any> {
|
|
10
|
+
/** The guild this manager belongs to */
|
|
11
|
+
readonly guild: any;
|
|
12
|
+
constructor(guild: any, iterable?: Iterable<any>);
|
|
13
|
+
/**
|
|
14
|
+
* Get the @everyone role
|
|
15
|
+
*/
|
|
16
|
+
get everyone(): any;
|
|
17
|
+
/**
|
|
18
|
+
* Get the highest role
|
|
19
|
+
*/
|
|
20
|
+
get highest(): any;
|
|
21
|
+
/**
|
|
22
|
+
* Get the bot's highest role
|
|
23
|
+
*/
|
|
24
|
+
get botRoleFor(): (userId: string) => any | null;
|
|
25
|
+
/**
|
|
26
|
+
* Add a role to the cache
|
|
27
|
+
*/
|
|
28
|
+
_add(data: any, cache?: boolean): any;
|
|
29
|
+
/**
|
|
30
|
+
* Fetch a role from the API
|
|
31
|
+
*/
|
|
32
|
+
fetch(id: string, options?: {
|
|
33
|
+
cache?: boolean;
|
|
34
|
+
force?: boolean;
|
|
35
|
+
}): Promise<any>;
|
|
36
|
+
/**
|
|
37
|
+
* Fetch all roles for the guild
|
|
38
|
+
*/
|
|
39
|
+
fetchAll(): Promise<Collection<string, any>>;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new role
|
|
42
|
+
*/
|
|
43
|
+
create(options?: {
|
|
44
|
+
name?: string;
|
|
45
|
+
color?: number | string;
|
|
46
|
+
hoist?: boolean;
|
|
47
|
+
position?: number;
|
|
48
|
+
permissions?: string | bigint;
|
|
49
|
+
mentionable?: boolean;
|
|
50
|
+
icon?: string;
|
|
51
|
+
unicodeEmoji?: string;
|
|
52
|
+
reason?: string;
|
|
53
|
+
}): Promise<any>;
|
|
54
|
+
/**
|
|
55
|
+
* Delete a role
|
|
56
|
+
*/
|
|
57
|
+
delete(id: string, reason?: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Edit a role
|
|
60
|
+
*/
|
|
61
|
+
edit(id: string, data: {
|
|
62
|
+
name?: string;
|
|
63
|
+
color?: number | string;
|
|
64
|
+
hoist?: boolean;
|
|
65
|
+
position?: number;
|
|
66
|
+
permissions?: string | bigint;
|
|
67
|
+
mentionable?: boolean;
|
|
68
|
+
icon?: string | null;
|
|
69
|
+
unicodeEmoji?: string | null;
|
|
70
|
+
reason?: string;
|
|
71
|
+
}): Promise<any>;
|
|
72
|
+
/**
|
|
73
|
+
* Set role positions
|
|
74
|
+
*/
|
|
75
|
+
setPositions(positions: Array<{
|
|
76
|
+
role: string;
|
|
77
|
+
position: number;
|
|
78
|
+
}>): Promise<Collection<string, any>>;
|
|
79
|
+
/**
|
|
80
|
+
* Compare two roles by position
|
|
81
|
+
*/
|
|
82
|
+
comparePositions(role1: string | any, role2: string | any): number;
|
|
83
|
+
}
|
|
84
|
+
export default RoleManager;
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Manager for roles with caching and lazy loading
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RoleManager = void 0;
|
|
7
|
+
const BaseManager_1 = require("./BaseManager");
|
|
8
|
+
const Collection_1 = require("../utils/Collection");
|
|
9
|
+
/**
|
|
10
|
+
* Manages roles for a guild
|
|
11
|
+
*/
|
|
12
|
+
class RoleManager extends BaseManager_1.CachedManager {
|
|
13
|
+
/** The guild this manager belongs to */
|
|
14
|
+
guild;
|
|
15
|
+
constructor(guild, iterable) {
|
|
16
|
+
super(guild.client, Object, iterable);
|
|
17
|
+
this.guild = guild;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the @everyone role
|
|
21
|
+
*/
|
|
22
|
+
get everyone() {
|
|
23
|
+
return this.cache.get(this.guild.id) ?? null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the highest role
|
|
27
|
+
*/
|
|
28
|
+
get highest() {
|
|
29
|
+
return this.cache.reduce((prev, role) => (role.position > (prev?.position ?? -1)) ? role : prev, null);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the bot's highest role
|
|
33
|
+
*/
|
|
34
|
+
get botRoleFor() {
|
|
35
|
+
return (userId) => {
|
|
36
|
+
const member = this.guild.members?.cache.get(userId);
|
|
37
|
+
if (!member)
|
|
38
|
+
return null;
|
|
39
|
+
return this.cache
|
|
40
|
+
.filter((role) => member.roles?.includes(role.id))
|
|
41
|
+
.sort((a, b) => b.position - a.position)
|
|
42
|
+
.first() ?? null;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Add a role to the cache
|
|
47
|
+
*/
|
|
48
|
+
_add(data, cache = true) {
|
|
49
|
+
const id = data.id;
|
|
50
|
+
const existing = this.cache.get(id);
|
|
51
|
+
if (existing) {
|
|
52
|
+
if (cache)
|
|
53
|
+
Object.assign(existing, data);
|
|
54
|
+
return existing;
|
|
55
|
+
}
|
|
56
|
+
const role = {
|
|
57
|
+
id,
|
|
58
|
+
guildId: this.guild.id,
|
|
59
|
+
name: data.name,
|
|
60
|
+
color: data.color ?? 0,
|
|
61
|
+
hoist: data.hoist ?? false,
|
|
62
|
+
position: data.position ?? 0,
|
|
63
|
+
permissions: data.permissions ?? '0',
|
|
64
|
+
managed: data.managed ?? false,
|
|
65
|
+
mentionable: data.mentionable ?? false,
|
|
66
|
+
icon: data.icon ?? null,
|
|
67
|
+
unicodeEmoji: data.unicode_emoji ?? null,
|
|
68
|
+
tags: data.tags ?? null,
|
|
69
|
+
get hexColor() {
|
|
70
|
+
return `#${this.color.toString(16).padStart(6, '0')}`;
|
|
71
|
+
},
|
|
72
|
+
get createdAt() {
|
|
73
|
+
const timestamp = BigInt(this.id) >> 22n;
|
|
74
|
+
return new Date(Number(timestamp) + 1640995200000); // Jubbio epoch
|
|
75
|
+
},
|
|
76
|
+
toString() {
|
|
77
|
+
return this.id === this.guildId ? '@everyone' : `<@&${this.id}>`;
|
|
78
|
+
},
|
|
79
|
+
comparePositionTo(role) {
|
|
80
|
+
return this.position - (role?.position ?? 0);
|
|
81
|
+
},
|
|
82
|
+
async edit(data) {
|
|
83
|
+
return this.guild.roles.edit(this.id, data);
|
|
84
|
+
},
|
|
85
|
+
async delete(reason) {
|
|
86
|
+
return this.guild.roles.delete(this.id, reason);
|
|
87
|
+
},
|
|
88
|
+
async setPosition(position) {
|
|
89
|
+
return this.guild.roles.setPositions([{ role: this.id, position }]);
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
if (cache)
|
|
93
|
+
this.cache.set(id, role);
|
|
94
|
+
return role;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Fetch a role from the API
|
|
98
|
+
*/
|
|
99
|
+
async fetch(id, options) {
|
|
100
|
+
if (!options?.force) {
|
|
101
|
+
const existing = this.cache.get(id);
|
|
102
|
+
if (existing)
|
|
103
|
+
return existing;
|
|
104
|
+
}
|
|
105
|
+
// Roles are fetched as part of guild, so fetch all
|
|
106
|
+
const roles = await this.fetchAll();
|
|
107
|
+
return roles.get(id) ?? null;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Fetch all roles for the guild
|
|
111
|
+
*/
|
|
112
|
+
async fetchAll() {
|
|
113
|
+
const data = await this.client.rest.request('GET', `/guilds/${this.guild.id}/roles`);
|
|
114
|
+
const roles = new Collection_1.Collection();
|
|
115
|
+
for (const roleData of data) {
|
|
116
|
+
const role = this._add(roleData);
|
|
117
|
+
roles.set(role.id, role);
|
|
118
|
+
}
|
|
119
|
+
return roles;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create a new role
|
|
123
|
+
*/
|
|
124
|
+
async create(options) {
|
|
125
|
+
const body = {};
|
|
126
|
+
if (options?.name)
|
|
127
|
+
body.name = options.name;
|
|
128
|
+
if (options?.color !== undefined) {
|
|
129
|
+
body.color = typeof options.color === 'string'
|
|
130
|
+
? parseInt(options.color.replace('#', ''), 16)
|
|
131
|
+
: options.color;
|
|
132
|
+
}
|
|
133
|
+
if (options?.hoist !== undefined)
|
|
134
|
+
body.hoist = options.hoist;
|
|
135
|
+
if (options?.permissions !== undefined)
|
|
136
|
+
body.permissions = String(options.permissions);
|
|
137
|
+
if (options?.mentionable !== undefined)
|
|
138
|
+
body.mentionable = options.mentionable;
|
|
139
|
+
if (options?.icon)
|
|
140
|
+
body.icon = options.icon;
|
|
141
|
+
if (options?.unicodeEmoji)
|
|
142
|
+
body.unicode_emoji = options.unicodeEmoji;
|
|
143
|
+
const data = await this.client.rest.request('POST', `/guilds/${this.guild.id}/roles`, body);
|
|
144
|
+
const role = this._add(data);
|
|
145
|
+
// Set position if specified
|
|
146
|
+
if (options?.position !== undefined) {
|
|
147
|
+
await this.setPositions([{ role: role.id, position: options.position }]);
|
|
148
|
+
}
|
|
149
|
+
return role;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Delete a role
|
|
153
|
+
*/
|
|
154
|
+
async delete(id, reason) {
|
|
155
|
+
await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/roles/${id}`, reason ? { reason } : undefined);
|
|
156
|
+
this.cache.delete(id);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Edit a role
|
|
160
|
+
*/
|
|
161
|
+
async edit(id, data) {
|
|
162
|
+
const body = {};
|
|
163
|
+
if (data.name !== undefined)
|
|
164
|
+
body.name = data.name;
|
|
165
|
+
if (data.color !== undefined) {
|
|
166
|
+
body.color = typeof data.color === 'string'
|
|
167
|
+
? parseInt(data.color.replace('#', ''), 16)
|
|
168
|
+
: data.color;
|
|
169
|
+
}
|
|
170
|
+
if (data.hoist !== undefined)
|
|
171
|
+
body.hoist = data.hoist;
|
|
172
|
+
if (data.permissions !== undefined)
|
|
173
|
+
body.permissions = String(data.permissions);
|
|
174
|
+
if (data.mentionable !== undefined)
|
|
175
|
+
body.mentionable = data.mentionable;
|
|
176
|
+
if (data.icon !== undefined)
|
|
177
|
+
body.icon = data.icon;
|
|
178
|
+
if (data.unicodeEmoji !== undefined)
|
|
179
|
+
body.unicode_emoji = data.unicodeEmoji;
|
|
180
|
+
const result = await this.client.rest.request('PATCH', `/guilds/${this.guild.id}/roles/${id}`, body);
|
|
181
|
+
return this._add(result);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Set role positions
|
|
185
|
+
*/
|
|
186
|
+
async setPositions(positions) {
|
|
187
|
+
const body = positions.map(p => ({ id: p.role, position: p.position }));
|
|
188
|
+
const data = await this.client.rest.request('PATCH', `/guilds/${this.guild.id}/roles`, body);
|
|
189
|
+
const roles = new Collection_1.Collection();
|
|
190
|
+
for (const roleData of data) {
|
|
191
|
+
const role = this._add(roleData);
|
|
192
|
+
roles.set(role.id, role);
|
|
193
|
+
}
|
|
194
|
+
return roles;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Compare two roles by position
|
|
198
|
+
*/
|
|
199
|
+
comparePositions(role1, role2) {
|
|
200
|
+
const r1 = typeof role1 === 'string' ? this.cache.get(role1) : role1;
|
|
201
|
+
const r2 = typeof role2 === 'string' ? this.cache.get(role2) : role2;
|
|
202
|
+
return (r1?.position ?? 0) - (r2?.position ?? 0);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.RoleManager = RoleManager;
|
|
206
|
+
exports.default = RoleManager;
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9sZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlcnMvUm9sZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCwrQ0FBOEM7QUFDOUMsb0RBQWlEO0FBRWpEOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMkJBQTBCO0lBQ3pELHdDQUF3QztJQUN4QixLQUFLLENBQU07SUFFM0IsWUFBWSxLQUFVLEVBQUUsUUFBd0I7UUFDOUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUN0QyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ3RELElBQVcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNO2dCQUFF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RUQsa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE1hbmFnZXIgZm9yIHJvbGVzIHdpdGggY2FjaGluZyBhbmQgbGF6eSBsb2FkaW5nXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVkTWFuYWdlciB9IGZyb20gJy4vQmFzZU1hbmFnZXInO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvQ29sbGVjdGlvbic7XHJcblxyXG4vKipcclxuICogTWFuYWdlcyByb2xlcyBmb3IgYSBndWlsZFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJvbGVNYW5hZ2VyIGV4dGVuZHMgQ2FjaGVkTWFuYWdlcjxzdHJpbmcsIGFueT4ge1xyXG4gIC8qKiBUaGUgZ3VpbGQgdGhpcyBtYW5hZ2VyIGJlbG9uZ3MgdG8gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgZ3VpbGQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZ3VpbGQ6IGFueSwgaXRlcmFibGU/OiBJdGVyYWJsZTxhbnk+KSB7XHJcbiAgICBzdXBlcihndWlsZC5jbGllbnQsIE9iamVjdCBhcyBhbnksIGl0ZXJhYmxlKTtcclxuICAgIHRoaXMuZ3VpbGQgPSBndWlsZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgQGV2ZXJ5b25lIHJvbGVcclxuICAgKi9cclxuICBnZXQgZXZlcnlvbmUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldCh0aGlzLmd1aWxkLmlkKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBoaWdoZXN0IHJvbGVcclxuICAgKi9cclxuICBnZXQgaGlnaGVzdCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FjaGUucmVkdWNlKChwcmV2LCByb2xlKSA9PiBcclxuICAgICAgKHJvbGUucG9zaXRpb24gPiAocHJldj8ucG9zaXRpb24gPz8gLTEpKSA/IHJvbGUgOiBwcmV2XHJcbiAgICAsIG51bGwgYXMgYW55KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgYm90J3MgaGlnaGVzdCByb2xlXHJcbiAgICovXHJcbiAgZ2V0IGJvdFJvbGVGb3IoKTogKHVzZXJJZDogc3RyaW5nKSA9PiBhbnkgfCBudWxsIHtcclxuICAgIHJldHVybiAodXNlcklkOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbWVtYmVyID0gdGhpcy5ndWlsZC5tZW1iZXJzPy5jYWNoZS5nZXQodXNlcklkKTtcclxuICAgICAgaWYgKCFtZW1iZXIpIHJldHVybiBudWxsO1xyXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZVxyXG4gICAgICAgIC5maWx0ZXIoKHJvbGU6IGFueSkgPT4gbWVtYmVyLnJvbGVzPy5pbmNsdWRlcyhyb2xlLmlkKSlcclxuICAgICAgICAuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGIucG9zaXRpb24gLSBhLnBvc2l0aW9uKVxyXG4gICAgICAgIC5maXJzdCgpID8/IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgcm9sZSB0byB0aGUgY2FjaGVcclxuICAgKi9cclxuICBfYWRkKGRhdGE6IGFueSwgY2FjaGUgPSB0cnVlKTogYW55IHtcclxuICAgIGNvbnN0IGlkID0gZGF0YS5pZDtcclxuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5jYWNoZS5nZXQoaWQpO1xyXG4gICAgXHJcbiAgICBpZiAoZXhpc3RpbmcpIHtcclxuICAgICAgaWYgKGNhY2hlKSBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBkYXRhKTtcclxuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCByb2xlID0ge1xyXG4gICAgICBpZCxcclxuICAgICAgZ3VpbGRJZDogdGhpcy5ndWlsZC5pZCxcclxuICAgICAgbmFtZTogZGF0YS5uYW1lLFxyXG4gICAgICBjb2xvcjogZGF0YS5jb2xvciA/PyAwLFxyXG4gICAgICBob2lzdDogZGF0YS5ob2lzdCA/PyBmYWxzZSxcclxuICAgICAgcG9zaXRpb246IGRhdGEucG9zaXRpb24gPz8gMCxcclxuICAgICAgcGVybWlzc2lvbnM6IGRhdGEucGVybWlzc2lvbnMgPz8gJzAnLFxyXG4gICAgICBtYW5hZ2VkOiBkYXRhLm1hbmFnZWQgPz8gZmFsc2UsXHJcbiAgICAgIG1lbnRpb25hYmxlOiBkYXRhLm1lbnRpb25hYmxlID8/IGZhbHNlLFxyXG4gICAgICBpY29uOiBkYXRhLmljb24gPz8gbnVsbCxcclxuICAgICAgdW5pY29kZUVtb2ppOiBkYXRhLnVuaWNvZGVfZW1vamkgPz8gbnVsbCxcclxuICAgICAgdGFnczogZGF0YS50YWdzID8/IG51bGwsXHJcbiAgICAgIFxyXG4gICAgICBnZXQgaGV4Q29sb3IoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAjJHt0aGlzLmNvbG9yLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2LCAnMCcpfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIFxyXG4gICAgICBnZXQgY3JlYXRlZEF0KCkge1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IEJpZ0ludCh0aGlzLmlkKSA+PiAyMm47XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lc3RhbXApICsgMTY0MDk5NTIwMDAwMCk7IC8vIEp1YmJpbyBlcG9jaFxyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgdG9TdHJpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQgPT09IHRoaXMuZ3VpbGRJZCA/ICdAZXZlcnlvbmUnIDogYDxAJiR7dGhpcy5pZH0+YDtcclxuICAgICAgfSxcclxuICAgICAgXHJcbiAgICAgIGNvbXBhcmVQb3NpdGlvblRvKHJvbGU6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uIC0gKHJvbGU/LnBvc2l0aW9uID8/IDApO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgYXN5bmMgZWRpdChkYXRhOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ndWlsZC5yb2xlcy5lZGl0KHRoaXMuaWQsIGRhdGEpO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgYXN5bmMgZGVsZXRlKHJlYXNvbj86IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmd1aWxkLnJvbGVzLmRlbGV0ZSh0aGlzLmlkLCByZWFzb24pO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgYXN5bmMgc2V0UG9zaXRpb24ocG9zaXRpb246IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmd1aWxkLnJvbGVzLnNldFBvc2l0aW9ucyhbeyByb2xlOiB0aGlzLmlkLCBwb3NpdGlvbiB9XSk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICBpZiAoY2FjaGUpIHRoaXMuY2FjaGUuc2V0KGlkLCByb2xlKTtcclxuICAgIHJldHVybiByb2xlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggYSByb2xlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIGZldGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCFvcHRpb25zPy5mb3JjZSkge1xyXG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcclxuICAgICAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIFJvbGVzIGFyZSBmZXRjaGVkIGFzIHBhcnQgb2YgZ3VpbGQsIHNvIGZldGNoIGFsbFxyXG4gICAgY29uc3Qgcm9sZXMgPSBhd2FpdCB0aGlzLmZldGNoQWxsKCk7XHJcbiAgICByZXR1cm4gcm9sZXMuZ2V0KGlkKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggYWxsIHJvbGVzIGZvciB0aGUgZ3VpbGRcclxuICAgKi9cclxuICBhc3luYyBmZXRjaEFsbCgpOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdHRVQnLCBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L3JvbGVzYCk7XHJcbiAgICBjb25zdCByb2xlcyA9IG5ldyBDb2xsZWN0aW9uPHN0cmluZywgYW55PigpO1xyXG4gICAgZm9yIChjb25zdCByb2xlRGF0YSBvZiBkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9hZGQocm9sZURhdGEpO1xyXG4gICAgICByb2xlcy5zZXQocm9sZS5pZCwgcm9sZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm9sZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgcm9sZVxyXG4gICAqL1xyXG4gIGFzeW5jIGNyZWF0ZShvcHRpb25zPzoge1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGNvbG9yPzogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgaG9pc3Q/OiBib29sZWFuO1xyXG4gICAgcG9zaXRpb24/OiBudW1iZXI7XHJcbiAgICBwZXJtaXNzaW9ucz86IHN0cmluZyB8IGJpZ2ludDtcclxuICAgIG1lbnRpb25hYmxlPzogYm9vbGVhbjtcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICB1bmljb2RlRW1vamk/OiBzdHJpbmc7XHJcbiAgICByZWFzb24/OiBzdHJpbmc7XHJcbiAgfSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcclxuICAgIGlmIChvcHRpb25zPy5uYW1lKSBib2R5Lm5hbWUgPSBvcHRpb25zLm5hbWU7XHJcbiAgICBpZiAob3B0aW9ucz8uY29sb3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBib2R5LmNvbG9yID0gdHlwZW9mIG9wdGlvbnMuY29sb3IgPT09ICdzdHJpbmcnIFxyXG4gICAgICAgID8gcGFyc2VJbnQob3B0aW9ucy5jb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNikgXHJcbiAgICAgICAgOiBvcHRpb25zLmNvbG9yO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdGlvbnM/LmhvaXN0ICE9PSB1bmRlZmluZWQpIGJvZHkuaG9pc3QgPSBvcHRpb25zLmhvaXN0O1xyXG4gICAgaWYgKG9wdGlvbnM/LnBlcm1pc3Npb25zICE9PSB1bmRlZmluZWQpIGJvZHkucGVybWlzc2lvbnMgPSBTdHJpbmcob3B0aW9ucy5wZXJtaXNzaW9ucyk7XHJcbiAgICBpZiAob3B0aW9ucz8ubWVudGlvbmFibGUgIT09IHVuZGVmaW5lZCkgYm9keS5tZW50aW9uYWJsZSA9IG9wdGlvbnMubWVudGlvbmFibGU7XHJcbiAgICBpZiAob3B0aW9ucz8uaWNvbikgYm9keS5pY29uID0gb3B0aW9ucy5pY29uO1xyXG4gICAgaWYgKG9wdGlvbnM/LnVuaWNvZGVFbW9qaSkgYm9keS51bmljb2RlX2Vtb2ppID0gb3B0aW9ucy51bmljb2RlRW1vamk7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoJ1BPU1QnLCBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L3JvbGVzYCwgYm9keSk7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fYWRkKGRhdGEpO1xyXG4gICAgXHJcbiAgICAvLyBTZXQgcG9zaXRpb24gaWYgc3BlY2lmaWVkXHJcbiAgICBpZiAob3B0aW9ucz8ucG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBhd2FpdCB0aGlzLnNldFBvc2l0aW9ucyhbeyByb2xlOiByb2xlLmlkLCBwb3NpdGlvbjogb3B0aW9ucy5wb3NpdGlvbiB9XSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiByb2xlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGEgcm9sZVxyXG4gICAqL1xyXG4gIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdCgnREVMRVRFJywgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9yb2xlcy8ke2lkfWAsIFxyXG4gICAgICByZWFzb24gPyB7IHJlYXNvbiB9IDogdW5kZWZpbmVkXHJcbiAgICApO1xyXG4gICAgdGhpcy5jYWNoZS5kZWxldGUoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRWRpdCBhIHJvbGVcclxuICAgKi9cclxuICBhc3luYyBlZGl0KGlkOiBzdHJpbmcsIGRhdGE6IHtcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICBjb2xvcj86IG51bWJlciB8IHN0cmluZztcclxuICAgIGhvaXN0PzogYm9vbGVhbjtcclxuICAgIHBvc2l0aW9uPzogbnVtYmVyO1xyXG4gICAgcGVybWlzc2lvbnM/OiBzdHJpbmcgfCBiaWdpbnQ7XHJcbiAgICBtZW50aW9uYWJsZT86IGJvb2xlYW47XHJcbiAgICBpY29uPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHVuaWNvZGVFbW9qaT86IHN0cmluZyB8IG51bGw7XHJcbiAgICByZWFzb24/OiBzdHJpbmc7XHJcbiAgfSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcclxuICAgIGlmIChkYXRhLm5hbWUgIT09IHVuZGVmaW5lZCkgYm9keS5uYW1lID0gZGF0YS5uYW1lO1xyXG4gICAgaWYgKGRhdGEuY29sb3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBib2R5LmNvbG9yID0gdHlwZW9mIGRhdGEuY29sb3IgPT09ICdzdHJpbmcnIFxyXG4gICAgICAgID8gcGFyc2VJbnQoZGF0YS5jb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNikgXHJcbiAgICAgICAgOiBkYXRhLmNvbG9yO1xyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEuaG9pc3QgIT09IHVuZGVmaW5lZCkgYm9keS5ob2lzdCA9IGRhdGEuaG9pc3Q7XHJcbiAgICBpZiAoZGF0YS5wZXJtaXNzaW9ucyAhPT0gdW5kZWZpbmVkKSBib2R5LnBlcm1pc3Npb25zID0gU3RyaW5nKGRhdGEucGVybWlzc2lvbnMpO1xyXG4gICAgaWYgKGRhdGEubWVudGlvbmFibGUgIT09IHVuZGVmaW5lZCkgYm9keS5tZW50aW9uYWJsZSA9IGRhdGEubWVudGlvbmFibGU7XHJcbiAgICBpZiAoZGF0YS5pY29uICE9PSB1bmRlZmluZWQpIGJvZHkuaWNvbiA9IGRhdGEuaWNvbjtcclxuICAgIGlmIChkYXRhLnVuaWNvZGVFbW9qaSAhPT0gdW5kZWZpbmVkKSBib2R5LnVuaWNvZGVfZW1vamkgPSBkYXRhLnVuaWNvZGVFbW9qaTtcclxuICAgIFxyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdQQVRDSCcsIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vcm9sZXMvJHtpZH1gLCBib2R5KTtcclxuICAgIHJldHVybiB0aGlzLl9hZGQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCByb2xlIHBvc2l0aW9uc1xyXG4gICAqL1xyXG4gIGFzeW5jIHNldFBvc2l0aW9ucyhwb3NpdGlvbnM6IEFycmF5PHsgcm9sZTogc3RyaW5nOyBwb3NpdGlvbjogbnVtYmVyIH0+KTogUHJvbWlzZTxDb2xsZWN0aW9uPHN0cmluZywgYW55Pj4ge1xyXG4gICAgY29uc3QgYm9keSA9IHBvc2l0aW9ucy5tYXAocCA9PiAoeyBpZDogcC5yb2xlLCBwb3NpdGlvbjogcC5wb3NpdGlvbiB9KSk7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdQQVRDSCcsIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vcm9sZXNgLCBib2R5KTtcclxuICAgIFxyXG4gICAgY29uc3Qgcm9sZXMgPSBuZXcgQ29sbGVjdGlvbjxzdHJpbmcsIGFueT4oKTtcclxuICAgIGZvciAoY29uc3Qgcm9sZURhdGEgb2YgZGF0YSkge1xyXG4gICAgICBjb25zdCByb2xlID0gdGhpcy5fYWRkKHJvbGVEYXRhKTtcclxuICAgICAgcm9sZXMuc2V0KHJvbGUuaWQsIHJvbGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJvbGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGFyZSB0d28gcm9sZXMgYnkgcG9zaXRpb25cclxuICAgKi9cclxuICBjb21wYXJlUG9zaXRpb25zKHJvbGUxOiBzdHJpbmcgfCBhbnksIHJvbGUyOiBzdHJpbmcgfCBhbnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgcjEgPSB0eXBlb2Ygcm9sZTEgPT09ICdzdHJpbmcnID8gdGhpcy5jYWNoZS5nZXQocm9sZTEpIDogcm9sZTE7XHJcbiAgICBjb25zdCByMiA9IHR5cGVvZiByb2xlMiA9PT0gJ3N0cmluZycgPyB0aGlzLmNhY2hlLmdldChyb2xlMikgOiByb2xlMjtcclxuICAgIHJldHVybiAocjE/LnBvc2l0aW9uID8/IDApIC0gKHIyPy5wb3NpdGlvbiA/PyAwKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFJvbGVNYW5hZ2VyO1xyXG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Manager exports
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./BaseManager"), exports);
|
|
21
|
+
__exportStar(require("./GuildMemberManager"), exports);
|
|
22
|
+
__exportStar(require("./ChannelManager"), exports);
|
|
23
|
+
__exportStar(require("./RoleManager"), exports);
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsZ0RBQThCO0FBQzlCLHVEQUFxQztBQUNyQyxtREFBaUM7QUFDakMsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE1hbmFnZXIgZXhwb3J0c1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vQmFzZU1hbmFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL0d1aWxkTWVtYmVyTWFuYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vQ2hhbm5lbE1hbmFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL1JvbGVNYW5hZ2VyJztcclxuIl19
|