(v4.2.0) Added sub-panels

This commit is contained in:
DJj123dj
2026-05-23 15:53:52 +02:00
parent 7f02dd5848
commit c64220cad4
14 changed files with 244 additions and 132 deletions
+17 -2
View File
@@ -123,7 +123,7 @@ const panelButtons = () => {
new api.ODWorker("opendiscord:ticket-option",0,async (instance,params) => {
const {panel,option} = params
instance.setCustomId("od:ticket-option_"+panel.id.value+"_"+option.id.value)
instance.setCustomId("od:ticket-option|"+option.id.value)
instance.setMode("button")
instance.setColor(option.get("opendiscord:button-color").value)
if (option.get("opendiscord:button-emoji").value) instance.setEmoji(option.get("opendiscord:button-emoji").value)
@@ -152,7 +152,22 @@ const panelButtons = () => {
new api.ODWorker("opendiscord:role-option",0,async (instance,params) => {
const {panel,option} = params
instance.setCustomId("od:role-option_"+panel.id.value+"_"+option.id.value)
instance.setCustomId("od:role-option|"+option.id.value)
instance.setMode("button")
instance.setColor(option.get("opendiscord:button-color").value)
if (option.get("opendiscord:button-emoji").value) instance.setEmoji(option.get("opendiscord:button-emoji").value)
if (option.get("opendiscord:button-label").value) instance.setLabel(option.get("opendiscord:button-label").value)
if (!option.get("opendiscord:button-emoji").value && !option.get("opendiscord:button-label").value) instance.setLabel("<"+option.id.value+">")
})
)
//SUB-PANEL OPTION
buttons.add(new api.ODButton("opendiscord:subpanel-option"))
buttons.get("opendiscord:subpanel-option").workers.add(
new api.ODWorker("opendiscord:subpanel-option",0,async (instance,params) => {
const {panel,option} = params
instance.setCustomId("od:subpanel-option|"+option.id.value)
instance.setMode("button")
instance.setColor(option.get("opendiscord:button-color").value)
if (option.get("opendiscord:button-emoji").value) instance.setEmoji(option.get("opendiscord:button-emoji").value)
+2 -2
View File
@@ -24,14 +24,14 @@ const panelDropdowns = () => {
return {
label:(label.length > 0) ? label : "<no-label-provided>",
value:"od:ticket-option_"+panel.id.value+"_"+option.id.value,
value:"od:ticket-option|"+option.id.value,
emoji:(emoji.length > 0) ? emoji : undefined,
description:(desc.length > 0) ? desc : undefined,
default:false
}
})
instance.setCustomId("od:panel-dropdown_"+panel.id.value)
instance.setCustomId("od:panel-dropdown")
instance.setType("string")
instance.setMaxValues(1)
instance.setMinValues(0)
+6 -2
View File
@@ -274,7 +274,10 @@ const panelMessages = () => {
messages.add(new api.ODMessage("opendiscord:panel"))
messages.get("opendiscord:panel").workers.add([
new api.ODWorker("opendiscord:panel-layout",1,async (instance,params,origin) => {
const {guild,channel,user,panel} = params
const {guild,channel,user,panel,isSubPanel} = params
//ephemeral if sub-panel
if (isSubPanel) instance.setEphemeral(true)
//add text
const text = panel.get("opendiscord:text").value
@@ -292,7 +295,7 @@ const panelMessages = () => {
//add embed
const embedOptions = panel.get("opendiscord:embed").value
if (embedOptions.enabled) instance.addEmbed(await embeds.getSafe("opendiscord:panel").build(origin,{guild,channel,user,panel}))
if (embedOptions.enabled) instance.addEmbed(await embeds.getSafe("opendiscord:panel").build(origin,{guild,channel,user,panel,isSubPanel}))
}),
new api.ODWorker("opendiscord:panel-components",0,async (instance,params,origin) => {
const {guild,channel,user,panel} = params
@@ -315,6 +318,7 @@ const panelMessages = () => {
if (option instanceof api.ODTicketOption) instance.addComponent(await buttons.getSafe("opendiscord:ticket-option").build(origin,{guild,channel,user,panel,option}))
else if (option instanceof api.ODWebsiteOption) instance.addComponent(await buttons.getSafe("opendiscord:website-option").build(origin,{guild,channel,user,panel,option}))
else if (option instanceof api.ODRoleOption) instance.addComponent(await buttons.getSafe("opendiscord:role-option").build(origin,{guild,channel,user,panel,option}))
else if (option instanceof api.ODSubPanelOption) instance.addComponent(await buttons.getSafe("opendiscord:subpanel-option").build(origin,{guild,channel,user,panel,option}))
}
}
})