(v4.2.0) Added sub-panels
This commit is contained in:
@@ -270,12 +270,13 @@ export async function loadPanelAutoUpdateCode(){
|
||||
const message = await opendiscord.client.fetchChannelMessage(channel,panelState.messageId)
|
||||
if (!message || !message.editable || message.flags.has("Ephemeral")) continue
|
||||
|
||||
const panelMessage = await message.edit((await opendiscord.builders.messages.getSafe("opendiscord:panel").build("auto-update",{guild:mainServer,channel,user:opendiscord.client.client.user,panel})).message)
|
||||
const panelMessage = await message.edit((await opendiscord.builders.messages.getSafe("opendiscord:panel").build("auto-update",{guild:mainServer,channel,user:opendiscord.client.client.user,panel,isSubPanel:false})).message)
|
||||
if (panelMessage) await panelMsgState.setMsgState({channel,message:panelMessage},{
|
||||
messageOrigin:"auto-update",
|
||||
panelId:panel.id.value,
|
||||
panelOptionIds:panel.get("opendiscord:options").value,
|
||||
panelAutoUpdate:true
|
||||
panelAutoUpdate:true,
|
||||
isSubPanel:false
|
||||
},panelMessage.flags.has("Ephemeral"))
|
||||
|
||||
opendiscord.log("Panel in server got auto-updated!","info",[
|
||||
|
||||
@@ -9,11 +9,9 @@ export async function loadAllOptions(){
|
||||
const loadedOption = loadTicketOption(option)
|
||||
opendiscord.options.add(loadedOption)
|
||||
opendiscord.options.suffix.add(loadTicketOptionSuffix(loadedOption))
|
||||
}else if (option.type == "website"){
|
||||
opendiscord.options.add(loadWebsiteOption(option))
|
||||
}else if (option.type == "role"){
|
||||
opendiscord.options.add(loadRoleOption(option))
|
||||
}
|
||||
}else if (option.type == "website") opendiscord.options.add(loadWebsiteOption(option))
|
||||
else if (option.type == "role") opendiscord.options.add(loadRoleOption(option))
|
||||
else if (option.type == "sub-panel") opendiscord.options.add(loadSubPanelOption(option))
|
||||
})
|
||||
|
||||
//update options on config reload
|
||||
@@ -23,17 +21,15 @@ export async function loadAllOptions(){
|
||||
await opendiscord.options.suffix.loopAll((data,id) => {opendiscord.options.suffix.remove(id)})
|
||||
|
||||
//add new options
|
||||
optionConfig.data.forEach((option) => {
|
||||
for (const option of optionConfig.data){
|
||||
if (option.type == "ticket"){
|
||||
const loadedOption = loadTicketOption(option)
|
||||
opendiscord.options.add(loadedOption)
|
||||
opendiscord.options.suffix.add(loadTicketOptionSuffix(loadedOption))
|
||||
}else if (option.type == "website"){
|
||||
opendiscord.options.add(loadWebsiteOption(option))
|
||||
}else if (option.type == "role"){
|
||||
opendiscord.options.add(loadRoleOption(option))
|
||||
}
|
||||
})
|
||||
}else if (option.type == "website") opendiscord.options.add(loadWebsiteOption(option))
|
||||
else if (option.type == "role") opendiscord.options.add(loadRoleOption(option))
|
||||
else if (option.type == "sub-panel") opendiscord.options.add(loadSubPanelOption(option))
|
||||
}
|
||||
|
||||
//update options in tickets
|
||||
await opendiscord.tickets.loopAll((ticket) => {
|
||||
@@ -132,6 +128,19 @@ export const loadRoleOption = (opt:api.ODOptionsJsonConfig_RoleOption): api.ODRo
|
||||
])
|
||||
}
|
||||
|
||||
export const loadSubPanelOption = (opt:api.ODOptionsJsonConfig_SubPanelOption): api.ODSubPanelOption => {
|
||||
return new api.ODSubPanelOption(opt.id,[
|
||||
new api.ODOptionData("opendiscord:name",opt.name),
|
||||
new api.ODOptionData("opendiscord:description",opt.description),
|
||||
|
||||
new api.ODOptionData("opendiscord:button-emoji",opt.button.emoji),
|
||||
new api.ODOptionData("opendiscord:button-label",opt.button.label),
|
||||
new api.ODOptionData("opendiscord:button-color",opt.button.color),
|
||||
|
||||
new api.ODOptionData("opendiscord:panel-id",opt.subPanelId)
|
||||
])
|
||||
}
|
||||
|
||||
export const loadTicketOptionSuffix = (option:api.ODTicketOption): api.ODOptionSuffix => {
|
||||
const mode = option.get("opendiscord:channel-suffix").value
|
||||
const globalDatabase = opendiscord.databases.get("opendiscord:global")
|
||||
|
||||
Reference in New Issue
Block a user