-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathaddChannelSelectMenu.ts
More file actions
69 lines (64 loc) · 2.04 KB
/
addChannelSelectMenu.ts
File metadata and controls
69 lines (64 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
* SPDX-License-Identifier: LGPL-3.0-or-later
* Copyright © 2026 BotForge
*/
import { ChannelSelectMenuBuilder, ComponentType } from "discord.js"
import { ArgType, NativeFunction } from "../../structures"
export default new NativeFunction({
name: "$addChannelSelectMenu",
version: "1.4.0",
description: "Creates a channel select menu",
brackets: true,
unwrap: true,
args: [
{
name: "custom ID",
description: "The custom id for this menu",
rest: false,
required: true,
type: ArgType.String
},
{
name: "placeholder",
description: "The placeholder to use for the menu",
rest: false,
type: ArgType.String,
},
{
name: "min values",
description: "The min values to choose for the menu",
rest: false,
type: ArgType.Number,
},
{
name: "max values",
description: "The max values to choose for the menu",
rest: false,
type: ArgType.Number,
},
{
name: "disabled",
description: "Whether the menu is disabled by default",
rest: false,
type: ArgType.Boolean
},
{
name: "required",
description: "Whether this menu is required inside a modal",
rest: false,
type: ArgType.Boolean,
},
],
execute(ctx, [ id, placeholder, min, max, disabled, required ]) {
const menu = new ChannelSelectMenuBuilder()
.setDisabled(disabled || false)
.setRequired(required || false)
.setCustomId(id)
if (placeholder) menu.setPlaceholder(placeholder)
if (min) menu.setMinValues(min)
if (max) menu.setMaxValues(max)
if (ctx.container.isInside(ComponentType.Label)) ctx.component.label?.setChannelSelectMenuComponent(menu)
else ctx.container.actionRow?.addComponents(menu)
return this.success()
}
})