@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,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModalBuilder for creating modals
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Text input styles
|
|
6
|
+
*/
|
|
7
|
+
export declare enum TextInputStyle {
|
|
8
|
+
Short = 1,
|
|
9
|
+
Paragraph = 2
|
|
10
|
+
}
|
|
11
|
+
export interface APITextInputComponent {
|
|
12
|
+
type: 4;
|
|
13
|
+
custom_id: string;
|
|
14
|
+
style: TextInputStyle;
|
|
15
|
+
label: string;
|
|
16
|
+
min_length?: number;
|
|
17
|
+
max_length?: number;
|
|
18
|
+
required?: boolean;
|
|
19
|
+
value?: string;
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface APIModalActionRow {
|
|
23
|
+
type: 1;
|
|
24
|
+
components: APITextInputComponent[];
|
|
25
|
+
}
|
|
26
|
+
export interface APIModal {
|
|
27
|
+
custom_id: string;
|
|
28
|
+
title: string;
|
|
29
|
+
components: APIModalActionRow[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A builder for creating text inputs
|
|
33
|
+
*/
|
|
34
|
+
export declare class TextInputBuilder {
|
|
35
|
+
readonly data: Partial<APITextInputComponent>;
|
|
36
|
+
constructor(data?: Partial<APITextInputComponent>);
|
|
37
|
+
/**
|
|
38
|
+
* Sets the custom ID of this text input
|
|
39
|
+
* @param customId The custom ID
|
|
40
|
+
*/
|
|
41
|
+
setCustomId(customId: string): this;
|
|
42
|
+
/**
|
|
43
|
+
* Sets the label of this text input
|
|
44
|
+
* @param label The label
|
|
45
|
+
*/
|
|
46
|
+
setLabel(label: string): this;
|
|
47
|
+
/**
|
|
48
|
+
* Sets the style of this text input
|
|
49
|
+
* @param style The style
|
|
50
|
+
*/
|
|
51
|
+
setStyle(style: TextInputStyle): this;
|
|
52
|
+
/**
|
|
53
|
+
* Sets the minimum length of this text input
|
|
54
|
+
* @param minLength The minimum length
|
|
55
|
+
*/
|
|
56
|
+
setMinLength(minLength: number): this;
|
|
57
|
+
/**
|
|
58
|
+
* Sets the maximum length of this text input
|
|
59
|
+
* @param maxLength The maximum length
|
|
60
|
+
*/
|
|
61
|
+
setMaxLength(maxLength: number): this;
|
|
62
|
+
/**
|
|
63
|
+
* Sets whether this text input is required
|
|
64
|
+
* @param required Whether the text input is required
|
|
65
|
+
*/
|
|
66
|
+
setRequired(required?: boolean): this;
|
|
67
|
+
/**
|
|
68
|
+
* Sets the value of this text input
|
|
69
|
+
* @param value The value
|
|
70
|
+
*/
|
|
71
|
+
setValue(value: string): this;
|
|
72
|
+
/**
|
|
73
|
+
* Sets the placeholder of this text input
|
|
74
|
+
* @param placeholder The placeholder
|
|
75
|
+
*/
|
|
76
|
+
setPlaceholder(placeholder: string): this;
|
|
77
|
+
/**
|
|
78
|
+
* Returns the JSON representation of this text input
|
|
79
|
+
*/
|
|
80
|
+
toJSON(): APITextInputComponent;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A builder for creating modals
|
|
84
|
+
*/
|
|
85
|
+
export declare class ModalBuilder {
|
|
86
|
+
readonly data: Partial<APIModal>;
|
|
87
|
+
constructor(data?: Partial<APIModal>);
|
|
88
|
+
/**
|
|
89
|
+
* Sets the custom ID of this modal
|
|
90
|
+
* @param customId The custom ID
|
|
91
|
+
*/
|
|
92
|
+
setCustomId(customId: string): this;
|
|
93
|
+
/**
|
|
94
|
+
* Sets the title of this modal
|
|
95
|
+
* @param title The title
|
|
96
|
+
*/
|
|
97
|
+
setTitle(title: string): this;
|
|
98
|
+
/**
|
|
99
|
+
* Adds components (action rows with text inputs) to this modal
|
|
100
|
+
* @param components The components to add
|
|
101
|
+
*/
|
|
102
|
+
addComponents(...components: (APIModalActionRow | {
|
|
103
|
+
toJSON(): APIModalActionRow;
|
|
104
|
+
})[]): this;
|
|
105
|
+
/**
|
|
106
|
+
* Sets the components of this modal
|
|
107
|
+
* @param components The components to set
|
|
108
|
+
*/
|
|
109
|
+
setComponents(...components: (APIModalActionRow | {
|
|
110
|
+
toJSON(): APIModalActionRow;
|
|
111
|
+
})[]): this;
|
|
112
|
+
/**
|
|
113
|
+
* Returns the JSON representation of this modal
|
|
114
|
+
*/
|
|
115
|
+
toJSON(): APIModal;
|
|
116
|
+
/**
|
|
117
|
+
* Creates a new modal builder from existing data
|
|
118
|
+
* @param other The modal data to copy
|
|
119
|
+
*/
|
|
120
|
+
static from(other: Partial<APIModal> | ModalBuilder): ModalBuilder;
|
|
121
|
+
}
|
|
122
|
+
export default ModalBuilder;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModalBuilder for creating modals
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ModalBuilder = exports.TextInputBuilder = exports.TextInputStyle = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Text input styles
|
|
9
|
+
*/
|
|
10
|
+
var TextInputStyle;
|
|
11
|
+
(function (TextInputStyle) {
|
|
12
|
+
TextInputStyle[TextInputStyle["Short"] = 1] = "Short";
|
|
13
|
+
TextInputStyle[TextInputStyle["Paragraph"] = 2] = "Paragraph";
|
|
14
|
+
})(TextInputStyle || (exports.TextInputStyle = TextInputStyle = {}));
|
|
15
|
+
/**
|
|
16
|
+
* A builder for creating text inputs
|
|
17
|
+
*/
|
|
18
|
+
class TextInputBuilder {
|
|
19
|
+
data;
|
|
20
|
+
constructor(data = {}) {
|
|
21
|
+
this.data = { type: 4, ...data };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Sets the custom ID of this text input
|
|
25
|
+
* @param customId The custom ID
|
|
26
|
+
*/
|
|
27
|
+
setCustomId(customId) {
|
|
28
|
+
this.data.custom_id = customId;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Sets the label of this text input
|
|
33
|
+
* @param label The label
|
|
34
|
+
*/
|
|
35
|
+
setLabel(label) {
|
|
36
|
+
this.data.label = label;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sets the style of this text input
|
|
41
|
+
* @param style The style
|
|
42
|
+
*/
|
|
43
|
+
setStyle(style) {
|
|
44
|
+
this.data.style = style;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets the minimum length of this text input
|
|
49
|
+
* @param minLength The minimum length
|
|
50
|
+
*/
|
|
51
|
+
setMinLength(minLength) {
|
|
52
|
+
this.data.min_length = minLength;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Sets the maximum length of this text input
|
|
57
|
+
* @param maxLength The maximum length
|
|
58
|
+
*/
|
|
59
|
+
setMaxLength(maxLength) {
|
|
60
|
+
this.data.max_length = maxLength;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Sets whether this text input is required
|
|
65
|
+
* @param required Whether the text input is required
|
|
66
|
+
*/
|
|
67
|
+
setRequired(required = true) {
|
|
68
|
+
this.data.required = required;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the value of this text input
|
|
73
|
+
* @param value The value
|
|
74
|
+
*/
|
|
75
|
+
setValue(value) {
|
|
76
|
+
this.data.value = value;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sets the placeholder of this text input
|
|
81
|
+
* @param placeholder The placeholder
|
|
82
|
+
*/
|
|
83
|
+
setPlaceholder(placeholder) {
|
|
84
|
+
this.data.placeholder = placeholder;
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Returns the JSON representation of this text input
|
|
89
|
+
*/
|
|
90
|
+
toJSON() {
|
|
91
|
+
return { ...this.data };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.TextInputBuilder = TextInputBuilder;
|
|
95
|
+
/**
|
|
96
|
+
* A builder for creating modals
|
|
97
|
+
*/
|
|
98
|
+
class ModalBuilder {
|
|
99
|
+
data;
|
|
100
|
+
constructor(data = {}) {
|
|
101
|
+
this.data = { ...data };
|
|
102
|
+
if (!this.data.components)
|
|
103
|
+
this.data.components = [];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Sets the custom ID of this modal
|
|
107
|
+
* @param customId The custom ID
|
|
108
|
+
*/
|
|
109
|
+
setCustomId(customId) {
|
|
110
|
+
this.data.custom_id = customId;
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Sets the title of this modal
|
|
115
|
+
* @param title The title
|
|
116
|
+
*/
|
|
117
|
+
setTitle(title) {
|
|
118
|
+
this.data.title = title;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Adds components (action rows with text inputs) to this modal
|
|
123
|
+
* @param components The components to add
|
|
124
|
+
*/
|
|
125
|
+
addComponents(...components) {
|
|
126
|
+
if (!this.data.components)
|
|
127
|
+
this.data.components = [];
|
|
128
|
+
for (const component of components) {
|
|
129
|
+
if ('toJSON' in component && typeof component.toJSON === 'function') {
|
|
130
|
+
this.data.components.push(component.toJSON());
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.data.components.push(component);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Sets the components of this modal
|
|
140
|
+
* @param components The components to set
|
|
141
|
+
*/
|
|
142
|
+
setComponents(...components) {
|
|
143
|
+
this.data.components = [];
|
|
144
|
+
return this.addComponents(...components);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns the JSON representation of this modal
|
|
148
|
+
*/
|
|
149
|
+
toJSON() {
|
|
150
|
+
return { ...this.data };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Creates a new modal builder from existing data
|
|
154
|
+
* @param other The modal data to copy
|
|
155
|
+
*/
|
|
156
|
+
static from(other) {
|
|
157
|
+
return new ModalBuilder(other instanceof ModalBuilder ? other.data : other);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.ModalBuilder = ModalBuilder;
|
|
161
|
+
exports.default = ModalBuilder;
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kYWxCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXJzL01vZGFsQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVIOztHQUVHO0FBQ0gsSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLHFEQUFTLENBQUE7SUFDVCw2REFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGNBQWMsOEJBQWQsY0FBYyxRQUd6QjtBQXlCRDs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1gsSUFBSSxDQUFpQztJQUVyRCxZQUFZLE9BQXVDLEVBQUU7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQXFCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLFdBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUEyQixDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQXJGRCw0Q0FxRkM7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUNQLElBQUksQ0FBb0I7SUFFeEMsWUFBWSxPQUEwQixFQUFFO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxHQUFHLFVBQW1FO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFFBQVEsSUFBSSxTQUFTLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDaEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUE4QixDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsR0FBRyxVQUFtRTtRQUNsRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQWMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUF1QztRQUNqRCxPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQWpFRCxvQ0FpRUM7QUFFRCxrQkFBZSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTW9kYWxCdWlsZGVyIGZvciBjcmVhdGluZyBtb2RhbHNcclxuICovXHJcblxyXG4vKipcclxuICogVGV4dCBpbnB1dCBzdHlsZXNcclxuICovXHJcbmV4cG9ydCBlbnVtIFRleHRJbnB1dFN0eWxlIHtcclxuICBTaG9ydCA9IDEsXHJcbiAgUGFyYWdyYXBoID0gMixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElUZXh0SW5wdXRDb21wb25lbnQge1xyXG4gIHR5cGU6IDQ7XHJcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XHJcbiAgc3R5bGU6IFRleHRJbnB1dFN0eWxlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbWluX2xlbmd0aD86IG51bWJlcjtcclxuICBtYXhfbGVuZ3RoPzogbnVtYmVyO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElNb2RhbEFjdGlvblJvdyB7XHJcbiAgdHlwZTogMTtcclxuICBjb21wb25lbnRzOiBBUElUZXh0SW5wdXRDb21wb25lbnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElNb2RhbCB7XHJcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb21wb25lbnRzOiBBUElNb2RhbEFjdGlvblJvd1tdO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyB0ZXh0IGlucHV0c1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dEJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVRleHRJbnB1dENvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJVGV4dElucHV0Q29tcG9uZW50PiA9IHt9KSB7XHJcbiAgICB0aGlzLmRhdGEgPSB7IHR5cGU6IDQsIC4uLmRhdGEgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIHRleHQgaW5wdXRcclxuICAgKiBAcGFyYW0gY3VzdG9tSWQgVGhlIGN1c3RvbSBJRFxyXG4gICAqL1xyXG4gIHNldEN1c3RvbUlkKGN1c3RvbUlkOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5jdXN0b21faWQgPSBjdXN0b21JZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbGFiZWwgb2YgdGhpcyB0ZXh0IGlucHV0XHJcbiAgICogQHBhcmFtIGxhYmVsIFRoZSBsYWJlbFxyXG4gICAqL1xyXG4gIHNldExhYmVsKGxhYmVsOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5sYWJlbCA9IGxhYmVsO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzdHlsZSBvZiB0aGlzIHRleHQgaW5wdXRcclxuICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlXHJcbiAgICovXHJcbiAgc2V0U3R5bGUoc3R5bGU6IFRleHRJbnB1dFN0eWxlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuc3R5bGUgPSBzdHlsZTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbWluaW11bSBsZW5ndGggb2YgdGhpcyB0ZXh0IGlucHV0XHJcbiAgICogQHBhcmFtIG1pbkxlbmd0aCBUaGUgbWluaW11bSBsZW5ndGhcclxuICAgKi9cclxuICBzZXRNaW5MZW5ndGgobWluTGVuZ3RoOiBudW1iZXIpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5taW5fbGVuZ3RoID0gbWluTGVuZ3RoO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGlzIHRleHQgaW5wdXRcclxuICAgKiBAcGFyYW0gbWF4TGVuZ3RoIFRoZSBtYXhpbXVtIGxlbmd0aFxyXG4gICAqL1xyXG4gIHNldE1heExlbmd0aChtYXhMZW5ndGg6IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLm1heF9sZW5ndGggPSBtYXhMZW5ndGg7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgd2hldGhlciB0aGlzIHRleHQgaW5wdXQgaXMgcmVxdWlyZWRcclxuICAgKiBAcGFyYW0gcmVxdWlyZWQgV2hldGhlciB0aGUgdGV4dCBpbnB1dCBpcyByZXF1aXJlZFxyXG4gICAqL1xyXG4gIHNldFJlcXVpcmVkKHJlcXVpcmVkID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoaXMgdGV4dCBpbnB1dFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcclxuICAgKi9cclxuICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudmFsdWUgPSB2YWx1ZTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhpcyB0ZXh0IGlucHV0XHJcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlclxyXG4gICAqL1xyXG4gIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGV4dCBpbnB1dFxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElUZXh0SW5wdXRDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhIH0gYXMgQVBJVGV4dElucHV0Q29tcG9uZW50O1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgYnVpbGRlciBmb3IgY3JlYXRpbmcgbW9kYWxzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTW9kYWxCdWlsZGVyIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YTogUGFydGlhbDxBUElNb2RhbD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJTW9kYWw+ID0ge30pIHtcclxuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xyXG4gICAgaWYgKCF0aGlzLmRhdGEuY29tcG9uZW50cykgdGhpcy5kYXRhLmNvbXBvbmVudHMgPSBbXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIG1vZGFsXHJcbiAgICogQHBhcmFtIGN1c3RvbUlkIFRoZSBjdXN0b20gSURcclxuICAgKi9cclxuICBzZXRDdXN0b21JZChjdXN0b21JZDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuY3VzdG9tX2lkID0gY3VzdG9tSWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHRpdGxlIG9mIHRoaXMgbW9kYWxcclxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlXHJcbiAgICovXHJcbiAgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnRpdGxlID0gdGl0bGU7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgY29tcG9uZW50cyAoYWN0aW9uIHJvd3Mgd2l0aCB0ZXh0IGlucHV0cykgdG8gdGhpcyBtb2RhbFxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRzIFRoZSBjb21wb25lbnRzIHRvIGFkZFxyXG4gICAqL1xyXG4gIGFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50czogKEFQSU1vZGFsQWN0aW9uUm93IHwgeyB0b0pTT04oKTogQVBJTW9kYWxBY3Rpb25Sb3cgfSlbXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEuY29tcG9uZW50cykgdGhpcy5kYXRhLmNvbXBvbmVudHMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIGNvbXBvbmVudHMpIHtcclxuICAgICAgaWYgKCd0b0pTT04nIGluIGNvbXBvbmVudCAmJiB0eXBlb2YgY29tcG9uZW50LnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRoaXMuZGF0YS5jb21wb25lbnRzLnB1c2goY29tcG9uZW50LnRvSlNPTigpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGEuY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCBhcyBBUElNb2RhbEFjdGlvblJvdyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY29tcG9uZW50cyBvZiB0aGlzIG1vZGFsXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudHMgVGhlIGNvbXBvbmVudHMgdG8gc2V0XHJcbiAgICovXHJcbiAgc2V0Q29tcG9uZW50cyguLi5jb21wb25lbnRzOiAoQVBJTW9kYWxBY3Rpb25Sb3cgfCB7IHRvSlNPTigpOiBBUElNb2RhbEFjdGlvblJvdyB9KVtdKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuY29tcG9uZW50cyA9IFtdO1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50cyguLi5jb21wb25lbnRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBtb2RhbFxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElNb2RhbCB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElNb2RhbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kYWwgYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcclxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIG1vZGFsIGRhdGEgdG8gY29weVxyXG4gICAqL1xyXG4gIHN0YXRpYyBmcm9tKG90aGVyOiBQYXJ0aWFsPEFQSU1vZGFsPiB8IE1vZGFsQnVpbGRlcik6IE1vZGFsQnVpbGRlciB7XHJcbiAgICByZXR1cm4gbmV3IE1vZGFsQnVpbGRlcihvdGhlciBpbnN0YW5jZW9mIE1vZGFsQnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNb2RhbEJ1aWxkZXI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SelectMenuBuilder for creating select menus
|
|
3
|
+
*/
|
|
4
|
+
export interface APISelectMenuOption {
|
|
5
|
+
label: string;
|
|
6
|
+
value: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
emoji?: {
|
|
9
|
+
id?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
animated?: boolean;
|
|
12
|
+
};
|
|
13
|
+
default?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface APISelectMenuComponent {
|
|
16
|
+
type: 3;
|
|
17
|
+
custom_id: string;
|
|
18
|
+
options?: APISelectMenuOption[];
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
min_values?: number;
|
|
21
|
+
max_values?: number;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A builder for creating string select menus
|
|
26
|
+
*/
|
|
27
|
+
export declare class StringSelectMenuBuilder {
|
|
28
|
+
readonly data: Partial<APISelectMenuComponent>;
|
|
29
|
+
constructor(data?: Partial<APISelectMenuComponent>);
|
|
30
|
+
/**
|
|
31
|
+
* Sets the custom ID of this select menu
|
|
32
|
+
* @param customId The custom ID
|
|
33
|
+
*/
|
|
34
|
+
setCustomId(customId: string): this;
|
|
35
|
+
/**
|
|
36
|
+
* Sets the placeholder of this select menu
|
|
37
|
+
* @param placeholder The placeholder
|
|
38
|
+
*/
|
|
39
|
+
setPlaceholder(placeholder: string): this;
|
|
40
|
+
/**
|
|
41
|
+
* Sets the minimum values of this select menu
|
|
42
|
+
* @param minValues The minimum values
|
|
43
|
+
*/
|
|
44
|
+
setMinValues(minValues: number): this;
|
|
45
|
+
/**
|
|
46
|
+
* Sets the maximum values of this select menu
|
|
47
|
+
* @param maxValues The maximum values
|
|
48
|
+
*/
|
|
49
|
+
setMaxValues(maxValues: number): this;
|
|
50
|
+
/**
|
|
51
|
+
* Sets whether this select menu is disabled
|
|
52
|
+
* @param disabled Whether the select menu is disabled
|
|
53
|
+
*/
|
|
54
|
+
setDisabled(disabled?: boolean): this;
|
|
55
|
+
/**
|
|
56
|
+
* Adds options to this select menu
|
|
57
|
+
* @param options The options to add
|
|
58
|
+
*/
|
|
59
|
+
addOptions(...options: APISelectMenuOption[]): this;
|
|
60
|
+
/**
|
|
61
|
+
* Sets the options of this select menu
|
|
62
|
+
* @param options The options to set
|
|
63
|
+
*/
|
|
64
|
+
setOptions(...options: APISelectMenuOption[]): this;
|
|
65
|
+
/**
|
|
66
|
+
* Removes, replaces, or inserts options
|
|
67
|
+
* @param index The index to start at
|
|
68
|
+
* @param deleteCount The number of options to remove
|
|
69
|
+
* @param options The options to insert
|
|
70
|
+
*/
|
|
71
|
+
spliceOptions(index: number, deleteCount: number, ...options: APISelectMenuOption[]): this;
|
|
72
|
+
/**
|
|
73
|
+
* Returns the JSON representation of this select menu
|
|
74
|
+
*/
|
|
75
|
+
toJSON(): APISelectMenuComponent;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a new select menu builder from existing data
|
|
78
|
+
* @param other The select menu data to copy
|
|
79
|
+
*/
|
|
80
|
+
static from(other: Partial<APISelectMenuComponent> | StringSelectMenuBuilder): StringSelectMenuBuilder;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A builder for creating select menu options
|
|
84
|
+
*/
|
|
85
|
+
export declare class StringSelectMenuOptionBuilder {
|
|
86
|
+
readonly data: Partial<APISelectMenuOption>;
|
|
87
|
+
constructor(data?: Partial<APISelectMenuOption>);
|
|
88
|
+
/**
|
|
89
|
+
* Sets the label of this option
|
|
90
|
+
* @param label The label
|
|
91
|
+
*/
|
|
92
|
+
setLabel(label: string): this;
|
|
93
|
+
/**
|
|
94
|
+
* Sets the value of this option
|
|
95
|
+
* @param value The value
|
|
96
|
+
*/
|
|
97
|
+
setValue(value: string): this;
|
|
98
|
+
/**
|
|
99
|
+
* Sets the description of this option
|
|
100
|
+
* @param description The description
|
|
101
|
+
*/
|
|
102
|
+
setDescription(description: string): this;
|
|
103
|
+
/**
|
|
104
|
+
* Sets the emoji of this option
|
|
105
|
+
* @param emoji The emoji
|
|
106
|
+
*/
|
|
107
|
+
setEmoji(emoji: {
|
|
108
|
+
id?: string;
|
|
109
|
+
name?: string;
|
|
110
|
+
animated?: boolean;
|
|
111
|
+
} | string): this;
|
|
112
|
+
/**
|
|
113
|
+
* Sets whether this option is the default
|
|
114
|
+
* @param isDefault Whether this option is the default
|
|
115
|
+
*/
|
|
116
|
+
setDefault(isDefault?: boolean): this;
|
|
117
|
+
/**
|
|
118
|
+
* Returns the JSON representation of this option
|
|
119
|
+
*/
|
|
120
|
+
toJSON(): APISelectMenuOption;
|
|
121
|
+
}
|
|
122
|
+
export { StringSelectMenuBuilder as SelectMenuBuilder };
|
|
123
|
+
export default StringSelectMenuBuilder;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SelectMenuBuilder for creating select menus
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SelectMenuBuilder = exports.StringSelectMenuOptionBuilder = exports.StringSelectMenuBuilder = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* A builder for creating string select menus
|
|
9
|
+
*/
|
|
10
|
+
class StringSelectMenuBuilder {
|
|
11
|
+
data;
|
|
12
|
+
constructor(data = {}) {
|
|
13
|
+
this.data = { type: 3, ...data };
|
|
14
|
+
if (!this.data.options)
|
|
15
|
+
this.data.options = [];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Sets the custom ID of this select menu
|
|
19
|
+
* @param customId The custom ID
|
|
20
|
+
*/
|
|
21
|
+
setCustomId(customId) {
|
|
22
|
+
this.data.custom_id = customId;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sets the placeholder of this select menu
|
|
27
|
+
* @param placeholder The placeholder
|
|
28
|
+
*/
|
|
29
|
+
setPlaceholder(placeholder) {
|
|
30
|
+
this.data.placeholder = placeholder;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Sets the minimum values of this select menu
|
|
35
|
+
* @param minValues The minimum values
|
|
36
|
+
*/
|
|
37
|
+
setMinValues(minValues) {
|
|
38
|
+
this.data.min_values = minValues;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sets the maximum values of this select menu
|
|
43
|
+
* @param maxValues The maximum values
|
|
44
|
+
*/
|
|
45
|
+
setMaxValues(maxValues) {
|
|
46
|
+
this.data.max_values = maxValues;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sets whether this select menu is disabled
|
|
51
|
+
* @param disabled Whether the select menu is disabled
|
|
52
|
+
*/
|
|
53
|
+
setDisabled(disabled = true) {
|
|
54
|
+
this.data.disabled = disabled;
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Adds options to this select menu
|
|
59
|
+
* @param options The options to add
|
|
60
|
+
*/
|
|
61
|
+
addOptions(...options) {
|
|
62
|
+
if (!this.data.options)
|
|
63
|
+
this.data.options = [];
|
|
64
|
+
this.data.options.push(...options);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sets the options of this select menu
|
|
69
|
+
* @param options The options to set
|
|
70
|
+
*/
|
|
71
|
+
setOptions(...options) {
|
|
72
|
+
this.data.options = options;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Removes, replaces, or inserts options
|
|
77
|
+
* @param index The index to start at
|
|
78
|
+
* @param deleteCount The number of options to remove
|
|
79
|
+
* @param options The options to insert
|
|
80
|
+
*/
|
|
81
|
+
spliceOptions(index, deleteCount, ...options) {
|
|
82
|
+
if (!this.data.options)
|
|
83
|
+
this.data.options = [];
|
|
84
|
+
this.data.options.splice(index, deleteCount, ...options);
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Returns the JSON representation of this select menu
|
|
89
|
+
*/
|
|
90
|
+
toJSON() {
|
|
91
|
+
return { ...this.data };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Creates a new select menu builder from existing data
|
|
95
|
+
* @param other The select menu data to copy
|
|
96
|
+
*/
|
|
97
|
+
static from(other) {
|
|
98
|
+
return new StringSelectMenuBuilder(other instanceof StringSelectMenuBuilder ? other.data : other);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.StringSelectMenuBuilder = StringSelectMenuBuilder;
|
|
102
|
+
exports.SelectMenuBuilder = StringSelectMenuBuilder;
|
|
103
|
+
/**
|
|
104
|
+
* A builder for creating select menu options
|
|
105
|
+
*/
|
|
106
|
+
class StringSelectMenuOptionBuilder {
|
|
107
|
+
data;
|
|
108
|
+
constructor(data = {}) {
|
|
109
|
+
this.data = { ...data };
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Sets the label of this option
|
|
113
|
+
* @param label The label
|
|
114
|
+
*/
|
|
115
|
+
setLabel(label) {
|
|
116
|
+
this.data.label = label;
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Sets the value of this option
|
|
121
|
+
* @param value The value
|
|
122
|
+
*/
|
|
123
|
+
setValue(value) {
|
|
124
|
+
this.data.value = value;
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sets the description of this option
|
|
129
|
+
* @param description The description
|
|
130
|
+
*/
|
|
131
|
+
setDescription(description) {
|
|
132
|
+
this.data.description = description;
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Sets the emoji of this option
|
|
137
|
+
* @param emoji The emoji
|
|
138
|
+
*/
|
|
139
|
+
setEmoji(emoji) {
|
|
140
|
+
if (typeof emoji === 'string') {
|
|
141
|
+
this.data.emoji = { name: emoji };
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
this.data.emoji = emoji;
|
|
145
|
+
}
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Sets whether this option is the default
|
|
150
|
+
* @param isDefault Whether this option is the default
|
|
151
|
+
*/
|
|
152
|
+
setDefault(isDefault = true) {
|
|
153
|
+
this.data.default = isDefault;
|
|
154
|
+
return this;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Returns the JSON representation of this option
|
|
158
|
+
*/
|
|
159
|
+
toJSON() {
|
|
160
|
+
return { ...this.data };
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.StringSelectMenuOptionBuilder = StringSelectMenuOptionBuilder;
|
|
164
|
+
exports.default = StringSelectMenuBuilder;
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TWVudUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMvU2VsZWN0TWVudUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFvQkg7O0dBRUc7QUFDSCxNQUFhLHVCQUF1QjtJQUNsQixJQUFJLENBQWtDO0lBRXRELFlBQVksT0FBd0MsRUFBRTtRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLFdBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxH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LENBQUM7SUFDakQsQ0FBQztDQUNGO0FBOURELHNFQThEQztBQUtELGtCQUFlLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNlbGVjdE1lbnVCdWlsZGVyIGZvciBjcmVhdGluZyBzZWxlY3QgbWVudXNcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVNlbGVjdE1lbnVPcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBlbW9qaT86IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGFuaW1hdGVkPzogYm9vbGVhbiB9O1xyXG4gIGRlZmF1bHQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVNlbGVjdE1lbnVDb21wb25lbnQge1xyXG4gIHR5cGU6IDM7XHJcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IEFQSVNlbGVjdE1lbnVPcHRpb25bXTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5fdmFsdWVzPzogbnVtYmVyO1xyXG4gIG1heF92YWx1ZXM/OiBudW1iZXI7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBzdHJpbmcgc2VsZWN0IG1lbnVzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVDb21wb25lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVDb21wb25lbnQ+ID0ge30pIHtcclxuICAgIHRoaXMuZGF0YSA9IHsgdHlwZTogMywgLi4uZGF0YSB9O1xyXG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIHNlbGVjdCBtZW51XHJcbiAgICogQHBhcmFtIGN1c3RvbUlkIFRoZSBjdXN0b20gSURcclxuICAgKi9cclxuICBzZXRDdXN0b21JZChjdXN0b21JZDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuY3VzdG9tX2lkID0gY3VzdG9tSWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyXHJcbiAgICovXHJcbiAgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG1pbmltdW0gdmFsdWVzIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gbWluVmFsdWVzIFRoZSBtaW5pbXVtIHZhbHVlc1xyXG4gICAqL1xyXG4gIHNldE1pblZhbHVlcyhtaW5WYWx1ZXM6IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLm1pbl92YWx1ZXMgPSBtaW5WYWx1ZXM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG1heGltdW0gdmFsdWVzIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gbWF4VmFsdWVzIFRoZSBtYXhpbXVtIHZhbHVlc1xyXG4gICAqL1xyXG4gIHNldE1heFZhbHVlcyhtYXhWYWx1ZXM6IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLm1heF92YWx1ZXMgPSBtYXhWYWx1ZXM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgd2hldGhlciB0aGlzIHNlbGVjdCBtZW51IGlzIGRpc2FibGVkXHJcbiAgICogQHBhcmFtIGRpc2FibGVkIFdoZXRoZXIgdGhlIHNlbGVjdCBtZW51IGlzIGRpc2FibGVkXHJcbiAgICovXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQgPSB0cnVlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcyBvcHRpb25zIHRvIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBhZGRcclxuICAgKi9cclxuICBhZGRPcHRpb25zKC4uLm9wdGlvbnM6IEFQSVNlbGVjdE1lbnVPcHRpb25bXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5vcHRpb25zLnB1c2goLi4ub3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG9wdGlvbnMgb2YgdGhpcyBzZWxlY3QgbWVudVxyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHNldFxyXG4gICAqL1xyXG4gIHNldE9wdGlvbnMoLi4ub3B0aW9uczogQVBJU2VsZWN0TWVudU9wdGlvbltdKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMsIHJlcGxhY2VzLCBvciBpbnNlcnRzIG9wdGlvbnNcclxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IHRvIHN0YXJ0IGF0XHJcbiAgICogQHBhcmFtIGRlbGV0ZUNvdW50IFRoZSBudW1iZXIgb2Ygb3B0aW9ucyB0byByZW1vdmVcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBpbnNlcnRcclxuICAgKi9cclxuICBzcGxpY2VPcHRpb25zKGluZGV4OiBudW1iZXIsIGRlbGV0ZUNvdW50OiBudW1iZXIsIC4uLm9wdGlvbnM6IEFQSVNlbGVjdE1lbnVPcHRpb25bXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5vcHRpb25zLnNwbGljZShpbmRleCwgZGVsZXRlQ291bnQsIC4uLm9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKi9cclxuICB0b0pTT04oKTogQVBJU2VsZWN0TWVudUNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElTZWxlY3RNZW51Q29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBzZWxlY3QgbWVudSBidWlsZGVyIGZyb20gZXhpc3RpbmcgZGF0YVxyXG4gICAqIEBwYXJhbSBvdGhlciBUaGUgc2VsZWN0IG1lbnUgZGF0YSB0byBjb3B5XHJcbiAgICovXHJcbiAgc3RhdGljIGZyb20ob3RoZXI6IFBhcnRpYWw8QVBJU2VsZWN0TWVudUNvbXBvbmVudD4gfCBTdHJpbmdTZWxlY3RNZW51QnVpbGRlcik6IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyIHtcclxuICAgIHJldHVybiBuZXcgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIob3RoZXIgaW5zdGFuY2VvZiBTdHJpbmdTZWxlY3RNZW51QnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBzZWxlY3QgbWVudSBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU3RyaW5nU2VsZWN0TWVudU9wdGlvbkJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVPcHRpb24+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVPcHRpb24+ID0ge30pIHtcclxuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbGFiZWwgb2YgdGhpcyBvcHRpb25cclxuICAgKiBAcGFyYW0gbGFiZWwgVGhlIGxhYmVsXHJcbiAgICovXHJcbiAgc2V0TGFiZWwobGFiZWw6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLmxhYmVsID0gbGFiZWw7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZVxyXG4gICAqL1xyXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIG9wdGlvblxyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb25cclxuICAgKi9cclxuICBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZW1vamkgb2YgdGhpcyBvcHRpb25cclxuICAgKiBAcGFyYW0gZW1vamkgVGhlIGVtb2ppXHJcbiAgICovXHJcbiAgc2V0RW1vamkoZW1vamk6IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGFuaW1hdGVkPzogYm9vbGVhbiB9IHwgc3RyaW5nKTogdGhpcyB7XHJcbiAgICBpZiAodHlwZW9mIGVtb2ppID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLmRhdGEuZW1vamkgPSB7IG5hbWU6IGVtb2ppIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGEuZW1vamkgPSBlbW9qaTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB3aGV0aGVyIHRoaXMgb3B0aW9uIGlzIHRoZSBkZWZhdWx0XHJcbiAgICogQHBhcmFtIGlzRGVmYXVsdCBXaGV0aGVyIHRoaXMgb3B0aW9uIGlzIHRoZSBkZWZhdWx0XHJcbiAgICovXHJcbiAgc2V0RGVmYXVsdChpc0RlZmF1bHQgPSB0cnVlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGVmYXVsdCA9IGlzRGVmYXVsdDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9wdGlvblxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElTZWxlY3RNZW51T3B0aW9uIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YSB9IGFzIEFQSVNlbGVjdE1lbnVPcHRpb247XHJcbiAgfVxyXG59XHJcblxyXG4vLyBBbGlhcyBmb3IgREpTIGNvbXBhdGliaWxpdHlcclxuZXhwb3J0IHsgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIgYXMgU2VsZWN0TWVudUJ1aWxkZXIgfTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyO1xyXG4iXX0=
|