@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,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Guild = void 0;
|
|
4
|
+
const Collection_1 = require("./Collection");
|
|
5
|
+
const GuildMember_1 = require("./GuildMember");
|
|
6
|
+
/**
|
|
7
|
+
* Represents a guild
|
|
8
|
+
*/
|
|
9
|
+
class Guild {
|
|
10
|
+
/** Reference to the client */
|
|
11
|
+
client;
|
|
12
|
+
/** Guild ID */
|
|
13
|
+
id;
|
|
14
|
+
/** Guild name */
|
|
15
|
+
name;
|
|
16
|
+
/** Guild icon URL */
|
|
17
|
+
icon;
|
|
18
|
+
/** Owner ID */
|
|
19
|
+
ownerId;
|
|
20
|
+
/** Whether the guild is unavailable */
|
|
21
|
+
unavailable;
|
|
22
|
+
/** Cached members */
|
|
23
|
+
members;
|
|
24
|
+
/** Cached channels */
|
|
25
|
+
channels;
|
|
26
|
+
constructor(client, data) {
|
|
27
|
+
this.client = client;
|
|
28
|
+
this.id = data.id;
|
|
29
|
+
this.name = data.name;
|
|
30
|
+
this.icon = data.icon;
|
|
31
|
+
this.ownerId = data.owner_id;
|
|
32
|
+
this.unavailable = data.unavailable ?? false;
|
|
33
|
+
this.members = new Collection_1.Collection();
|
|
34
|
+
this.channels = new Collection_1.Collection();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the guild icon URL
|
|
38
|
+
*/
|
|
39
|
+
iconURL(options) {
|
|
40
|
+
if (!this.icon)
|
|
41
|
+
return null;
|
|
42
|
+
return this.icon;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the voice adapter creator for @jubbio/voice
|
|
46
|
+
*/
|
|
47
|
+
get voiceAdapterCreator() {
|
|
48
|
+
return this.client.voice.adapters.get(this.id);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Fetch a member by ID
|
|
52
|
+
*/
|
|
53
|
+
async fetchMember(userId) {
|
|
54
|
+
// Check cache first
|
|
55
|
+
const cached = this.members.get(userId);
|
|
56
|
+
if (cached)
|
|
57
|
+
return cached;
|
|
58
|
+
// TODO: Fetch from API
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Convert to string
|
|
63
|
+
*/
|
|
64
|
+
toString() {
|
|
65
|
+
return this.name;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Update guild data
|
|
69
|
+
*/
|
|
70
|
+
_patch(data) {
|
|
71
|
+
if (data.name !== undefined)
|
|
72
|
+
this.name = data.name;
|
|
73
|
+
if (data.icon !== undefined)
|
|
74
|
+
this.icon = data.icon;
|
|
75
|
+
if (data.owner_id !== undefined)
|
|
76
|
+
this.ownerId = data.owner_id;
|
|
77
|
+
if (data.unavailable !== undefined)
|
|
78
|
+
this.unavailable = data.unavailable;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Add a member to cache
|
|
82
|
+
*/
|
|
83
|
+
_addMember(data) {
|
|
84
|
+
const member = new GuildMember_1.GuildMember(this.client, this, data);
|
|
85
|
+
this.members.set(member.id, member);
|
|
86
|
+
return member;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.Guild = Guild;
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RydWN0dXJlcy9HdWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBMEM7QUFDMUMsK0NBQTRDO0FBRzVDOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBQ2hCLDhCQUE4QjtJQUNkLE1BQU0sQ0FBUztJQUUvQixlQUFlO0lBQ0MsRUFBRSxDQUFTO0lBRTNCLGlCQUFpQjtJQUNWLElBQUksQ0FBUztJQUVwQixxQkFBcUI7SUFDZCxJQUFJLENBQVU7SUFFckIsZUFBZTtJQUNSLE9BQU8sQ0FBUztJQUV2Qix1Q0FBdUM7SUFDaEMsV0FBVyxDQUFVO0lBRTVCLHFCQUFxQjtJQUNkLE9BQU8sQ0FBa0M7SUFFaEQsc0JBQXNCO0lBQ2YsUUFBUSxDQUFpQztJQUVoRCxZQUFZLE1BQWMsRUFBRSxJQUFjO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx1QkFBVSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVCQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsT0FBMkI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQzlCLG9CQUFvQjtRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFJLE1BQU07WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUUxQix1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxJQUF1QjtRQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsSUFBb0I7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBeEZELHNCQXdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSUd1aWxkLCBBUElDaGFubmVsLCBBUElHdWlsZE1lbWJlciB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vQ29sbGVjdGlvbic7XHJcbmltcG9ydCB7IEd1aWxkTWVtYmVyIH0gZnJvbSAnLi9HdWlsZE1lbWJlcic7XHJcbmltcG9ydCB0eXBlIHsgQ2xpZW50IH0gZnJvbSAnLi4vQ2xpZW50JztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgZ3VpbGRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBHdWlsZCB7XHJcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgY2xpZW50ICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNsaWVudDogQ2xpZW50O1xyXG4gIFxyXG4gIC8qKiBHdWlsZCBJRCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBHdWlsZCBuYW1lICovXHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBcclxuICAvKiogR3VpbGQgaWNvbiBVUkwgKi9cclxuICBwdWJsaWMgaWNvbj86IHN0cmluZztcclxuICBcclxuICAvKiogT3duZXIgSUQgKi9cclxuICBwdWJsaWMgb3duZXJJZDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyB1bmF2YWlsYWJsZSAqL1xyXG4gIHB1YmxpYyB1bmF2YWlsYWJsZTogYm9vbGVhbjtcclxuICBcclxuICAvKiogQ2FjaGVkIG1lbWJlcnMgKi9cclxuICBwdWJsaWMgbWVtYmVyczogQ29sbGVjdGlvbjxzdHJpbmcsIEd1aWxkTWVtYmVyPjtcclxuICBcclxuICAvKiogQ2FjaGVkIGNoYW5uZWxzICovXHJcbiAgcHVibGljIGNoYW5uZWxzOiBDb2xsZWN0aW9uPHN0cmluZywgQVBJQ2hhbm5lbD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogQ2xpZW50LCBkYXRhOiBBUElHdWlsZCkge1xyXG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XHJcbiAgICB0aGlzLmlkID0gZGF0YS5pZDtcclxuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcclxuICAgIHRoaXMuaWNvbiA9IGRhdGEuaWNvbjtcclxuICAgIHRoaXMub3duZXJJZCA9IGRhdGEub3duZXJfaWQ7XHJcbiAgICB0aGlzLnVuYXZhaWxhYmxlID0gZGF0YS51bmF2YWlsYWJsZSA/PyBmYWxzZTtcclxuICAgIHRoaXMubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKCk7XHJcbiAgICB0aGlzLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZ3VpbGQgaWNvbiBVUkxcclxuICAgKi9cclxuICBpY29uVVJMKG9wdGlvbnM/OiB7IHNpemU/OiBudW1iZXIgfSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLmljb24pIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdm9pY2UgYWRhcHRlciBjcmVhdG9yIGZvciBAanViYmlvL3ZvaWNlXHJcbiAgICovXHJcbiAgZ2V0IHZvaWNlQWRhcHRlckNyZWF0b3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGllbnQudm9pY2UuYWRhcHRlcnMuZ2V0KHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggYSBtZW1iZXIgYnkgSURcclxuICAgKi9cclxuICBhc3luYyBmZXRjaE1lbWJlcih1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8R3VpbGRNZW1iZXIgfCBudWxsPiB7XHJcbiAgICAvLyBDaGVjayBjYWNoZSBmaXJzdFxyXG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5tZW1iZXJzLmdldCh1c2VySWQpO1xyXG4gICAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcclxuICAgIFxyXG4gICAgLy8gVE9ETzogRmV0Y2ggZnJvbSBBUElcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydCB0byBzdHJpbmdcclxuICAgKi9cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBndWlsZCBkYXRhXHJcbiAgICovXHJcbiAgX3BhdGNoKGRhdGE6IFBhcnRpYWw8QVBJR3VpbGQ+KTogdm9pZCB7XHJcbiAgICBpZiAoZGF0YS5uYW1lICE9PSB1bmRlZmluZWQpIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcclxuICAgIGlmIChkYXRhLmljb24gIT09IHVuZGVmaW5lZCkgdGhpcy5pY29uID0gZGF0YS5pY29uO1xyXG4gICAgaWYgKGRhdGEub3duZXJfaWQgIT09IHVuZGVmaW5lZCkgdGhpcy5vd25lcklkID0gZGF0YS5vd25lcl9pZDtcclxuICAgIGlmIChkYXRhLnVuYXZhaWxhYmxlICE9PSB1bmRlZmluZWQpIHRoaXMudW5hdmFpbGFibGUgPSBkYXRhLnVuYXZhaWxhYmxlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgbWVtYmVyIHRvIGNhY2hlXHJcbiAgICovXHJcbiAgX2FkZE1lbWJlcihkYXRhOiBBUElHdWlsZE1lbWJlcik6IEd1aWxkTWVtYmVyIHtcclxuICAgIGNvbnN0IG1lbWJlciA9IG5ldyBHdWlsZE1lbWJlcih0aGlzLmNsaWVudCwgdGhpcywgZGF0YSk7XHJcbiAgICB0aGlzLm1lbWJlcnMuc2V0KG1lbWJlci5pZCwgbWVtYmVyKTtcclxuICAgIHJldHVybiBtZW1iZXI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { APIGuildMember } from '../types';
|
|
2
|
+
import { User } from './User';
|
|
3
|
+
import { Guild } from './Guild';
|
|
4
|
+
import type { Client } from '../Client';
|
|
5
|
+
/**
|
|
6
|
+
* Permission flags - permission bits
|
|
7
|
+
*/
|
|
8
|
+
export declare const PermissionFlags: {
|
|
9
|
+
readonly CreateInstantInvite: bigint;
|
|
10
|
+
readonly KickMembers: bigint;
|
|
11
|
+
readonly BanMembers: bigint;
|
|
12
|
+
readonly Administrator: bigint;
|
|
13
|
+
readonly ManageChannels: bigint;
|
|
14
|
+
readonly ManageGuild: bigint;
|
|
15
|
+
readonly AddReactions: bigint;
|
|
16
|
+
readonly ViewAuditLog: bigint;
|
|
17
|
+
readonly PrioritySpeaker: bigint;
|
|
18
|
+
readonly Stream: bigint;
|
|
19
|
+
readonly ViewChannel: bigint;
|
|
20
|
+
readonly SendMessages: bigint;
|
|
21
|
+
readonly SendTTSMessages: bigint;
|
|
22
|
+
readonly ManageMessages: bigint;
|
|
23
|
+
readonly EmbedLinks: bigint;
|
|
24
|
+
readonly AttachFiles: bigint;
|
|
25
|
+
readonly ReadMessageHistory: bigint;
|
|
26
|
+
readonly MentionEveryone: bigint;
|
|
27
|
+
readonly UseExternalEmojis: bigint;
|
|
28
|
+
readonly ViewGuildInsights: bigint;
|
|
29
|
+
readonly Connect: bigint;
|
|
30
|
+
readonly Speak: bigint;
|
|
31
|
+
readonly MuteMembers: bigint;
|
|
32
|
+
readonly DeafenMembers: bigint;
|
|
33
|
+
readonly MoveMembers: bigint;
|
|
34
|
+
readonly UseVAD: bigint;
|
|
35
|
+
readonly ChangeNickname: bigint;
|
|
36
|
+
readonly ManageNicknames: bigint;
|
|
37
|
+
readonly ManageRoles: bigint;
|
|
38
|
+
readonly ManageWebhooks: bigint;
|
|
39
|
+
readonly ManageEmojisAndStickers: bigint;
|
|
40
|
+
readonly UseApplicationCommands: bigint;
|
|
41
|
+
readonly RequestToSpeak: bigint;
|
|
42
|
+
readonly ManageEvents: bigint;
|
|
43
|
+
readonly ManageThreads: bigint;
|
|
44
|
+
readonly CreatePublicThreads: bigint;
|
|
45
|
+
readonly CreatePrivateThreads: bigint;
|
|
46
|
+
readonly UseExternalStickers: bigint;
|
|
47
|
+
readonly SendMessagesInThreads: bigint;
|
|
48
|
+
readonly UseEmbeddedActivities: bigint;
|
|
49
|
+
readonly ModerateMembers: bigint;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Permissions helper class
|
|
53
|
+
*/
|
|
54
|
+
export declare class Permissions {
|
|
55
|
+
private bitfield;
|
|
56
|
+
private isOwner;
|
|
57
|
+
constructor(bits?: string | bigint | number, isOwner?: boolean);
|
|
58
|
+
/**
|
|
59
|
+
* Check if has a permission
|
|
60
|
+
*/
|
|
61
|
+
has(permission: string | bigint): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Get the raw bitfield
|
|
64
|
+
*/
|
|
65
|
+
get bits(): bigint;
|
|
66
|
+
/**
|
|
67
|
+
* Convert to array of permission names
|
|
68
|
+
*/
|
|
69
|
+
toArray(): string[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Represents a guild member
|
|
73
|
+
*/
|
|
74
|
+
export declare class GuildMember {
|
|
75
|
+
/** Reference to the client */
|
|
76
|
+
readonly client: Client;
|
|
77
|
+
/** Reference to the guild */
|
|
78
|
+
readonly guild: Guild;
|
|
79
|
+
/** The user this member represents */
|
|
80
|
+
readonly user: User;
|
|
81
|
+
/** Member's nickname */
|
|
82
|
+
nickname?: string;
|
|
83
|
+
/** Member's guild avatar */
|
|
84
|
+
avatar?: string;
|
|
85
|
+
/** Role IDs */
|
|
86
|
+
roles: string[];
|
|
87
|
+
/** Join timestamp */
|
|
88
|
+
readonly joinedTimestamp: number;
|
|
89
|
+
/** Voice state */
|
|
90
|
+
voice: {
|
|
91
|
+
channelId?: string;
|
|
92
|
+
selfMute: boolean;
|
|
93
|
+
selfDeaf: boolean;
|
|
94
|
+
};
|
|
95
|
+
/** Member permissions */
|
|
96
|
+
permissions: Permissions;
|
|
97
|
+
constructor(client: Client, guild: Guild, data: APIGuildMember);
|
|
98
|
+
/**
|
|
99
|
+
* Get the member's ID
|
|
100
|
+
*/
|
|
101
|
+
get id(): string;
|
|
102
|
+
/**
|
|
103
|
+
* Get the display name (nickname or username)
|
|
104
|
+
*/
|
|
105
|
+
get displayName(): string;
|
|
106
|
+
/**
|
|
107
|
+
* Get the join date
|
|
108
|
+
*/
|
|
109
|
+
get joinedAt(): Date;
|
|
110
|
+
/**
|
|
111
|
+
* Check if member is in a voice channel
|
|
112
|
+
*/
|
|
113
|
+
get inVoiceChannel(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Get the member's avatar URL
|
|
116
|
+
*/
|
|
117
|
+
avatarURL(): string | null;
|
|
118
|
+
/**
|
|
119
|
+
* Get the display avatar URL (member avatar or user avatar)
|
|
120
|
+
*/
|
|
121
|
+
displayAvatarURL(): string;
|
|
122
|
+
/**
|
|
123
|
+
* Convert to string (mention format)
|
|
124
|
+
*/
|
|
125
|
+
toString(): string;
|
|
126
|
+
/**
|
|
127
|
+
* Update member data
|
|
128
|
+
*/
|
|
129
|
+
_patch(data: Partial<APIGuildMember>): void;
|
|
130
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GuildMember = exports.Permissions = exports.PermissionFlags = void 0;
|
|
4
|
+
const User_1 = require("./User");
|
|
5
|
+
/**
|
|
6
|
+
* Permission flags - permission bits
|
|
7
|
+
*/
|
|
8
|
+
exports.PermissionFlags = {
|
|
9
|
+
CreateInstantInvite: 1n << 0n,
|
|
10
|
+
KickMembers: 1n << 1n,
|
|
11
|
+
BanMembers: 1n << 2n,
|
|
12
|
+
Administrator: 1n << 3n,
|
|
13
|
+
ManageChannels: 1n << 4n,
|
|
14
|
+
ManageGuild: 1n << 5n,
|
|
15
|
+
AddReactions: 1n << 6n,
|
|
16
|
+
ViewAuditLog: 1n << 7n,
|
|
17
|
+
PrioritySpeaker: 1n << 8n,
|
|
18
|
+
Stream: 1n << 9n,
|
|
19
|
+
ViewChannel: 1n << 10n,
|
|
20
|
+
SendMessages: 1n << 11n,
|
|
21
|
+
SendTTSMessages: 1n << 12n,
|
|
22
|
+
ManageMessages: 1n << 13n,
|
|
23
|
+
EmbedLinks: 1n << 14n,
|
|
24
|
+
AttachFiles: 1n << 15n,
|
|
25
|
+
ReadMessageHistory: 1n << 16n,
|
|
26
|
+
MentionEveryone: 1n << 17n,
|
|
27
|
+
UseExternalEmojis: 1n << 18n,
|
|
28
|
+
ViewGuildInsights: 1n << 19n,
|
|
29
|
+
Connect: 1n << 20n,
|
|
30
|
+
Speak: 1n << 21n,
|
|
31
|
+
MuteMembers: 1n << 22n,
|
|
32
|
+
DeafenMembers: 1n << 23n,
|
|
33
|
+
MoveMembers: 1n << 24n,
|
|
34
|
+
UseVAD: 1n << 25n,
|
|
35
|
+
ChangeNickname: 1n << 26n,
|
|
36
|
+
ManageNicknames: 1n << 27n,
|
|
37
|
+
ManageRoles: 1n << 28n,
|
|
38
|
+
ManageWebhooks: 1n << 29n,
|
|
39
|
+
ManageEmojisAndStickers: 1n << 30n,
|
|
40
|
+
UseApplicationCommands: 1n << 31n,
|
|
41
|
+
RequestToSpeak: 1n << 32n,
|
|
42
|
+
ManageEvents: 1n << 33n,
|
|
43
|
+
ManageThreads: 1n << 34n,
|
|
44
|
+
CreatePublicThreads: 1n << 35n,
|
|
45
|
+
CreatePrivateThreads: 1n << 36n,
|
|
46
|
+
UseExternalStickers: 1n << 37n,
|
|
47
|
+
SendMessagesInThreads: 1n << 38n,
|
|
48
|
+
UseEmbeddedActivities: 1n << 39n,
|
|
49
|
+
ModerateMembers: 1n << 40n,
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Permissions helper class
|
|
53
|
+
*/
|
|
54
|
+
class Permissions {
|
|
55
|
+
bitfield;
|
|
56
|
+
isOwner;
|
|
57
|
+
constructor(bits = 0n, isOwner = false) {
|
|
58
|
+
if (typeof bits === 'string') {
|
|
59
|
+
this.bitfield = BigInt(bits);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.bitfield = BigInt(bits);
|
|
63
|
+
}
|
|
64
|
+
this.isOwner = isOwner;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if has a permission
|
|
68
|
+
*/
|
|
69
|
+
has(permission) {
|
|
70
|
+
// Owner has all permissions
|
|
71
|
+
if (this.isOwner)
|
|
72
|
+
return true;
|
|
73
|
+
// Administrator has all permissions
|
|
74
|
+
if ((this.bitfield & exports.PermissionFlags.Administrator) === exports.PermissionFlags.Administrator) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
let bit;
|
|
78
|
+
if (typeof permission === 'string') {
|
|
79
|
+
bit = exports.PermissionFlags[permission] || 0n;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
bit = permission;
|
|
83
|
+
}
|
|
84
|
+
return (this.bitfield & bit) === bit;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the raw bitfield
|
|
88
|
+
*/
|
|
89
|
+
get bits() {
|
|
90
|
+
return this.bitfield;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Convert to array of permission names
|
|
94
|
+
*/
|
|
95
|
+
toArray() {
|
|
96
|
+
const result = [];
|
|
97
|
+
for (const [name, bit] of Object.entries(exports.PermissionFlags)) {
|
|
98
|
+
if ((this.bitfield & bit) === bit) {
|
|
99
|
+
result.push(name);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.Permissions = Permissions;
|
|
106
|
+
/**
|
|
107
|
+
* Represents a guild member
|
|
108
|
+
*/
|
|
109
|
+
class GuildMember {
|
|
110
|
+
/** Reference to the client */
|
|
111
|
+
client;
|
|
112
|
+
/** Reference to the guild */
|
|
113
|
+
guild;
|
|
114
|
+
/** The user this member represents */
|
|
115
|
+
user;
|
|
116
|
+
/** Member's nickname */
|
|
117
|
+
nickname;
|
|
118
|
+
/** Member's guild avatar */
|
|
119
|
+
avatar;
|
|
120
|
+
/** Role IDs */
|
|
121
|
+
roles;
|
|
122
|
+
/** Join timestamp */
|
|
123
|
+
joinedTimestamp;
|
|
124
|
+
/** Voice state */
|
|
125
|
+
voice;
|
|
126
|
+
/** Member permissions */
|
|
127
|
+
permissions;
|
|
128
|
+
constructor(client, guild, data) {
|
|
129
|
+
this.client = client;
|
|
130
|
+
this.guild = guild;
|
|
131
|
+
this.user = data.user ? new User_1.User(data.user) : new User_1.User({ id: '0', username: 'Unknown' });
|
|
132
|
+
this.nickname = data.nick;
|
|
133
|
+
this.avatar = data.avatar;
|
|
134
|
+
this.roles = data.roles;
|
|
135
|
+
this.joinedTimestamp = new Date(data.joined_at).getTime();
|
|
136
|
+
this.voice = {
|
|
137
|
+
channelId: data.voice?.channel_id,
|
|
138
|
+
selfMute: data.voice?.self_mute ?? false,
|
|
139
|
+
selfDeaf: data.voice?.self_deaf ?? false
|
|
140
|
+
};
|
|
141
|
+
// Check if user is guild owner
|
|
142
|
+
const isOwner = guild.ownerId === this.user.id;
|
|
143
|
+
// Parse permissions from interaction data
|
|
144
|
+
this.permissions = new Permissions(data.permissions || '0', isOwner);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get the member's ID
|
|
148
|
+
*/
|
|
149
|
+
get id() {
|
|
150
|
+
return this.user.id;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get the display name (nickname or username)
|
|
154
|
+
*/
|
|
155
|
+
get displayName() {
|
|
156
|
+
return this.nickname || this.user.displayName || this.user.username;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get the join date
|
|
160
|
+
*/
|
|
161
|
+
get joinedAt() {
|
|
162
|
+
return new Date(this.joinedTimestamp);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Check if member is in a voice channel
|
|
166
|
+
*/
|
|
167
|
+
get inVoiceChannel() {
|
|
168
|
+
return !!this.voice.channelId;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get the member's avatar URL
|
|
172
|
+
*/
|
|
173
|
+
avatarURL() {
|
|
174
|
+
return this.avatar || null;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get the display avatar URL (member avatar or user avatar)
|
|
178
|
+
*/
|
|
179
|
+
displayAvatarURL() {
|
|
180
|
+
return this.avatar || this.user.displayAvatarURL();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Convert to string (mention format)
|
|
184
|
+
*/
|
|
185
|
+
toString() {
|
|
186
|
+
return `<@${this.id}>`;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Update member data
|
|
190
|
+
*/
|
|
191
|
+
_patch(data) {
|
|
192
|
+
if (data.nick !== undefined)
|
|
193
|
+
this.nickname = data.nick;
|
|
194
|
+
if (data.avatar !== undefined)
|
|
195
|
+
this.avatar = data.avatar;
|
|
196
|
+
if (data.roles !== undefined)
|
|
197
|
+
this.roles = data.roles;
|
|
198
|
+
if (data.voice !== undefined) {
|
|
199
|
+
this.voice = {
|
|
200
|
+
channelId: data.voice.channel_id,
|
|
201
|
+
selfMute: data.voice.self_mute ?? false,
|
|
202
|
+
selfDeaf: data.voice.self_deaf ?? false
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.GuildMember = GuildMember;
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpbGRNZW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RydWN0dXJlcy9HdWlsZE1lbWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpQ0FBOEI7QUFJOUI7O0dBRUc7QUFDVSxRQUFBLGVBQWUsR0FBRztJQUM3QixtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRTtJQUM3QixXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUU7SUFDckIsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFO0lBQ3BCLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRTtJQUN2QixjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUU7SUFDeEIsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFO0lBQ3JCLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRTtJQUN0QixZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUU7SUFDdEIsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFO0lBQ3pCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRTtJQUNoQixXQUFXLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDdEIsWUFBWSxFQUFFLEVBQUUsSUFBSSxHQUFHO0lBQ3ZCLGVBQWUsRUFBRSxFQUFFLElBQUksR0FBRztJQUMxQixjQUFjLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDekIsVUFBVSxFQUFFLEVBQUUsSUFBSSxHQUFHO0lBQ3JCLFdBQVcsRUFBRSxFQUFFLElBQUksR0FBRztJQUN0QixrQkFBa0IsRUFBRSxFQUFFLElBQUksR0FBRztJQUM3QixlQUFlLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDMUIsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDNUIsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDNUIsT0FBTyxFQUFFLEVBQUUsSUFBSSxHQUFHO0lBQ2xCLEtBQUssRUFBRSxFQUFFLElBQUksR0FBRztJQUNoQixXQUFXLEVBQUUsRUFBRSxJQUFJLEdBQUc7SUFDdEIs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LENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ1gsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtnQkFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUs7Z0JBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLO2FBQ3hDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBckhELGtDQXFIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSUd1aWxkTWVtYmVyIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi9Vc2VyJztcclxuaW1wb3J0IHsgR3VpbGQgfSBmcm9tICcuL0d1aWxkJztcclxuaW1wb3J0IHR5cGUgeyBDbGllbnQgfSBmcm9tICcuLi9DbGllbnQnO1xyXG5cclxuLyoqXHJcbiAqIFBlcm1pc3Npb24gZmxhZ3MgLSBwZXJtaXNzaW9uIGJpdHNcclxuICovXHJcbmV4cG9ydCBjb25zdCBQZXJtaXNzaW9uRmxhZ3MgPSB7XHJcbiAgQ3JlYXRlSW5zdGFudEludml0ZTogMW4gPDwgMG4sXHJcbiAgS2lja01lbWJlcnM6IDFuIDw8IDFuLFxyXG4gIEJhbk1lbWJlcnM6IDFuIDw8IDJuLFxyXG4gIEFkbWluaXN0cmF0b3I6IDFuIDw8IDNuLFxyXG4gIE1hbmFnZUNoYW5uZWxzOiAxbiA8PCA0bixcclxuICBNYW5hZ2VHdWlsZDogMW4gPDwgNW4sXHJcbiAgQWRkUmVhY3Rpb25zOiAxbiA8PCA2bixcclxuICBWaWV3QXVkaXRMb2c6IDFuIDw8IDduLFxyXG4gIFByaW9yaXR5U3BlYWtlcjogMW4gPDwgOG4sXHJcbiAgU3RyZWFtOiAxbiA8PCA5bixcclxuICBWaWV3Q2hhbm5lbDogMW4gPDwgMTBuLFxyXG4gIFNlbmRNZXNzYWdlczogMW4gPDwgMTFuLFxyXG4gIFNlbmRUVFNNZXNzYWdlczogMW4gPDwgMTJuLFxyXG4gIE1hbmFnZU1lc3NhZ2VzOiAxbiA8PCAxM24sXHJcbiAgRW1iZWRMaW5rczogMW4gPDwgMTRuLFxyXG4gIEF0dGFjaEZpbGVzOiAxbiA8PCAxNW4sXHJcbiAgUmVhZE1lc3NhZ2VIaXN0b3J5OiAxbiA8PCAxNm4sXHJcbiAgTWVudGlvbkV2ZXJ5b25lOiAxbiA8PCAxN24sXHJcbiAgVXNlRXh0ZXJuYWxFbW9qaXM6IDFuIDw8IDE4bixcclxuICBWaWV3R3VpbGRJbnNpZ2h0czogMW4gPDwgMTluLFxyXG4gIENvbm5lY3Q6IDFuIDw8IDIwbixcclxuICBTcGVhazogMW4gPDwgMjFuLFxyXG4gIE11dGVNZW1iZXJzOiAxbiA8PCAyMm4sXHJcbiAgRGVhZmVuTWVtYmVyczogMW4gPDwgMjNuLFxyXG4gIE1vdmVNZW1iZXJzOiAxbiA8PCAyNG4sXHJcbiAgVXNlVkFEOiAxbiA8PCAyNW4sXHJcbiAgQ2hhbmdlTmlja25hbWU6IDFuIDw8IDI2bixcclxuICBNYW5hZ2VOaWNrbmFtZXM6IDFuIDw8IDI3bixcclxuICBNYW5hZ2VSb2xlczogMW4gPDwgMjhuLFxyXG4gIE1hbmFnZVdlYmhvb2tzOiAxbiA8PCAyOW4sXHJcbiAgTWFuYWdlRW1vamlzQW5kU3RpY2tlcnM6IDFuIDw8IDMwbixcclxuICBVc2VBcHBsaWNhdGlvbkNvbW1hbmRzOiAxbiA8PCAzMW4sXHJcbiAgUmVxdWVzdFRvU3BlYWs6IDFuIDw8IDMybixcclxuICBNYW5hZ2VFdmVudHM6IDFuIDw8IDMzbixcclxuICBNYW5hZ2VUaHJlYWRzOiAxbiA8PCAzNG4sXHJcbiAgQ3JlYXRlUHVibGljVGhyZWFkczogMW4gPDwgMzVuLFxyXG4gIENyZWF0ZVByaXZhdGVUaHJlYWRzOiAxbiA8PCAzNm4sXHJcbiAgVXNlRXh0ZXJuYWxTdGlja2VyczogMW4gPDwgMzduLFxyXG4gIFNlbmRNZXNzYWdlc0luVGhyZWFkczogMW4gPDwgMzhuLFxyXG4gIFVzZUVtYmVkZGVkQWN0aXZpdGllczogMW4gPDwgMzluLFxyXG4gIE1vZGVyYXRlTWVtYmVyczogMW4gPDwgNDBuLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuLyoqXHJcbiAqIFBlcm1pc3Npb25zIGhlbHBlciBjbGFzc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zIHtcclxuICBwcml2YXRlIGJpdGZpZWxkOiBiaWdpbnQ7XHJcbiAgcHJpdmF0ZSBpc093bmVyOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihiaXRzOiBzdHJpbmcgfCBiaWdpbnQgfCBudW1iZXIgPSAwbiwgaXNPd25lciA9IGZhbHNlKSB7XHJcbiAgICBpZiAodHlwZW9mIGJpdHMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuYml0ZmllbGQgPSBCaWdJbnQoYml0cyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmJpdGZpZWxkID0gQmlnSW50KGJpdHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc093bmVyID0gaXNPd25lcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGhhcyBhIHBlcm1pc3Npb25cclxuICAgKi9cclxuICBoYXMocGVybWlzc2lvbjogc3RyaW5nIHwgYmlnaW50KTogYm9vbGVhbiB7XHJcbiAgICAvLyBPd25lciBoYXMgYWxsIHBlcm1pc3Npb25zXHJcbiAgICBpZiAodGhpcy5pc093bmVyKSByZXR1cm4gdHJ1ZTtcclxuICAgIFxyXG4gICAgLy8gQWRtaW5pc3RyYXRvciBoYXMgYWxsIHBlcm1pc3Npb25zXHJcbiAgICBpZiAoKHRoaXMuYml0ZmllbGQgJiBQZXJtaXNzaW9uRmxhZ3MuQWRtaW5pc3RyYXRvcikgPT09IFBlcm1pc3Npb25GbGFncy5BZG1pbmlzdHJhdG9yKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBsZXQgYml0OiBiaWdpbnQ7XHJcbiAgICBpZiAodHlwZW9mIHBlcm1pc3Npb24gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGJpdCA9IFBlcm1pc3Npb25GbGFnc1twZXJtaXNzaW9uIGFzIGtleW9mIHR5cGVvZiBQZXJtaXNzaW9uRmxhZ3NdIHx8IDBuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYml0ID0gcGVybWlzc2lvbjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuICh0aGlzLmJpdGZpZWxkICYgYml0KSA9PT0gYml0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSByYXcgYml0ZmllbGRcclxuICAgKi9cclxuICBnZXQgYml0cygpOiBiaWdpbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0IHRvIGFycmF5IG9mIHBlcm1pc3Npb24gbmFtZXNcclxuICAgKi9cclxuICB0b0FycmF5KCk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcclxuICAgIGZvciAoY29uc3QgW25hbWUsIGJpdF0gb2YgT2JqZWN0LmVudHJpZXMoUGVybWlzc2lvbkZsYWdzKSkge1xyXG4gICAgICBpZiAoKHRoaXMuYml0ZmllbGQgJiBiaXQpID09PSBiaXQpIHtcclxuICAgICAgICByZXN1bHQucHVzaChuYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgZ3VpbGQgbWVtYmVyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR3VpbGRNZW1iZXIge1xyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGNsaWVudCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjbGllbnQ6IENsaWVudDtcclxuICBcclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBndWlsZCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBndWlsZDogR3VpbGQ7XHJcbiAgXHJcbiAgLyoqIFRoZSB1c2VyIHRoaXMgbWVtYmVyIHJlcHJlc2VudHMgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdXNlcjogVXNlcjtcclxuICBcclxuICAvKiogTWVtYmVyJ3Mgbmlja25hbWUgKi9cclxuICBwdWJsaWMgbmlja25hbWU/OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIE1lbWJlcidzIGd1aWxkIGF2YXRhciAqL1xyXG4gIHB1YmxpYyBhdmF0YXI/OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIFJvbGUgSURzICovXHJcbiAgcHVibGljIHJvbGVzOiBzdHJpbmdbXTtcclxuICBcclxuICAvKiogSm9pbiB0aW1lc3RhbXAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgam9pbmVkVGltZXN0YW1wOiBudW1iZXI7XHJcbiAgXHJcbiAgLyoqIFZvaWNlIHN0YXRlICovXHJcbiAgcHVibGljIHZvaWNlOiB7XHJcbiAgICBjaGFubmVsSWQ/OiBzdHJpbmc7XHJcbiAgICBzZWxmTXV0ZTogYm9vbGVhbjtcclxuICAgIHNlbGZEZWFmOiBib29sZWFuO1xyXG4gIH07XHJcbiAgXHJcbiAgLyoqIE1lbWJlciBwZXJtaXNzaW9ucyAqL1xyXG4gIHB1YmxpYyBwZXJtaXNzaW9uczogUGVybWlzc2lvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogQ2xpZW50LCBndWlsZDogR3VpbGQsIGRhdGE6IEFQSUd1aWxkTWVtYmVyKSB7XHJcbiAgICB0aGlzLmNsaWVudCA9IGNsaWVudDtcclxuICAgIHRoaXMuZ3VpbGQgPSBndWlsZDtcclxuICAgIHRoaXMudXNlciA9IGRhdGEudXNlciA/IG5ldyBVc2VyKGRhdGEudXNlcikgOiBuZXcgVXNlcih7IGlkOiAnMCcsIHVzZXJuYW1lOiAnVW5rbm93bicgfSk7XHJcbiAgICB0aGlzLm5pY2tuYW1lID0gZGF0YS5uaWNrO1xyXG4gICAgdGhpcy5hdmF0YXIgPSBkYXRhLmF2YXRhcjtcclxuICAgIHRoaXMucm9sZXMgPSBkYXRhLnJvbGVzO1xyXG4gICAgdGhpcy5qb2luZWRUaW1lc3RhbXAgPSBuZXcgRGF0ZShkYXRhLmpvaW5lZF9hdCkuZ2V0VGltZSgpO1xyXG4gICAgdGhpcy52b2ljZSA9IHtcclxuICAgICAgY2hhbm5lbElkOiBkYXRhLnZvaWNlPy5jaGFubmVsX2lkLFxyXG4gICAgICBzZWxmTXV0ZTogZGF0YS52b2ljZT8uc2VsZl9tdXRlID8/IGZhbHNlLFxyXG4gICAgICBzZWxmRGVhZjogZGF0YS52b2ljZT8uc2VsZl9kZWFmID8/IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGd1aWxkIG93bmVyXHJcbiAgICBjb25zdCBpc093bmVyID0gZ3VpbGQub3duZXJJZCA9PT0gdGhpcy51c2VyLmlkO1xyXG4gICAgXHJcbiAgICAvLyBQYXJzZSBwZXJtaXNzaW9ucyBmcm9tIGludGVyYWN0aW9uIGRhdGFcclxuICAgIHRoaXMucGVybWlzc2lvbnMgPSBuZXcgUGVybWlzc2lvbnMoZGF0YS5wZXJtaXNzaW9ucyB8fCAnMCcsIGlzT3duZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBtZW1iZXIncyBJRFxyXG4gICAqL1xyXG4gIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlci5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZGlzcGxheSBuYW1lIChuaWNrbmFtZSBvciB1c2VybmFtZSlcclxuICAgKi9cclxuICBnZXQgZGlzcGxheU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm5pY2tuYW1lIHx8IHRoaXMudXNlci5kaXNwbGF5TmFtZSB8fCB0aGlzLnVzZXIudXNlcm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGpvaW4gZGF0ZVxyXG4gICAqL1xyXG4gIGdldCBqb2luZWRBdCgpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmpvaW5lZFRpbWVzdGFtcCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBtZW1iZXIgaXMgaW4gYSB2b2ljZSBjaGFubmVsXHJcbiAgICovXHJcbiAgZ2V0IGluVm9pY2VDaGFubmVsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy52b2ljZS5jaGFubmVsSWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIG1lbWJlcidzIGF2YXRhciBVUkxcclxuICAgKi9cclxuICBhdmF0YXJVUkwoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5hdmF0YXIgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZGlzcGxheSBhdmF0YXIgVVJMIChtZW1iZXIgYXZhdGFyIG9yIHVzZXIgYXZhdGFyKVxyXG4gICAqL1xyXG4gIGRpc3BsYXlBdmF0YXJVUkwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2YXRhciB8fCB0aGlzLnVzZXIuZGlzcGxheUF2YXRhclVSTCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydCB0byBzdHJpbmcgKG1lbnRpb24gZm9ybWF0KVxyXG4gICAqL1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYDxAJHt0aGlzLmlkfT5gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIG1lbWJlciBkYXRhXHJcbiAgICovXHJcbiAgX3BhdGNoKGRhdGE6IFBhcnRpYWw8QVBJR3VpbGRNZW1iZXI+KTogdm9pZCB7XHJcbiAgICBpZiAoZGF0YS5uaWNrICE9PSB1bmRlZmluZWQpIHRoaXMubmlja25hbWUgPSBkYXRhLm5pY2s7XHJcbiAgICBpZiAoZGF0YS5hdmF0YXIgIT09IHVuZGVmaW5lZCkgdGhpcy5hdmF0YXIgPSBkYXRhLmF2YXRhcjtcclxuICAgIGlmIChkYXRhLnJvbGVzICE9PSB1bmRlZmluZWQpIHRoaXMucm9sZXMgPSBkYXRhLnJvbGVzO1xyXG4gICAgaWYgKGRhdGEudm9pY2UgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnZvaWNlID0ge1xyXG4gICAgICAgIGNoYW5uZWxJZDogZGF0YS52b2ljZS5jaGFubmVsX2lkLFxyXG4gICAgICAgIHNlbGZNdXRlOiBkYXRhLnZvaWNlLnNlbGZfbXV0ZSA/PyBmYWxzZSxcclxuICAgICAgICBzZWxmRGVhZjogZGF0YS52b2ljZS5zZWxmX2RlYWYgPz8gZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { APIInteraction, APIInteractionOption, APIEmbed } from '../types';
|
|
2
|
+
import { InteractionType } from '../enums';
|
|
3
|
+
import { User } from './User';
|
|
4
|
+
import { GuildMember } from './GuildMember';
|
|
5
|
+
import type { Client } from '../Client';
|
|
6
|
+
/**
|
|
7
|
+
* Base interaction class
|
|
8
|
+
*/
|
|
9
|
+
export declare class Interaction {
|
|
10
|
+
/** Reference to the client */
|
|
11
|
+
readonly client: Client;
|
|
12
|
+
/** Interaction ID */
|
|
13
|
+
readonly id: string;
|
|
14
|
+
/** Application ID */
|
|
15
|
+
readonly applicationId: string;
|
|
16
|
+
/** Interaction type */
|
|
17
|
+
readonly type: InteractionType;
|
|
18
|
+
/** Guild ID */
|
|
19
|
+
readonly guildId?: string;
|
|
20
|
+
/** Channel ID */
|
|
21
|
+
readonly channelId?: string;
|
|
22
|
+
/** Interaction token */
|
|
23
|
+
readonly token: string;
|
|
24
|
+
/** User who triggered the interaction */
|
|
25
|
+
readonly user: User;
|
|
26
|
+
/** Guild member (if in a guild) */
|
|
27
|
+
readonly member?: GuildMember;
|
|
28
|
+
/** Whether the interaction has been replied to */
|
|
29
|
+
replied: boolean;
|
|
30
|
+
/** Whether the interaction has been deferred */
|
|
31
|
+
deferred: boolean;
|
|
32
|
+
constructor(client: Client, data: APIInteraction);
|
|
33
|
+
/**
|
|
34
|
+
* Check if this is a command interaction
|
|
35
|
+
*/
|
|
36
|
+
isCommand(): this is CommandInteraction;
|
|
37
|
+
/**
|
|
38
|
+
* Check if this is an autocomplete interaction
|
|
39
|
+
*/
|
|
40
|
+
isAutocomplete(): this is AutocompleteInteraction;
|
|
41
|
+
/**
|
|
42
|
+
* Check if this is a modal submit interaction
|
|
43
|
+
*/
|
|
44
|
+
isModalSubmit(): this is ModalSubmitInteraction;
|
|
45
|
+
/**
|
|
46
|
+
* Check if this is a button interaction
|
|
47
|
+
*/
|
|
48
|
+
isButton(): this is ButtonInteraction;
|
|
49
|
+
/**
|
|
50
|
+
* Check if this is a select menu interaction
|
|
51
|
+
*/
|
|
52
|
+
isSelectMenu(): this is SelectMenuInteraction;
|
|
53
|
+
/**
|
|
54
|
+
* Reply to the interaction
|
|
55
|
+
*/
|
|
56
|
+
reply(options: string | InteractionReplyOptions): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Defer the reply (shows "thinking...")
|
|
59
|
+
*/
|
|
60
|
+
deferReply(options?: {
|
|
61
|
+
ephemeral?: boolean;
|
|
62
|
+
}): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Edit the reply
|
|
65
|
+
*/
|
|
66
|
+
editReply(options: string | InteractionReplyOptions): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Delete the reply
|
|
69
|
+
*/
|
|
70
|
+
deleteReply(): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Send a followup message
|
|
73
|
+
*/
|
|
74
|
+
followUp(options: string | InteractionReplyOptions): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Command interaction
|
|
78
|
+
*/
|
|
79
|
+
export declare class CommandInteraction extends Interaction {
|
|
80
|
+
/** Command name */
|
|
81
|
+
readonly commandName: string;
|
|
82
|
+
/** Command options */
|
|
83
|
+
readonly options: CommandInteractionOptions;
|
|
84
|
+
constructor(client: Client, data: APIInteraction);
|
|
85
|
+
/**
|
|
86
|
+
* Show a modal
|
|
87
|
+
*/
|
|
88
|
+
showModal(modal: ModalData): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Command interaction options helper
|
|
92
|
+
*/
|
|
93
|
+
export declare class CommandInteractionOptions {
|
|
94
|
+
private options;
|
|
95
|
+
constructor(options: APIInteractionOption[]);
|
|
96
|
+
/**
|
|
97
|
+
* Get a string option
|
|
98
|
+
*/
|
|
99
|
+
getString(name: string, required?: boolean): string | null;
|
|
100
|
+
/**
|
|
101
|
+
* Get an integer option
|
|
102
|
+
*/
|
|
103
|
+
getInteger(name: string, required?: boolean): number | null;
|
|
104
|
+
/**
|
|
105
|
+
* Get a number option
|
|
106
|
+
*/
|
|
107
|
+
getNumber(name: string, required?: boolean): number | null;
|
|
108
|
+
/**
|
|
109
|
+
* Get a boolean option
|
|
110
|
+
*/
|
|
111
|
+
getBoolean(name: string, required?: boolean): boolean | null;
|
|
112
|
+
/**
|
|
113
|
+
* Get a user option
|
|
114
|
+
*/
|
|
115
|
+
getUser(name: string, required?: boolean): string | null;
|
|
116
|
+
/**
|
|
117
|
+
* Get a channel option
|
|
118
|
+
*/
|
|
119
|
+
getChannel(name: string, required?: boolean): string | null;
|
|
120
|
+
/**
|
|
121
|
+
* Get a subcommand name
|
|
122
|
+
*/
|
|
123
|
+
getSubcommand(required?: boolean): string | null;
|
|
124
|
+
/**
|
|
125
|
+
* Get the focused option (for autocomplete)
|
|
126
|
+
*/
|
|
127
|
+
getFocused(): {
|
|
128
|
+
name: string;
|
|
129
|
+
value: string;
|
|
130
|
+
} | null;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Autocomplete interaction
|
|
134
|
+
*/
|
|
135
|
+
export declare class AutocompleteInteraction extends Interaction {
|
|
136
|
+
/** Command name */
|
|
137
|
+
readonly commandName: string;
|
|
138
|
+
/** Command options */
|
|
139
|
+
readonly options: CommandInteractionOptions;
|
|
140
|
+
constructor(client: Client, data: APIInteraction);
|
|
141
|
+
/**
|
|
142
|
+
* Respond with autocomplete choices
|
|
143
|
+
*/
|
|
144
|
+
respond(choices: AutocompleteChoice[]): Promise<void>;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Button interaction
|
|
148
|
+
*/
|
|
149
|
+
export declare class ButtonInteraction extends Interaction {
|
|
150
|
+
/** Button custom ID */
|
|
151
|
+
readonly customId: string;
|
|
152
|
+
/** Component type (always 2 for buttons) */
|
|
153
|
+
readonly componentType: number;
|
|
154
|
+
/** Message the button is attached to */
|
|
155
|
+
readonly message?: any;
|
|
156
|
+
constructor(client: Client, data: APIInteraction);
|
|
157
|
+
/**
|
|
158
|
+
* Update the message the button is attached to
|
|
159
|
+
*/
|
|
160
|
+
update(options: InteractionReplyOptions): Promise<void>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Select menu interaction
|
|
164
|
+
*/
|
|
165
|
+
export declare class SelectMenuInteraction extends Interaction {
|
|
166
|
+
/** Select menu custom ID */
|
|
167
|
+
readonly customId: string;
|
|
168
|
+
/** Component type (always 3 for select menus) */
|
|
169
|
+
readonly componentType: number;
|
|
170
|
+
/** Selected values */
|
|
171
|
+
readonly values: string[];
|
|
172
|
+
/** Message the select menu is attached to */
|
|
173
|
+
readonly message?: any;
|
|
174
|
+
constructor(client: Client, data: APIInteraction);
|
|
175
|
+
/**
|
|
176
|
+
* Update the message the select menu is attached to
|
|
177
|
+
*/
|
|
178
|
+
update(options: InteractionReplyOptions): Promise<void>;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Modal submit interaction
|
|
182
|
+
*/
|
|
183
|
+
export declare class ModalSubmitInteraction extends Interaction {
|
|
184
|
+
/** Modal custom ID */
|
|
185
|
+
readonly customId: string;
|
|
186
|
+
/** Modal fields */
|
|
187
|
+
readonly fields: ModalFields;
|
|
188
|
+
constructor(client: Client, data: APIInteraction);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Modal fields helper
|
|
192
|
+
*/
|
|
193
|
+
export declare class ModalFields {
|
|
194
|
+
private values;
|
|
195
|
+
constructor(values: string[]);
|
|
196
|
+
/**
|
|
197
|
+
* Get a text input value
|
|
198
|
+
*/
|
|
199
|
+
getTextInputValue(customId: string): string | null;
|
|
200
|
+
}
|
|
201
|
+
export interface InteractionReplyOptions {
|
|
202
|
+
content?: string;
|
|
203
|
+
embeds?: APIEmbed[];
|
|
204
|
+
components?: any[];
|
|
205
|
+
ephemeral?: boolean;
|
|
206
|
+
files?: Array<{
|
|
207
|
+
name: string;
|
|
208
|
+
data: Buffer;
|
|
209
|
+
contentType?: string;
|
|
210
|
+
}>;
|
|
211
|
+
}
|
|
212
|
+
export interface AutocompleteChoice {
|
|
213
|
+
name: string;
|
|
214
|
+
value: string | number;
|
|
215
|
+
}
|
|
216
|
+
export interface ModalData {
|
|
217
|
+
custom_id: string;
|
|
218
|
+
title: string;
|
|
219
|
+
components: any[];
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Create appropriate interaction class based on type
|
|
223
|
+
*/
|
|
224
|
+
export declare function createInteraction(client: Client, data: APIInteraction): Interaction;
|