(v4.2) Open Discord Framework Update (Part 2)
Replaced all "Default" classes & types with ID mappings & improved types. Updated Interactive Setup CLI & certain events, renamed ODStat's to ODStatistics. Moved many classes, types & interfaces to the framework
This commit is contained in:
+3
-3
@@ -25,12 +25,12 @@
|
||||
"type": "commonjs",
|
||||
"license": "GPL-3.0-only",
|
||||
"dependencies": {
|
||||
"@discordjs/rest": "^2.6.0",
|
||||
"@open-discord-bots/framework": "^0.1.2",
|
||||
"@discordjs/rest": "^2.6.1",
|
||||
"@open-discord-bots/framework": "^0.2.8",
|
||||
"@types/node": "^22.5.0",
|
||||
"@types/terminal-kit": "^2.5.7",
|
||||
"ansis": "^4.2.0",
|
||||
"discord.js": "^14.24.2",
|
||||
"discord.js": "^14.26.0",
|
||||
"formatted-json-stringify": "^1.2.1",
|
||||
"terminal-kit": "^3.1.2",
|
||||
"typescript": "^5.9.3"
|
||||
|
||||
@@ -22,8 +22,8 @@ export const registerActions = async () => {
|
||||
ticket.get("opendiscord:busy").value = true
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-claimed",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-claimed",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-claimed",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-claimed",user.id,1,"increase")
|
||||
|
||||
//update category
|
||||
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
||||
|
||||
@@ -30,8 +30,8 @@ export const registerActions = async () => {
|
||||
ticket.get("opendiscord:busy").value = true
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-closed",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-closed",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-closed",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-closed",user.id,1,"increase")
|
||||
|
||||
//update category
|
||||
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
||||
|
||||
@@ -184,8 +184,8 @@ export const registerActions = async () => {
|
||||
])
|
||||
|
||||
//manage stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-created",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-created",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-created",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-created",user.id,1,"increase")
|
||||
|
||||
//manage bot permissions
|
||||
await opendiscord.events.get("onTicketPermissionsCreated").emit([option,opendiscord.permissions,channel,user])
|
||||
@@ -215,7 +215,7 @@ export const registerActions = async () => {
|
||||
if (generalConfig.data.system.pinFirstTicketMessage && msg.pinnable) await msg.pin("Ticket Message")
|
||||
|
||||
//manage stats
|
||||
await opendiscord.stats.get("opendiscord:ticket").setStat("opendiscord:messages-sent",ticket.id.value,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:ticket").setStat("opendiscord:messages-sent",ticket.id.value,1,"increase")
|
||||
|
||||
await opendiscord.events.get("afterTicketMainMessageCreated").emit([ticket,msg,channel,user])
|
||||
}catch(err){
|
||||
|
||||
@@ -149,8 +149,8 @@ export const registerActions = async () => {
|
||||
})
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:transcripts-created",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:transcripts-created",params.user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:transcripts-created",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:transcripts-created",params.user.id,1,"increase")
|
||||
await opendiscord.events.get("afterTranscriptCreated").emit([opendiscord.transcripts,instance.result.ticket,instance.result.channel,instance.result.user])
|
||||
}),
|
||||
new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => {
|
||||
|
||||
@@ -59,8 +59,8 @@ export const registerActions = async () => {
|
||||
}
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-deleted",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-deleted",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-deleted",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-deleted",user.id,1,"increase")
|
||||
|
||||
//delete ticket from manager
|
||||
opendiscord.tickets.remove(ticket.id)
|
||||
|
||||
@@ -17,8 +17,8 @@ export const registerActions = async () => {
|
||||
ticket.option = data
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-moved",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-moved",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-moved",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-moved",user.id,1,"increase")
|
||||
|
||||
//get new channel properties
|
||||
const channelPrefix = ticket.option.get("opendiscord:channel-prefix").value
|
||||
|
||||
@@ -22,8 +22,8 @@ export const registerActions = async () => {
|
||||
ticket.get("opendiscord:busy").value = true
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-pinned",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-pinned",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-pinned",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-pinned",user.id,1,"increase")
|
||||
|
||||
//move to top of category
|
||||
if (channel.parent){
|
||||
|
||||
@@ -35,8 +35,8 @@ export const registerActions = async () => {
|
||||
}
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-reopened",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-reopened",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-reopened",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-reopened",user.id,1,"increase")
|
||||
|
||||
//update category
|
||||
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
||||
|
||||
@@ -33,8 +33,8 @@ export const registerActions = async () => {
|
||||
}
|
||||
|
||||
//update stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-transferred",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-transferred",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-transferred",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:tickets-transferred",user.id,1,"increase")
|
||||
|
||||
//get new channel properties
|
||||
const channelPrefix = ticket.option.get("opendiscord:channel-prefix").value
|
||||
|
||||
@@ -387,7 +387,7 @@ const statsEmbeds = () => {
|
||||
new api.ODWorker("opendiscord:stats-global",0,async (instance,params) => {
|
||||
const {guild,channel,user} = params
|
||||
|
||||
const scope = opendiscord.stats.get("opendiscord:global")
|
||||
const scope = opendiscord.statistics.get("opendiscord:global")
|
||||
if (!scope) return
|
||||
const data = await scope.render("GLOBAL",guild,channel,user)
|
||||
|
||||
@@ -397,7 +397,7 @@ const statsEmbeds = () => {
|
||||
|
||||
if (opendiscord.permissions.hasPermissions("owner",await opendiscord.permissions.getPermissions(user,channel,guild))){
|
||||
//show system data when owner or developer
|
||||
const systemScope = opendiscord.stats.get("opendiscord:system")
|
||||
const systemScope = opendiscord.statistics.get("opendiscord:system")
|
||||
if (!systemScope) return
|
||||
const systemData = await systemScope.render("GLOBAL",guild,channel,user)
|
||||
instance.addFields({name:systemScope.name,value:systemData,inline:false})
|
||||
@@ -411,9 +411,9 @@ const statsEmbeds = () => {
|
||||
new api.ODWorker("opendiscord:stats-ticket",0,async (instance,params) => {
|
||||
const {guild,channel,user,scopeData} = params
|
||||
|
||||
const scope = opendiscord.stats.get("opendiscord:ticket")
|
||||
const participantsScope = opendiscord.stats.get("opendiscord:participants")
|
||||
const messagesScope = opendiscord.stats.get("opendiscord:messages")
|
||||
const scope = opendiscord.statistics.get("opendiscord:ticket")
|
||||
const participantsScope = opendiscord.statistics.get("opendiscord:participants")
|
||||
const messagesScope = opendiscord.statistics.get("opendiscord:messages")
|
||||
if (!scope || !participantsScope || !messagesScope) return
|
||||
const data = await scope.render(scopeData.id.value,guild,channel,user)
|
||||
const participantsData = await participantsScope.render(scopeData.id.value,guild,channel,user)
|
||||
@@ -433,7 +433,7 @@ const statsEmbeds = () => {
|
||||
new api.ODWorker("opendiscord:stats-user",0,async (instance,params) => {
|
||||
const {guild,channel,user,scopeData} = params
|
||||
|
||||
const scope = opendiscord.stats.get("opendiscord:user")
|
||||
const scope = opendiscord.statistics.get("opendiscord:user")
|
||||
if (!scope) return
|
||||
const data = await scope.render(scopeData.id,guild,channel,user)
|
||||
|
||||
|
||||
@@ -51,8 +51,8 @@ export const registerCommandResponders = async () => {
|
||||
])
|
||||
|
||||
//manage stats
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:users-blacklisted",1,"increase")
|
||||
await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:users-blacklisted",user.id,1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:users-blacklisted",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:user").setStat("opendiscord:users-blacklisted",user.id,1,"increase")
|
||||
|
||||
await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:blacklist-add").build(source,{guild,channel,user,data,reason}))
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ export const registerCommandResponders = async () => {
|
||||
|
||||
}else if (scope == "reset"){
|
||||
const reason = instance.options.getString("reason",false)
|
||||
opendiscord.stats.reset()
|
||||
opendiscord.statistics.reset()
|
||||
await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:stats-reset").build(source,{guild,channel,user,reason}))
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
//EXPORT FRAMEWORK
|
||||
export * from "@open-discord-bots/framework/api"
|
||||
|
||||
//EXPORT OPEN TICKET MAPPINGS
|
||||
export * from "./mappings/action"
|
||||
export * from "./mappings/base"
|
||||
export * from "./mappings/builder"
|
||||
export * from "./mappings/checker"
|
||||
export * from "./mappings/client"
|
||||
export * from "./mappings/code"
|
||||
export * from "./mappings/config"
|
||||
export * from "./mappings/console"
|
||||
export * from "./mappings/cooldown"
|
||||
export * from "./mappings/database"
|
||||
export * from "./mappings/event"
|
||||
export * from "./mappings/flag"
|
||||
export * from "./mappings/fuse"
|
||||
export * from "./mappings/helpmenu"
|
||||
export * from "./mappings/language"
|
||||
export * from "./mappings/permission"
|
||||
export * from "./mappings/plugin"
|
||||
export * from "./mappings/post"
|
||||
export * from "./mappings/progressbar"
|
||||
export * from "./mappings/responder"
|
||||
export * from "./mappings/session"
|
||||
export * from "./mappings/startscreen"
|
||||
export * from "./mappings/statistic"
|
||||
export * from "./mappings/verifybar"
|
||||
|
||||
//EXPORT OPENTICKET MODULES
|
||||
export * from "./api/blacklist"
|
||||
export * from "./api/option"
|
||||
export * from "./api/panel"
|
||||
export * from "./api/priority"
|
||||
export * from "./api/question"
|
||||
export * from "./api/role"
|
||||
export * from "./api/ticket"
|
||||
export * from "./api/transcript"
|
||||
|
||||
//EXPORT MAIN MODULE
|
||||
export { ODOpenTicketMain } from "./main"
|
||||
@@ -1,42 +0,0 @@
|
||||
//EXPORT FRAMEWORK
|
||||
export * from "@open-discord-bots/framework/api"
|
||||
|
||||
//EXPORT DEFAULT MODULES
|
||||
export * from "./defaults/base"
|
||||
export * from "./defaults/event"
|
||||
export * from "./defaults/config"
|
||||
export * from "./defaults/database"
|
||||
export * from "./defaults/plugin"
|
||||
export * from "./defaults/checker"
|
||||
export * from "./defaults/client"
|
||||
export * from "./defaults/language"
|
||||
export * from "./defaults/builder"
|
||||
export * from "./defaults/responder"
|
||||
export * from "./defaults/action"
|
||||
export * from "./defaults/flag"
|
||||
export * from "./defaults/permission"
|
||||
export * from "./defaults/helpmenu"
|
||||
export * from "./defaults/session"
|
||||
export * from "./defaults/stat"
|
||||
export * from "./defaults/worker"
|
||||
export * from "./defaults/code"
|
||||
export * from "./defaults/cooldown"
|
||||
export * from "./defaults/post"
|
||||
export * from "./defaults/progressbar"
|
||||
export * from "./defaults/startscreen"
|
||||
export * from "./defaults/console"
|
||||
export * from "./defaults/verifybar"
|
||||
export * from "./defaults/fuse"
|
||||
|
||||
//EXPORT OPENTICKET MODULES
|
||||
export * from "./openticket/question"
|
||||
export * from "./openticket/option"
|
||||
export * from "./openticket/panel"
|
||||
export * from "./openticket/ticket"
|
||||
export * from "./openticket/blacklist"
|
||||
export * from "./openticket/transcript"
|
||||
export * from "./openticket/role"
|
||||
export * from "./openticket/priority"
|
||||
|
||||
//EXPORT MAIN MODULE
|
||||
export { ODOpenTicketMain } from "./main"
|
||||
@@ -1,45 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//BASE MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODVersionManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODVersionManager` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODVersionManagerIds_Default {
|
||||
"opendiscord:version":api.ODVersion,
|
||||
"opendiscord:last-version":api.ODVersion,
|
||||
"opendiscord:api":api.ODVersion,
|
||||
"opendiscord:transcripts":api.ODVersion,
|
||||
"opendiscord:livestatus":api.ODVersion
|
||||
}
|
||||
|
||||
/**## ODFlagManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFlagManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.flags`!
|
||||
*/
|
||||
export class ODVersionManager_Default extends api.ODVersionManager {
|
||||
get<VersionId extends keyof ODVersionManagerIds_Default>(id:VersionId): ODVersionManagerIds_Default[VersionId]
|
||||
get(id:api.ODValidId): api.ODVersion|null
|
||||
|
||||
get(id:api.ODValidId): api.ODVersion|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<VersionId extends keyof ODVersionManagerIds_Default>(id:VersionId): ODVersionManagerIds_Default[VersionId]
|
||||
remove(id:api.ODValidId): api.ODVersion|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODVersion|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODVersionManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,384 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT CONFIG CHECKER MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODLanguageManager_Default } from "./language"
|
||||
import ansis from "ansis"
|
||||
|
||||
/**## ODCheckerManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCheckerManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCheckerManagerIds_Default {
|
||||
"opendiscord:general":api.ODChecker,
|
||||
"opendiscord:questions":api.ODChecker,
|
||||
"opendiscord:options":api.ODChecker,
|
||||
"opendiscord:panels":api.ODChecker,
|
||||
"opendiscord:transcripts":api.ODChecker
|
||||
}
|
||||
|
||||
/**## ODCheckerManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCheckerManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.checkers`!
|
||||
*/
|
||||
export class ODCheckerManager_Default extends api.ODCheckerManager {
|
||||
declare translation: ODCheckerTranslationRegister_Default
|
||||
declare renderer: ODCheckerRenderer_Default
|
||||
declare functions: ODCheckerFunctionManager_Default
|
||||
|
||||
get<CheckerId extends keyof ODCheckerManagerIds_Default>(id:CheckerId): ODCheckerManagerIds_Default[CheckerId]
|
||||
get(id:api.ODValidId): api.ODChecker|null
|
||||
|
||||
get(id:api.ODValidId): api.ODChecker|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CheckerId extends keyof ODCheckerManagerIds_Default>(id:CheckerId): ODCheckerManagerIds_Default[CheckerId]
|
||||
remove(id:api.ODValidId): api.ODChecker|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODChecker|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODCheckerManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODCheckerRenderer_Default `default_class`
|
||||
* This is a special class that adds type definitions & features to the ODCheckerRenderer class.
|
||||
* It contains the code that renders the default config checker.
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.checkers.renderer`!
|
||||
*/
|
||||
export class ODCheckerRenderer_Default extends api.ODCheckerRenderer {
|
||||
extraHeaderText: string[] = []
|
||||
extraFooterText: string[] = []
|
||||
extraTopText: string[] = []
|
||||
extraBottomText: string[] = []
|
||||
|
||||
horizontalFiller: string = "="
|
||||
verticalFiller: string = "|"
|
||||
descriptionSeparator: string = " => "
|
||||
headerSeparator: string = " => "
|
||||
footerTipPrefix: string = "=> "
|
||||
|
||||
disableHeader: boolean = false
|
||||
disableFooter: boolean = false
|
||||
|
||||
getComponents(compact:boolean, renderEmpty:boolean, translation:ODCheckerTranslationRegister_Default, data:api.ODCheckerResult): string[] {
|
||||
const tm = translation
|
||||
const t = {
|
||||
headerOpenticket:tm.get("other","opendiscord:header-openticket") ?? "OPEN TICKET",
|
||||
headerConfigchecker:tm.get("other","opendiscord:header-configchecker") ?? "CONFIG CHECKER",
|
||||
headerDescription:tm.get("other","opendiscord:header-description") ?? "check for errors in your config files!",
|
||||
footerError:tm.get("other","opendiscord:footer-error") ?? "the bot won't start until all {0}'s are fixed!",
|
||||
footerWarning:tm.get("other","opendiscord:footer-warning") ?? "it's recommended to fix all {0}'s before starting!",
|
||||
footerSupport:tm.get("other","opendiscord:footer-support") ?? "SUPPORT: {0} - DOCS: {1}",
|
||||
error:tm.get("other","opendiscord:type-error") ?? "[ERROR]",
|
||||
warning:tm.get("other","opendiscord:type-warning") ?? "[WARNING]",
|
||||
info:tm.get("other","opendiscord:type-info") ?? "[INFO]",
|
||||
compactInfo:tm.get("other","opendiscord:compact-information") ?? "use {0} for more information!",
|
||||
dataPath:tm.get("other","opendiscord:data-path") ?? "path",
|
||||
dataDocs:tm.get("other","opendiscord:data-docs") ?? "docs",
|
||||
dataMessage:tm.get("other","opendiscord:data-message") ?? "message"
|
||||
}
|
||||
const hasErrors = data.messages.filter((m) => m.type == "error").length > 0
|
||||
const hasWarnings = data.messages.filter((m) => m.type == "warning").length > 0
|
||||
const hasInfo = data.messages.filter((m) => m.type == "info").length > 0
|
||||
|
||||
if (!renderEmpty && !hasErrors && !hasWarnings && (!hasInfo || compact)) return []
|
||||
|
||||
const headerText = ansis.bold.hex("#f8ba00")(t.headerOpenticket)+" "+t.headerConfigchecker+this.headerSeparator+ansis.hex("#f8ba00")(t.headerDescription)
|
||||
const footerErrorText = (hasErrors) ? this.footerTipPrefix+ansis.gray(tm.insertTranslationParams(t.footerError,[ansis.bold.red(t.error)])) : ""
|
||||
const footerWarningText = (hasWarnings) ? this.footerTipPrefix+ansis.gray(tm.insertTranslationParams(t.footerWarning,[ansis.bold.yellow(t.warning)])) : ""
|
||||
const footerSupportText = tm.insertTranslationParams(t.footerSupport,[ansis.green("https://discord.dj-dj.be"),ansis.green("https://otdocs.dj-dj.be")])
|
||||
const bottomCompactInfo = (compact) ? ansis.gray(tm.insertTranslationParams(t.compactInfo,[ansis.bold.green("npm start -- --checker")])) : ""
|
||||
|
||||
const finalHeader = [headerText,...this.extraHeaderText]
|
||||
const finalFooter = [footerErrorText,footerWarningText,footerSupportText,...this.extraFooterText]
|
||||
const finalTop = [...this.extraTopText]
|
||||
const finalBottom = [bottomCompactInfo,...this.extraBottomText]
|
||||
const borderLength = this.#getLongestLength([...finalHeader,...finalFooter])
|
||||
|
||||
const finalComponents: string[] = []
|
||||
|
||||
//header
|
||||
if (!this.disableHeader){
|
||||
finalHeader.forEach((text) => {
|
||||
if (text.length < 1) return
|
||||
finalComponents.push(this.#createBlockFromText(text,borderLength))
|
||||
})
|
||||
}
|
||||
finalComponents.push(this.#getHorizontalDivider(borderLength+4))
|
||||
|
||||
//top
|
||||
finalTop.forEach((text) => {
|
||||
if (text.length < 1) return
|
||||
finalComponents.push(this.verticalFiller+" "+text)
|
||||
})
|
||||
finalComponents.push(this.verticalFiller)
|
||||
|
||||
//messages
|
||||
if (compact){
|
||||
//use compact messages
|
||||
data.messages.forEach((msg,index) => {
|
||||
//compact mode doesn't render info
|
||||
if (msg.type == "info") return
|
||||
|
||||
//check if translation available & use it if possible
|
||||
const rawTranslation = tm.get("message",msg.messageId.value)
|
||||
const translatedMessage = (rawTranslation) ? tm.insertTranslationParams(rawTranslation,msg.translationParams) : msg.message
|
||||
|
||||
if (msg.type == "error") finalComponents.push(this.verticalFiller+" "+ansis.bold.red(`${t.error} ${translatedMessage}`))
|
||||
else if (msg.type == "warning") finalComponents.push(this.verticalFiller+" "+ansis.bold.yellow(`${t.warning} ${translatedMessage}`))
|
||||
|
||||
const pathSplitter = msg.path ? ":" : ""
|
||||
finalComponents.push(this.verticalFiller+ansis.bold(this.descriptionSeparator)+ansis.cyan(`${ansis.magenta(msg.filepath+pathSplitter)} ${msg.path}`))
|
||||
if (index != data.messages.length-1) finalComponents.push(this.verticalFiller)
|
||||
})
|
||||
}else{
|
||||
//use full messages
|
||||
data.messages.forEach((msg,index) => {
|
||||
//check if translation available & use it if possible
|
||||
const rawTranslation = tm.get("message",msg.messageId.value)
|
||||
const translatedMessage = (rawTranslation) ? tm.insertTranslationParams(rawTranslation,msg.translationParams) : msg.message
|
||||
|
||||
if (msg.type == "error") finalComponents.push(this.verticalFiller+" "+ansis.bold.red(`${t.error} ${translatedMessage}`))
|
||||
else if (msg.type == "warning") finalComponents.push(this.verticalFiller+" "+ansis.bold.yellow(`${t.warning} ${translatedMessage}`))
|
||||
else if (msg.type == "info") finalComponents.push(this.verticalFiller+" "+ansis.bold.blue(`${t.info} ${translatedMessage}`))
|
||||
|
||||
const pathSplitter = msg.path ? ":" : ""
|
||||
finalComponents.push(this.verticalFiller+" "+ansis.bold((t.dataPath)+this.descriptionSeparator)+ansis.cyan(`${ansis.magenta(msg.filepath+pathSplitter)} ${msg.path}`))
|
||||
if (msg.locationDocs) finalComponents.push(this.verticalFiller+" "+ansis.bold(t.dataDocs+this.descriptionSeparator)+ansis.italic.gray(msg.locationDocs))
|
||||
if (msg.messageDocs) finalComponents.push(this.verticalFiller+" "+ansis.bold(t.dataMessage+this.descriptionSeparator)+ansis.italic.gray(msg.messageDocs))
|
||||
if (index != data.messages.length-1) finalComponents.push(this.verticalFiller)
|
||||
})
|
||||
}
|
||||
|
||||
//bottom
|
||||
finalComponents.push(this.verticalFiller)
|
||||
finalBottom.forEach((text) => {
|
||||
if (text.length < 1) return
|
||||
finalComponents.push(this.verticalFiller+" "+text)
|
||||
})
|
||||
|
||||
//footer
|
||||
finalComponents.push(this.#getHorizontalDivider(borderLength+4))
|
||||
if (!this.disableFooter){
|
||||
finalFooter.forEach((text) => {
|
||||
if (text.length < 1) return
|
||||
finalComponents.push(this.#createBlockFromText(text,borderLength))
|
||||
})
|
||||
finalComponents.push(this.#getHorizontalDivider(borderLength+4))
|
||||
}
|
||||
|
||||
//return all components
|
||||
return finalComponents
|
||||
}
|
||||
/**Get the length of the longest string in the array. */
|
||||
#getLongestLength(texts:string[]): number {
|
||||
return Math.max(...texts.map((t) => ansis.strip(t).length))
|
||||
}
|
||||
/**Get a horizontal divider used between different parts of the config checker result. */
|
||||
#getHorizontalDivider(width:number): string {
|
||||
if (width > 2) width = width-2
|
||||
else return this.verticalFiller+this.verticalFiller
|
||||
let divider = this.verticalFiller + this.horizontalFiller.repeat(width) + this.verticalFiller
|
||||
return divider
|
||||
}
|
||||
/**Create a block of text with a vertical divider on the left & right side. */
|
||||
#createBlockFromText(text:string,width:number): string {
|
||||
if (width < 3) return this.verticalFiller+this.verticalFiller
|
||||
let newWidth = width-ansis.strip(text).length+1
|
||||
let final = this.verticalFiller+" "+text+" ".repeat(newWidth)+this.verticalFiller
|
||||
return final
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODCheckerTranslationRegisterOtherIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCheckerTranslationRegister_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export type ODCheckerTranslationRegisterOtherIds_Default = (
|
||||
"opendiscord:header-openticket"|
|
||||
"opendiscord:header-configchecker"|
|
||||
"opendiscord:header-description"|
|
||||
"opendiscord:type-error"|
|
||||
"opendiscord:type-warning"|
|
||||
"opendiscord:type-info"|
|
||||
"opendiscord:data-path"|
|
||||
"opendiscord:data-docs"|
|
||||
"opendiscord:data-message"|
|
||||
"opendiscord:compact-information"|
|
||||
"opendiscord:footer-error"|
|
||||
"opendiscord:footer-warning"|
|
||||
"opendiscord:footer-support"
|
||||
)
|
||||
|
||||
/**## ODCheckerTranslationRegisterMessageIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCheckerTranslationRegister_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export type ODCheckerTranslationRegisterMessageIds_Default = (
|
||||
"opendiscord:invalid-type"|
|
||||
"opendiscord:property-missing"|
|
||||
"opendiscord:property-optional"|
|
||||
"opendiscord:object-disabled"|
|
||||
"opendiscord:null-invalid"|
|
||||
"opendiscord:switch-invalid-type"|
|
||||
"opendiscord:object-switch-invalid-type"|
|
||||
|
||||
"opendiscord:string-too-short"|
|
||||
"opendiscord:string-too-long"|
|
||||
"opendiscord:string-length-invalid"|
|
||||
"opendiscord:string-starts-with"|
|
||||
"opendiscord:string-ends-with"|
|
||||
"opendiscord:string-contains"|
|
||||
"opendiscord:string-inverted-contains"|
|
||||
"opendiscord:string-choices"|
|
||||
"opendiscord:string-lowercase"|
|
||||
"opendiscord:string-uppercase"|
|
||||
"opendiscord:string-special-characters"|
|
||||
"opendiscord:string-no-spaces"|
|
||||
"opendiscord:string-regex"|
|
||||
"opendiscord:string-capital-word"|
|
||||
"opendiscord:string-capital-sentence"|
|
||||
"opendiscord:string-punctuation"|
|
||||
|
||||
"opendiscord:number-nan"|
|
||||
"opendiscord:number-too-short"|
|
||||
"opendiscord:number-too-long"|
|
||||
"opendiscord:number-length-invalid"|
|
||||
"opendiscord:number-too-small"|
|
||||
"opendiscord:number-too-large"|
|
||||
"opendiscord:number-not-equal"|
|
||||
"opendiscord:number-step"|
|
||||
"opendiscord:number-step-offset"|
|
||||
"opendiscord:number-starts-with"|
|
||||
"opendiscord:number-ends-with"|
|
||||
"opendiscord:number-contains"|
|
||||
"opendiscord:number-inverted-contains"|
|
||||
"opendiscord:number-choices"|
|
||||
"opendiscord:number-float"|
|
||||
"opendiscord:number-negative"|
|
||||
"opendiscord:number-positive"|
|
||||
"opendiscord:number-zero"|
|
||||
|
||||
"opendiscord:boolean-true"|
|
||||
"opendiscord:boolean-false"|
|
||||
|
||||
"opendiscord:array-empty-disabled"|
|
||||
"opendiscord:array-empty-required"|
|
||||
"opendiscord:array-too-short"|
|
||||
"opendiscord:array-too-long"|
|
||||
"opendiscord:array-length-invalid"|
|
||||
"opendiscord:array-invalid-types"|
|
||||
"opendiscord:array-double"|
|
||||
|
||||
"opendiscord:discord-invalid-id"|
|
||||
"opendiscord:discord-invalid-id-options"|
|
||||
"opendiscord:discord-invalid-token"|
|
||||
"opendiscord:color-invalid"|
|
||||
"opendiscord:emoji-too-short"|
|
||||
"opendiscord:emoji-too-long"|
|
||||
"opendiscord:emoji-custom"|
|
||||
"opendiscord:emoji-invalid"|
|
||||
"opendiscord:url-invalid"|
|
||||
"opendiscord:url-invalid-http"|
|
||||
"opendiscord:url-invalid-protocol"|
|
||||
"opendiscord:url-invalid-hostname"|
|
||||
"opendiscord:url-invalid-extension"|
|
||||
"opendiscord:url-invalid-path"|
|
||||
"opendiscord:id-not-unique"|
|
||||
"opendiscord:id-non-existent"|
|
||||
|
||||
"opendiscord:invalid-language"|
|
||||
"opendiscord:invalid-button"|
|
||||
"opendiscord:unused-option"|
|
||||
"opendiscord:unused-question"|
|
||||
"opendiscord:dropdown-option"
|
||||
)
|
||||
|
||||
/**## ODCheckerTranslationRegister_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCheckerTranslationRegister class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.checkers.translation`!
|
||||
*/
|
||||
export class ODCheckerTranslationRegister_Default extends api.ODCheckerTranslationRegister {
|
||||
get(type:"other", id:ODCheckerTranslationRegisterOtherIds_Default): string
|
||||
get(type:"message", id:ODCheckerTranslationRegisterMessageIds_Default): string
|
||||
get(type:"message"|"other", id:string): string|null
|
||||
|
||||
get(type:"message"|"other", id:string): string|null {
|
||||
return super.get(type,id)
|
||||
}
|
||||
|
||||
set(type:"other", id:ODCheckerTranslationRegisterOtherIds_Default, translation:string): boolean
|
||||
set(type:"message", id:ODCheckerTranslationRegisterMessageIds_Default, translation:string): boolean
|
||||
set(type:"message"|"other", id:string, translation:string): boolean
|
||||
|
||||
set(type:"message"|"other", id:string, translation:string): boolean {
|
||||
return super.set(type,id,translation)
|
||||
}
|
||||
|
||||
delete(type:"other", id:ODCheckerTranslationRegisterOtherIds_Default): boolean
|
||||
delete(type:"message", id:ODCheckerTranslationRegisterMessageIds_Default): boolean
|
||||
delete(type:"message"|"other", id:string): boolean
|
||||
|
||||
delete(type:"message"|"other", id:string): boolean {
|
||||
return super.delete(type,id)
|
||||
}
|
||||
|
||||
quickTranslate(manager:ODLanguageManager_Default, translationId:string, type:"other"|"message", id:ODCheckerTranslationRegisterOtherIds_Default|ODCheckerTranslationRegisterMessageIds_Default)
|
||||
quickTranslate(manager:ODLanguageManager_Default, translationId:string, type:"other"|"message", id:string)
|
||||
|
||||
quickTranslate(manager:ODLanguageManager_Default, translationId:string, type:"other"|"message", id:ODCheckerTranslationRegisterOtherIds_Default|ODCheckerTranslationRegisterMessageIds_Default|string){
|
||||
super.quickTranslate(manager,translationId,type,id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODCheckerFunctionManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCheckerFunctionManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCheckerFunctionManagerIds_Default {
|
||||
"opendiscord:unused-options":api.ODCheckerFunction,
|
||||
"opendiscord:unused-questions":api.ODCheckerFunction,
|
||||
"opendiscord:dropdown-options":api.ODCheckerFunction
|
||||
}
|
||||
|
||||
/**## ODCheckerFunctionManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCheckerFunctionManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.checkers.functions`!
|
||||
*/
|
||||
export class ODCheckerFunctionManager_Default extends api.ODCheckerFunctionManager {
|
||||
get<CheckerFunctionId extends keyof ODCheckerFunctionManagerIds_Default>(id:CheckerFunctionId): ODCheckerFunctionManagerIds_Default[CheckerFunctionId]
|
||||
get(id:api.ODValidId): api.ODCheckerFunction|null
|
||||
|
||||
get(id:api.ODValidId): api.ODCheckerFunction|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CheckerFunctionId extends keyof ODCheckerFunctionManagerIds_Default>(id:CheckerFunctionId): ODCheckerFunctionManagerIds_Default[CheckerFunctionId]
|
||||
remove(id:api.ODValidId): api.ODCheckerFunction|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODCheckerFunction|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODCheckerFunctionManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,206 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT CLIENT MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW COMMANDS?
|
||||
* - Register the command in loadAllSlashCommands() & loadAllTextCommands() in (./src/data/framework/commandLoader.ts)
|
||||
* - Add autocomplete for the command in OD(Slash/Text)CommandManagerIds_Default in (./src/core/api/defaults/client.ts)
|
||||
* - Add the command to the help menu in (./src/data/framework/helpMenuLoader.ts)
|
||||
* - If required, new config variables should be added (incl. logs, dm-logs & permissions).
|
||||
* - Update the Open Ticket Documentation.
|
||||
* - If the command contains complex logic or can be executed from a button/dropdown, it should be placed inside an `ODAction`.
|
||||
* - Check all files, test the bot carefully & try a lot of different scenario's with different settings.
|
||||
*/
|
||||
|
||||
/**## ODClientManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODClientManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.client`!
|
||||
*/
|
||||
export class ODClientManager_Default extends api.ODClientManager {
|
||||
declare slashCommands: ODSlashCommandManager_Default
|
||||
declare textCommands: ODTextCommandManager_Default
|
||||
declare contextMenus: ODContextMenuManager_Default
|
||||
}
|
||||
|
||||
/**## ODSlashCommandManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODSlashCommandManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODSlashCommandManagerIds_Default {
|
||||
"opendiscord:help":api.ODSlashCommand,
|
||||
"opendiscord:panel":api.ODSlashCommand,
|
||||
"opendiscord:ticket":api.ODSlashCommand,
|
||||
"opendiscord:close":api.ODSlashCommand,
|
||||
"opendiscord:delete":api.ODSlashCommand,
|
||||
"opendiscord:reopen":api.ODSlashCommand,
|
||||
"opendiscord:claim":api.ODSlashCommand,
|
||||
"opendiscord:unclaim":api.ODSlashCommand,
|
||||
"opendiscord:pin":api.ODSlashCommand,
|
||||
"opendiscord:unpin":api.ODSlashCommand,
|
||||
"opendiscord:move":api.ODSlashCommand,
|
||||
"opendiscord:rename":api.ODSlashCommand,
|
||||
"opendiscord:add":api.ODSlashCommand,
|
||||
"opendiscord:remove":api.ODSlashCommand,
|
||||
"opendiscord:blacklist":api.ODSlashCommand,
|
||||
"opendiscord:stats":api.ODSlashCommand,
|
||||
"opendiscord:clear":api.ODSlashCommand,
|
||||
"opendiscord:autoclose":api.ODSlashCommand,
|
||||
"opendiscord:autodelete":api.ODSlashCommand,
|
||||
"opendiscord:topic":api.ODSlashCommand,
|
||||
"opendiscord:priority":api.ODSlashCommand,
|
||||
"opendiscord:transfer":api.ODSlashCommand,
|
||||
}
|
||||
|
||||
/**## ODSlashCommandManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODSlashCommandManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.client.slashCommands`!
|
||||
*/
|
||||
export class ODSlashCommandManager_Default extends api.ODSlashCommandManager {
|
||||
get<SlashCommandId extends keyof ODSlashCommandManagerIds_Default>(id:SlashCommandId): ODSlashCommandManagerIds_Default[SlashCommandId]
|
||||
get(id:api.ODValidId): api.ODSlashCommand|null
|
||||
|
||||
get(id:api.ODValidId): api.ODSlashCommand|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<SlashCommandId extends keyof ODSlashCommandManagerIds_Default>(id:SlashCommandId): ODSlashCommandManagerIds_Default[SlashCommandId]
|
||||
remove(id:api.ODValidId): api.ODSlashCommand|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODSlashCommand|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODSlashCommandManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
onInteraction(commandName:keyof ODSlashCommandManagerIds_Default, callback:api.ODSlashCommandInteractionCallback): void
|
||||
onInteraction(commandName:string|RegExp, callback:api.ODSlashCommandInteractionCallback): void
|
||||
|
||||
onInteraction(commandName:string|RegExp, callback:api.ODSlashCommandInteractionCallback): void {
|
||||
return super.onInteraction(commandName,callback)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODTextCommandManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODTextCommandManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODTextCommandManagerIds_Default {
|
||||
"opendiscord:dump":api.ODTextCommand,
|
||||
"opendiscord:help":api.ODTextCommand,
|
||||
"opendiscord:panel":api.ODTextCommand,
|
||||
"opendiscord:close":api.ODTextCommand,
|
||||
"opendiscord:delete":api.ODTextCommand,
|
||||
"opendiscord:reopen":api.ODTextCommand,
|
||||
"opendiscord:claim":api.ODTextCommand,
|
||||
"opendiscord:unclaim":api.ODTextCommand,
|
||||
"opendiscord:pin":api.ODTextCommand,
|
||||
"opendiscord:unpin":api.ODTextCommand,
|
||||
"opendiscord:move":api.ODTextCommand,
|
||||
"opendiscord:rename":api.ODTextCommand,
|
||||
"opendiscord:add":api.ODTextCommand,
|
||||
"opendiscord:remove":api.ODTextCommand,
|
||||
"opendiscord:blacklist-view":api.ODTextCommand,
|
||||
"opendiscord:blacklist-add":api.ODTextCommand,
|
||||
"opendiscord:blacklist-remove":api.ODTextCommand,
|
||||
"opendiscord:blacklist-get":api.ODTextCommand,
|
||||
"opendiscord:stats-global":api.ODTextCommand,
|
||||
"opendiscord:stats-reset":api.ODTextCommand,
|
||||
"opendiscord:stats-ticket":api.ODTextCommand,
|
||||
"opendiscord:stats-user":api.ODTextCommand,
|
||||
"opendiscord:clear":api.ODTextCommand,
|
||||
"opendiscord:autoclose-disable":api.ODTextCommand,
|
||||
"opendiscord:autoclose-enable":api.ODTextCommand,
|
||||
"opendiscord:autodelete-disable":api.ODTextCommand,
|
||||
"opendiscord:autodelete-enable":api.ODTextCommand,
|
||||
"opendiscord:topic-set":api.ODTextCommand,
|
||||
"opendiscord:priority-set":api.ODTextCommand,
|
||||
"opendiscord:priority-get":api.ODTextCommand,
|
||||
"opendiscord:transfer":api.ODTextCommand,
|
||||
}
|
||||
|
||||
/**## ODTextCommandManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODTextCommandManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.client.textCommands`!
|
||||
*/
|
||||
export class ODTextCommandManager_Default extends api.ODTextCommandManager {
|
||||
get<TextCommandId extends keyof ODTextCommandManagerIds_Default>(id:TextCommandId): ODTextCommandManagerIds_Default[TextCommandId]
|
||||
get(id:api.ODValidId): api.ODTextCommand|null
|
||||
|
||||
get(id:api.ODValidId): api.ODTextCommand|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<TextCommandId extends keyof ODTextCommandManagerIds_Default>(id:TextCommandId): ODTextCommandManagerIds_Default[TextCommandId]
|
||||
remove(id:api.ODValidId): api.ODTextCommand|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODTextCommand|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODTextCommandManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
onInteraction(commandPrefix:string, commandName:string|RegExp, callback:api.ODTextCommandInteractionCallback): void {
|
||||
return super.onInteraction(commandPrefix,commandName,callback)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODContextMenuManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODContextMenuManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODContextMenuManagerIds_Default {
|
||||
//"opendiscord:test-menu":ODContextMenu
|
||||
}
|
||||
|
||||
/**## ODContextMenuManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODContextMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.client.contextMenus`!
|
||||
*/
|
||||
export class ODContextMenuManager_Default extends api.ODContextMenuManager {
|
||||
get<ContextMenuId extends keyof ODContextMenuManagerIds_Default>(id:ContextMenuId): ODContextMenuManagerIds_Default[ContextMenuId]
|
||||
get(id:api.ODValidId): api.ODContextMenu|null
|
||||
|
||||
get(id:api.ODValidId): api.ODContextMenu|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ContextMenuId extends keyof ODContextMenuManagerIds_Default>(id:ContextMenuId): ODContextMenuManagerIds_Default[ContextMenuId]
|
||||
remove(id:api.ODValidId): api.ODContextMenu|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODContextMenu|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODContextMenuManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
onInteraction(menuName:keyof ODContextMenuManagerIds_Default, callback:api.ODContextMenuInteractionCallback): void
|
||||
onInteraction(menuName:string|RegExp, callback:api.ODContextMenuInteractionCallback): void
|
||||
|
||||
onInteraction(menuName:string|RegExp, callback:api.ODContextMenuInteractionCallback): void {
|
||||
return super.onInteraction(menuName,callback)
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT CODE MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODCodeManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCodeManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCodeManagerIds_Default {
|
||||
"opendiscord:command-error-handling":api.ODCode,
|
||||
"opendiscord:start-listening-interactions":api.ODCode,
|
||||
"opendiscord:panel-database-cleaner":api.ODCode,
|
||||
"opendiscord:suffix-database-cleaner":api.ODCode,
|
||||
"opendiscord:option-database-cleaner":api.ODCode,
|
||||
"opendiscord:user-database-cleaner":api.ODCode,
|
||||
"opendiscord:ticket-database-cleaner":api.ODCode,
|
||||
"opendiscord:panel-auto-update":api.ODCode,
|
||||
"opendiscord:ticket-saver":api.ODCode,
|
||||
"opendiscord:blacklist-saver":api.ODCode,
|
||||
"opendiscord:auto-role-on-join":api.ODCode,
|
||||
"opendiscord:autoclose-timeout":api.ODCode,
|
||||
"opendiscord:autoclose-leave":api.ODCode,
|
||||
"opendiscord:autodelete-timeout":api.ODCode,
|
||||
"opendiscord:autodelete-leave":api.ODCode,
|
||||
"opendiscord:ticket-anti-busy":api.ODCode,
|
||||
}
|
||||
|
||||
/**## ODCodeManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCodeManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.code`!
|
||||
*/
|
||||
export class ODCodeManager_Default extends api.ODCodeManager {
|
||||
get<CodeId extends keyof ODCodeManagerIds_Default>(id:CodeId): ODCodeManagerIds_Default[CodeId]
|
||||
get(id:api.ODValidId): api.ODCode|null
|
||||
|
||||
get(id:api.ODValidId): api.ODCode|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CodeId extends keyof ODCodeManagerIds_Default>(id:CodeId): ODCodeManagerIds_Default[CodeId]
|
||||
remove(id:api.ODValidId): api.ODCode|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODCode|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODCodeManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT CONSOLE MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODLiveStatusManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODLiveStatusManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODLiveStatusManagerIds_Default {
|
||||
"opendiscord:default-djdj-dev":api.ODLiveStatusUrlSource
|
||||
}
|
||||
|
||||
/**## ODLiveStatusManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODLiveStatusManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.livestatus`!
|
||||
*/
|
||||
export class ODLiveStatusManager_Default extends api.ODLiveStatusManager {
|
||||
get<LiveStatusId extends keyof ODLiveStatusManagerIds_Default>(id:LiveStatusId): ODLiveStatusManagerIds_Default[LiveStatusId]
|
||||
get(id:api.ODValidId): api.ODLiveStatusSource|null
|
||||
|
||||
get(id:api.ODValidId): api.ODLiveStatusSource|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<LiveStatusId extends keyof ODLiveStatusManagerIds_Default>(id:LiveStatusId): ODLiveStatusManagerIds_Default[LiveStatusId]
|
||||
remove(id:api.ODValidId): api.ODLiveStatusSource|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODLiveStatusSource|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODLiveStatusManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT COOLDOWN MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODCooldownManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCooldownManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCooldownManagerIds_Default {
|
||||
|
||||
}
|
||||
|
||||
/**## ODCooldownManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCooldownManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.cooldowns`!
|
||||
*/
|
||||
export class ODCooldownManager_Default extends api.ODCooldownManager {
|
||||
get<CooldownId extends keyof ODCooldownManagerIds_Default>(id:CooldownId): ODCooldownManagerIds_Default[CooldownId]
|
||||
get(id:api.ODValidId): api.ODCooldown<object>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODCooldown<object>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CooldownId extends keyof ODCooldownManagerIds_Default>(id:CooldownId): ODCooldownManagerIds_Default[CooldownId]
|
||||
remove(id:api.ODValidId): api.ODCooldown<object>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODCooldown<object>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODCooldownManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,256 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT DATABASE MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODTicketJson } from "../openticket/ticket"
|
||||
import { ODOptionJson } from "../openticket/option"
|
||||
|
||||
/**## ODDatabaseManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODDatabaseManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODDatabaseManagerIds_Default {
|
||||
"opendiscord:global":ODFormattedJsonDatabase_DefaultGlobal,
|
||||
"opendiscord:stats":api.ODFormattedJsonDatabase,
|
||||
"opendiscord:tickets":ODFormattedJsonDatabase_DefaultTickets,
|
||||
"opendiscord:users":ODFormattedJsonDatabase_DefaultUsers,
|
||||
"opendiscord:options":ODFormattedJsonDatabase_DefaultOptions,
|
||||
}
|
||||
|
||||
/**## ODDatabaseManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODDatabaseManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.databases`!
|
||||
*/
|
||||
export class ODDatabaseManager_Default extends api.ODDatabaseManager {
|
||||
get<DatabaseId extends keyof ODDatabaseManagerIds_Default>(id:DatabaseId): ODDatabaseManagerIds_Default[DatabaseId]
|
||||
get(id:api.ODValidId): api.ODDatabase|null
|
||||
|
||||
get(id:api.ODValidId): api.ODDatabase|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<DatabaseId extends keyof ODDatabaseManagerIds_Default>(id:DatabaseId): ODDatabaseManagerIds_Default[DatabaseId]
|
||||
remove(id:api.ODValidId): api.ODDatabase|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODDatabase|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODDatabaseManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabaseIds_DefaultGlobal `type`
|
||||
* This interface is a list of ids available in the `ODFormattedJsonDatabase_DefaultGlobal` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFormattedJsonDatabaseIds_DefaultGlobal {
|
||||
"opendiscord:panel-message":string,
|
||||
"opendiscord:panel-update":string,
|
||||
"opendiscord:option-suffix-counter":number,
|
||||
"opendiscord:option-suffix-history":string[],
|
||||
"opendiscord:last-version":string
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabase_DefaultGlobal `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFormattedJsonDatabase class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `global.json` database!
|
||||
*/
|
||||
export class ODFormattedJsonDatabase_DefaultGlobal extends api.ODFormattedJsonDatabase {
|
||||
set<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultGlobal>(category:CategoryId, key:string, value:ODFormattedJsonDatabaseIds_DefaultGlobal[CategoryId]): api.ODOptionalPromise<boolean>
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean>
|
||||
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean> {
|
||||
return super.set(category,key,value)
|
||||
}
|
||||
|
||||
get<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultGlobal>(category:CategoryId, key:string): api.ODOptionalPromise<ODFormattedJsonDatabaseIds_DefaultGlobal[CategoryId]|undefined>
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined>
|
||||
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined> {
|
||||
return super.get(category,key)
|
||||
}
|
||||
|
||||
delete<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultGlobal>(category:CategoryId, key:string): api.ODOptionalPromise<boolean>
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.delete(category,key)
|
||||
}
|
||||
|
||||
exists(category:keyof ODFormattedJsonDatabaseIds_DefaultGlobal, key:string): api.ODOptionalPromise<boolean>
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.exists(category,key)
|
||||
}
|
||||
|
||||
getCategory<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultGlobal>(category:CategoryId): api.ODOptionalPromise<{key:string, value:ODFormattedJsonDatabaseIds_DefaultGlobal[CategoryId]}[]|undefined>
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined>
|
||||
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined> {
|
||||
return super.getCategory(category)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabaseIds_DefaultTickets `type`
|
||||
* This interface is a list of ids available in the `ODDatabaseManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFormattedJsonDatabaseIds_DefaultTickets {
|
||||
"opendiscord:ticket":ODTicketJson
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabase_DefaultTickets `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFormattedJsonDatabase class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `tickets.json` database!
|
||||
*/
|
||||
export class ODFormattedJsonDatabase_DefaultTickets extends api.ODFormattedJsonDatabase {
|
||||
set<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultTickets>(category:CategoryId, key:string, value:ODFormattedJsonDatabaseIds_DefaultTickets[CategoryId]): api.ODOptionalPromise<boolean>
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean>
|
||||
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean> {
|
||||
return super.set(category,key,value)
|
||||
}
|
||||
|
||||
get<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultTickets>(category:CategoryId, key:string): api.ODOptionalPromise<ODFormattedJsonDatabaseIds_DefaultTickets[CategoryId]|undefined>
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined>
|
||||
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined> {
|
||||
return super.get(category,key)
|
||||
}
|
||||
|
||||
delete<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultTickets>(category:CategoryId, key:string): api.ODOptionalPromise<boolean>
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.delete(category,key)
|
||||
}
|
||||
|
||||
exists(category:keyof ODFormattedJsonDatabaseIds_DefaultTickets, key:string): api.ODOptionalPromise<boolean>
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.exists(category,key)
|
||||
}
|
||||
|
||||
getCategory<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultTickets>(category:CategoryId): api.ODOptionalPromise<{key:string, value:ODFormattedJsonDatabaseIds_DefaultTickets[CategoryId]}[]|undefined>
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined>
|
||||
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined> {
|
||||
return super.getCategory(category)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabaseIds_DefaultUsers `type`
|
||||
* This interface is a list of ids available in the `ODDatabaseManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFormattedJsonDatabaseIds_DefaultUsers {
|
||||
"opendiscord:blacklist":ODTicketJson
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabase_DefaultUsers `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFormattedJsonDatabase class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `users.json` database!
|
||||
*/
|
||||
export class ODFormattedJsonDatabase_DefaultUsers extends api.ODFormattedJsonDatabase {
|
||||
set<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultUsers>(category:CategoryId, key:string, value:ODFormattedJsonDatabaseIds_DefaultUsers[CategoryId]): api.ODOptionalPromise<boolean>
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean>
|
||||
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean> {
|
||||
return super.set(category,key,value)
|
||||
}
|
||||
|
||||
get<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultUsers>(category:CategoryId, key:string): api.ODOptionalPromise<ODFormattedJsonDatabaseIds_DefaultUsers[CategoryId]|undefined>
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined>
|
||||
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined> {
|
||||
return super.get(category,key)
|
||||
}
|
||||
|
||||
delete<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultUsers>(category:CategoryId, key:string): api.ODOptionalPromise<boolean>
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.delete(category,key)
|
||||
}
|
||||
|
||||
exists(category:keyof ODFormattedJsonDatabaseIds_DefaultUsers, key:string): api.ODOptionalPromise<boolean>
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.exists(category,key)
|
||||
}
|
||||
|
||||
getCategory<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultUsers>(category:CategoryId): api.ODOptionalPromise<{key:string, value:ODFormattedJsonDatabaseIds_DefaultUsers[CategoryId]}[]|undefined>
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined>
|
||||
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined> {
|
||||
return super.getCategory(category)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**## ODFormattedJsonDatabaseIds_DefaultOptions `type`
|
||||
* This interface is a list of ids available in the `ODDatabaseManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFormattedJsonDatabaseIds_DefaultOptions {
|
||||
"opendiscord:used-option":ODOptionJson
|
||||
}
|
||||
|
||||
/**## ODFormattedJsonDatabase_DefaultOptions `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFormattedJsonDatabase class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `options.json` database!
|
||||
*/
|
||||
export class ODFormattedJsonDatabase_DefaultOptions extends api.ODFormattedJsonDatabase {
|
||||
set<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultOptions>(category:CategoryId, key:string, value:ODFormattedJsonDatabaseIds_DefaultOptions[CategoryId]): api.ODOptionalPromise<boolean>
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean>
|
||||
|
||||
set(category:string, key:string, value:api.ODValidJsonType): api.ODOptionalPromise<boolean> {
|
||||
return super.set(category,key,value)
|
||||
}
|
||||
|
||||
get<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultOptions>(category:CategoryId, key:string): api.ODOptionalPromise<ODFormattedJsonDatabaseIds_DefaultOptions[CategoryId]|undefined>
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined>
|
||||
|
||||
get(category:string, key:string): api.ODOptionalPromise<api.ODValidJsonType|undefined> {
|
||||
return super.get(category,key)
|
||||
}
|
||||
|
||||
delete<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultOptions>(category:CategoryId, key:string): api.ODOptionalPromise<boolean>
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
delete(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.delete(category,key)
|
||||
}
|
||||
|
||||
exists(category:keyof ODFormattedJsonDatabaseIds_DefaultOptions, key:string): api.ODOptionalPromise<boolean>
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean>
|
||||
|
||||
exists(category:string, key:string): api.ODOptionalPromise<boolean> {
|
||||
return super.exists(category,key)
|
||||
}
|
||||
|
||||
getCategory<CategoryId extends keyof ODFormattedJsonDatabaseIds_DefaultOptions>(category:CategoryId): api.ODOptionalPromise<{key:string, value:ODFormattedJsonDatabaseIds_DefaultOptions[CategoryId]}[]|undefined>
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined>
|
||||
|
||||
getCategory(category:string): api.ODOptionalPromise<{key:string, value:api.ODValidJsonType}[]|undefined> {
|
||||
return super.getCategory(category)
|
||||
}
|
||||
}
|
||||
@@ -1,384 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT EVENT MODULE
|
||||
///////////////////////////////////////
|
||||
//BASE MODULES
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
//DEFAULT MODULES
|
||||
import { ODPluginClassManager_Default, ODPluginManager_Default } from "./plugin"
|
||||
import { ODConfigManager_Default} from "./config"
|
||||
import { ODDatabaseManager_Default } from "./database"
|
||||
import { ODFlagManager_Default } from "./flag"
|
||||
import { ODSessionManager_Default } from "./session"
|
||||
import { ODLanguageManager_Default } from "./language"
|
||||
import { ODCheckerFunctionManager_Default, ODCheckerManager_Default, ODCheckerRenderer_Default, ODCheckerTranslationRegister_Default } from "./checker"
|
||||
import { ODClientManager_Default, ODContextMenuManager_Default, ODSlashCommandManager_Default, ODTextCommandManager_Default } from "./client"
|
||||
import { ODBuilderManager_Default, ODButtonManager_Default, ODDropdownManager_Default, ODEmbedManager_Default, ODFileManager_Default, ODMessageManager_Default, ODModalManager_Default } from "./builder"
|
||||
import { ODAutocompleteResponderManager_Default, ODButtonResponderManager_Default, ODCommandResponderManager_Default, ODContextMenuResponderManager_Default, ODDropdownResponderManager_Default, ODModalResponderManager_Default, ODResponderManager_Default } from "./responder"
|
||||
import { ODActionManager_Default } from "./action"
|
||||
import { ODPermissionManager_Default } from "./permission"
|
||||
import { ODHelpMenuManager_Default } from "./helpmenu"
|
||||
import { ODStatsManager_Default } from "./stat"
|
||||
import { ODCodeManager_Default } from "./code"
|
||||
import { ODCooldownManager_Default } from "./cooldown"
|
||||
import { ODPostManager_Default } from "./post"
|
||||
import { ODVerifyBarManager_Default } from "./verifybar"
|
||||
import { ODStartScreenManager_Default } from "./startscreen"
|
||||
import { ODLiveStatusManager_Default } from "./console"
|
||||
import { ODProgressBarManager_Default, ODProgressBarRendererManager_Default } from "./progressbar"
|
||||
|
||||
//OPEN TICKET MODULES
|
||||
import { ODOptionManager, ODTicketOption } from "../openticket/option"
|
||||
import { ODPanel, ODPanelManager } from "../openticket/panel"
|
||||
import { ODTicket, ODTicketClearFilter, ODTicketManager } from "../openticket/ticket"
|
||||
import { ODQuestionManager } from "../openticket/question"
|
||||
import { ODBlacklistManager } from "../openticket/blacklist"
|
||||
import { ODTranscriptManager_Default } from "../openticket/transcript"
|
||||
import { ODRole, ODRoleManager } from "../openticket/role"
|
||||
import { ODPriorityLevel, ODPriorityManager_Default } from "../openticket/priority"
|
||||
|
||||
/**## ODEventIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODEvent_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODEventIds_Default {
|
||||
//error handling
|
||||
"onErrorHandling": ODEvent_Default<(error:Error, origin:NodeJS.UncaughtExceptionOrigin) => api.ODPromiseVoid>
|
||||
"afterErrorHandling": ODEvent_Default<(error:Error, origin:NodeJS.UncaughtExceptionOrigin, message:api.ODError) => api.ODPromiseVoid>
|
||||
|
||||
//plugins
|
||||
"afterPluginsLoaded": ODEvent_Default<(plugins:ODPluginManager_Default) => api.ODPromiseVoid>
|
||||
"onPluginClassLoad": ODEvent_Default<(classes:ODPluginClassManager_Default, plugins:ODPluginManager_Default) => api.ODPromiseVoid>
|
||||
"afterPluginClassesLoaded": ODEvent_Default<(classes:ODPluginClassManager_Default, plugins:ODPluginManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//flags
|
||||
"onFlagLoad": ODEvent_Default<(flags:ODFlagManager_Default) => api.ODPromiseVoid>
|
||||
"afterFlagsLoaded": ODEvent_Default<(flags:ODFlagManager_Default) => api.ODPromiseVoid>
|
||||
"onFlagInit": ODEvent_Default<(flags:ODFlagManager_Default) => api.ODPromiseVoid>
|
||||
"afterFlagsInitiated": ODEvent_Default<(flags:ODFlagManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//progress bars
|
||||
"onProgressBarRendererLoad": ODEvent_Default<(renderers:ODProgressBarRendererManager_Default) => api.ODPromiseVoid>
|
||||
"afterProgressBarRenderersLoaded": ODEvent_Default<(renderers:ODProgressBarRendererManager_Default) => api.ODPromiseVoid>
|
||||
"onProgressBarLoad": ODEvent_Default<(progressbars:ODProgressBarManager_Default) => api.ODPromiseVoid>
|
||||
"afterProgressBarsLoaded": ODEvent_Default<(progressbars:ODProgressBarManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//configs
|
||||
"onConfigLoad": ODEvent_Default<(configs:ODConfigManager_Default) => api.ODPromiseVoid>
|
||||
"afterConfigsLoaded": ODEvent_Default<(configs:ODConfigManager_Default) => api.ODPromiseVoid>
|
||||
"onConfigInit": ODEvent_Default<(configs:ODConfigManager_Default) => api.ODPromiseVoid>
|
||||
"afterConfigsInitiated": ODEvent_Default<(configs:ODConfigManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//databases
|
||||
"onDatabaseLoad": ODEvent_Default<(databases:ODDatabaseManager_Default) => api.ODPromiseVoid>
|
||||
"afterDatabasesLoaded": ODEvent_Default<(databases:ODDatabaseManager_Default) => api.ODPromiseVoid>
|
||||
"onDatabaseInit": ODEvent_Default<(databases:ODDatabaseManager_Default) => api.ODPromiseVoid>
|
||||
"afterDatabasesInitiated": ODEvent_Default<(databases:ODDatabaseManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//languages
|
||||
"onLanguageLoad": ODEvent_Default<(languages:ODLanguageManager_Default) => api.ODPromiseVoid>
|
||||
"afterLanguagesLoaded": ODEvent_Default<(languages:ODLanguageManager_Default) => api.ODPromiseVoid>
|
||||
"onLanguageInit": ODEvent_Default<(languages:ODLanguageManager_Default) => api.ODPromiseVoid>
|
||||
"afterLanguagesInitiated": ODEvent_Default<(languages:ODLanguageManager_Default) => api.ODPromiseVoid>
|
||||
"onLanguageSelect": ODEvent_Default<(languages:ODLanguageManager_Default) => api.ODPromiseVoid>
|
||||
"afterLanguagesSelected": ODEvent_Default<(main:api.ODLanguage|null, backup:api.ODLanguage|null, languages:ODLanguageManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//sessions
|
||||
"onSessionLoad": ODEvent_Default<(languages:ODSessionManager_Default) => api.ODPromiseVoid>
|
||||
"afterSessionsLoaded": ODEvent_Default<(languages:ODSessionManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//config checkers
|
||||
"onCheckerLoad": ODEvent_Default<(checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"afterCheckersLoaded": ODEvent_Default<(checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"onCheckerFunctionLoad": ODEvent_Default<(functions:ODCheckerFunctionManager_Default, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"afterCheckerFunctionsLoaded": ODEvent_Default<(functions:ODCheckerFunctionManager_Default, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"onCheckerExecute": ODEvent_Default<(checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"afterCheckersExecuted": ODEvent_Default<(result:api.ODCheckerResult, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"onCheckerTranslationLoad": ODEvent_Default<(translations:ODCheckerTranslationRegister_Default, enabled:boolean, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"afterCheckerTranslationsLoaded": ODEvent_Default<(translations:ODCheckerTranslationRegister_Default, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"onCheckerRender": ODEvent_Default<(renderer:ODCheckerRenderer_Default, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"afterCheckersRendered": ODEvent_Default<(renderer:ODCheckerRenderer_Default, checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
"onCheckerQuit": ODEvent_Default<(checkers:ODCheckerManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before client
|
||||
"onPluginBeforeClientLoad": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeClientLoaded": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
|
||||
//client configuration
|
||||
"onClientLoad": ODEvent_Default<(client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterClientLoaded": ODEvent_Default<(client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"onClientInit": ODEvent_Default<(client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterClientInitiated": ODEvent_Default<(client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"onClientReady": ODEvent_Default<(client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterClientReady": ODEvent_Default<(client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"onClientActivityLoad": ODEvent_Default<(activity:api.ODClientActivityManager, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterClientActivityLoaded": ODEvent_Default<(activity:api.ODClientActivityManager, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"onClientActivityInit": ODEvent_Default<(activity:api.ODClientActivityManager, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterClientActivityInitiated": ODEvent_Default<(activity:api.ODClientActivityManager, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//priority levels
|
||||
"onPriorityLoad": ODEvent_Default<(priorities:ODPriorityManager_Default) => api.ODPromiseVoid>
|
||||
"afterPrioritiesLoaded": ODEvent_Default<(priorities:ODPriorityManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//client slash commands
|
||||
"onSlashCommandLoad": ODEvent_Default<(slash:ODSlashCommandManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterSlashCommandsLoaded": ODEvent_Default<(slash:ODSlashCommandManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"onSlashCommandRegister": ODEvent_Default<(slash:ODSlashCommandManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterSlashCommandsRegistered": ODEvent_Default<(slash:ODSlashCommandManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//client context menus
|
||||
"onContextMenuLoad": ODEvent_Default<(menu:ODContextMenuManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterContextMenusLoaded": ODEvent_Default<(menu:ODContextMenuManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"onContextMenuRegister": ODEvent_Default<(menu:ODContextMenuManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
"afterContextMenusRegistered": ODEvent_Default<(menu:ODContextMenuManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//client text commands
|
||||
"onTextCommandLoad": ODEvent_Default<(text:ODTextCommandManager_Default, client:ODClientManager_Default,) => api.ODPromiseVoid>
|
||||
"afterTextCommandsLoaded": ODEvent_Default<(text:ODTextCommandManager_Default, client:ODClientManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before managers
|
||||
"onPluginBeforeManagerLoad": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeManagerLoaded": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
|
||||
//questions
|
||||
"onQuestionLoad": ODEvent_Default<(questions:ODQuestionManager) => api.ODPromiseVoid>
|
||||
"afterQuestionsLoaded": ODEvent_Default<(questions:ODQuestionManager) => api.ODPromiseVoid>
|
||||
|
||||
//options
|
||||
"onOptionLoad": ODEvent_Default<(options:ODOptionManager) => api.ODPromiseVoid>
|
||||
"afterOptionsLoaded": ODEvent_Default<(options:ODOptionManager) => api.ODPromiseVoid>
|
||||
|
||||
//panels
|
||||
"onPanelLoad": ODEvent_Default<(panels:ODPanelManager) => api.ODPromiseVoid>
|
||||
"afterPanelsLoaded": ODEvent_Default<(panels:ODPanelManager) => api.ODPromiseVoid>
|
||||
"onPanelSpawn": ODEvent_Default<(panel:ODPanel) => api.ODPromiseVoid>
|
||||
"afterPanelSpawned": ODEvent_Default<(panel:ODPanel) => api.ODPromiseVoid>
|
||||
|
||||
//tickets
|
||||
"onTicketLoad": ODEvent_Default<(tickets:ODTicketManager) => api.ODPromiseVoid>
|
||||
"afterTicketsLoaded": ODEvent_Default<(tickets:ODTicketManager) => api.ODPromiseVoid>
|
||||
|
||||
//ticket creation
|
||||
"onTicketChannelCreation": ODEvent_Default<(option:ODTicketOption, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketChannelCreated": ODEvent_Default<(option:ODTicketOption, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"onTicketChannelDeletion": ODEvent_Default<(ticket:ODTicket, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketChannelDeleted": ODEvent_Default<(ticket:ODTicket, user:discord.User) => api.ODPromiseVoid>
|
||||
"onTicketPermissionsCreated": ODEvent_Default<(option:ODTicketOption, permissions:ODPermissionManager_Default, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketPermissionsCreated": ODEvent_Default<(option:ODTicketOption, permissions:ODPermissionManager_Default, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"onTicketMainMessageCreated": ODEvent_Default<(ticket:ODTicket, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketMainMessageCreated": ODEvent_Default<(ticket:ODTicket, message:discord.Message, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
|
||||
//ticket actions
|
||||
"onTicketCreate": ODEvent_Default<(creator:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketCreated": ODEvent_Default<(ticket:ODTicket, creator:discord.User, channel:discord.GuildTextBasedChannel) => api.ODPromiseVoid>
|
||||
"onTicketClose": ODEvent_Default<(ticket:ODTicket, closer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketClosed": ODEvent_Default<(ticket:ODTicket, closer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketReopen": ODEvent_Default<(ticket:ODTicket, reopener:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketReopened": ODEvent_Default<(ticket:ODTicket, reopener:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketDelete": ODEvent_Default<(ticket:ODTicket, deleter:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketDeleted": ODEvent_Default<(ticket:ODTicket, deleter:discord.User, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketMove": ODEvent_Default<(ticket:ODTicket, mover:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketMoved": ODEvent_Default<(ticket:ODTicket, mover:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketClaim": ODEvent_Default<(ticket:ODTicket, claimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketClaimed": ODEvent_Default<(ticket:ODTicket, claimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUnclaim": ODEvent_Default<(ticket:ODTicket, unclaimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUnclaimed": ODEvent_Default<(ticket:ODTicket, unclaimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketPin": ODEvent_Default<(ticket:ODTicket, pinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketPinned": ODEvent_Default<(ticket:ODTicket, pinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUnpin": ODEvent_Default<(ticket:ODTicket, unpinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUnpinned": ODEvent_Default<(ticket:ODTicket, unpinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUserAdd": ODEvent_Default<(ticket:ODTicket, adder:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUserAdded": ODEvent_Default<(ticket:ODTicket, adder:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUserRemove": ODEvent_Default<(ticket:ODTicket, remover:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUserRemoved": ODEvent_Default<(ticket:ODTicket, remover:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketRename": ODEvent_Default<(ticket:ODTicket, renamer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketRenamed": ODEvent_Default<(ticket:ODTicket, renamer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketsClear": ODEvent_Default<(tickets:ODTicket[], clearer:discord.User, channel:discord.GuildTextBasedChannel, filter:ODTicketClearFilter) => api.ODPromiseVoid>
|
||||
"afterTicketsCleared": ODEvent_Default<(tickets:ODTicket[], clearer:discord.User, channel:discord.GuildTextBasedChannel, filter:ODTicketClearFilter) => api.ODPromiseVoid>
|
||||
"onTicketTopicChange": ODEvent_Default<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldTopic:string, newTopic:string) => api.ODPromiseVoid>
|
||||
"afterTicketTopicChanged": ODEvent_Default<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldTopic:string, newTopic:string) => api.ODPromiseVoid>
|
||||
"onTicketPriorityChange": ODEvent_Default<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldPriority:ODPriorityLevel, newPriority:ODPriorityLevel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketPriorityChanged": ODEvent_Default<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldPriority:ODPriorityLevel, newPriority:ODPriorityLevel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketTransfer": ODEvent_Default<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldCreator:discord.User, newCreator:discord.User, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketTransferred": ODEvent_Default<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldCreator:discord.User, newCreator:discord.User, reason:string|null) => api.ODPromiseVoid>
|
||||
|
||||
//roles
|
||||
"onRoleLoad": ODEvent_Default<(roles:ODRoleManager) => api.ODPromiseVoid>
|
||||
"afterRolesLoaded": ODEvent_Default<(roles:ODRoleManager) => api.ODPromiseVoid>
|
||||
"onRoleUpdate": ODEvent_Default<(user:discord.User,role:ODRole) => api.ODPromiseVoid>
|
||||
"afterRolesUpdated": ODEvent_Default<(user:discord.User,role:ODRole) => api.ODPromiseVoid>
|
||||
|
||||
//blacklist
|
||||
"onBlacklistLoad": ODEvent_Default<(blacklist:ODBlacklistManager) => api.ODPromiseVoid>
|
||||
"afterBlacklistLoaded": ODEvent_Default<(blacklist:ODBlacklistManager) => api.ODPromiseVoid>
|
||||
|
||||
//transcripts
|
||||
"onTranscriptCompilerLoad": ODEvent_Default<(transcripts:ODTranscriptManager_Default) => api.ODPromiseVoid>
|
||||
"afterTranscriptCompilersLoaded": ODEvent_Default<(transcripts:ODTranscriptManager_Default) => api.ODPromiseVoid>
|
||||
"onTranscriptHistoryLoad": ODEvent_Default<(transcripts:ODTranscriptManager_Default) => api.ODPromiseVoid>
|
||||
"afterTranscriptHistoryLoaded": ODEvent_Default<(transcripts:ODTranscriptManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//transcript creation
|
||||
"onTranscriptCreate": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptCreated": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"onTranscriptInit": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptInitiated": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"onTranscriptCompile": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptCompiled": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"onTranscriptReady": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptReady": ODEvent_Default<(transcripts:ODTranscriptManager_Default,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before builders
|
||||
"onPluginBeforeBuilderLoad": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeBuilderLoaded": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
|
||||
//builders
|
||||
"onButtonBuilderLoad": ODEvent_Default<(buttons:ODButtonManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterButtonBuildersLoaded": ODEvent_Default<(buttons:ODButtonManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onDropdownBuilderLoad": ODEvent_Default<(dropdowns:ODDropdownManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterDropdownBuildersLoaded": ODEvent_Default<(dropdowns:ODDropdownManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onFileBuilderLoad": ODEvent_Default<(files:ODFileManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterFileBuildersLoaded": ODEvent_Default<(files:ODFileManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onEmbedBuilderLoad": ODEvent_Default<(embeds:ODEmbedManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterEmbedBuildersLoaded": ODEvent_Default<(embeds:ODEmbedManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onMessageBuilderLoad": ODEvent_Default<(messages:ODMessageManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterMessageBuildersLoaded": ODEvent_Default<(messages:ODMessageManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onModalBuilderLoad": ODEvent_Default<(modals:ODModalManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterModalBuildersLoaded": ODEvent_Default<(modals:ODModalManager_Default, builders:ODBuilderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before responders
|
||||
"onPluginBeforeResponderLoad": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeResponderLoaded": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
|
||||
//responders
|
||||
"onCommandResponderLoad": ODEvent_Default<(commands:ODCommandResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterCommandRespondersLoaded": ODEvent_Default<(commands:ODCommandResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onButtonResponderLoad": ODEvent_Default<(buttons:ODButtonResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterButtonRespondersLoaded": ODEvent_Default<(buttons:ODButtonResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onDropdownResponderLoad": ODEvent_Default<(dropdowns:ODDropdownResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterDropdownRespondersLoaded": ODEvent_Default<(dropdowns:ODDropdownResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onModalResponderLoad": ODEvent_Default<(modals:ODModalResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterModalRespondersLoaded": ODEvent_Default<(modals:ODModalResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onContextMenuResponderLoad": ODEvent_Default<(menus:ODContextMenuResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterContextMenuRespondersLoaded": ODEvent_Default<(menus:ODContextMenuResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"onAutocompleteResponderLoad": ODEvent_Default<(autocomplete:ODAutocompleteResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterAutocompleteRespondersLoaded": ODEvent_Default<(autocomplete:ODAutocompleteResponderManager_Default, responders:ODResponderManager_Default, actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before finalizations
|
||||
"onPluginBeforeFinalizationLoad": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeFinalizationLoaded": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
|
||||
//actions
|
||||
"onActionLoad": ODEvent_Default<(actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
"afterActionsLoaded": ODEvent_Default<(actions:ODActionManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//verifybars
|
||||
"onVerifyBarLoad": ODEvent_Default<(verifybars:ODVerifyBarManager_Default) => api.ODPromiseVoid>
|
||||
"afterVerifyBarsLoaded": ODEvent_Default<(verifybars:ODVerifyBarManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//permissions
|
||||
"onPermissionLoad": ODEvent_Default<(permissions:ODPermissionManager_Default) => api.ODPromiseVoid>
|
||||
"afterPermissionsLoaded": ODEvent_Default<(permissions:ODPermissionManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//posts
|
||||
"onPostLoad": ODEvent_Default<(posts:ODPostManager_Default) => api.ODPromiseVoid>
|
||||
"afterPostsLoaded": ODEvent_Default<(posts:ODPostManager_Default) => api.ODPromiseVoid>
|
||||
"onPostInit": ODEvent_Default<(posts:ODPostManager_Default) => api.ODPromiseVoid>
|
||||
"afterPostsInitiated": ODEvent_Default<(posts:ODPostManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//cooldowns
|
||||
"onCooldownLoad": ODEvent_Default<(cooldowns:ODCooldownManager_Default) => api.ODPromiseVoid>
|
||||
"afterCooldownsLoaded": ODEvent_Default<(cooldowns:ODCooldownManager_Default) => api.ODPromiseVoid>
|
||||
"onCooldownInit": ODEvent_Default<(cooldowns:ODCooldownManager_Default) => api.ODPromiseVoid>
|
||||
"afterCooldownsInitiated": ODEvent_Default<(cooldowns:ODCooldownManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//help menu
|
||||
"onHelpMenuCategoryLoad": ODEvent_Default<(menu:ODHelpMenuManager_Default) => api.ODPromiseVoid>
|
||||
"afterHelpMenuCategoriesLoaded": ODEvent_Default<(menu:ODHelpMenuManager_Default) => api.ODPromiseVoid>
|
||||
"onHelpMenuComponentLoad": ODEvent_Default<(menu:ODHelpMenuManager_Default) => api.ODPromiseVoid>
|
||||
"afterHelpMenuComponentsLoaded": ODEvent_Default<(menu:ODHelpMenuManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//stats
|
||||
"onStatScopeLoad": ODEvent_Default<(stats:ODStatsManager_Default) => api.ODPromiseVoid>
|
||||
"afterStatScopesLoaded": ODEvent_Default<(stats:ODStatsManager_Default) => api.ODPromiseVoid>
|
||||
"onStatLoad": ODEvent_Default<(stats:ODStatsManager_Default) => api.ODPromiseVoid>
|
||||
"afterStatsLoaded": ODEvent_Default<(stats:ODStatsManager_Default) => api.ODPromiseVoid>
|
||||
"onStatInit": ODEvent_Default<(stats:ODStatsManager_Default) => api.ODPromiseVoid>
|
||||
"afterStatsInitiated": ODEvent_Default<(stats:ODStatsManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before code
|
||||
"onPluginBeforeCodeLoad": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeCodeLoaded": ODEvent_Default<() => api.ODPromiseVoid>,
|
||||
|
||||
//code
|
||||
"onCodeLoad": ODEvent_Default<(code:ODCodeManager_Default) => api.ODPromiseVoid>
|
||||
"afterCodeLoaded": ODEvent_Default<(code:ODCodeManager_Default) => api.ODPromiseVoid>
|
||||
"onCodeExecute": ODEvent_Default<(code:ODCodeManager_Default) => api.ODPromiseVoid>
|
||||
"afterCodeExecuted": ODEvent_Default<(code:ODCodeManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//livestatus
|
||||
"onLiveStatusSourceLoad": ODEvent_Default<(livestatus:ODLiveStatusManager_Default) => api.ODPromiseVoid>
|
||||
"afterLiveStatusSourcesLoaded": ODEvent_Default<(livestatus:ODLiveStatusManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//startscreen
|
||||
"onStartScreenLoad": ODEvent_Default<(startscreen:ODStartScreenManager_Default) => api.ODPromiseVoid>
|
||||
"afterStartScreensLoaded": ODEvent_Default<(startscreen:ODStartScreenManager_Default) => api.ODPromiseVoid>
|
||||
"onStartScreenRender": ODEvent_Default<(startscreen:ODStartScreenManager_Default) => api.ODPromiseVoid>
|
||||
"afterStartScreensRendered": ODEvent_Default<(startscreen:ODStartScreenManager_Default) => api.ODPromiseVoid>
|
||||
|
||||
//ready
|
||||
"beforeReadyForUsage": ODEvent_Default<() => api.ODPromiseVoid>
|
||||
"onReadyForUsage": ODEvent_Default<() => api.ODPromiseVoid>
|
||||
}
|
||||
|
||||
/**## ODEventManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODEvent class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.events`!
|
||||
*/
|
||||
export class ODEventManager_Default extends api.ODEventManager {
|
||||
get<StartScreenId extends keyof ODEventIds_Default>(id:StartScreenId): ODEventIds_Default[StartScreenId]
|
||||
get(id:api.ODValidId): api.ODEvent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODEvent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StartScreenId extends keyof ODEventIds_Default>(id:StartScreenId): ODEventIds_Default[StartScreenId]
|
||||
remove(id:api.ODValidId): api.ODEvent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODEvent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODEventIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODEventManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODEvent class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.events`!
|
||||
*/
|
||||
export class ODEvent_Default<Callback extends ((...args:any) => api.ODPromiseVoid)> extends api.ODEvent {
|
||||
listen(callback:Callback): void {
|
||||
return super.listen(callback)
|
||||
}
|
||||
listenOnce(callback:Callback): void {
|
||||
return super.listenOnce(callback)
|
||||
}
|
||||
wait(): Promise<Parameters<Callback>>
|
||||
wait(): Promise<any[]> {
|
||||
return super.wait()
|
||||
}
|
||||
emit(params:Parameters<Callback>): Promise<void> {
|
||||
return super.emit(params)
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT PROCESS MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODFlagManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODFlagManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFlagManagerIds_Default {
|
||||
"opendiscord:no-migration":api.ODFlag,
|
||||
"opendiscord:dev-config":api.ODFlag,
|
||||
"opendiscord:dev-database":api.ODFlag,
|
||||
"opendiscord:debug":api.ODFlag,
|
||||
"opendiscord:crash":api.ODFlag,
|
||||
"opendiscord:no-transcripts":api.ODFlag,
|
||||
"opendiscord:no-checker":api.ODFlag,
|
||||
"opendiscord:checker":api.ODFlag,
|
||||
"opendiscord:no-easter":api.ODFlag,
|
||||
"opendiscord:no-plugins":api.ODFlag,
|
||||
"opendiscord:soft-plugins":api.ODFlag,
|
||||
"opendiscord:force-slash-update":api.ODFlag,
|
||||
"opendiscord:no-compile":api.ODFlag,
|
||||
"opendiscord:compile-only":api.ODFlag,
|
||||
"opendiscord:silent":api.ODFlag,
|
||||
"opendiscord:cli":api.ODFlag,
|
||||
}
|
||||
|
||||
/**## ODFlagManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFlagManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.flags`!
|
||||
*/
|
||||
export class ODFlagManager_Default extends api.ODFlagManager {
|
||||
get<FlagId extends keyof ODFlagManagerIds_Default>(id:FlagId): ODFlagManagerIds_Default[FlagId]
|
||||
get(id:api.ODValidId): api.ODFlag|null
|
||||
|
||||
get(id:api.ODValidId): api.ODFlag|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<FlagId extends keyof ODFlagManagerIds_Default>(id:FlagId): ODFlagManagerIds_Default[FlagId]
|
||||
remove(id:api.ODValidId): api.ODFlag|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODFlag|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODFlagManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,337 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT HELP MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW COMMANDS?
|
||||
* - Register the command in loadAllSlashCommands() & loadAllTextCommands() in (./src/data/framework/commandLoader.ts)
|
||||
* - Add autocomplete for the command in OD(Slash/Text)CommandManagerIds_Default in (./src/core/api/defaults/client.ts)
|
||||
* - Add the command to the help menu in (./src/data/framework/helpMenuLoader.ts)
|
||||
* - If required, new config variables should be added (incl. logs, dm-logs & permissions).
|
||||
* - Update the Open Ticket Documentation.
|
||||
* - If the command contains complex logic or can be executed from a button/dropdown, it should be placed inside an `ODAction`.
|
||||
* - Check all files, test the bot carefully & try a lot of different scenario's with different settings.
|
||||
*/
|
||||
|
||||
/**## ODHelpMenuManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODHelpMenuManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerIds_Default {
|
||||
"opendiscord:general":ODHelpMenuCategory_DefaultGeneral,
|
||||
"opendiscord:ticket-basic":ODHelpMenuCategory_DefaultTicketBasic,
|
||||
"opendiscord:ticket-advanced":ODHelpMenuCategory_DefaultTicketAdvanced,
|
||||
"opendiscord:ticket-user":ODHelpMenuCategory_DefaultTicketUser,
|
||||
"opendiscord:admin":ODHelpMenuCategory_DefaultAdmin,
|
||||
"opendiscord:advanced":ODHelpMenuCategory_DefaultAdvanced,
|
||||
"opendiscord:extra":ODHelpMenuCategory_DefaultExtra
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuManager_Default extends api.ODHelpMenuManager {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerIds_Default>(id:HelpMenuCategoryId): ODHelpMenuManagerIds_Default[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuCategory|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuCategory|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerIds_Default>(id:HelpMenuCategoryId): ODHelpMenuManagerIds_Default[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuCategory|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuCategory|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultGeneral `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultGeneral` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultGeneral {
|
||||
"opendiscord:help":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:ticket":api.ODHelpMenuCommandComponent|null
|
||||
}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultGeneral `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:general` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultGeneral extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultGeneral>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultGeneral[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultGeneral>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultGeneral[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultGeneral): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultTicketBasic `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultTicketBasic` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultTicketBasic {
|
||||
"opendiscord:close":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:delete":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:reopen":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultTicketBasic `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:ticket` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultTicketBasic extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultTicketBasic>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketBasic[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultTicketBasic>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketBasic[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultTicketBasic): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultTicketAdvanced` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced {
|
||||
"opendiscord:pin":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:unpin":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:move":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:rename":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultTicketAdvanced `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:ticket` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultTicketAdvanced extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultTicketUser `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultTicketUser` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultTicketUser {
|
||||
"opendiscord:claim":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:unclaim":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:add":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:remove":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:transfer":api.ODHelpMenuCommandComponent,
|
||||
}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultTicketUser `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:ticket` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultTicketUser extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultTicketUser>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketUser[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultTicketUser>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketUser[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultTicketUser): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultAdmin `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultAdmin` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultAdmin {
|
||||
"opendiscord:panel":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-view":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-add":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-remove":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-get":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultAdmin `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:admin` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultAdmin extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultAdmin>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdmin[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultAdmin>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdmin[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultAdmin): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultAdvanced `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultAdvanced` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultAdvanced {
|
||||
"opendiscord:stats-global":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:stats-reset":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:stats-ticket":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:stats-user":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autoclose-disable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autoclose-enable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autodelete-disable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autodelete-enable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:topic-set":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:priority-set":api.ODHelpMenuCommandComponent,
|
||||
}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultAdvanced `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:advanced` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultAdvanced extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultAdvanced>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdvanced[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultAdvanced>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdvanced[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultAdvanced): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODHelpMenuManagerCategoryIds_DefaultExtra `type`
|
||||
* This interface is a list of ids available in the `ODHelpMenuCategory_DefaultExtra` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerCategoryIds_DefaultExtra {}
|
||||
|
||||
/**## ODHelpMenuCategory_DefaultExtra `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODHelpMenuManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:general` category in `opendiscord.helpmenu`!
|
||||
*/
|
||||
export class ODHelpMenuCategory_DefaultExtra extends api.ODHelpMenuCategory {
|
||||
get<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultExtra>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultExtra[HelpMenuCategoryId]
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<HelpMenuCategoryId extends keyof ODHelpMenuManagerCategoryIds_DefaultExtra>(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultExtra[HelpMenuCategoryId]
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODHelpMenuComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODHelpMenuManagerCategoryIds_DefaultExtra): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT PERMISSION MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODClientManager_Default } from "./client"
|
||||
|
||||
/**## ODPermissionManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODPermissionManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.permissions`!
|
||||
*/
|
||||
export class ODPermissionManager_Default extends api.ODPermissionManager {
|
||||
constructor(debug:api.ODDebugger,client:ODClientManager_Default){
|
||||
super(debug,client,true)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODPermissionEmbedType `type`
|
||||
* This type contains all types available in the `opendiscord:no-permissions` embed.
|
||||
*/
|
||||
export type ODPermissionEmbedType = (
|
||||
"developer"|
|
||||
"owner"|
|
||||
"admin"|
|
||||
"moderator"|
|
||||
"support"|
|
||||
"member"|
|
||||
"discord-administrator"
|
||||
)
|
||||
@@ -1,76 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT POST MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODPluginManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODPluginManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPluginManagerIds_Default {}
|
||||
|
||||
/**## ODPluginManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODPluginManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.plugins`!
|
||||
*/
|
||||
export class ODPluginManager_Default extends api.ODPluginManager {
|
||||
declare classes: ODPluginClassManager_Default
|
||||
|
||||
get<PluginId extends keyof ODPluginManagerIds_Default>(id:PluginId): ODPluginManagerIds_Default[PluginId]
|
||||
get(id:api.ODValidId): api.ODPlugin|null
|
||||
|
||||
get(id:api.ODValidId): api.ODPlugin|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<PluginId extends keyof ODPluginManagerIds_Default>(id:PluginId): ODPluginManagerIds_Default[PluginId]
|
||||
remove(id:api.ODValidId): api.ODPlugin|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODPlugin|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODPluginManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODPluginClassManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODPluginClassManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPluginClassManagerIds_Default {}
|
||||
|
||||
/**## ODPluginClassManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODPluginClassManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.plugins.classes`!
|
||||
*/
|
||||
export class ODPluginClassManager_Default extends api.ODPluginClassManager {
|
||||
get<PluginClassId extends keyof ODPluginClassManagerIds_Default>(id:PluginClassId): ODPluginClassManagerIds_Default[PluginClassId]
|
||||
get(id:api.ODValidId): api.ODManagerData|null
|
||||
|
||||
get(id:api.ODValidId): api.ODManagerData|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<PluginClassId extends keyof ODPluginClassManagerIds_Default>(id:PluginClassId): ODPluginClassManagerIds_Default[PluginClassId]
|
||||
remove(id:api.ODValidId): api.ODManagerData|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODManagerData|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODPluginClassManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT POST MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
/**## ODPostManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODPostManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPostManagerIds_Default {
|
||||
"opendiscord:logs":api.ODPost<discord.GuildTextBasedChannel>|null,
|
||||
"opendiscord:transcripts":api.ODPost<discord.GuildTextBasedChannel>|null
|
||||
}
|
||||
|
||||
/**## ODPostManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODPostManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.code`!
|
||||
*/
|
||||
export class ODPostManager_Default extends api.ODPostManager {
|
||||
get<PostId extends keyof ODPostManagerIds_Default>(id:PostId): ODPostManagerIds_Default[PostId]
|
||||
get(id:api.ODValidId): api.ODPost<discord.GuildBasedChannel>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODPost<discord.GuildBasedChannel>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<PostId extends keyof ODPostManagerIds_Default>(id:PostId): ODPostManagerIds_Default[PostId]
|
||||
remove(id:api.ODValidId): api.ODPost<discord.GuildBasedChannel>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODPost<discord.GuildBasedChannel>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODPostManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,169 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT PROGRESS BAR MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import ansis from "ansis"
|
||||
|
||||
/**## ODProgressBarRenderer_DefaultSettingsLabel `type`
|
||||
* All available label types for the default progress bar renderer
|
||||
*/
|
||||
export type ODProgressBarRenderer_DefaultSettingsLabel = "value"|"percentage"|"fraction"|"time-ms"|"time-sec"|"time-min"
|
||||
|
||||
/**## ODProgressBarRenderer_DefaultSettings `interface`
|
||||
* This interface contains the settings for the default progress bar renderer.
|
||||
*/
|
||||
export interface ODProgressBarRenderer_DefaultSettings {
|
||||
/**The color of the progress bar border. */
|
||||
borderColor:api.ODValidConsoleColor|"openticket",
|
||||
/**The color of the progress bar (filled side). */
|
||||
filledBarColor:api.ODValidConsoleColor|"openticket",
|
||||
/**The color of the progress bar (empty side). */
|
||||
emptyBarColor:api.ODValidConsoleColor|"openticket",
|
||||
/**The color of the text before the progress bar. */
|
||||
prefixColor:api.ODValidConsoleColor|"openticket",
|
||||
/**The color of the text after the progress bar. */
|
||||
suffixColor:api.ODValidConsoleColor|"openticket",
|
||||
/**The color of the progress bar label. */
|
||||
labelColor:api.ODValidConsoleColor|"openticket",
|
||||
|
||||
/**The character used in the left border. */
|
||||
leftBorderChar:string,
|
||||
/**The character used in the right border. */
|
||||
rightBorderChar:string,
|
||||
/**The character used in the filled side of the progress bar. */
|
||||
filledBarChar:string,
|
||||
/**The character used in the empty side of the progress bar. */
|
||||
emptyBarChar:string,
|
||||
/**The label type. (will show a number related to the progress) */
|
||||
labelType:ODProgressBarRenderer_DefaultSettingsLabel,
|
||||
/**The position of the label. */
|
||||
labelPosition:"start"|"end",
|
||||
/**The width of the bar. (50 characters by default) */
|
||||
barWidth:number,
|
||||
|
||||
/**Show the bar. */
|
||||
showBar:boolean,
|
||||
/**Show the label. */
|
||||
showLabel:boolean,
|
||||
/**Show the border. */
|
||||
showBorder:boolean,
|
||||
}
|
||||
|
||||
export class ODProgressBarRenderer_Default extends api.ODProgressBarRenderer<ODProgressBarRenderer_DefaultSettings> {
|
||||
constructor(id:api.ODValidId,settings:ODProgressBarRenderer_DefaultSettings){
|
||||
super(id,(settings,min,max,value,rawPrefix,rawSuffix) => {
|
||||
const percentage = (value-min)/(max-min)
|
||||
const barLevel = Math.round(percentage*settings.barWidth)
|
||||
|
||||
const borderAnsis = (settings.borderColor == "openticket") ? ansis.hex("#f8ba00") : ansis[settings.borderColor]
|
||||
const filledBarAnsis = (settings.filledBarColor == "openticket") ? ansis.hex("#f8ba00") : ansis[settings.filledBarColor]
|
||||
const emptyBarAnsis = (settings.emptyBarColor == "openticket") ? ansis.hex("#f8ba00") : ansis[settings.emptyBarColor]
|
||||
const labelAnsis = (settings.labelColor == "openticket") ? ansis.hex("#f8ba00") : ansis[settings.labelColor]
|
||||
const prefixAnsis = (settings.prefixColor == "openticket") ? ansis.hex("#f8ba00") : ansis[settings.prefixColor]
|
||||
const suffixAnsis = (settings.suffixColor == "openticket") ? ansis.hex("#f8ba00") : ansis[settings.suffixColor]
|
||||
|
||||
const leftBorder = (settings.showBorder) ? borderAnsis(settings.leftBorderChar) : ""
|
||||
const rightBorder = (settings.showBorder) ? borderAnsis(settings.rightBorderChar) : ""
|
||||
const bar = (settings.showBar) ? filledBarAnsis(settings.filledBarChar.repeat(barLevel))+emptyBarAnsis(settings.emptyBarChar.repeat(settings.barWidth-barLevel)) : ""
|
||||
const prefix = (rawPrefix) ? prefixAnsis(rawPrefix)+" " : ""
|
||||
const suffix = (rawSuffix) ? " "+suffixAnsis(rawSuffix) : ""
|
||||
let label: string
|
||||
if (!settings.showLabel) label = ""
|
||||
if (settings.labelType == "fraction") label = labelAnsis(value+"/"+max)
|
||||
else if (settings.labelType == "percentage") label = labelAnsis(Math.round(percentage*100)+"%")
|
||||
else if (settings.labelType == "time-ms") label = labelAnsis(value+"ms")
|
||||
else if (settings.labelType == "time-sec") label = labelAnsis(Math.round(value*10)/10+"sec")
|
||||
else if (settings.labelType == "time-min") label = labelAnsis(Math.round(value*10)/10+"min")
|
||||
else label = labelAnsis(value.toString())
|
||||
|
||||
const labelWithPrefixAndSuffix = prefix+label+suffix
|
||||
return (settings.labelPosition == "start") ? labelWithPrefixAndSuffix+" "+leftBorder+bar+rightBorder : leftBorder+bar+rightBorder+" "+labelWithPrefixAndSuffix
|
||||
},settings)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODProgressBarRendererManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODProgressBarRendererManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODProgressBarRendererManagerIds_Default {
|
||||
"opendiscord:value-renderer":ODProgressBarRenderer_Default,
|
||||
"opendiscord:fraction-renderer":ODProgressBarRenderer_Default,
|
||||
"opendiscord:percentage-renderer":ODProgressBarRenderer_Default,
|
||||
"opendiscord:time-ms-renderer":ODProgressBarRenderer_Default,
|
||||
"opendiscord:time-sec-renderer":ODProgressBarRenderer_Default,
|
||||
"opendiscord:time-min-renderer":ODProgressBarRenderer_Default,
|
||||
}
|
||||
|
||||
/**## ODProgressBarRendererManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODProgressBarRendererManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.progressbars.renderers`!
|
||||
*/
|
||||
export class ODProgressBarRendererManager_Default extends api.ODProgressBarRendererManager {
|
||||
get<ProgressBarId extends keyof ODProgressBarRendererManagerIds_Default>(id:ProgressBarId): ODProgressBarRendererManagerIds_Default[ProgressBarId]
|
||||
get(id:api.ODValidId): api.ODProgressBarRenderer<{}>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODProgressBarRenderer<{}>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ProgressBarId extends keyof ODProgressBarRendererManagerIds_Default>(id:ProgressBarId): ODProgressBarRendererManagerIds_Default[ProgressBarId]
|
||||
remove(id:api.ODValidId): api.ODProgressBarRenderer<{}>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODProgressBarRenderer<{}>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODProgressBarRendererManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODProgressBarManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODProgressBarManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODProgressBarManagerIds_Default {
|
||||
"opendiscord:slash-command-remove":api.ODManualProgressBar,
|
||||
"opendiscord:slash-command-create":api.ODManualProgressBar,
|
||||
"opendiscord:slash-command-update":api.ODManualProgressBar,
|
||||
"opendiscord:context-menu-remove":api.ODManualProgressBar,
|
||||
"opendiscord:context-menu-create":api.ODManualProgressBar,
|
||||
"opendiscord:context-menu-update":api.ODManualProgressBar,
|
||||
}
|
||||
|
||||
/**## ODProgressBarManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODProgressBarManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.progressbars`!
|
||||
*/
|
||||
export class ODProgressBarManager_Default extends api.ODProgressBarManager {
|
||||
declare renderers: ODProgressBarRendererManager_Default
|
||||
|
||||
get<ProgressBarId extends keyof ODProgressBarManagerIds_Default>(id:ProgressBarId): ODProgressBarManagerIds_Default[ProgressBarId]
|
||||
get(id:api.ODValidId): api.ODProgressBar|null
|
||||
|
||||
get(id:api.ODValidId): api.ODProgressBar|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ProgressBarId extends keyof ODProgressBarManagerIds_Default>(id:ProgressBarId): ODProgressBarManagerIds_Default[ProgressBarId]
|
||||
remove(id:api.ODValidId): api.ODProgressBar|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODProgressBar|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODProgressBarManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,354 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT RESPONDER MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODWorkerManager_Default } from "./worker"
|
||||
|
||||
/**## ODResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders`!
|
||||
*/
|
||||
export class ODResponderManager_Default extends api.ODResponderManager {
|
||||
declare commands: ODCommandResponderManager_Default
|
||||
declare buttons: ODButtonResponderManager_Default
|
||||
declare dropdowns: ODDropdownResponderManager_Default
|
||||
declare modals: ODModalResponderManager_Default
|
||||
declare contextMenus: ODContextMenuResponderManager_Default
|
||||
declare autocomplete: ODAutocompleteResponderManager_Default
|
||||
}
|
||||
|
||||
/**## ODCommandResponderManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODCommandResponderManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCommandResponderManagerIds_Default {
|
||||
"opendiscord:help":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:help"|"opendiscord:logs"},
|
||||
"opendiscord:stats":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:stats"|"opendiscord:logs"},
|
||||
"opendiscord:panel":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:panel"|"opendiscord:logs"},
|
||||
"opendiscord:ticket":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:ticket"|"opendiscord:logs"},
|
||||
"opendiscord:blacklist":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:blacklist"|"opendiscord:discord-logs"|"opendiscord:logs"},
|
||||
|
||||
"opendiscord:close":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:close"|"opendiscord:logs"},
|
||||
"opendiscord:reopen":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:reopen"|"opendiscord:logs"},
|
||||
"opendiscord:delete":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:delete"|"opendiscord:logs"},
|
||||
"opendiscord:claim":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:claim"|"opendiscord:logs"},
|
||||
"opendiscord:unclaim":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:unclaim"|"opendiscord:logs"},
|
||||
"opendiscord:pin":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:pin"|"opendiscord:logs"},
|
||||
"opendiscord:unpin":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:unpin"|"opendiscord:logs"},
|
||||
|
||||
"opendiscord:rename":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:rename"|"opendiscord:logs"},
|
||||
"opendiscord:move":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:move"|"opendiscord:logs"},
|
||||
"opendiscord:add":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:add"|"opendiscord:logs"},
|
||||
"opendiscord:remove":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:remove"|"opendiscord:logs"},
|
||||
"opendiscord:clear":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:clear"|"opendiscord:logs"},
|
||||
"opendiscord:topic":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:topic"|"opendiscord:logs"},
|
||||
"opendiscord:priority":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:priority"|"opendiscord:logs"},
|
||||
"opendiscord:transfer":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:transfer"|"opendiscord:logs"},
|
||||
|
||||
"opendiscord:autoclose":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:autoclose"|"opendiscord:logs"},
|
||||
"opendiscord:autodelete":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:autodelete"|"opendiscord:logs"},
|
||||
}
|
||||
|
||||
/**## ODCommandResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCommandResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders.commands`!
|
||||
*/
|
||||
export class ODCommandResponderManager_Default extends api.ODCommandResponderManager {
|
||||
get<CommandResponderId extends keyof ODCommandResponderManagerIds_Default>(id:CommandResponderId): ODCommandResponder_Default<ODCommandResponderManagerIds_Default[CommandResponderId]["source"],ODCommandResponderManagerIds_Default[CommandResponderId]["params"],ODCommandResponderManagerIds_Default[CommandResponderId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODCommandResponder<"slash"|"text",any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODCommandResponder<"slash"|"text",any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CommandResponderId extends keyof ODCommandResponderManagerIds_Default>(id:CommandResponderId): ODCommandResponder_Default<ODCommandResponderManagerIds_Default[CommandResponderId]["source"],ODCommandResponderManagerIds_Default[CommandResponderId]["params"],ODCommandResponderManagerIds_Default[CommandResponderId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODCommandResponder<"slash"|"text",any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODCommandResponder<"slash"|"text",any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODCommandResponderManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODCommandResponder_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODCommandResponder class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODCommandResponder`'s!
|
||||
*/
|
||||
export class ODCommandResponder_Default<Source extends "slash"|"text", Params, WorkerIds extends string> extends api.ODCommandResponder<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODCommandResponderInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODButtonResponderManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODButtonResponderManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODButtonResponderManagerIds_Default {
|
||||
"opendiscord:verifybar-success":{source:"button",params:{},workers:"opendiscord:handle-verifybar"},
|
||||
"opendiscord:verifybar-failure":{source:"button",params:{},workers:"opendiscord:handle-verifybar"},
|
||||
|
||||
"opendiscord:help-menu-switch":{source:"button",params:{},workers:"opendiscord:update-help-menu"},
|
||||
"opendiscord:help-menu-previous":{source:"button",params:{},workers:"opendiscord:update-help-menu"},
|
||||
"opendiscord:help-menu-next":{source:"button",params:{},workers:"opendiscord:update-help-menu"},
|
||||
|
||||
"opendiscord:ticket-option":{source:"button",params:{},workers:"opendiscord:ticket-option"},
|
||||
"opendiscord:role-option":{source:"button",params:{},workers:"opendiscord:role-option"},
|
||||
|
||||
"opendiscord:claim-ticket":{source:"button",params:{},workers:"opendiscord:claim-ticket"},
|
||||
"opendiscord:unclaim-ticket":{source:"button",params:{},workers:"opendiscord:unclaim-ticket"},
|
||||
"opendiscord:pin-ticket":{source:"button",params:{},workers:"opendiscord:pin-ticket"},
|
||||
"opendiscord:unpin-ticket":{source:"button",params:{},workers:"opendiscord:unpin-ticket"},
|
||||
"opendiscord:close-ticket":{source:"button",params:{},workers:"opendiscord:close-ticket"},
|
||||
"opendiscord:reopen-ticket":{source:"button",params:{},workers:"opendiscord:reopen-ticket"},
|
||||
"opendiscord:delete-ticket":{source:"button",params:{},workers:"opendiscord:delete-ticket"},
|
||||
|
||||
"opendiscord:transcript-error-retry":{source:"button",params:{},workers:"opendiscord:permissions"|"opendiscord:delete-ticket"|"opendiscord:logs"},
|
||||
"opendiscord:transcript-error-continue":{source:"button",params:{},workers:"opendiscord:permissions"|"opendiscord:delete-ticket"|"opendiscord:logs"},
|
||||
"opendiscord:clear-continue":{source:"button",params:{},workers:"opendiscord:clear-continue"},
|
||||
}
|
||||
|
||||
/**## ODButtonResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODButtonResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders.buttons`!
|
||||
*/
|
||||
export class ODButtonResponderManager_Default extends api.ODButtonResponderManager {
|
||||
get<ButtonResponderId extends keyof ODButtonResponderManagerIds_Default>(id:ButtonResponderId): ODButtonResponder_Default<ODButtonResponderManagerIds_Default[ButtonResponderId]["source"],ODButtonResponderManagerIds_Default[ButtonResponderId]["params"],ODButtonResponderManagerIds_Default[ButtonResponderId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODButtonResponder<"button",any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODButtonResponder<"button",any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ButtonResponderId extends keyof ODButtonResponderManagerIds_Default>(id:ButtonResponderId): ODButtonResponder_Default<ODButtonResponderManagerIds_Default[ButtonResponderId]["source"],ODButtonResponderManagerIds_Default[ButtonResponderId]["params"],ODButtonResponderManagerIds_Default[ButtonResponderId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODButtonResponder<"button",any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODButtonResponder<"button",any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODButtonResponderManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODButtonResponder_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODButtonResponder class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODButtonResponder`'s!
|
||||
*/
|
||||
export class ODButtonResponder_Default<Source extends string, Params, WorkerIds extends string> extends api.ODButtonResponder<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODButtonResponderInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODDropdownResponderManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODDropdownResponderManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODDropdownResponderManagerIds_Default {
|
||||
"opendiscord:panel-dropdown-tickets":{source:"dropdown",params:{},workers:"opendiscord:panel-dropdown-tickets"},
|
||||
}
|
||||
|
||||
/**## ODDropdownResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODDropdownResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders.dropdowns`!
|
||||
*/
|
||||
export class ODDropdownResponderManager_Default extends api.ODDropdownResponderManager {
|
||||
get<DropdownResponderId extends keyof ODDropdownResponderManagerIds_Default>(id:DropdownResponderId): ODDropdownResponder_Default<ODDropdownResponderManagerIds_Default[DropdownResponderId]["source"],ODDropdownResponderManagerIds_Default[DropdownResponderId]["params"],ODDropdownResponderManagerIds_Default[DropdownResponderId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODDropdownResponder<"dropdown",any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODDropdownResponder<"dropdown",any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<DropdownResponderId extends keyof ODDropdownResponderManagerIds_Default>(id:DropdownResponderId): ODDropdownResponder_Default<ODDropdownResponderManagerIds_Default[DropdownResponderId]["source"],ODDropdownResponderManagerIds_Default[DropdownResponderId]["params"],ODDropdownResponderManagerIds_Default[DropdownResponderId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODDropdownResponder<"dropdown",any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODDropdownResponder<"dropdown",any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODDropdownResponderManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODDropdownResponder_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODDropdownResponder class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODDropdownResponder`'s!
|
||||
*/
|
||||
export class ODDropdownResponder_Default<Source extends string, Params, WorkerIds extends string> extends api.ODDropdownResponder<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODDropdownResponderInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODModalResponderManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODModalResponderManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODModalResponderManagerIds_Default {
|
||||
"opendiscord:ticket-questions":{source:"modal",params:{},workers:"opendiscord:ticket-questions"},
|
||||
"opendiscord:close-ticket-reason":{source:"modal",params:{},workers:"opendiscord:close-ticket-reason"},
|
||||
"opendiscord:reopen-ticket-reason":{source:"modal",params:{},workers:"opendiscord:reopen-ticket-reason"},
|
||||
"opendiscord:delete-ticket-reason":{source:"modal",params:{},workers:"opendiscord:delete-ticket-reason"},
|
||||
"opendiscord:claim-ticket-reason":{source:"modal",params:{},workers:"opendiscord:claim-ticket-reason"},
|
||||
"opendiscord:unclaim-ticket-reason":{source:"modal",params:{},workers:"opendiscord:unclaim-ticket-reason"},
|
||||
"opendiscord:pin-ticket-reason":{source:"modal",params:{},workers:"opendiscord:pin-ticket-reason"},
|
||||
"opendiscord:unpin-ticket-reason":{source:"modal",params:{},workers:"opendiscord:unpin-ticket-reason"},
|
||||
}
|
||||
|
||||
/**## ODModalResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODModalResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders.dropdowns`!
|
||||
*/
|
||||
export class ODModalResponderManager_Default extends api.ODModalResponderManager {
|
||||
get<ModalResponderId extends keyof ODModalResponderManagerIds_Default>(id:ModalResponderId): ODModalResponder_Default<ODModalResponderManagerIds_Default[ModalResponderId]["source"],ODModalResponderManagerIds_Default[ModalResponderId]["params"],ODModalResponderManagerIds_Default[ModalResponderId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODModalResponder<"modal",any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODModalResponder<"modal",any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ModalResponderId extends keyof ODModalResponderManagerIds_Default>(id:ModalResponderId): ODModalResponder_Default<ODModalResponderManagerIds_Default[ModalResponderId]["source"],ODModalResponderManagerIds_Default[ModalResponderId]["params"],ODModalResponderManagerIds_Default[ModalResponderId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODModalResponder<"modal",any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODModalResponder<"modal",any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODModalResponderManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODModalResponder_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODModalResponder class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODModalResponder`'s!
|
||||
*/
|
||||
export class ODModalResponder_Default<Source extends string, Params, WorkerIds extends string> extends api.ODModalResponder<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODModalResponderInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODContextMenuResponderManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODContextMenuResponderManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODContextMenuResponderManagerIds_Default {
|
||||
//"opendiscord:example":{source:"context-menu",params:{},workers:"opendiscord:example"},
|
||||
}
|
||||
|
||||
/**## ODContextMenuResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODContextMenuResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders.contextMenus`!
|
||||
*/
|
||||
export class ODContextMenuResponderManager_Default extends api.ODContextMenuResponderManager {
|
||||
get<ModalResponderId extends keyof ODContextMenuResponderManagerIds_Default>(id:ModalResponderId): ODContextMenuResponder_Default<ODContextMenuResponderManagerIds_Default[ModalResponderId]["source"],ODContextMenuResponderManagerIds_Default[ModalResponderId]["params"],ODContextMenuResponderManagerIds_Default[ModalResponderId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODContextMenuResponder<"context-menu",any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODContextMenuResponder<"context-menu",any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ModalResponderId extends keyof ODContextMenuResponderManagerIds_Default>(id:ModalResponderId): ODContextMenuResponder_Default<ODContextMenuResponderManagerIds_Default[ModalResponderId]["source"],ODContextMenuResponderManagerIds_Default[ModalResponderId]["params"],ODContextMenuResponderManagerIds_Default[ModalResponderId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODContextMenuResponder<"context-menu",any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODContextMenuResponder<"context-menu",any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODContextMenuResponderManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODContextMenuResponder_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODContextMenuResponder class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODContextMenuResponder`'s!
|
||||
*/
|
||||
export class ODContextMenuResponder_Default<Source extends string, Params, WorkerIds extends string> extends api.ODContextMenuResponder<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODContextMenuResponderInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODAutocompleteResponderManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODAutocompleteResponderManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODAutocompleteResponderManagerIds_Default {
|
||||
"opendiscord:panel-id":{source:"autocomplete",params:{},workers:"opendiscord:panel-id"},
|
||||
"opendiscord:option-id":{source:"autocomplete",params:{},workers:"opendiscord:option-id"}
|
||||
}
|
||||
|
||||
/**## ODAutocompleteResponderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODAutocompleteResponderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.responders.autocomplete`!
|
||||
*/
|
||||
export class ODAutocompleteResponderManager_Default extends api.ODAutocompleteResponderManager {
|
||||
get<ModalResponderId extends keyof ODAutocompleteResponderManagerIds_Default>(id:ModalResponderId): ODAutocompleteResponder_Default<ODAutocompleteResponderManagerIds_Default[ModalResponderId]["source"],ODAutocompleteResponderManagerIds_Default[ModalResponderId]["params"],ODAutocompleteResponderManagerIds_Default[ModalResponderId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODAutocompleteResponder<"autocomplete",any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODAutocompleteResponder<"autocomplete",any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ModalResponderId extends keyof ODAutocompleteResponderManagerIds_Default>(id:ModalResponderId): ODAutocompleteResponder_Default<ODAutocompleteResponderManagerIds_Default[ModalResponderId]["source"],ODAutocompleteResponderManagerIds_Default[ModalResponderId]["params"],ODAutocompleteResponderManagerIds_Default[ModalResponderId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODAutocompleteResponder<"autocomplete",any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODAutocompleteResponder<"autocomplete",any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODAutocompleteResponderManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODAutocompleteResponder_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODAutocompleteResponder class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODAutocompleteResponder`'s!
|
||||
*/
|
||||
export class ODAutocompleteResponder_Default<Source extends string, Params, WorkerIds extends string> extends api.ODAutocompleteResponder<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODAutocompleteResponderInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT SESSION MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODSessionManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODSessionManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODSessionManagerIds_Default {
|
||||
//"test-session":ODSession
|
||||
}
|
||||
|
||||
/**## ODSessionManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODSessionManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.sessions`!
|
||||
*/
|
||||
export class ODSessionManager_Default extends api.ODSessionManager {
|
||||
get<SessionId extends keyof ODSessionManagerIds_Default>(id:SessionId): ODSessionManagerIds_Default[SessionId]
|
||||
get(id:api.ODValidId): api.ODSession|null
|
||||
|
||||
get(id:api.ODValidId): api.ODSession|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<SessionId extends keyof ODSessionManagerIds_Default>(id:SessionId): ODSessionManagerIds_Default[SessionId]
|
||||
remove(id:api.ODValidId): api.ODSession|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODSession|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODSessionManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT STARTSCREEN MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODStartScreenManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODStartScreenManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStartScreenManagerIds_Default {
|
||||
"opendiscord:logo":api.ODStartScreenLogoComponent,
|
||||
"opendiscord:header":api.ODStartScreenHeaderComponent,
|
||||
"opendiscord:flags":api.ODStartScreenFlagsCategoryComponent,
|
||||
"opendiscord:plugins":api.ODStartScreenPluginsCategoryComponent,
|
||||
"opendiscord:stats":api.ODStartScreenPropertiesCategoryComponent,
|
||||
"opendiscord:livestatus":api.ODStartScreenLiveStatusCategoryComponent,
|
||||
"opendiscord:logs":api.ODStartScreenCategoryComponent
|
||||
}
|
||||
|
||||
/**## ODStartScreenManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStartScreenManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.startscreen`!
|
||||
*/
|
||||
export class ODStartScreenManager_Default extends api.ODStartScreenManager {
|
||||
get<StartScreenId extends keyof ODStartScreenManagerIds_Default>(id:StartScreenId): ODStartScreenManagerIds_Default[StartScreenId]
|
||||
get(id:api.ODValidId): api.ODStartScreenComponent|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStartScreenComponent|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StartScreenId extends keyof ODStartScreenManagerIds_Default>(id:StartScreenId): ODStartScreenManagerIds_Default[StartScreenId]
|
||||
remove(id:api.ODValidId): api.ODStartScreenComponent|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStartScreenComponent|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStartScreenManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -1,471 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT SESSION MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODStatsManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODStatsManager_Default` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatsManagerIds_Default {
|
||||
"opendiscord:global":ODStatGlobalScope_DefaultGlobal,
|
||||
"opendiscord:system":ODStatGlobalScope_DefaultSystem,
|
||||
"opendiscord:user":ODStatScope_DefaultUser,
|
||||
"opendiscord:ticket":ODStatScope_DefaultTicket,
|
||||
"opendiscord:participants":ODStatScope_DefaultParticipants,
|
||||
"opendiscord:messages":ODStatScope_DefaultMessages,
|
||||
}
|
||||
|
||||
/**## ODStatsManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatsManager_Default extends api.ODStatsManager {
|
||||
get<StatsId extends keyof ODStatsManagerIds_Default>(id:StatsId): ODStatsManagerIds_Default[StatsId]
|
||||
get(id:api.ODValidId): api.ODStatScope|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStatScope|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatsManagerIds_Default>(id:StatsId): ODStatsManagerIds_Default[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStatScope|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStatScope|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatsManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODStatGlobalScopeIds_DefaultGlobal `type`
|
||||
* This interface is a list of ids available in the `ODStatGlobalScope_DefaultGlobal` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatGlobalScopeIds_DefaultGlobal {
|
||||
"opendiscord:tickets-created":api.ODBasicStat,
|
||||
"opendiscord:tickets-closed":api.ODBasicStat,
|
||||
"opendiscord:tickets-deleted":api.ODBasicStat,
|
||||
"opendiscord:tickets-reopened":api.ODBasicStat,
|
||||
"opendiscord:tickets-autoclosed":api.ODBasicStat,
|
||||
"opendiscord:tickets-autodeleted":api.ODBasicStat,
|
||||
"opendiscord:tickets-claimed":api.ODBasicStat,
|
||||
"opendiscord:tickets-pinned":api.ODBasicStat,
|
||||
"opendiscord:tickets-moved":api.ODBasicStat,
|
||||
"opendiscord:tickets-transferred":api.ODBasicStat,
|
||||
"opendiscord:users-blacklisted":api.ODBasicStat,
|
||||
"opendiscord:transcripts-created":api.ODBasicStat,
|
||||
"opendiscord:ticket-volume":api.ODDynamicStat,
|
||||
"opendiscord:average-tickets":api.ODDynamicStat,
|
||||
}
|
||||
|
||||
/**## ODStatGlobalScope_DefaultGlobal `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:global` category in `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatGlobalScope_DefaultGlobal extends api.ODStatGlobalScope {
|
||||
get<StatsId extends keyof ODStatGlobalScopeIds_DefaultGlobal>(id:StatsId): ODStatGlobalScopeIds_DefaultGlobal[StatsId]
|
||||
get(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStat|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatGlobalScopeIds_DefaultGlobal>(id:StatsId): ODStatGlobalScopeIds_DefaultGlobal[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStat|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatGlobalScopeIds_DefaultGlobal): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getStat<StatsId extends keyof ODStatGlobalScopeIds_DefaultGlobal>(id:StatsId): Promise<api.ODValidStatValue|null>
|
||||
getStat(id:api.ODValidId): Promise<api.ODValidStatValue|null>
|
||||
|
||||
getStat(id:api.ODValidId): Promise<api.ODValidStatValue|null> {
|
||||
return super.getStat(id)
|
||||
}
|
||||
|
||||
getAllStats<StatsId extends keyof ODStatGlobalScopeIds_DefaultGlobal>(id:StatsId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]> {
|
||||
return super.getAllStats(id)
|
||||
}
|
||||
|
||||
setStat<StatsId extends keyof ODStatGlobalScopeIds_DefaultGlobal>(id:StatsId, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
setStat(id:api.ODValidId, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
|
||||
setStat(id:api.ODValidId, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean> {
|
||||
return super.setStat(id,value,mode)
|
||||
}
|
||||
|
||||
resetStat<StatsId extends keyof ODStatGlobalScopeIds_DefaultGlobal>(id:api.ODValidId): Promise<api.ODValidStatValue|null>
|
||||
resetStat(id:api.ODValidId): Promise<api.ODValidStatValue|null>
|
||||
|
||||
resetStat(id:api.ODValidId): Promise<api.ODValidStatValue|null> {
|
||||
return super.resetStat(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODStatGlobalScopeIds_DefaultSystem `type`
|
||||
* This interface is a list of ids available in the `ODStatScope_DefaultSystem` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatGlobalScopeIds_DefaultSystem {
|
||||
"opendiscord:startup-date":api.ODDynamicStat,
|
||||
"opendiscord:system-uptime":api.ODDynamicStat,
|
||||
"opendiscord:version":api.ODDynamicStat
|
||||
}
|
||||
|
||||
/**## ODStatGlobalScope_DefaultSystem `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:system` category in `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatGlobalScope_DefaultSystem extends api.ODStatGlobalScope {
|
||||
get<StatsId extends keyof ODStatGlobalScopeIds_DefaultSystem>(id:StatsId): ODStatGlobalScopeIds_DefaultSystem[StatsId]
|
||||
get(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStat|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatGlobalScopeIds_DefaultSystem>(id:StatsId): ODStatGlobalScopeIds_DefaultSystem[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStat|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatGlobalScopeIds_DefaultSystem): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getStat<StatsId extends keyof ODStatGlobalScopeIds_DefaultSystem>(id:StatsId): Promise<api.ODValidStatValue|null>
|
||||
getStat(id:api.ODValidId): Promise<api.ODValidStatValue|null>
|
||||
|
||||
getStat(id:api.ODValidId): Promise<api.ODValidStatValue|null> {
|
||||
return super.getStat(id)
|
||||
}
|
||||
|
||||
getAllStats<StatsId extends keyof ODStatGlobalScopeIds_DefaultSystem>(id:StatsId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]> {
|
||||
return super.getAllStats(id)
|
||||
}
|
||||
|
||||
setStat<StatsId extends keyof ODStatGlobalScopeIds_DefaultSystem>(id:StatsId, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
setStat(id:api.ODValidId, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
|
||||
setStat(id:api.ODValidId, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean> {
|
||||
return super.setStat(id,value,mode)
|
||||
}
|
||||
|
||||
resetStat<StatsId extends keyof ODStatGlobalScopeIds_DefaultSystem>(id:api.ODValidId): Promise<api.ODValidStatValue|null>
|
||||
resetStat(id:api.ODValidId): Promise<api.ODValidStatValue|null>
|
||||
|
||||
resetStat(id:api.ODValidId): Promise<api.ODValidStatValue|null> {
|
||||
return super.resetStat(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODStatScopeIds_DefaultUser `type`
|
||||
* This interface is a list of ids available in the `ODStatScope_DefaultUser` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatScopeIds_DefaultUser {
|
||||
"opendiscord:name":api.ODDynamicStat,
|
||||
"opendiscord:role":api.ODDynamicStat,
|
||||
"opendiscord:tickets-created":api.ODBasicStat,
|
||||
"opendiscord:tickets-closed":api.ODBasicStat,
|
||||
"opendiscord:tickets-deleted":api.ODBasicStat,
|
||||
"opendiscord:tickets-reopened":api.ODBasicStat,
|
||||
"opendiscord:tickets-claimed":api.ODBasicStat,
|
||||
"opendiscord:tickets-pinned":api.ODBasicStat,
|
||||
"opendiscord:tickets-moved":api.ODBasicStat,
|
||||
"opendiscord:tickets-transferred":api.ODBasicStat,
|
||||
"opendiscord:users-blacklisted":api.ODBasicStat,
|
||||
"opendiscord:transcripts-created":api.ODBasicStat,
|
||||
"opendiscord:current-tickets":api.ODDynamicStat,
|
||||
}
|
||||
|
||||
/**## ODStatScope_DefaultUser `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:user` category in `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatScope_DefaultUser extends api.ODStatScope {
|
||||
get<StatsId extends keyof ODStatScopeIds_DefaultUser>(id:StatsId): ODStatScopeIds_DefaultUser[StatsId]
|
||||
get(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStat|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatScopeIds_DefaultUser>(id:StatsId): ODStatScopeIds_DefaultUser[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStat|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatScopeIds_DefaultUser): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getStat<StatsId extends keyof ODStatScopeIds_DefaultUser>(id:StatsId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.getStat(id,scopeId)
|
||||
}
|
||||
|
||||
getAllStats<StatsId extends keyof ODStatScopeIds_DefaultUser>(id:StatsId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]> {
|
||||
return super.getAllStats(id)
|
||||
}
|
||||
|
||||
setStat<StatsId extends keyof ODStatScopeIds_DefaultUser>(id:StatsId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean> {
|
||||
return super.setStat(id,scopeId,value,mode)
|
||||
}
|
||||
|
||||
resetStat<StatsId extends keyof ODStatScopeIds_DefaultUser>(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.resetStat(id,scopeId)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODStatScopeIds_DefaultTicket `type`
|
||||
* This interface is a list of ids available in the `ODStatScope_DefaultTicket` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatScopeIds_DefaultTicket {
|
||||
"opendiscord:name":api.ODDynamicStat,
|
||||
"opendiscord:status":api.ODDynamicStat,
|
||||
"opendiscord:claimed":api.ODDynamicStat,
|
||||
"opendiscord:pinned":api.ODDynamicStat,
|
||||
"opendiscord:creation-date":api.ODDynamicStat,
|
||||
"opendiscord:creator":api.ODDynamicStat,
|
||||
"opendiscord:ticket-age":api.ODDynamicStat,
|
||||
"opendiscord:response-time":api.ODDynamicStat,
|
||||
"opendiscord:resolution-time":api.ODDynamicStat,
|
||||
}
|
||||
|
||||
/**## ODStatScope_DefaultTicket `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:ticket` category in `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatScope_DefaultTicket extends api.ODStatScope {
|
||||
get<StatsId extends keyof ODStatScopeIds_DefaultTicket>(id:StatsId): ODStatScopeIds_DefaultTicket[StatsId]
|
||||
get(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStat|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatScopeIds_DefaultTicket>(id:StatsId): ODStatScopeIds_DefaultTicket[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStat|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatScopeIds_DefaultTicket): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getStat<StatsId extends keyof ODStatScopeIds_DefaultTicket>(id:StatsId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.getStat(id,scopeId)
|
||||
}
|
||||
|
||||
getAllStats<StatsId extends keyof ODStatScopeIds_DefaultTicket>(id:StatsId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]> {
|
||||
return super.getAllStats(id)
|
||||
}
|
||||
|
||||
setStat<StatsId extends keyof ODStatScopeIds_DefaultTicket>(id:StatsId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean> {
|
||||
return super.setStat(id,scopeId,value,mode)
|
||||
}
|
||||
|
||||
resetStat<StatsId extends keyof ODStatScopeIds_DefaultTicket>(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.resetStat(id,scopeId)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODStatScopeIds_DefaultParticipants `type`
|
||||
* This interface is a list of ids available in the `ODStatScope_DefaultParticipants` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatScopeIds_DefaultParticipants {
|
||||
"opendiscord:participants":api.ODDynamicStat
|
||||
}
|
||||
|
||||
/**## ODStatScope_DefaultParticipants `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:participants` category in `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatScope_DefaultParticipants extends api.ODStatScope {
|
||||
get<StatsId extends keyof ODStatScopeIds_DefaultParticipants>(id:StatsId): ODStatScopeIds_DefaultParticipants[StatsId]
|
||||
get(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStat|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatScopeIds_DefaultParticipants>(id:StatsId): ODStatScopeIds_DefaultParticipants[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStat|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatScopeIds_DefaultParticipants): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getStat<StatsId extends keyof ODStatScopeIds_DefaultParticipants>(id:StatsId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.getStat(id,scopeId)
|
||||
}
|
||||
|
||||
getAllStats<StatsId extends keyof ODStatScopeIds_DefaultParticipants>(id:StatsId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]> {
|
||||
return super.getAllStats(id)
|
||||
}
|
||||
|
||||
setStat<StatsId extends keyof ODStatScopeIds_DefaultParticipants>(id:StatsId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean> {
|
||||
return super.setStat(id,scopeId,value,mode)
|
||||
}
|
||||
|
||||
resetStat<StatsId extends keyof ODStatScopeIds_DefaultParticipants>(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.resetStat(id,scopeId)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODStatScopeIds_DefaultMessages `type`
|
||||
* This interface is a list of ids available in the `ODStatScope_DefaultMessages` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatScopeIds_DefaultMessages {
|
||||
"opendiscord:count":api.ODDynamicStat
|
||||
}
|
||||
|
||||
/**## ODStatScope_DefaultMessages `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODStatsManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `opendiscord:participants` category in `opendiscord.stats`!
|
||||
*/
|
||||
export class ODStatScope_DefaultMessages extends api.ODStatScope {
|
||||
get<StatsId extends keyof ODStatScopeIds_DefaultMessages>(id:StatsId): ODStatScopeIds_DefaultMessages[StatsId]
|
||||
get(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
get(id:api.ODValidId): api.ODStat|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<StatsId extends keyof ODStatScopeIds_DefaultMessages>(id:StatsId): ODStatScopeIds_DefaultMessages[StatsId]
|
||||
remove(id:api.ODValidId): api.ODStat|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODStat|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODStatScopeIds_DefaultMessages): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getStat<StatsId extends keyof ODStatScopeIds_DefaultMessages>(id:StatsId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
getStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.getStat(id,scopeId)
|
||||
}
|
||||
|
||||
getAllStats<StatsId extends keyof ODStatScopeIds_DefaultMessages>(id:StatsId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]>
|
||||
|
||||
getAllStats(id:api.ODValidId): Promise<{id:string,value:api.ODValidStatValue}[]> {
|
||||
return super.getAllStats(id)
|
||||
}
|
||||
|
||||
setStat<StatsId extends keyof ODStatScopeIds_DefaultMessages>(id:StatsId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean>
|
||||
|
||||
setStat(id:api.ODValidId, scopeId:string, value:api.ODValidStatValue, mode:api.ODStatScopeSetMode): Promise<boolean> {
|
||||
return super.setStat(id,scopeId,value,mode)
|
||||
}
|
||||
|
||||
resetStat<StatsId extends keyof ODStatScopeIds_DefaultMessages>(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null>
|
||||
|
||||
resetStat(id:api.ODValidId, scopeId:string): Promise<api.ODValidStatValue|null> {
|
||||
return super.resetStat(id,scopeId)
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT WORKER MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODWorkerManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODWorkerManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the worker manager in actions, builders & responders!
|
||||
*/
|
||||
export class ODWorkerManager_Default<Instance, Source extends string, Params, WorkerIds extends string> extends api.ODWorkerManager<Instance,Source,Params> {
|
||||
get(id:WorkerIds): api.ODWorker<Instance,Source,Params>
|
||||
get(id:api.ODValidId): api.ODWorker<Instance,Source,Params>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODWorker<Instance,Source,Params>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove(id:WorkerIds): api.ODWorker<Instance,Source,Params>
|
||||
remove(id:api.ODValidId): api.ODWorker<Instance,Source,Params>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODWorker<Instance,Source,Params>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:WorkerIds): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,9 @@
|
||||
//OPENTICKET OPTION MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODJsonConfig_DefaultOptionEmbedSettingsType, ODJsonConfig_DefaultOptionPingSettingsType } from "../defaults/config"
|
||||
import * as discord from "discord.js"
|
||||
import * as crypto from "crypto"
|
||||
import { ODOptionsJsonConfig_TicketOptionEmbedSettings, ODOptionsJsonConfig_TicketOptionPingSettings } from "../mappings/config"
|
||||
import { ODRoleUpdateMode } from "./role"
|
||||
|
||||
/**## ODOptionManager `class`
|
||||
@@ -158,12 +158,12 @@ export interface ODTicketOptionIds {
|
||||
|
||||
"opendiscord:dm-message-enabled":ODOptionData<boolean>,
|
||||
"opendiscord:dm-message-text":ODOptionData<string>,
|
||||
"opendiscord:dm-message-embed":ODOptionData<ODJsonConfig_DefaultOptionEmbedSettingsType>,
|
||||
"opendiscord:dm-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
|
||||
|
||||
"opendiscord:ticket-message-enabled":ODOptionData<boolean>,
|
||||
"opendiscord:ticket-message-text":ODOptionData<string>,
|
||||
"opendiscord:ticket-message-embed":ODOptionData<ODJsonConfig_DefaultOptionEmbedSettingsType>,
|
||||
"opendiscord:ticket-message-ping":ODOptionData<ODJsonConfig_DefaultOptionPingSettingsType>,
|
||||
"opendiscord:ticket-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
|
||||
"opendiscord:ticket-message-ping":ODOptionData<ODOptionsJsonConfig_TicketOptionPingSettings>,
|
||||
|
||||
"opendiscord:autoclose-enable-hours":ODOptionData<boolean>,
|
||||
"opendiscord:autoclose-enable-leave":ODOptionData<boolean>,
|
||||
@@ -2,7 +2,7 @@
|
||||
//OPENTICKET PANEL MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODJsonConfig_DefaultPanelEmbedSettingsType } from "../defaults/config"
|
||||
import { ODPanelsJsonConfig_PanelEmbedSettings } from "../mappings/config"
|
||||
|
||||
/**## ODPanelManager `class`
|
||||
* This is an Open Ticket panel manager.
|
||||
@@ -58,7 +58,7 @@ export interface ODPanelIds {
|
||||
"opendiscord:dropdown":ODPanelData<boolean>,
|
||||
|
||||
"opendiscord:text":ODPanelData<string>,
|
||||
"opendiscord:embed":ODPanelData<ODJsonConfig_DefaultPanelEmbedSettingsType>,
|
||||
"opendiscord:embed":ODPanelData<ODPanelsJsonConfig_PanelEmbedSettings>,
|
||||
|
||||
"opendiscord:dropdown-placeholder":ODPanelData<string>,
|
||||
|
||||
@@ -2,7 +2,25 @@
|
||||
//OPENTICKET PRIORITY MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
/**## ODPriorityManagerIdConstraint `type`
|
||||
* The constraint/layout for id mappings/interfaces of the `ODPriorityManager` class.
|
||||
*/
|
||||
export type ODPriorityManagerIdConstraint = Record<string,ODPriorityLevel>
|
||||
|
||||
/**## ODPriorityManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODPriorityManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPriorityManagerIdMappings extends ODPriorityManagerIdConstraint {
|
||||
"opendiscord:urgent":ODPriorityLevel,
|
||||
"opendiscord:very-high":ODPriorityLevel,
|
||||
"opendiscord:high":ODPriorityLevel,
|
||||
"opendiscord:normal":ODPriorityLevel,
|
||||
"opendiscord:low":ODPriorityLevel,
|
||||
"opendiscord:very-low":ODPriorityLevel,
|
||||
"opendiscord:none":ODPriorityLevel,
|
||||
}
|
||||
|
||||
/**## ODPriorityManager `class`
|
||||
* This is an Open Ticket priority manager.
|
||||
@@ -11,7 +29,7 @@ import * as discord from "discord.js"
|
||||
*
|
||||
* Priorities levels can be changed/updated/translated by plugins to allow for more customisability.
|
||||
*/
|
||||
export class ODPriorityManager extends api.ODManager<ODPriorityLevel> {
|
||||
export class ODPriorityManager<IdList extends ODPriorityManagerIdConstraint = ODPriorityManagerIdConstraint> extends api.ODManager<ODPriorityLevel> {
|
||||
/**A reference to the Open Ticket debugger. */
|
||||
#debug: api.ODDebugger
|
||||
|
||||
@@ -28,44 +46,22 @@ export class ODPriorityManager extends api.ODManager<ODPriorityLevel> {
|
||||
listAvailableLevels(){
|
||||
return this.getAll().map((lvl) => lvl.priority)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODPriorityManagerIds `type`
|
||||
* This interface is a list of ids available in the `ODPriorityManager` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPriorityManagerIds {
|
||||
"opendiscord:urgent":ODPriorityLevel,
|
||||
"opendiscord:very-high":ODPriorityLevel,
|
||||
"opendiscord:high":ODPriorityLevel,
|
||||
"opendiscord:normal":ODPriorityLevel,
|
||||
"opendiscord:low":ODPriorityLevel,
|
||||
"opendiscord:very-low":ODPriorityLevel,
|
||||
"opendiscord:none":ODPriorityLevel,
|
||||
}
|
||||
|
||||
/**## ODPriorityManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODPriorityManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.priorities`!
|
||||
*/
|
||||
export class ODPriorityManager_Default extends ODPriorityManager {
|
||||
get<PriorityId extends keyof ODPriorityManagerIds>(id:PriorityId): ODPriorityManagerIds[PriorityId]
|
||||
get<PriorityId extends keyof api.ODNoGeneric<IdList>>(id:PriorityId): IdList[PriorityId]
|
||||
get(id:api.ODValidId): ODPriorityLevel|null
|
||||
|
||||
get(id:api.ODValidId): ODPriorityLevel|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<PriorityId extends keyof ODPriorityManagerIds>(id:PriorityId): ODPriorityManagerIds[PriorityId]
|
||||
remove<PriorityId extends keyof api.ODNoGeneric<IdList>>(id:PriorityId): IdList[PriorityId]
|
||||
remove(id:api.ODValidId): ODPriorityLevel|null
|
||||
|
||||
remove(id:api.ODValidId): ODPriorityLevel|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODPriorityManagerIds): boolean
|
||||
exists(id:keyof api.ODNoGeneric<IdList>): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
@@ -73,6 +69,11 @@ export class ODPriorityManager_Default extends ODPriorityManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODMappedPriorityManager `class
|
||||
* A special class with types for the Open Ticket `ODPriorityManager` class.
|
||||
*/
|
||||
export class ODMappedPriorityManager extends ODPriorityManager<ODPriorityManagerIdMappings> {}
|
||||
|
||||
/**## ODPriorityLevel `class`
|
||||
* This is an Open Ticket priority level.
|
||||
*
|
||||
@@ -2,7 +2,6 @@
|
||||
//OPENTICKET TICKET MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODClientManager_Default } from "../defaults/client"
|
||||
import { ODTicketOption } from "./option"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
@@ -17,11 +16,11 @@ export class ODTicketManager extends api.ODManager<ODTicket> {
|
||||
/**A reference to the main server of the bot */
|
||||
#guild: discord.Guild|null = null
|
||||
/**A reference to the Open Ticket client manager. */
|
||||
#client: ODClientManager_Default
|
||||
#client: api.ODClientManager
|
||||
/**A reference to the Open Ticket debugger. */
|
||||
#debug: api.ODDebugger
|
||||
|
||||
constructor(debug:api.ODDebugger, client:ODClientManager_Default){
|
||||
constructor(debug:api.ODDebugger, client:api.ODClientManager){
|
||||
super(debug,"ticket")
|
||||
this.#debug = debug
|
||||
this.#client = client
|
||||
@@ -2,10 +2,23 @@
|
||||
//OPENTICKET TRANSCRIPT MODULE
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODPermissionManager_Default } from "../defaults/permission"
|
||||
import { ODTicket, ODTicketManager } from "./ticket"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
/**## ODTranscriptManagerIdConstraint `type`
|
||||
* The constraint/layout for id mappings/interfaces of the `ODTranscriptManager` class.
|
||||
*/
|
||||
export type ODTranscriptManagerIdConstraint = Record<string,ODTranscriptCompiler<any,null|object>>
|
||||
|
||||
/**## ODTranscriptManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODTranscriptManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODTranscriptManagerIdMappings extends ODTranscriptManagerIdConstraint {
|
||||
"opendiscord:html-compiler":ODTranscriptCompiler<{url:string,availableUntil:Date},{auth:string}>,
|
||||
"opendiscord:text-compiler":ODTranscriptCompiler<{contents:string},null>,
|
||||
}
|
||||
|
||||
/**## ODTranscriptManager `class`
|
||||
* This is an Open Ticket transcript manager.
|
||||
*
|
||||
@@ -13,19 +26,45 @@ import * as discord from "discord.js"
|
||||
*
|
||||
* The 2 default built-in transcript generators are: `opendiscord:html-compiler` & `opendiscord:text-compiler`.
|
||||
*/
|
||||
export class ODTranscriptManager extends api.ODManager<ODTranscriptCompiler<any,null|object>> {
|
||||
export class ODTranscriptManager<IdList extends ODTranscriptManagerIdConstraint = ODTranscriptManagerIdConstraint> extends api.ODManager<ODTranscriptCompiler<any,null|object>> {
|
||||
/**The manager responsible for collecting all messages in a channel. */
|
||||
collector: ODTranscriptCollector
|
||||
/**Alias for the client manager. */
|
||||
#client: api.ODClientManager
|
||||
|
||||
constructor(debug:api.ODDebugger, tickets:ODTicketManager, client:api.ODClientManager, permissions:ODPermissionManager_Default){
|
||||
constructor(debug:api.ODDebugger, tickets:ODTicketManager, client:api.ODClientManager, permissions:api.ODPermissionManager){
|
||||
super(debug,"transcript compiler")
|
||||
this.#client = client
|
||||
this.collector = new ODTranscriptCollector(tickets,client,permissions)
|
||||
}
|
||||
|
||||
get<CompilerId extends keyof api.ODNoGeneric<IdList>>(id:CompilerId): IdList[CompilerId]
|
||||
get(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null
|
||||
|
||||
get(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CompilerId extends keyof api.ODNoGeneric<IdList>>(id:CompilerId): IdList[CompilerId]
|
||||
remove(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null
|
||||
|
||||
remove(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof api.ODNoGeneric<IdList>): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODMappedTranscriptManager `class
|
||||
* A special class with types for the Open Ticket `ODTranscriptManager` class.
|
||||
*/
|
||||
export class ODMappedTranscriptManager extends ODTranscriptManager<ODTranscriptManagerIdMappings> {}
|
||||
|
||||
/**## ODTranscriptCompilerInitFunction `type`
|
||||
* This function will initiate/prepare the transcript system for an incoming transcript.
|
||||
*/
|
||||
@@ -114,44 +153,6 @@ export class ODTranscriptCompiler<Data extends object,InitData extends (object|n
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODTranscriptCompilerIds `type`
|
||||
* This interface is a list of ids available in the `ODTranscriptCompiler` class.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODTranscriptCompilerIds {
|
||||
"opendiscord:html-compiler":ODTranscriptCompiler<{url:string,availableUntil:Date},{auth:string}>,
|
||||
"opendiscord:text-compiler":ODTranscriptCompiler<{contents:string},null>,
|
||||
}
|
||||
|
||||
/**## ODTranscriptManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODTranscriptManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.transcripts`!
|
||||
*/
|
||||
export class ODTranscriptManager_Default extends ODTranscriptManager {
|
||||
get<CompilerId extends keyof ODTranscriptCompilerIds>(id:CompilerId): ODTranscriptCompilerIds[CompilerId]
|
||||
get(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null
|
||||
|
||||
get(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<CompilerId extends keyof ODTranscriptCompilerIds>(id:CompilerId): ODTranscriptCompilerIds[CompilerId]
|
||||
remove(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null
|
||||
|
||||
remove(id:api.ODValidId): ODTranscriptCompiler<any,null|object>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODTranscriptCompilerIds): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODTranscriptCollector `class`
|
||||
* This is an Open Ticket transcript collector.
|
||||
*
|
||||
@@ -165,9 +166,9 @@ export class ODTranscriptCollector {
|
||||
/**Alias for the client manager. */
|
||||
#client: api.ODClientManager
|
||||
/**Alias for the permissions manager. */
|
||||
#permissions: ODPermissionManager_Default
|
||||
#permissions: api.ODPermissionManager
|
||||
|
||||
constructor(tickets:ODTicketManager,client:api.ODClientManager,permissions:ODPermissionManager_Default){
|
||||
constructor(tickets:ODTicketManager,client:api.ODClientManager,permissions:api.ODPermissionManager){
|
||||
this.#tickets = tickets
|
||||
this.#client = client
|
||||
this.#permissions = permissions
|
||||
+11
-62
@@ -1,8 +1,7 @@
|
||||
import {opendiscord, api, utilities} from "../../index"
|
||||
import {Terminal, terminal} from "terminal-kit"
|
||||
import ansis from "ansis"
|
||||
import * as cli from "@open-discord-bots/framework/cli"
|
||||
|
||||
const logo = [
|
||||
export const logo = [
|
||||
" ██████╗ ██████╗ ███████╗███╗ ██╗ ████████╗██╗ ██████╗██╗ ██╗███████╗████████╗ ",
|
||||
" ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ╚══██╔══╝██║██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝ ",
|
||||
" ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██║ █████╔╝ █████╗ ██║ ",
|
||||
@@ -10,66 +9,16 @@ const logo = [
|
||||
" ╚██████╔╝██║ ███████╗██║ ╚████║ ██║ ██║╚██████╗██║ ██╗███████╗ ██║ ",
|
||||
" ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝ "
|
||||
]
|
||||
|
||||
/**A utility function to center text to a certain width. */
|
||||
export function centerText(text:string,width:number){
|
||||
if (width < text.length) return text
|
||||
let newWidth = width-ansis.strip(text).length+1
|
||||
let final = " ".repeat(newWidth/2)+text
|
||||
return final
|
||||
}
|
||||
|
||||
/**A utility function to terminate the interactive CLI. */
|
||||
export async function terminate(){
|
||||
terminal.grabInput(false)
|
||||
terminal.clear()
|
||||
terminal.green("👋 Exited the Open Ticket Interactive Setup CLI.\n")
|
||||
process.exit(0)
|
||||
}
|
||||
terminal.on("key",(name,matches,data) => {
|
||||
if (name == "CTRL_C") terminate()
|
||||
})
|
||||
|
||||
/**Render the header of the interactive CLI. */
|
||||
export function renderHeader(path:(string|number)[]|string){
|
||||
terminal.grabInput(true)
|
||||
terminal.clear().moveTo(1,1)
|
||||
terminal(ansis.hex("#f8ba00")(logo.join("\n")+"\n"))
|
||||
terminal.bold(centerText("Interactive Setup CLI - Version: "+opendiscord.versions.get("opendiscord:version").toString()+" - Support: https://discord.dj-dj.be\n",88))
|
||||
if (typeof path == "string") terminal.cyan(centerText(path+"\n\n",88))
|
||||
else if (path.length < 1) terminal.cyan(centerText("👋 Hi! Welcome to the Open Ticket Interactive Setup CLI! 👋\n\n",88))
|
||||
else terminal.cyan(centerText("🌐 Current Location: "+path.map((v,i) => {
|
||||
if (i == 0) return v.toString()
|
||||
else if (typeof v == "string") return ".\""+v+"\""
|
||||
else if (typeof v == "number") return "."+v
|
||||
}).join("")+"\n\n",88))
|
||||
}
|
||||
|
||||
async function renderCliModeSelector(backFn:(() => api.ODPromiseVoid)){
|
||||
renderHeader([])
|
||||
terminal(ansis.bold.green("Please select what CLI module you want to use.\n")+ansis.italic.gray("(use arrow keys to navigate, exit using escape)\n"))
|
||||
|
||||
const answer = await terminal.singleColumnMenu([
|
||||
"✏️ Edit Config "+ansis.gray("=> Edit the current config, add/remove new tickets/questions/panels & more!"),
|
||||
"⏱️ Quick Setup "+ansis.gray("=> A quick and easy way of setting up the bot in your Discord server."),
|
||||
],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
else if (answer.selectedIndex == 0) await (await import("./editConfig.js")).renderEditConfig(async () => {await renderCliModeSelector(backFn)})
|
||||
else if (answer.selectedIndex == 1) await (await import("./quickSetup.js")).renderQuickSetup(async () => {await renderCliModeSelector(backFn)})
|
||||
export const headerOpts: cli.ODCliHeaderOpts = {
|
||||
logo,
|
||||
projectColor:"#f8ba00",
|
||||
projectName:"Open Ticket",
|
||||
projectVersion:opendiscord.versions.get("opendiscord:version")
|
||||
}
|
||||
|
||||
export async function execute(){
|
||||
if (terminal.width < 100 || terminal.height < 35){
|
||||
terminal(ansis.red.bold("\n\nMake sure your console or cmd window has a "+ansis.cyan("minimum width & height")+" of "+ansis.cyan("100x35")+" characters."))
|
||||
terminal(ansis.red.bold("\nOtherwise the Open Ticket Interactive Setup CLI will be rendered incorrectly."))
|
||||
terminal(ansis.red.bold("\nThe current terminal dimensions are: "+ansis.cyan(terminal.width+"x"+terminal.height)+"."))
|
||||
}else await renderCliModeSelector(terminate)
|
||||
const editConfig = new cli.ODCliEditConfigInstance(headerOpts,opendiscord)
|
||||
const renderQuickSetup = (await import("./quickSetup.js")).renderQuickSetup
|
||||
|
||||
await cli.execute(headerOpts,editConfig.renderEditConfig,renderQuickSetup)
|
||||
}
|
||||
@@ -1,933 +0,0 @@
|
||||
import {opendiscord, utilities, api } from "../../index"
|
||||
import {Terminal, terminal} from "terminal-kit"
|
||||
import ansis from "ansis"
|
||||
import {renderHeader} from "./cli"
|
||||
|
||||
export async function renderEditConfig(backFn:(() => api.ODPromiseVoid)){
|
||||
renderHeader([])
|
||||
terminal(ansis.bold.green("Please select which config you would like to edit.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const checkerList = opendiscord.checkers.getAll()
|
||||
const checkerNameList = checkerList.map((checker) => (checker.options.cliDisplayName ? checker.options.cliDisplayName+" ("+checker.config.file+")" : checker.config.file))
|
||||
const checkerNameLength = utilities.getLongestLength(checkerNameList)
|
||||
const finalCheckerNameList = checkerNameList.map((name,index) => name.padEnd(checkerNameLength+5," ")+ansis.gray(checkerList[index].options.cliDisplayDescription ? "=> "+checkerList[index].options.cliDisplayDescription : ""))
|
||||
|
||||
const answer = await terminal.singleColumnMenu(finalCheckerNameList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
const checker = checkerList[answer.selectedIndex]
|
||||
const configData = checker.config.data as api.ODValidJsonType
|
||||
await chooseConfigStructure(checker,async () => {await renderEditConfig(backFn)},checker.structure,configData,{},NaN,["("+checker.config.path+")"])
|
||||
}
|
||||
|
||||
async function chooseConfigStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerStructure,data:api.ODValidJsonType,parent:object|any[],parentIndex:string|number,path:(string|number)[]){
|
||||
if (structure instanceof api.ODCheckerObjectStructure && typeof data == "object" && !Array.isArray(data) && data) await renderConfigObjectStructureSelector(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerEnabledObjectStructure && typeof data == "object" && !Array.isArray(data) && data) await renderConfigEnabledObjectStructureSelector(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerObjectSwitchStructure && typeof data == "object" && !Array.isArray(data) && data) await renderConfigObjectSwitchStructureSelector(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerArrayStructure && Array.isArray(data)) await renderConfigArrayStructureSelector(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerBooleanStructure && typeof data == "boolean") await renderConfigBooleanStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerNumberStructure && typeof data == "number") await renderConfigNumberStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerStringStructure && typeof data == "string") await renderConfigStringStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerNullStructure && data === null) await renderConfigNullStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else if (structure instanceof api.ODCheckerTypeSwitchStructure) await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
else terminal.red.bold("❌ Unable to detect type of variable! Please try to edit this property in the JSON file itself!")
|
||||
}
|
||||
|
||||
async function renderConfigObjectStructureSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerObjectStructure,data:object,parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
if (typeof data != "object" || Array.isArray(data)) throw new api.ODSystemError("OT CLI => Property is not of the type 'object'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("Please select which variable you would like to edit.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
if (!structure.options.children) return await backFn()
|
||||
|
||||
if (structure.options.cliDisplayName){
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName)+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
}
|
||||
|
||||
const list = structure.options.children.filter((child) => !child.cliHideInEditMode)
|
||||
const nameList = list.map((child) => (child.checker.options.cliDisplayName ? child.checker.options.cliDisplayName : child.key))
|
||||
const nameLength = utilities.getLongestLength(nameList)
|
||||
const finalnameList = nameList.map((name,index) => name.padEnd(nameLength+5," ")+ansis.gray((!list[index].checker.options.cliHideDescriptionInParent && list[index].checker.options.cliDisplayDescription) ? "=> "+list[index].checker.options.cliDisplayDescription : ""))
|
||||
|
||||
const answer = await terminal.singleColumnMenu(finalnameList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold.defaultColor,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
const subStructure = list[answer.selectedIndex]
|
||||
const subData = data[subStructure.key]
|
||||
await chooseConfigStructure(checker,async () => {await renderConfigObjectStructureSelector(checker,backFn,structure,data,parent,parentIndex,path)},subStructure.checker,subData,data,subStructure.key,[...path,subStructure.key])
|
||||
}
|
||||
|
||||
async function renderConfigEnabledObjectStructureSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerEnabledObjectStructure,data:object,parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
if (typeof data != "object" || Array.isArray(data)) throw new api.ODSystemError("OT CLI => Property is not of the type 'object'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
const enabledProperty = structure.options.property
|
||||
const subStructure = structure.options.checker
|
||||
if (!enabledProperty || !subStructure || !subStructure.options.children) return await backFn()
|
||||
|
||||
if (!subStructure.options.children.find((child) => child.key === structure.options.property)){
|
||||
if (typeof structure.options.enabledValue == "string") subStructure.options.children.unshift({key:enabledProperty,optional:false,priority:1,checker:new api.ODCheckerStringStructure("opendiscord:CLI-checker-enabled-object-structure",{})})
|
||||
else if (typeof structure.options.enabledValue == "number") subStructure.options.children.unshift({key:enabledProperty,optional:false,priority:1,checker:new api.ODCheckerNumberStructure("opendiscord:CLI-checker-enabled-object-structure",{})})
|
||||
else if (typeof structure.options.enabledValue == "boolean") subStructure.options.children.unshift({key:enabledProperty,optional:false,priority:1,checker:new api.ODCheckerBooleanStructure("opendiscord:CLI-checker-enabled-object-structure",{})})
|
||||
}
|
||||
|
||||
await chooseConfigStructure(checker,backFn,subStructure,data,parent,parentIndex,path)
|
||||
}
|
||||
|
||||
async function renderConfigObjectSwitchStructureSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerObjectSwitchStructure,data:object,parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
if (typeof data != "object" || Array.isArray(data)) throw new api.ODSystemError("OT CLI => Property is not of the type 'object'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
if (!structure.options.objects) return await backFn()
|
||||
|
||||
let didMatch: boolean = false
|
||||
for (const objectTemplate of structure.options.objects){
|
||||
if (objectTemplate.properties.every((prop) => data[prop.key] === prop.value)){
|
||||
//object template matches data
|
||||
const subStructure = objectTemplate.checker
|
||||
didMatch = true
|
||||
await chooseConfigStructure(checker,backFn,subStructure,data,parent,parentIndex,path)
|
||||
}
|
||||
}
|
||||
if (!didMatch) throw new api.ODSystemError("OT CLI => Unable to detect type of object in the object switch. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
}
|
||||
|
||||
async function renderConfigArrayStructureSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerArrayStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
if (!Array.isArray(data)) throw new api.ODSystemError("OT CLI => Property is not of the type 'array'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("Please select what you would like to do.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
if (!structure.options.propertyChecker) return await backFn()
|
||||
|
||||
if (structure.options.cliDisplayName || typeof parentIndex == "string" || !isNaN(parentIndex)){
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? parentIndex.toString())+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
}
|
||||
|
||||
const propertyName = structure.options.cliDisplayPropertyName ?? "index"
|
||||
const answer = await terminal.singleColumnMenu(data.length < 1 ? ["Add "+propertyName] : [
|
||||
"Add "+propertyName,
|
||||
"Edit "+propertyName,
|
||||
"Move "+propertyName,
|
||||
"Remove "+propertyName,
|
||||
"Duplicate "+propertyName
|
||||
],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
const backFnFunc = async () => {await renderConfigArrayStructureSelector(checker,backFn,structure,data,parent,parentIndex,path)}
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
if (answer.selectedIndex == 0) await chooseAdditionConfigStructure(checker,backFnFunc,async (newData) => {
|
||||
data[data.length] = newData
|
||||
await checker.config.save()
|
||||
await backFnFunc()
|
||||
},structure.options.propertyChecker,data,data.length,path,[])
|
||||
else if (answer.selectedIndex == 1) await renderConfigArrayStructureEditSelector(checker,backFnFunc,structure,structure.options.propertyChecker,data,parent,parentIndex,path)
|
||||
else if (answer.selectedIndex == 2) await renderconfigArrayStructureMoveSelector(checker,backFnFunc,structure,structure.options.propertyChecker,data,parent,parentIndex,path)
|
||||
else if (answer.selectedIndex == 3) await renderconfigArrayStructureRemoveSelector(checker,backFnFunc,structure,structure.options.propertyChecker,data,parent,parentIndex,path)
|
||||
else if (answer.selectedIndex == 4) await renderConfigArrayStructureDuplicateSelector(checker,backFnFunc,structure,structure.options.propertyChecker,data,parent,parentIndex,path)
|
||||
}
|
||||
|
||||
async function renderConfigArrayStructureEditSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),arrayStructure:api.ODCheckerArrayStructure,structure:api.ODCheckerStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
const propertyName = arrayStructure.options.cliDisplayPropertyName ?? "index"
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("Please select the "+propertyName+" you would like to edit.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const longestDataListName = Math.max(...data.map((d,i) => getArrayPreviewStructureNameLength(structure,d,data,i)))
|
||||
const dataList = data.map((d,i) => (i+1)+". "+getArrayPreviewFromStructure(structure,d,data,i,longestDataListName))
|
||||
const dataAnswer = await terminal.singleColumnMenu(dataList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (dataAnswer.canceled) return await backFn()
|
||||
const subData = data[dataAnswer.selectedIndex]
|
||||
await chooseConfigStructure(checker,async () => {await renderConfigArrayStructureEditSelector(checker,backFn,arrayStructure,structure,data,parent,parentIndex,path)},structure,subData,data,dataAnswer.selectedIndex,[...path,dataAnswer.selectedIndex])
|
||||
}
|
||||
|
||||
async function renderconfigArrayStructureMoveSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),arrayStructure:api.ODCheckerArrayStructure,structure:api.ODCheckerStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
const propertyName = arrayStructure.options.cliDisplayPropertyName ?? "index"
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("Please select the "+propertyName+" you would like to move.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const longestDataListName = Math.max(...data.map((d,i) => getArrayPreviewStructureNameLength(structure,d,data,i)))
|
||||
const dataList = data.map((d,i) => (i+1)+". "+getArrayPreviewFromStructure(structure,d,data,i,longestDataListName))
|
||||
const dataAnswer = await terminal.singleColumnMenu(dataList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (dataAnswer.canceled) return await backFn()
|
||||
|
||||
renderHeader([...path,dataAnswer.selectedIndex])
|
||||
terminal(ansis.bold.green("Please select the position you would like to move to.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const moveAnswer = await terminal.singleColumnMenu(data.map((d,i) => "Position "+(i+1)),{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (moveAnswer.canceled) return await renderconfigArrayStructureMoveSelector(checker,backFn,arrayStructure,structure,data,parent,parentIndex,path)
|
||||
|
||||
const subData = data[dataAnswer.selectedIndex]
|
||||
const slicedData = [...data.slice(0,dataAnswer.selectedIndex),...data.slice(dataAnswer.selectedIndex+1)]
|
||||
const insertedData = [...slicedData.slice(0,moveAnswer.selectedIndex),subData,...slicedData.slice(moveAnswer.selectedIndex)]
|
||||
insertedData.forEach((d,i) => data[i] = d)
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Property moved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}
|
||||
|
||||
async function renderconfigArrayStructureRemoveSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),arrayStructure:api.ODCheckerArrayStructure,structure:api.ODCheckerStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
const propertyName = arrayStructure.options.cliDisplayPropertyName ?? "index"
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("Please select the "+propertyName+" you would like to delete.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const longestDataListName = Math.max(...data.map((d,i) => getArrayPreviewStructureNameLength(structure,d,data,i)))
|
||||
const dataList = data.map((d,i) => (i+1)+". "+getArrayPreviewFromStructure(structure,d,data,i,longestDataListName))
|
||||
const dataAnswer = await terminal.singleColumnMenu(dataList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (dataAnswer.canceled) return await backFn()
|
||||
data.splice(dataAnswer.selectedIndex,1)
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Property deleted succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}
|
||||
|
||||
async function renderConfigArrayStructureDuplicateSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),arrayStructure:api.ODCheckerArrayStructure,structure:api.ODCheckerStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
const propertyName = arrayStructure.options.cliDisplayPropertyName ?? "index"
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("Please select the "+propertyName+" you would like to duplicate.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const longestDataListName = Math.max(...data.map((d,i) => getArrayPreviewStructureNameLength(structure,d,data,i)))
|
||||
const dataList = data.map((d,i) => (i+1)+". "+getArrayPreviewFromStructure(structure,d,data,i,longestDataListName))
|
||||
const dataAnswer = await terminal.singleColumnMenu(dataList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (dataAnswer.canceled) return await backFn()
|
||||
data.push(JSON.parse(JSON.stringify(data[dataAnswer.selectedIndex])))
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Property duplicated succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}
|
||||
|
||||
async function renderConfigBooleanStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerBooleanStructure,data:boolean,parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
if (typeof data != "boolean") throw new api.ODSystemError("OT CLI => Property is not of the type 'boolean'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("You are now editing "+(typeof parentIndex == "string" ? "the boolean property "+ansis.blue("\""+parentIndex+"\"") : "boolean property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nCurrent value: "+ansis.bold[data ? "green" : "red"](data.toString())+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const answer = await terminal.singleColumnMenu(["false (Disabled)","true (Enabled)"],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
|
||||
//run config checker
|
||||
const newValue = (answer.selectedIndex == 0) ? false : true
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
parent[parentIndex] = newValue
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.gray("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderConfigBooleanStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderConfigNumberStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerNumberStructure,data:number,parent:object,parentIndex:string|number,path:(string|number)[],prefillValue?:string){
|
||||
if (typeof data != "number") throw new api.ODSystemError("OT CLI => Property is not of the type 'number'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("You are now editing "+(typeof parentIndex == "string" ? "the number property "+ansis.blue("\""+parentIndex+"\"") : "number property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(insert a new value and press enter, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nCurrent value: "+ansis.bold.blue(data.toString())+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const answer = await terminal.inputField({
|
||||
default:prefillValue,
|
||||
style:terminal.cyan,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (typeof answer != "string") return await backFn()
|
||||
|
||||
//run config checker
|
||||
const newValue = Number(answer.replaceAll(",","."))
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
parent[parentIndex] = newValue
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.red("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderConfigNumberStructureEditor(checker,backFn,structure,data,parent,parentIndex,path,answer)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderConfigStringStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerStringStructure,data:string,parent:object,parentIndex:string|number,path:(string|number)[],prefillValue?:string){
|
||||
if (typeof data != "string") throw new api.ODSystemError("OT CLI => Property is not of the type 'string'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("You are now editing "+(typeof parentIndex == "string" ? "the string property "+ansis.blue("\""+parentIndex+"\"") : "string property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(insert a new value and press enter, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nCurrent value:"+(data.includes("\n") ? "\n" : " \"")+ansis.bold.blue(data)+ansis.gray(!data.includes("\n") ? "\"\n" : "\n"))
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const customExtraOptions = (structure instanceof api.ODCheckerCustomStructure_DiscordId) ? structure.extraOptions : undefined
|
||||
const customAutocompleteFunc = structure.options.cliAutocompleteFunc ? await structure.options.cliAutocompleteFunc() : null
|
||||
const autocompleteList = ((customAutocompleteFunc ?? structure.options.cliAutocompleteList) ?? customExtraOptions) ?? structure.options.choices
|
||||
const autoCompleteMenuOpts: Terminal.SingleLineMenuOptions = {
|
||||
style:terminal.white,
|
||||
selectedStyle:terminal.bgBlue.white
|
||||
}
|
||||
|
||||
const input = terminal.inputField({
|
||||
default:prefillValue,
|
||||
style:terminal.cyan,
|
||||
hintStyle:terminal.gray,
|
||||
cancelable:false,
|
||||
autoComplete:autocompleteList,
|
||||
autoCompleteHint:(!!autocompleteList),
|
||||
autoCompleteMenu:(autocompleteList) ? autoCompleteMenuOpts as Terminal.Autocompletion : false
|
||||
})
|
||||
|
||||
terminal.on("key",async (name:string,matches:string[],data:object) => {
|
||||
if (name == "ESCAPE"){
|
||||
terminal.removeListener("key","cli-render-string-structure-edit")
|
||||
input.abort()
|
||||
await backFn()
|
||||
}
|
||||
},({id:"cli-render-string-structure-edit"} as any))
|
||||
|
||||
const answer = await input.promise
|
||||
terminal.removeListener("key","cli-render-string-structure-edit")
|
||||
if (typeof answer != "string") return
|
||||
|
||||
//run config checker
|
||||
const newValue = answer.replaceAll("\\n","\n")
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
parent[parentIndex] = newValue
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.red("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderConfigStringStructureEditor(checker,backFn,structure,data,parent,parentIndex,path,answer)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderConfigNullStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerNullStructure,data:null,parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
if (data !== null) throw new api.ODSystemError("OT CLI => Property is not of the type 'null'. Please check your config for possible errors. (index: "+parentIndex+", path: "+path.join(".")+")")
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("You are now editing "+(typeof parentIndex == "string" ? "the null property "+ansis.blue("\""+parentIndex+"\"") : "null property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nCurrent value: "+ansis.bold.blue("null")+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const answer = await terminal.singleColumnMenu(["null"],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
|
||||
//run config checker
|
||||
const newValue = null
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
parent[parentIndex] = newValue
|
||||
|
||||
await checker.config.save()
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await backFn()
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.red("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderConfigNullStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderConfigTypeSwitchStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerTypeSwitchStructure,data:any,parent:object,parentIndex:string|number,path:(string|number)[]){
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("You are now editing "+(typeof parentIndex == "string" ? "the property "+ansis.blue("\""+parentIndex+"\"") : "property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nCurrent value: "+ansis.bold.blue(data.toString())+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const actionsList: string[] = []
|
||||
if (structure.options.boolean) actionsList.push("Edit as boolean")
|
||||
if (structure.options.string) actionsList.push("Edit as string")
|
||||
if (structure.options.number) actionsList.push("Edit as number")
|
||||
if (structure.options.object) actionsList.push("Edit as object")
|
||||
if (structure.options.array) actionsList.push("Edit as array/list")
|
||||
if (structure.options.null) actionsList.push("Edit as null")
|
||||
|
||||
const answer = await terminal.singleColumnMenu(actionsList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
|
||||
//run selected structure editor (untested)
|
||||
if (answer.selectedText.startsWith("Edit as boolean") && structure.options.boolean) await renderConfigBooleanStructureEditor(checker,async () => {await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)},structure.options.boolean,false,parent,parentIndex,path)
|
||||
else if (answer.selectedText.startsWith("Edit as string") && structure.options.string) await renderConfigStringStructureEditor(checker,async () => {await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)},structure.options.string,data.toString(),parent,parentIndex,path)
|
||||
else if (answer.selectedText.startsWith("Edit as number") && structure.options.number) await renderConfigNumberStructureEditor(checker,async () => {await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)},structure.options.number,0,parent,parentIndex,path)
|
||||
else if (answer.selectedText.startsWith("Edit as object") && structure.options.object) await renderConfigObjectStructureSelector(checker,async () => {await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)},structure.options.object,data,parent,parentIndex,path)
|
||||
else if (answer.selectedText.startsWith("Edit as array/list") && structure.options.array) await renderConfigArrayStructureSelector(checker,async () => {await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)},structure.options.array,data,parent,parentIndex,path)
|
||||
else if (answer.selectedText.startsWith("Edit as null") && structure.options.null) await renderConfigNullStructureEditor(checker,async () => {await renderConfigTypeSwitchStructureEditor(checker,backFn,structure,data,parent,parentIndex,path)},structure.options.null,null,parent,parentIndex,path)
|
||||
}
|
||||
|
||||
function getArrayPreviewStructureNameLength(structure:api.ODCheckerStructure,data:api.ODValidJsonType,parent:object,parentIndex:string|number): number {
|
||||
if (structure instanceof api.ODCheckerBooleanStructure && typeof data == "boolean") return data.toString().length
|
||||
else if (structure instanceof api.ODCheckerNumberStructure && typeof data == "number") return data.toString().length
|
||||
else if (structure instanceof api.ODCheckerStringStructure && typeof data == "string") return data.length
|
||||
else if (structure instanceof api.ODCheckerNullStructure && data === null) return "Null".length
|
||||
else if (structure instanceof api.ODCheckerArrayStructure && Array.isArray(data)) return "Array".length
|
||||
else if (structure instanceof api.ODCheckerObjectStructure && typeof data == "object" && !Array.isArray(data) && data){
|
||||
if (!structure.options.cliDisplayKeyInParentArray) return "Object".length
|
||||
else return data[structure.options.cliDisplayKeyInParentArray].toString().length
|
||||
|
||||
}else if (structure instanceof api.ODCheckerEnabledObjectStructure && typeof data == "object" && !Array.isArray(data) && data){
|
||||
const subStructure = structure.options.checker
|
||||
if (!subStructure) return "<unknown-property>".length
|
||||
return getArrayPreviewStructureNameLength(subStructure,data,parent,parentIndex)
|
||||
|
||||
}else if (structure instanceof api.ODCheckerObjectSwitchStructure && typeof data == "object" && !Array.isArray(data) && data){
|
||||
for (const objectTemplate of (structure.options.objects ?? [])){
|
||||
if (objectTemplate.properties.every((prop) => data[prop.key] === prop.value)){
|
||||
//object template matches data
|
||||
const subStructure = objectTemplate.checker
|
||||
return getArrayPreviewStructureNameLength(subStructure,data,parent,parentIndex)
|
||||
}
|
||||
}
|
||||
return "<unknown-property>".length
|
||||
|
||||
}else if (structure instanceof api.ODCheckerTypeSwitchStructure){
|
||||
if (typeof data == "boolean" && structure.options.boolean) return getArrayPreviewStructureNameLength(structure.options.boolean,data,parent,parentIndex)
|
||||
else if (typeof data == "number" && structure.options.number) return getArrayPreviewStructureNameLength(structure.options.number,data,parent,parentIndex)
|
||||
else if (typeof data == "string" && structure.options.string) return getArrayPreviewStructureNameLength(structure.options.string,data,parent,parentIndex)
|
||||
else if (typeof data == "object" && !Array.isArray(data) && data && structure.options.object) return getArrayPreviewStructureNameLength(structure.options.object,data,parent,parentIndex)
|
||||
else if (Array.isArray(data) && structure.options.array) return getArrayPreviewStructureNameLength(structure.options.array,data,parent,parentIndex)
|
||||
else if (data === null && structure.options.null) return getArrayPreviewStructureNameLength(structure.options.null,data,parent,parentIndex)
|
||||
else return "<unknown-property>".length
|
||||
}else return "<unknown-property>".length
|
||||
}
|
||||
|
||||
function getArrayPreviewFromStructure(structure:api.ODCheckerStructure,data:api.ODValidJsonType,parent:object,parentIndex:string|number,nameLength:number): string {
|
||||
if (structure instanceof api.ODCheckerBooleanStructure && typeof data == "boolean") return data.toString()
|
||||
else if (structure instanceof api.ODCheckerNumberStructure && typeof data == "number") return data.toString()
|
||||
else if (structure instanceof api.ODCheckerStringStructure && typeof data == "string") return data
|
||||
else if (structure instanceof api.ODCheckerNullStructure && data === null) return "Null"
|
||||
else if (structure instanceof api.ODCheckerArrayStructure && Array.isArray(data)) return "Array"
|
||||
else if (structure instanceof api.ODCheckerObjectStructure && typeof data == "object" && !Array.isArray(data) && data){
|
||||
const additionalKeys = (structure.options.cliDisplayAdditionalKeysInParentArray ?? []).map((key) => key+": "+data[key].toString()).join(", ")
|
||||
if (!structure.options.cliDisplayKeyInParentArray) return "Object"
|
||||
else return data[structure.options.cliDisplayKeyInParentArray].toString().padEnd(nameLength+5," ")+ansis.gray(additionalKeys.length > 0 ? "("+additionalKeys+")" : "")
|
||||
|
||||
}else if (structure instanceof api.ODCheckerEnabledObjectStructure && typeof data == "object" && !Array.isArray(data) && data){
|
||||
const subStructure = structure.options.checker
|
||||
if (!subStructure) return "<unknown-property>"
|
||||
return getArrayPreviewFromStructure(subStructure,data,parent,parentIndex,nameLength)
|
||||
|
||||
}else if (structure instanceof api.ODCheckerObjectSwitchStructure && typeof data == "object" && !Array.isArray(data) && data){
|
||||
for (const objectTemplate of (structure.options.objects ?? [])){
|
||||
if (objectTemplate.properties.every((prop) => data[prop.key] === prop.value)){
|
||||
//object template matches data
|
||||
const subStructure = objectTemplate.checker
|
||||
return getArrayPreviewFromStructure(subStructure,data,parent,parentIndex,nameLength)
|
||||
}
|
||||
}
|
||||
return "<unknown-property>"
|
||||
|
||||
}else if (structure instanceof api.ODCheckerTypeSwitchStructure){
|
||||
if (typeof data == "boolean" && structure.options.boolean) return getArrayPreviewFromStructure(structure.options.boolean,data,parent,parentIndex,nameLength)
|
||||
else if (typeof data == "number" && structure.options.number) return getArrayPreviewFromStructure(structure.options.number,data,parent,parentIndex,nameLength)
|
||||
else if (typeof data == "string" && structure.options.string) return getArrayPreviewFromStructure(structure.options.string,data,parent,parentIndex,nameLength)
|
||||
else if (typeof data == "object" && !Array.isArray(data) && data && structure.options.object) return getArrayPreviewFromStructure(structure.options.object,data,parent,parentIndex,nameLength)
|
||||
else if (Array.isArray(data) && structure.options.array) return getArrayPreviewFromStructure(structure.options.array,data,parent,parentIndex,nameLength)
|
||||
else if (data === null && structure.options.null) return getArrayPreviewFromStructure(structure.options.null,data,parent,parentIndex,nameLength)
|
||||
else return "<unknown-property>"
|
||||
}else return "<unknown-property>"
|
||||
}
|
||||
|
||||
async function chooseAdditionConfigStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[]){
|
||||
if (structure instanceof api.ODCheckerObjectStructure) await renderAdditionConfigObjectStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerBooleanStructure) await renderAdditionConfigBooleanStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerNumberStructure) await renderAdditionConfigNumberStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerStringStructure) await renderAdditionConfigStringStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerNullStructure) await renderAdditionConfigNullStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerEnabledObjectStructure) await renderAdditionConfigEnabledObjectStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerObjectSwitchStructure) await renderAdditionConfigObjectSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerArrayStructure) await renderAdditionConfigArrayStructureSelector(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else if (structure instanceof api.ODCheckerTypeSwitchStructure) await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
else await backFn()
|
||||
}
|
||||
|
||||
async function renderAdditionConfigObjectStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerObjectStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[],localData:object={}){
|
||||
const children = structure.options.children ?? []
|
||||
const skipKeys = (structure.options.cliInitSkipKeys ?? [])
|
||||
//add skipped properties
|
||||
for (const key of skipKeys){
|
||||
const childStructure = children.find((c) => c.key == key)
|
||||
if (childStructure){
|
||||
const defaultValue = childStructure.checker.options.cliInitDefaultValue
|
||||
if (childStructure.checker instanceof api.ODCheckerBooleanStructure) localData[key] = (typeof defaultValue == "boolean" ? defaultValue : false)
|
||||
else if (childStructure.checker instanceof api.ODCheckerNumberStructure) localData[key] = (typeof defaultValue == "number" ? defaultValue : 0)
|
||||
else if (childStructure.checker instanceof api.ODCheckerStringStructure) localData[key] = (typeof defaultValue == "string" ? defaultValue : "")
|
||||
else if (childStructure.checker instanceof api.ODCheckerNullStructure) localData[key] = (defaultValue === null ? defaultValue : null)
|
||||
else if (childStructure.checker instanceof api.ODCheckerArrayStructure) localData[key] = (Array.isArray(defaultValue) ? JSON.parse(JSON.stringify(defaultValue)) : [])
|
||||
else if (childStructure.checker instanceof api.ODCheckerObjectStructure) localData[key] = ((typeof defaultValue == "object" && !Array.isArray(defaultValue) && defaultValue) ? JSON.parse(JSON.stringify(defaultValue)) : {})
|
||||
else if (childStructure.checker instanceof api.ODCheckerObjectSwitchStructure) localData[key] = ((typeof defaultValue == "object" && !Array.isArray(defaultValue) && defaultValue) ? JSON.parse(JSON.stringify(defaultValue)) : {})
|
||||
else if (childStructure.checker instanceof api.ODCheckerEnabledObjectStructure) localData[key] = ((typeof defaultValue == "object" && !Array.isArray(defaultValue) && defaultValue) ? JSON.parse(JSON.stringify(defaultValue)) : {})
|
||||
else if (childStructure.checker instanceof api.ODCheckerTypeSwitchStructure && typeof defaultValue != "undefined") localData[key] = JSON.parse(JSON.stringify(defaultValue))
|
||||
else throw new api.ODSystemError("OT CLI => Object skip key has an invalid checker structure! key: "+key)
|
||||
}
|
||||
}
|
||||
|
||||
//add properties that need to be configured
|
||||
const configChildren = children.filter((c) => !skipKeys.includes(c.key)).map((c) => {return {key:c.key,checker:c.checker}})
|
||||
await configureAdditionObjectProperties(checker,configChildren,0,localData,[...path,parentIndex],(typeof parentIndex == "number") ? [...localPath] : [...localPath,parentIndex],async () => {
|
||||
//go back to previous screen
|
||||
await backFn()
|
||||
},async () => {
|
||||
//finish setup
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await nextFn(localData)
|
||||
})
|
||||
}
|
||||
|
||||
async function configureAdditionObjectProperties(checker:api.ODChecker,children:{key:string,checker:api.ODCheckerStructure}[],currentIndex:number,localData:object,path:(string|number)[],localPath:(string|number)[],backFn:(() => api.ODPromiseVoid),nextFn:(() => api.ODPromiseVoid)){
|
||||
if (children.length < 1) return await nextFn()
|
||||
|
||||
const child = children[currentIndex]
|
||||
await chooseAdditionConfigStructure(checker,async () => {
|
||||
if (children[currentIndex-1]) await configureAdditionObjectProperties(checker,children,currentIndex-1,localData,path,localPath,backFn,nextFn)
|
||||
else await backFn()
|
||||
},async (data) => {
|
||||
localData[child.key] = data
|
||||
if (children[currentIndex+1]) await configureAdditionObjectProperties(checker,children,currentIndex+1,localData,path,localPath,backFn,nextFn)
|
||||
else await nextFn()
|
||||
},child.checker,localData,child.key,path,localPath)
|
||||
}
|
||||
|
||||
async function renderAdditionConfigEnabledObjectStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerEnabledObjectStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[]){
|
||||
const enabledProperty = structure.options.property
|
||||
const enabledValue = structure.options.enabledValue
|
||||
const subStructure = structure.options.checker
|
||||
if (!enabledProperty || !subStructure || !subStructure.options.children) return await backFn()
|
||||
|
||||
let propertyStructure: api.ODCheckerBooleanStructure|api.ODCheckerNumberStructure|api.ODCheckerStringStructure
|
||||
if (typeof enabledValue == "string") propertyStructure = new api.ODCheckerStringStructure("opendiscord:CLI-checker-enabled-object-structure",{})
|
||||
else if (typeof enabledValue == "number") propertyStructure = new api.ODCheckerNumberStructure("opendiscord:CLI-checker-enabled-object-structure",{})
|
||||
else if (typeof enabledValue == "boolean") propertyStructure = new api.ODCheckerBooleanStructure("opendiscord:CLI-checker-enabled-object-structure",{})
|
||||
else throw new Error("OT CLI => enabled object structure has an invalid type of enabledProperty. It must be a primitive boolean/number/string.")
|
||||
|
||||
const localData = {}
|
||||
await chooseAdditionConfigStructure(checker,backFn,async (data) => {
|
||||
if (data === enabledValue) await renderAdditionConfigObjectStructure(checker,async () => {await renderAdditionConfigEnabledObjectStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,subStructure,parent,parentIndex,path,localPath,localData)
|
||||
else{
|
||||
localData[enabledProperty] = data
|
||||
//copy old object checker to new object checker => all options get de-referenced (this is needed for the new object skip keys are temporary)
|
||||
const newStructure = new api.ODCheckerObjectStructure(subStructure.id,{children:[]})
|
||||
|
||||
//copy all options over to the new checker
|
||||
newStructure.options.children = [...subStructure.options.children]
|
||||
newStructure.options.cliInitSkipKeys = subStructure.options.children.map((child) => child.key)
|
||||
for (const key of Object.keys(subStructure.options)){
|
||||
if (key != "children" && key != "cliInitSkipKeys") newStructure.options[key] = subStructure.options[key]
|
||||
}
|
||||
|
||||
//adds all properties to object as "skipKeys", then continues to next function
|
||||
await renderAdditionConfigObjectStructure(checker,async () => {await renderAdditionConfigEnabledObjectStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,newStructure,parent,parentIndex,path,localPath,localData)
|
||||
await nextFn(localData)
|
||||
}
|
||||
},propertyStructure,localData,enabledProperty,[...path,parentIndex],[...localPath,parentIndex])
|
||||
}
|
||||
|
||||
async function renderAdditionConfigObjectSwitchStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerObjectSwitchStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[]){
|
||||
renderHeader([...path,parentIndex])
|
||||
terminal(ansis.bold.green("What type of object would you like to add?\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
const answer = await terminal.singleColumnMenu(structure.options.objects.map((obj) => obj.name),{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
const objectTemplate = structure.options.objects[answer.selectedIndex]
|
||||
|
||||
//copy old object checker to new object checker => all options get de-referenced (this is needed for the new object switch properties which are temporary)
|
||||
const oldStructure = objectTemplate.checker
|
||||
const newStructure = new api.ODCheckerObjectStructure(oldStructure.id,{children:[]})
|
||||
|
||||
//copy all options over to the new checker
|
||||
newStructure.options.children = [...oldStructure.options.children]
|
||||
newStructure.options.cliInitSkipKeys = [...(oldStructure.options.cliInitSkipKeys ?? [])]
|
||||
for (const key of Object.keys(oldStructure.options)){
|
||||
if (key != "children" && key != "cliInitSkipKeys") newStructure.options[key] = oldStructure.options[key]
|
||||
}
|
||||
|
||||
//add the keys of the object switch properties to the 'cliInitSkipKeys' because they need to be skipped.
|
||||
objectTemplate.properties.map((p) => p.key).forEach((p) => {
|
||||
if (!newStructure.options.cliInitSkipKeys) newStructure.options.cliInitSkipKeys = [p]
|
||||
else if (!newStructure.options.cliInitSkipKeys.includes(p)) newStructure.options.cliInitSkipKeys.push(p)
|
||||
})
|
||||
|
||||
//add structure checkers for all properties
|
||||
for (const prop of objectTemplate.properties){
|
||||
if (!newStructure.options.children.find((child) => child.key === prop.key)){
|
||||
if (typeof prop.value == "string") newStructure.options.children.unshift({key:prop.key,optional:false,priority:1,checker:new api.ODCheckerStringStructure("opendiscord:CLI-checker-object-switch-structure",{cliInitDefaultValue:prop.value})})
|
||||
else if (typeof prop.value == "number") newStructure.options.children.unshift({key:prop.key,optional:false,priority:1,checker:new api.ODCheckerNumberStructure("opendiscord:CLI-checker-object-switch-structure",{cliInitDefaultValue:prop.value})})
|
||||
else if (typeof prop.value == "boolean") newStructure.options.children.unshift({key:prop.key,optional:false,priority:1,checker:new api.ODCheckerBooleanStructure("opendiscord:CLI-checker-object-switch-structure",{cliInitDefaultValue:prop.value})})
|
||||
}
|
||||
}
|
||||
|
||||
await chooseAdditionConfigStructure(checker,backFn,nextFn,newStructure,parent,parentIndex,path,localPath)
|
||||
}
|
||||
|
||||
async function renderAdditionConfigBooleanStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerBooleanStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[]){
|
||||
renderHeader([...path,parentIndex])
|
||||
terminal(ansis.bold.green("You are now creating "+(typeof parentIndex == "string" ? "the boolean property "+ansis.blue("\""+parentIndex+"\"") : "boolean property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? [...localPath,parentIndex].join("."))+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const answer = await terminal.singleColumnMenu(["false (Disabled)","true (Enabled)"],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
|
||||
//run config checker
|
||||
const newValue = (answer.selectedIndex == 0) ? false : true
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await nextFn(newValue)
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.gray("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderAdditionConfigBooleanStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderAdditionConfigNumberStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerNumberStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[],prefillValue?:string){
|
||||
renderHeader([...path,parentIndex])
|
||||
terminal(ansis.bold.green("You are now creating "+(typeof parentIndex == "string" ? "the number property "+ansis.blue("\""+parentIndex+"\"") : "number property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(insert a new value and press enter, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? [...localPath,parentIndex].join("."))+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const answer = await terminal.inputField({
|
||||
default:prefillValue,
|
||||
style:terminal.cyan,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (typeof answer != "string") return await backFn()
|
||||
|
||||
//run config checker
|
||||
const newValue = Number(answer.replaceAll(",","."))
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await nextFn(newValue)
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.red("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderAdditionConfigNumberStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath,answer)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderAdditionConfigStringStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerStringStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[],prefillValue?:string){
|
||||
renderHeader([...path,parentIndex])
|
||||
terminal(ansis.bold.green("You are now creating "+(typeof parentIndex == "string" ? "the string property "+ansis.blue("\""+parentIndex+"\"") : "string property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(insert a new value and press enter, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? [...localPath,parentIndex].join("."))+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const customExtraOptions = (structure instanceof api.ODCheckerCustomStructure_DiscordId) ? structure.extraOptions : undefined
|
||||
const customAutocompleteFunc = structure.options.cliAutocompleteFunc ? await structure.options.cliAutocompleteFunc() : null
|
||||
const autocompleteList = ((customAutocompleteFunc ?? structure.options.cliAutocompleteList) ?? customExtraOptions) ?? structure.options.choices
|
||||
const autoCompleteMenuOpts: Terminal.SingleLineMenuOptions = {
|
||||
style:terminal.white,
|
||||
selectedStyle:terminal.bgBlue.white
|
||||
}
|
||||
|
||||
const input = terminal.inputField({
|
||||
default:prefillValue,
|
||||
style:terminal.cyan,
|
||||
hintStyle:terminal.gray,
|
||||
cancelable:false,
|
||||
autoComplete:autocompleteList,
|
||||
autoCompleteHint:(!!autocompleteList),
|
||||
autoCompleteMenu:(autocompleteList) ? autoCompleteMenuOpts as Terminal.Autocompletion : false
|
||||
})
|
||||
|
||||
terminal.on("key",async (name:string,matches:string[],data:object) => {
|
||||
if (name == "ESCAPE"){
|
||||
terminal.removeListener("key","cli-render-string-structure-add")
|
||||
input.abort()
|
||||
await backFn()
|
||||
}
|
||||
},({id:"cli-render-string-structure-add"} as any))
|
||||
|
||||
const answer = await input.promise
|
||||
terminal.removeListener("key","cli-render-string-structure-add")
|
||||
if (typeof answer != "string") return
|
||||
|
||||
//run config checker
|
||||
const newValue = answer.replaceAll("\\n","\n")
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await nextFn(newValue)
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.red("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderAdditionConfigStringStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath,answer)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderAdditionConfigNullStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerNullStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[]){
|
||||
renderHeader([...path,parentIndex])
|
||||
terminal(ansis.bold.green("You are now creating "+(typeof parentIndex == "string" ? "the null property "+ansis.blue("\""+parentIndex+"\"") : "null property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? [...localPath,parentIndex].join("."))+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const answer = await terminal.singleColumnMenu(["null"],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
|
||||
//run config checker
|
||||
const newValue = null
|
||||
const newPath = [...path]
|
||||
newPath.shift()
|
||||
checker.messages = [] //manually clear previous messages
|
||||
const isDataValid = structure.check(checker,newValue,newPath)
|
||||
|
||||
if (isDataValid){
|
||||
terminal.bold.blue("\n\n✅ Variable saved succesfully!")
|
||||
await utilities.timer(400)
|
||||
await nextFn(newValue)
|
||||
}else{
|
||||
const messages = checker.messages.map((msg) => "=> ["+msg.type.toUpperCase()+"] "+msg.message).join("\n")
|
||||
terminal.bold.blue("\n\n❌ Variable is invalid! Please try again!")
|
||||
terminal.red("\n"+messages)
|
||||
await utilities.timer(1000+(2000*checker.messages.length))
|
||||
await renderAdditionConfigNullStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)
|
||||
}
|
||||
}
|
||||
|
||||
async function renderAdditionConfigArrayStructureSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerArrayStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[],localData:any[]=[]){
|
||||
renderHeader([...path,parentIndex])
|
||||
terminal(ansis.bold.green("Please select what you would like to do with the new array.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
if (!structure.options.propertyChecker) return await backFn()
|
||||
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? [...localPath,parentIndex].join("."))+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const propertyName = structure.options.cliDisplayPropertyName ?? "index"
|
||||
const answer = await terminal.singleColumnMenu(localData.length < 1 ? [ansis.magenta("-> Continue to next variable"),"Add "+propertyName] : [
|
||||
ansis.magenta("-> Continue to next variable"),
|
||||
"Add "+propertyName,
|
||||
"Edit "+propertyName,
|
||||
"Move "+propertyName,
|
||||
"Remove "+propertyName,
|
||||
"Duplicate "+propertyName,
|
||||
|
||||
],{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
const backFnFunc = async () => {await renderAdditionConfigArrayStructureSelector(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath,localData)}
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
if (answer.selectedIndex == 0) await nextFn(localData)
|
||||
else if (answer.selectedIndex == 1) await chooseAdditionConfigStructure(checker,backFnFunc,async (newData) => {
|
||||
localData[localData.length] = newData
|
||||
await backFnFunc()
|
||||
},structure.options.propertyChecker,localData,localData.length,path,[])
|
||||
else if (answer.selectedIndex == 2) await renderConfigArrayStructureEditSelector(checker,backFnFunc,structure,structure.options.propertyChecker,localData,parent,parentIndex,path)
|
||||
else if (answer.selectedIndex == 3) await renderconfigArrayStructureMoveSelector(checker,backFnFunc,structure,structure.options.propertyChecker,localData,parent,parentIndex,path)
|
||||
else if (answer.selectedIndex == 4) await renderconfigArrayStructureRemoveSelector(checker,backFnFunc,structure,structure.options.propertyChecker,localData,parent,parentIndex,path)
|
||||
else if (answer.selectedIndex == 5) await renderConfigArrayStructureDuplicateSelector(checker,backFnFunc,structure,structure.options.propertyChecker,localData,parent,parentIndex,path)
|
||||
}
|
||||
|
||||
async function renderAdditionConfigTypeSwitchStructure(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),nextFn:((data:any) => api.ODPromiseVoid),structure:api.ODCheckerTypeSwitchStructure,parent:object|any[],parentIndex:string|number,path:(string|number)[],localPath:(string|number)[]){
|
||||
renderHeader(path)
|
||||
terminal(ansis.bold.green("You are now creating "+(typeof parentIndex == "string" ? "the property "+ansis.blue("\""+parentIndex+"\"") : "property "+ansis.blue("#"+(parentIndex+1)))+".\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
|
||||
|
||||
terminal.gray("\nProperty: "+ansis.bold.blue(structure.options.cliDisplayName ?? [...localPath,parentIndex].join("."))+"\n")
|
||||
terminal.gray("Description: "+ansis.bold(structure.options.cliDisplayDescription ?? "/")+"\n")
|
||||
|
||||
const actionsList: string[] = []
|
||||
if (structure.options.boolean) actionsList.push("Create as boolean")
|
||||
if (structure.options.string) actionsList.push("Create as string")
|
||||
if (structure.options.number) actionsList.push("Create as number")
|
||||
if (structure.options.object) actionsList.push("Create as object")
|
||||
if (structure.options.array) actionsList.push("Create as array/list")
|
||||
if (structure.options.null) actionsList.push("Create as null")
|
||||
|
||||
const answer = await terminal.singleColumnMenu(actionsList,{
|
||||
leftPadding:"> ",
|
||||
style:terminal.cyan,
|
||||
selectedStyle:terminal.bgDefaultColor.bold,
|
||||
submittedStyle:terminal.bgBlue,
|
||||
extraLines:2,
|
||||
cancelable:true
|
||||
}).promise
|
||||
|
||||
if (answer.canceled) return await backFn()
|
||||
|
||||
//run selected structure editor (untested)
|
||||
if (answer.selectedText.startsWith("Create as boolean") && structure.options.boolean) await renderAdditionConfigBooleanStructure(checker,async () => {await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,structure.options.boolean,parent,parentIndex,path,localPath)
|
||||
else if (answer.selectedText.startsWith("Create as string") && structure.options.string) await renderAdditionConfigStringStructure(checker,async () => {await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,structure.options.string,parent,parentIndex,path,localPath)
|
||||
else if (answer.selectedText.startsWith("Create as number") && structure.options.number) await renderAdditionConfigNumberStructure(checker,async () => {await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,structure.options.number,parent,parentIndex,path,localPath)
|
||||
else if (answer.selectedText.startsWith("Create as object") && structure.options.object) await renderAdditionConfigObjectStructure(checker,async () => {await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,structure.options.object,parent,parentIndex,path,localPath)
|
||||
else if (answer.selectedText.startsWith("Create as array/list") && structure.options.array) await renderAdditionConfigArrayStructureSelector(checker,async () => {await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,structure.options.array,parent,parentIndex,path,localPath)
|
||||
else if (answer.selectedText.startsWith("Create as null") && structure.options.null) await renderAdditionConfigNullStructure(checker,async () => {await renderAdditionConfigTypeSwitchStructure(checker,backFn,nextFn,structure,parent,parentIndex,path,localPath)},nextFn,structure.options.null,parent,parentIndex,path,localPath)
|
||||
}
|
||||
+49
-56
@@ -1,16 +1,9 @@
|
||||
import {opendiscord, api, utilities} from "../../index"
|
||||
import * as cli from "@open-discord-bots/framework/cli"
|
||||
import {Terminal, terminal} from "terminal-kit"
|
||||
import ansis from "ansis"
|
||||
import * as discord from "discord.js"
|
||||
import crypto from "crypto"
|
||||
import {renderHeader, terminate} from "./cli"
|
||||
|
||||
function generateUniqueIdFromName(name:string){
|
||||
//id only allows a-z, 0-9 & dash characters (& replace spaces with dashes)
|
||||
const filteredChars = name.toLowerCase().replaceAll(" ","-").split("").filter((ch) => /^[a-zA-Z0-9-]{1}$/.test(ch))
|
||||
const randomSuffix = "-"+crypto.randomBytes(4).toString("hex")
|
||||
return filteredChars.join("")+randomSuffix
|
||||
}
|
||||
import { headerOpts } from "./cli"
|
||||
|
||||
interface ODQuickSetupVariables {
|
||||
client?:api.ODClientManager,
|
||||
@@ -20,7 +13,7 @@ interface ODQuickSetupVariables {
|
||||
language?:string,
|
||||
slashCommands?:boolean,
|
||||
textCommands?:boolean,
|
||||
status?:api.ODJsonConfig_DefaultStatusType,
|
||||
status?:api.ODGeneralJsonConfig_Status,
|
||||
logChannel?:string|null,
|
||||
ticketCategory?:string|null,
|
||||
ticketOptions:({
|
||||
@@ -30,7 +23,7 @@ interface ODQuickSetupVariables {
|
||||
buttonColor:api.ODValidButtonColor,
|
||||
buttonEmoji:string|null,
|
||||
channelPrefix:string,
|
||||
channelSuffix:api.ODJsonConfig_DefaultOptionTicketChannelType["suffix"]
|
||||
channelSuffix:api.ODOptionsJsonConfig_TicketOptionChannelSettings["suffix"]
|
||||
}|null)[],
|
||||
optionIdStorage:string[],
|
||||
autocloseHours?:number|null,
|
||||
@@ -38,7 +31,7 @@ interface ODQuickSetupVariables {
|
||||
globalUserLimit?:number|null,
|
||||
removeParticipantsOnClose?:boolean,
|
||||
ticketMessageLayout?:"embed"|"text"|null,
|
||||
emojiStyle?:api.ODJsonConfig_DefaultSystem["emojiStyle"],
|
||||
emojiStyle?:api.ODGeneralJsonConfig_System["emojiStyle"],
|
||||
panelName?:string,
|
||||
panelDescription?:string,
|
||||
panelDropdown?:boolean,
|
||||
@@ -113,7 +106,7 @@ function quickSetupRequiresReset(): boolean {
|
||||
}
|
||||
|
||||
async function renderQuickSetupWarning(backFn:() => api.ODPromiseVoid) {
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Warning")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Warning")
|
||||
|
||||
terminal.bold(ansis.yellow("WARNING! ")+ansis.red("By using the 'Quick Setup' feature, your current config will be completely resetted!"))
|
||||
terminal.gray("\nAre you sure you want to continue?\n")
|
||||
@@ -135,7 +128,7 @@ async function renderQuickSetupWarning(backFn:() => api.ODPromiseVoid) {
|
||||
}
|
||||
|
||||
async function renderQuickSetupWelcome(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Introduction")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Introduction")
|
||||
|
||||
terminal.bold.underline.blue("Open Ticket: Quick Setup\n")
|
||||
terminal.gray([
|
||||
@@ -165,7 +158,7 @@ async function renderQuickSetupWelcome(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupDevPortal(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Discord Bot & Developer Portal")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Discord Bot & Developer Portal")
|
||||
|
||||
terminal.bold.blue(stepCount(1)+"Have you already created a Discord bot you can use for Open Ticket?\n")
|
||||
|
||||
@@ -189,7 +182,7 @@ async function renderQuickSetupDevPortal(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupDevPortalGuide(variation:0|1,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Discord Bot & Developer Portal")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Discord Bot & Developer Portal")
|
||||
|
||||
if (variation == 0){
|
||||
terminal.bold.blue(stepCount(1.1)+"You've mentioned that you don't know how to create a Discord bot.\n\n")
|
||||
@@ -238,7 +231,7 @@ async function quickSetupLogin(token:string): Promise<api.ODClientManager|null>
|
||||
}
|
||||
|
||||
async function renderQuickSetupBotToken(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Bot Token")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Bot Token")
|
||||
|
||||
terminal.bold.blue(stepCount(2)+"Please insert the token of your discord bot.\n")
|
||||
terminal.gray("This is used to configure the bot and is then stored securely in the './config/general.json' file.\n\n> ")
|
||||
@@ -275,7 +268,7 @@ async function renderQuickSetupServer(backFn:() => api.ODPromiseVoid){
|
||||
const {client} = quickSetupStorage
|
||||
if (!client) return
|
||||
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Discord Server")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Discord Server")
|
||||
|
||||
terminal.bold.blue(stepCount(3)+"Please select a Discord Server to use.\n")
|
||||
terminal.gray("The bot will only work in this server.\n\n")
|
||||
@@ -305,7 +298,7 @@ async function renderQuickSetupAdminRoles(selectedAdmins:string[],backFn:() => a
|
||||
const {client,guild} = quickSetupStorage
|
||||
if (!client || !guild) return
|
||||
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Admin Roles")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Admin Roles")
|
||||
|
||||
terminal.bold.blue(stepCount(4)+"Please select all 'Global Admins' roles to use.\n")
|
||||
terminal.gray("Users with one of these roles will be able to access & interact with all tickets.\n\n")
|
||||
@@ -341,7 +334,7 @@ async function renderQuickSetupColorPicker(backFn:() => api.ODPromiseVoid){
|
||||
const {client,guild,globalAdmins} = quickSetupStorage
|
||||
if (!client || !guild || !globalAdmins) return
|
||||
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Main Color")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Main Color")
|
||||
|
||||
terminal.bold.blue(stepCount(5)+"Please insert a valid hex-color to use in all embeds.\n")
|
||||
terminal.gray("You can also choose from existing presets. (e.g. red, green, blue, ...)\n\n> ")
|
||||
@@ -375,7 +368,7 @@ async function renderQuickSetupColorPicker(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupLanguage(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Language")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Language")
|
||||
|
||||
terminal.bold.blue(stepCount(6)+"What language would you like to use in the bot?\n")
|
||||
terminal.gray("View a list of available languages here: https://otgithub.dj-dj.be#-translators\n\n> ")
|
||||
@@ -403,7 +396,7 @@ async function renderQuickSetupLanguage(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupCommandTypes(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Command Types")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Command Types")
|
||||
|
||||
terminal.bold.blue(stepCount(7)+"Would you like to use slash commands, text commands or both?\n")
|
||||
terminal.gray("Slash commands are recommended.\n\n")
|
||||
@@ -436,7 +429,7 @@ async function renderQuickSetupCommandTypes(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupStatusType(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Status Type")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Status Type")
|
||||
|
||||
terminal.bold.blue(stepCount(8)+"Please select the type of status you want to use.\n")
|
||||
terminal.gray("The status will be shown below the bot name in the userlist.\n\n")
|
||||
@@ -471,7 +464,7 @@ async function renderQuickSetupStatusText(backFn:() => api.ODPromiseVoid){
|
||||
const {status} = quickSetupStorage
|
||||
if (!status) return
|
||||
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Status Text")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Status Text")
|
||||
|
||||
terminal.bold.blue(stepCount(8.1)+"What text would you like to display in the status?\n")
|
||||
terminal.gray("This will be appended after the type you have chosen in the previous question.\n\n> ")
|
||||
@@ -494,7 +487,7 @@ async function renderQuickSetupLogs(backFn:() => api.ODPromiseVoid){
|
||||
const {client,guild} = quickSetupStorage
|
||||
if (!client || !guild) return
|
||||
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Channel Logs")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Channel Logs")
|
||||
|
||||
terminal.bold.blue(stepCount(9)+"Please select the 'Text Channel' to use for logs.\n")
|
||||
terminal.gray("All logs of the bot will be sent here. Make sure only admins can access this channel.\n\n")
|
||||
@@ -531,7 +524,7 @@ async function renderQuickSetupTicketCategory(backFn:() => api.ODPromiseVoid){
|
||||
const {client,guild} = quickSetupStorage
|
||||
if (!client || !guild) return
|
||||
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Category")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Category")
|
||||
|
||||
terminal.bold.blue(stepCount(10)+"Please select which 'Category' you would like tickets to be created in.\n")
|
||||
terminal.gray("When no category is selected, tickets will appear at the top of the channel list.\n\n")
|
||||
@@ -564,7 +557,7 @@ async function renderQuickSetupTicketCategory(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupTicketCount(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration")
|
||||
|
||||
terminal.bold.blue(stepCount(11)+"How many ticket options/types would you like to create?\n")
|
||||
terminal.gray("You can always add more ticket options/types in the config afterwards.\n\n")
|
||||
@@ -601,7 +594,7 @@ async function renderQuickSetupTicketCount(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketName(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) Please insert the name of this ticket option.\n")
|
||||
terminal.gray("Recommendation: Clean, short, obvious name, not more than ±30 characters.\n\n> ")
|
||||
@@ -635,7 +628,7 @@ async function renderQuickSetupCreateTicketName(ticketIndex:number,requiredTicke
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketDescription(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) Please insert the description of this ticket option.\n")
|
||||
terminal.gray("Recommendation: Use '\\n' (backslash-n) for a newline.\n\n> ")
|
||||
@@ -655,7 +648,7 @@ async function renderQuickSetupCreateTicketDescription(ticketIndex:number,requir
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketButtonType(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) How would you like to display the ticket name in the button/dropdown?\n")
|
||||
terminal.gray("You will be able to choose between dropdown/buttons when configuring panels.\n\n")
|
||||
@@ -686,7 +679,7 @@ async function renderQuickSetupCreateTicketButtonType(ticketIndex:number,require
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketButtonEmoji(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) Please insert the button emoji of this ticket option.\n")
|
||||
terminal.gray("Only 1 emoji allowed. Tip: Insert custom emoji's via the following syntax: <:12345678910:emoji_name>\n\n> ")
|
||||
@@ -714,7 +707,7 @@ async function renderQuickSetupCreateTicketButtonEmoji(ticketIndex:number,requir
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketButtonColor(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) What color would you like the button to be?\n")
|
||||
terminal.gray("This will not apply when choosing 'dropdown' mode in the panel configuration.\n\n")
|
||||
@@ -742,7 +735,7 @@ async function renderQuickSetupCreateTicketButtonColor(ticketIndex:number,requir
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketChannelPrefix(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) Please insert the channel prefix of this ticket option.\n")
|
||||
terminal.gray("Examples: 'ticket-', 'question-', 'test-channel-', ...\n\n> ")
|
||||
@@ -766,7 +759,7 @@ async function renderQuickSetupCreateTicketChannelPrefix(ticketIndex:number,requ
|
||||
}
|
||||
|
||||
async function renderQuickSetupCreateTicketChannelSuffix(ticketIndex:number,requiredTickets:number,backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Configuration (Ticket "+(ticketIndex+1)+"/"+requiredTickets+")")
|
||||
|
||||
terminal.bold.blue("("+utilities.ordinalNumber(ticketIndex+1)+" Ticket) Please select the channel suffix mode of this ticket option.\n")
|
||||
terminal.gray("The suffix is appended after the prefix and will be generated on ticket creation.\n\n")
|
||||
@@ -806,7 +799,7 @@ async function renderQuickSetupCreateTicketChannelSuffix(ticketIndex:number,requ
|
||||
}
|
||||
|
||||
async function renderQuickSetupAutoclose(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Autoclose")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Autoclose")
|
||||
|
||||
terminal.bold.blue(stepCount(12)+"Would you like to enable autoclosing tickets?\n")
|
||||
terminal.gray("Applies to all created tickets. You can always change/disable autoclose per ticket-option in the config afterwards.\n\n")
|
||||
@@ -839,7 +832,7 @@ async function renderQuickSetupAutoclose(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupCooldown(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Cooldown")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Cooldown")
|
||||
|
||||
terminal.bold.blue(stepCount(13)+"Would you like to enable ticket creation cooldown?\n")
|
||||
terminal.gray("Applies to all created tickets. You can always change/disable cooldown per ticket-option in the config afterwards.\n\n")
|
||||
@@ -873,7 +866,7 @@ async function renderQuickSetupCooldown(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupLimits(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Limits")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Limits")
|
||||
|
||||
terminal.bold.blue(stepCount(14)+"Would you like to enable user ticket creation limits?\n")
|
||||
terminal.gray("Applies to all created tickets. You can always change/disable limits globally or per ticket-option in the config afterwards.\n\n")
|
||||
@@ -904,7 +897,7 @@ async function renderQuickSetupLimits(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupCloseParticipants(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Close Configuration")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Close Configuration")
|
||||
|
||||
terminal.bold.blue(stepCount(15)+"Would you like to remove all ticket participants when closing the ticket?\n")
|
||||
terminal.gray("When a ticket is closed, only admins can read/write in the ticket. Reopen ticket to restore read/write perms.\n\n")
|
||||
@@ -929,7 +922,7 @@ async function renderQuickSetupCloseParticipants(backFn:() => api.ODPromiseVoid)
|
||||
}
|
||||
|
||||
async function renderQuickSetupTicketMessageLayout(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Message Configuration")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Message Configuration")
|
||||
|
||||
terminal.bold.blue(stepCount(16)+"How would you like the (initial) ticket message to be displayed?\n")
|
||||
terminal.gray("This message is sent by the bot when creating a ticket and contains buttons like closing, claiming & deleting.\n\n")
|
||||
@@ -955,7 +948,7 @@ async function renderQuickSetupTicketMessageLayout(backFn:() => api.ODPromiseVoi
|
||||
}
|
||||
|
||||
async function renderQuickSetupEmojiStyle(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Emoji Style")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Emoji Style")
|
||||
|
||||
terminal.bold.blue(stepCount(17)+"How would you like emojis to be displayed in messages?\n")
|
||||
terminal.gray("This will affect emojis in all messages of the bot, but does not apply to buttons & dropdowns.\n\n")
|
||||
@@ -982,7 +975,7 @@ async function renderQuickSetupEmojiStyle(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupPanelName(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Panel Name")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Panel Name")
|
||||
|
||||
terminal.bold.blue(stepCount(18)+"Please insert the name of the ticket panel.\n")
|
||||
terminal.gray("This will be shown as the title of the panel message where all tickets are located.\n\n> ")
|
||||
@@ -1005,7 +998,7 @@ async function renderQuickSetupPanelName(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupPanelDescription(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Panel Description")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Panel Description")
|
||||
|
||||
terminal.bold.blue(stepCount(19)+"Please insert the description of the ticket panel.\n")
|
||||
terminal.gray("Shown below the title. Can be used to explain some info/rules about the ticket system.\n\n> ")
|
||||
@@ -1024,7 +1017,7 @@ async function renderQuickSetupPanelDescription(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupPanelDropdown(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Panel Mode")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Panel Mode")
|
||||
|
||||
terminal.bold.blue(stepCount(20)+"Do you want to show the tickets as buttons or a dropdown?\n")
|
||||
terminal.gray("Dropdown doesn't support colors and cannot contain option types other than 'tickets' (e.g. website/url or reaction roles).\n\n")
|
||||
@@ -1049,7 +1042,7 @@ async function renderQuickSetupPanelDropdown(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupPanelLayout(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Panel Layout")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Panel Layout")
|
||||
|
||||
terminal.bold.blue(stepCount(21)+"How would you like the panel message to be displayed?\n")
|
||||
terminal.gray("Most of the time embeds are used. But for a simpler solution, you can choose the text layout.\n\n")
|
||||
@@ -1074,7 +1067,7 @@ async function renderQuickSetupPanelLayout(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupPanelDescribeOptions(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Panel Option Descriptions")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Panel Option Descriptions")
|
||||
|
||||
terminal.bold.blue(stepCount(22)+"Would you like the panel to have auto-generated (ticket-)option descriptions?\n")
|
||||
terminal.gray("It will use the 'name' & 'description' of each ticket option and displays it below the panel description.\n\n")
|
||||
@@ -1101,7 +1094,7 @@ async function renderQuickSetupPanelDescribeOptions(backFn:() => api.ODPromiseVo
|
||||
}
|
||||
|
||||
async function renderQuickSetupPanelMaxTicketsWarning(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("⏱️ Open Ticket Quick Setup: Ticket Close Configuration")
|
||||
cli.renderHeader(headerOpts,"⏱️ Open Ticket Quick Setup: Ticket Close Configuration")
|
||||
|
||||
terminal.bold.blue(stepCount(23)+"Would you like to show the maximum amount of tickets a user can create in the panel?\n")
|
||||
terminal.gray("This will show the amount of tickets a user can create at the same time when limits are enabled.\n\n")
|
||||
@@ -1126,7 +1119,7 @@ async function renderQuickSetupPanelMaxTicketsWarning(backFn:() => api.ODPromise
|
||||
}
|
||||
|
||||
async function renderQuickSetupReady(backFn:() => api.ODPromiseVoid){
|
||||
renderHeader("😎 Open Ticket Quick Setup: Overview")
|
||||
cli.renderHeader(headerOpts,"😎 Open Ticket Quick Setup: Overview")
|
||||
|
||||
terminal.bold.blue(stepCount(24)+"This is the overview of your ticket bot configuration!\n")
|
||||
terminal.gray("Press 'Enter' to save the result to the config.\n\n")
|
||||
@@ -1171,7 +1164,7 @@ async function renderQuickSetupReady(backFn:() => api.ODPromiseVoid){
|
||||
}
|
||||
|
||||
async function renderQuickSetupFinished(){
|
||||
renderHeader("✅ Open Ticket Quick Setup: Ready")
|
||||
cli.renderHeader(headerOpts,"✅ Open Ticket Quick Setup: Ready")
|
||||
|
||||
terminal.bold.green("The config has been saved succesfully and the bot is now ready for usage!\n")
|
||||
terminal.gray("Press 'Enter' to exit the Quick Setup CLI.\n\n")
|
||||
@@ -1203,13 +1196,13 @@ async function renderQuickSetupFinished(){
|
||||
}).promise
|
||||
|
||||
//stop CLI
|
||||
return await terminate()
|
||||
return await cli.terminate(headerOpts)
|
||||
}
|
||||
|
||||
async function saveQuickSetupConfig(){
|
||||
//GENERAL CONFIG
|
||||
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
||||
const generalConfigData: api.ODJsonConfig_DefaultGeneralData = {
|
||||
const generalConfigData: api.ODGeneralJsonConfig_GeneralData = {
|
||||
_INFO:{
|
||||
support:"https://otdocs.dj-dj.be",
|
||||
discord:"https://discord.dj-dj.be",
|
||||
@@ -1333,7 +1326,7 @@ async function saveQuickSetupConfig(){
|
||||
|
||||
//QUESTIONS CONFIG => no configuration needed (coming soonTM)
|
||||
const questionsConfig = opendiscord.configs.get("opendiscord:questions")
|
||||
const questionsConfigData: api.ODJsonConfig_DefaultQuestionsData = [
|
||||
const questionsConfigData: api.ODQuestionsJsonConfig_QuestionsData = [
|
||||
{
|
||||
id:"example-question-1",
|
||||
name:"Example Question 1",
|
||||
@@ -1366,8 +1359,8 @@ async function saveQuickSetupConfig(){
|
||||
|
||||
//OPTIONS CONFIG
|
||||
const optionsConfig = opendiscord.configs.get("opendiscord:options")
|
||||
const optionsConfigData: api.ODJsonConfig_DefaultOptionsData = quickSetupStorage.ticketOptions.filter((ticket) => ticket !== null).map((ticket) => {
|
||||
const id = generateUniqueIdFromName(ticket.name)
|
||||
const optionsConfigData: api.ODOptionsJsonConfig_OptionsData = quickSetupStorage.ticketOptions.filter((ticket) => ticket !== null).map((ticket) => {
|
||||
const id = cli.generateUniqueIdFromName(ticket.name)
|
||||
quickSetupStorage.optionIdStorage.push(id)
|
||||
|
||||
return {
|
||||
@@ -1464,9 +1457,9 @@ async function saveQuickSetupConfig(){
|
||||
|
||||
//PANELS CONFIG
|
||||
const panelsConfig = opendiscord.configs.get("opendiscord:panels")
|
||||
const panelsConfigData: api.ODJsonConfig_DefaultPanelsData = [
|
||||
const panelsConfigData: api.ODPanelsJsonConfig_PanelsData = [
|
||||
{
|
||||
id:generateUniqueIdFromName(quickSetupStorage.panelName ?? "ticket-panel"),
|
||||
id:cli.generateUniqueIdFromName(quickSetupStorage.panelName ?? "ticket-panel"),
|
||||
name:quickSetupStorage.panelName ?? "Ticket Panel",
|
||||
dropdown:quickSetupStorage.panelDropdown ?? false,
|
||||
options:quickSetupStorage.optionIdStorage,
|
||||
@@ -1506,7 +1499,7 @@ async function saveQuickSetupConfig(){
|
||||
|
||||
//TRANSCRIPTS CONFIG => no configuration needed (coming soonTM)
|
||||
const transcriptsConfig = opendiscord.configs.get("opendiscord:transcripts")
|
||||
const transcriptsConfigData: api.ODJsonConfig_DefaultTranscriptsData = {
|
||||
const transcriptsConfigData: api.ODTranscriptsJsonConfig_TranscriptsData = {
|
||||
general:{
|
||||
enabled:(typeof quickSetupStorage.logChannel == "string"),
|
||||
|
||||
|
||||
@@ -5,32 +5,32 @@ import * as api from "./api"
|
||||
import * as utilities from "@open-discord-bots/framework/utilities"
|
||||
|
||||
export class ODOpenTicketMain extends api.ODMain {
|
||||
declare versions: api.ODVersionManager_Default
|
||||
declare events: api.ODEventManager_Default
|
||||
declare versions: api.ODMappedVersionManager
|
||||
declare events: api.ODMappedEventManager
|
||||
|
||||
declare plugins: api.ODPluginManager_Default
|
||||
declare flags: api.ODFlagManager_Default
|
||||
declare progressbars: api.ODProgressBarManager_Default
|
||||
declare configs: api.ODConfigManager_Default
|
||||
declare databases: api.ODDatabaseManager_Default
|
||||
declare sessions: api.ODSessionManager_Default
|
||||
declare languages: api.ODLanguageManager_Default
|
||||
declare plugins: api.ODMappedPluginManager
|
||||
declare flags: api.ODMappedFlagManager
|
||||
declare progressbars: api.ODMappedProgressBarManager
|
||||
declare configs: api.ODMappedConfigManager
|
||||
declare databases: api.ODMappedDatabaseManager
|
||||
declare sessions: api.ODMappedSessionManager
|
||||
declare languages: api.ODMappedLanguageManager
|
||||
|
||||
declare checkers: api.ODCheckerManager_Default
|
||||
declare builders: api.ODBuilderManager_Default
|
||||
declare responders: api.ODResponderManager_Default
|
||||
declare actions: api.ODActionManager_Default
|
||||
declare verifybars: api.ODVerifyBarManager_Default
|
||||
declare permissions: api.ODPermissionManager_Default
|
||||
declare cooldowns: api.ODCooldownManager_Default
|
||||
declare helpmenu: api.ODHelpMenuManager_Default
|
||||
declare stats: api.ODStatsManager_Default
|
||||
declare code: api.ODCodeManager_Default
|
||||
declare posts: api.ODPostManager_Default
|
||||
declare checkers: api.ODMappedCheckerManager
|
||||
declare builders: api.ODMappedBuilderManager
|
||||
declare responders: api.ODMappedResponderManager
|
||||
declare actions: api.ODMappedActionManager
|
||||
declare verifybars: api.ODMappedVerifyBarManager
|
||||
declare permissions: api.ODMappedPermissionManager
|
||||
declare cooldowns: api.ODMappedCooldownManager
|
||||
declare helpmenu: api.ODMappedHelpMenuManager
|
||||
declare statistics: api.ODMappedStatisticManager
|
||||
declare code: api.ODMappedCodeManager
|
||||
declare posts: api.ODMappedPostManager
|
||||
|
||||
declare client: api.ODClientManager_Default
|
||||
declare livestatus: api.ODLiveStatusManager_Default
|
||||
declare startscreen: api.ODStartScreenManager_Default
|
||||
declare client: api.ODMappedClientManager
|
||||
declare livestatus: api.ODMappedLiveStatusManager
|
||||
declare startscreen: api.ODMappedStartScreenManager
|
||||
|
||||
/////////////////////
|
||||
//// OPEN TICKET ////
|
||||
@@ -49,53 +49,58 @@ export class ODOpenTicketMain extends api.ODMain {
|
||||
/**The manager that manages the ticket blacklist. (people who are blacklisted can't create a ticket) */
|
||||
blacklist: api.ODBlacklistManager
|
||||
/**The manager that manages the ticket transcripts. (both the history & compilers) */
|
||||
transcripts: api.ODTranscriptManager_Default
|
||||
transcripts: api.ODMappedTranscriptManager
|
||||
/**The manager that manages all reaction roles in the bot. (here, you can add additional data to roles) */
|
||||
roles: api.ODRoleManager
|
||||
/**The manager that manages all priority levels in the bot. (register/edit ticket priority levels) */
|
||||
priorities: api.ODPriorityManager_Default
|
||||
priorities: api.ODMappedPriorityManager
|
||||
|
||||
constructor(){
|
||||
const version = api.ODVersion.fromString("opendiscord:version","v4.1.3")
|
||||
const debugfile = new api.ODDebugFileManager("./","otdebug.txt",5000,version)
|
||||
const console = new api.ODConsoleManager(100,debugfile)
|
||||
const debug = new api.ODDebugger(console)
|
||||
const client = new api.ODClientManager_Default(debug)
|
||||
const livestatus = new api.ODLiveStatusManager_Default(debug,console)
|
||||
const permissions = new api.ODPermissionManager_Default(debug,client)
|
||||
const client = new api.ODMappedClientManager(debug)
|
||||
const livestatus = new api.ODMappedLiveStatusManager(debug,console)
|
||||
const permissions = new api.ODMappedPermissionManager(debug,client)
|
||||
|
||||
super({
|
||||
versions:new api.ODVersionManager_Default(),
|
||||
versions:new api.ODMappedVersionManager(),
|
||||
debugfile,console,debug,
|
||||
events:new api.ODEventManager_Default(debug),
|
||||
events:new api.ODMappedEventManager(debug),
|
||||
processStartupDate:new Date(),
|
||||
readyStartupDate:null,
|
||||
|
||||
plugins:new api.ODPluginManager_Default(debug),
|
||||
flags:new api.ODFlagManager_Default(debug),
|
||||
progressbars:new api.ODProgressBarManager_Default(debug),
|
||||
configs:new api.ODConfigManager_Default(debug),
|
||||
databases:new api.ODDatabaseManager_Default(debug),
|
||||
sessions:new api.ODSessionManager_Default(debug),
|
||||
languages:new api.ODLanguageManager_Default(debug,false),
|
||||
plugins:new api.ODMappedPluginManager(debug),
|
||||
flags:new api.ODMappedFlagManager(debug),
|
||||
progressbars:new api.ODMappedProgressBarManager(debug),
|
||||
configs:new api.ODMappedConfigManager(debug),
|
||||
databases:new api.ODMappedDatabaseManager(debug),
|
||||
sessions:new api.ODMappedSessionManager(debug),
|
||||
languages:new api.ODMappedLanguageManager(debug,false),
|
||||
|
||||
checkers:new api.ODCheckerManager_Default(debug,new api.ODCheckerStorage(),new api.ODCheckerRenderer_Default(),new api.ODCheckerTranslationRegister_Default(),new api.ODCheckerFunctionManager_Default(debug)),
|
||||
builders:new api.ODBuilderManager_Default(debug),
|
||||
checkers:new api.ODMappedCheckerManager(debug,
|
||||
new api.ODCheckerStorage(),
|
||||
new api.ODDefaultCheckerRenderer("#f8ba00","https://discord.dj-dj.be","https://otdocs.dj-dj.be"),
|
||||
new api.ODMappedCheckerTranslationRegister(),
|
||||
new api.ODMappedCheckerFunctionManager(debug)
|
||||
),
|
||||
builders:new api.ODMappedBuilderManager(debug),
|
||||
client,
|
||||
responders:new api.ODResponderManager_Default(debug,client),
|
||||
actions:new api.ODActionManager_Default(debug),
|
||||
verifybars:new api.ODVerifyBarManager_Default(debug),
|
||||
responders:new api.ODMappedResponderManager(debug,client),
|
||||
actions:new api.ODMappedActionManager(debug),
|
||||
verifybars:new api.ODMappedVerifyBarManager(debug),
|
||||
permissions,
|
||||
cooldowns:new api.ODCooldownManager_Default(debug),
|
||||
helpmenu:new api.ODHelpMenuManager_Default(debug),
|
||||
stats:new api.ODStatsManager_Default(debug),
|
||||
code:new api.ODCodeManager_Default(debug),
|
||||
posts:new api.ODPostManager_Default(debug),
|
||||
cooldowns:new api.ODMappedCooldownManager(debug),
|
||||
helpmenu:new api.ODMappedHelpMenuManager(debug),
|
||||
statistics:new api.ODMappedStatisticManager(debug),
|
||||
code:new api.ODMappedCodeManager(debug),
|
||||
posts:new api.ODMappedPostManager(debug),
|
||||
|
||||
sharedFuses:utilities.sharedFuses,
|
||||
env:new api.ODEnvHelper(),
|
||||
livestatus,
|
||||
startscreen:new api.ODStartScreenManager_Default(debug,livestatus),
|
||||
startscreen:new api.ODMappedStartScreenManager(debug,livestatus),
|
||||
},"openticket")
|
||||
|
||||
this.livestatus.useMain(this)
|
||||
@@ -120,8 +125,8 @@ export class ODOpenTicketMain extends api.ODMain {
|
||||
this.panels = new api.ODPanelManager(debug)
|
||||
this.tickets = new api.ODTicketManager(debug,client)
|
||||
this.blacklist = new api.ODBlacklistManager(debug)
|
||||
this.transcripts = new api.ODTranscriptManager_Default(debug,this.tickets,client,permissions)
|
||||
this.transcripts = new api.ODMappedTranscriptManager(debug,this.tickets,client,permissions)
|
||||
this.roles = new api.ODRoleManager(debug)
|
||||
this.priorities = new api.ODPriorityManager_Default(debug)
|
||||
this.priorities = new api.ODMappedPriorityManager(debug)
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,19 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT ACTION MODULE
|
||||
//OPEN TICKET ACTION MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODWorkerManager_Default } from "./worker"
|
||||
import * as discord from "discord.js"
|
||||
import { ODRoleOption, ODTicketOption } from "../openticket/option"
|
||||
import { ODTicket, ODTicketClearFilter } from "../openticket/ticket"
|
||||
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../openticket/transcript"
|
||||
import { ODRole, ODRoleUpdateMode, ODRoleUpdateResult } from "../openticket/role"
|
||||
import { ODPriorityLevel } from "../openticket/priority"
|
||||
import { ODRoleOption, ODTicketOption } from "../api/option"
|
||||
import { ODTicket, ODTicketClearFilter } from "../api/ticket"
|
||||
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../api/transcript"
|
||||
import { ODRole, ODRoleUpdateMode, ODRoleUpdateResult } from "../api/role"
|
||||
import { ODPriorityLevel } from "../api/priority"
|
||||
|
||||
/**## ODActionManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODActionManager_Default` class.
|
||||
/**## ODActionManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODActionManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODActionManagerIds_Default {
|
||||
export interface ODActionManagerIdMappings extends api.ODActionManagerIdConstraint {
|
||||
"opendiscord:create-ticket-permissions":{
|
||||
source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",
|
||||
params:{guild:discord.Guild,user:discord.User,option:ODTicketOption},
|
||||
@@ -131,41 +130,16 @@ export interface ODActionManagerIds_Default {
|
||||
},
|
||||
}
|
||||
|
||||
/**## ODActionManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODActionManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.actions`!
|
||||
*/
|
||||
export class ODActionManager_Default extends api.ODActionManager {
|
||||
get<ActionId extends keyof ODActionManagerIds_Default>(id:ActionId): ODAction_Default<ODActionManagerIds_Default[ActionId]["source"],ODActionManagerIds_Default[ActionId]["params"],ODActionManagerIds_Default[ActionId]["result"],ODActionManagerIds_Default[ActionId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODAction<string,any,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODAction<string,any,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ActionId extends keyof ODActionManagerIds_Default>(id:ActionId): ODAction_Default<ODActionManagerIds_Default[ActionId]["source"],ODActionManagerIds_Default[ActionId]["params"],ODActionManagerIds_Default[ActionId]["result"],ODActionManagerIds_Default[ActionId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODAction<string,any,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODAction<string,any,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODActionManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
type ODNoGeneric<T extends Record<string|number|symbol,any>> = {
|
||||
[K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K]
|
||||
}
|
||||
export type ODActionManagerMappingsModifier<T extends api.ODActionManagerIdConstraint = ODActionManagerIdMappings> = {
|
||||
[K in keyof T]: api.ODAction<T[K]["source"],T[K]["params"],T[K]["result"],T[K]["workers"]>
|
||||
}
|
||||
|
||||
/**## ODAction_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODAction class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODAction`'s!
|
||||
type test = ODActionManagerMappingsModifier
|
||||
|
||||
/**## ODMappedActionManager `class
|
||||
* A special class with types for the Open Ticket `ODActionManager` class.
|
||||
*/
|
||||
export class ODAction_Default<Source extends string, Params extends object, Result extends object, WorkerIds extends string> extends api.ODAction<Source,Params,Result> {
|
||||
declare workers: ODWorkerManager_Default<Result,Source,Params,WorkerIds>
|
||||
}
|
||||
export class ODMappedActionManager extends api.ODActionManager<ODActionManagerIdMappings> {}
|
||||
@@ -0,0 +1,21 @@
|
||||
///////////////////////////////////////
|
||||
//BASE MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODVersionManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODVersionManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODVersionManagerIdMappings extends api.ODVersionManagerIdConstraint {
|
||||
"opendiscord:version":api.ODVersion,
|
||||
"opendiscord:last-version":api.ODVersion,
|
||||
"opendiscord:api":api.ODVersion,
|
||||
"opendiscord:transcripts":api.ODVersion,
|
||||
"opendiscord:livestatus":api.ODVersion
|
||||
}
|
||||
|
||||
/**## ODMappedVersionManager `class
|
||||
* A special class with types for the Open Ticket `ODVersionManager` class.
|
||||
*/
|
||||
export class ODMappedVersionManager extends api.ODVersionManager<ODVersionManagerIdMappings> {}
|
||||
@@ -1,37 +1,21 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT BUILDER MODULE
|
||||
//OPEN TICKET BUILDER MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODWorkerManager_Default } from "./worker"
|
||||
import { ODPermissionEmbedType } from "./permission"
|
||||
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../openticket/transcript"
|
||||
import { ODRoleOption, ODTicketOption, ODWebsiteOption } from "../openticket/option"
|
||||
import { ODTicket, ODTicketClearFilter } from "../openticket/ticket"
|
||||
import { ODRole, ODRoleUpdateResult } from "../openticket/role"
|
||||
import { ODPriorityLevel } from "../openticket/priority"
|
||||
import { ODPanel } from "../openticket/panel"
|
||||
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../api/transcript"
|
||||
import { ODRoleOption, ODTicketOption, ODWebsiteOption } from "../api/option"
|
||||
import { ODTicket, ODTicketClearFilter } from "../api/ticket"
|
||||
import { ODRole, ODRoleUpdateResult } from "../api/role"
|
||||
import { ODPriorityLevel } from "../api/priority"
|
||||
import { ODPanel } from "../api/panel"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
/**## ODBuilderManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODBuilderManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders`!
|
||||
*/
|
||||
export class ODBuilderManager_Default extends api.ODBuilderManager {
|
||||
declare buttons: ODButtonManager_Default
|
||||
declare dropdowns: ODDropdownManager_Default
|
||||
declare files: ODFileManager_Default
|
||||
declare embeds: ODEmbedManager_Default
|
||||
declare messages: ODMessageManager_Default
|
||||
declare modals: ODModalManager_Default
|
||||
}
|
||||
|
||||
/**## ODButtonManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODButtonManager_Default` class.
|
||||
/**## ODButtonManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODButtonManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODButtonManagerIds_Default {
|
||||
export interface ODButtonManagerIdMappings extends api.ODButtonManagerIdConstraint {
|
||||
"opendiscord:verifybar-success":{source:"verifybar"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:api.ODVerifyBar,customData?:string,customColor?:api.ODValidButtonColor,customLabel?:string,customEmoji?:string},workers:"opendiscord:verifybar-success"},
|
||||
"opendiscord:verifybar-failure":{source:"verifybar"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:api.ODVerifyBar,customData?:string,customColor?:api.ODValidButtonColor,customLabel?:string,customEmoji?:string},workers:"opendiscord:verifybar-failure"},
|
||||
|
||||
@@ -63,165 +47,27 @@ export interface ODButtonManagerIds_Default {
|
||||
"opendiscord:clear-continue":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-continue"},
|
||||
}
|
||||
|
||||
/**## ODButtonManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODButtonManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders.buttons`!
|
||||
*/
|
||||
export class ODButtonManager_Default extends api.ODButtonManager {
|
||||
get<ButtonId extends keyof ODButtonManagerIds_Default>(id:ButtonId): ODButton_Default<ODButtonManagerIds_Default[ButtonId]["source"],ODButtonManagerIds_Default[ButtonId]["params"],ODButtonManagerIds_Default[ButtonId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODButton<string,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODButton<string,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ButtonId extends keyof ODButtonManagerIds_Default>(id:ButtonId): ODButton_Default<ODButtonManagerIds_Default[ButtonId]["source"],ODButtonManagerIds_Default[ButtonId]["params"],ODButtonManagerIds_Default[ButtonId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODButton<string,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODButton<string,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODButtonManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getSafe<ButtonId extends keyof ODButtonManagerIds_Default>(id:ButtonId): ODButton_Default<ODButtonManagerIds_Default[ButtonId]["source"],ODButtonManagerIds_Default[ButtonId]["params"],ODButtonManagerIds_Default[ButtonId]["workers"]>
|
||||
getSafe(id:api.ODValidId): api.ODButton<string,any>
|
||||
|
||||
getSafe(id:api.ODValidId): api.ODButton<string,any> {
|
||||
return super.getSafe(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODButton_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODButton class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODButton`'s!
|
||||
*/
|
||||
export class ODButton_Default<Source extends string, Params, WorkerIds extends string> extends api.ODButton<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODButtonInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODDropdownManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODDropdownManager_Default` class.
|
||||
/**## ODDropdownManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODDropdownManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODDropdownManagerIds_Default {
|
||||
export interface ODDropdownManagerIdMappings extends api.ODDropdownManagerIdConstraint {
|
||||
"opendiscord:panel-dropdown-tickets":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,options:ODTicketOption[]},workers:"opendiscord:panel-dropdown-tickets"}
|
||||
}
|
||||
|
||||
/**## ODDropdownManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODDropdownManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders.dropdowns`!
|
||||
*/
|
||||
export class ODDropdownManager_Default extends api.ODDropdownManager {
|
||||
get<DropdownId extends keyof ODDropdownManagerIds_Default>(id:DropdownId): ODDropdown_Default<ODDropdownManagerIds_Default[DropdownId]["source"],ODDropdownManagerIds_Default[DropdownId]["params"],ODDropdownManagerIds_Default[DropdownId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODDropdown<string,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODDropdown<string,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<DropdownId extends keyof ODDropdownManagerIds_Default>(id:DropdownId): ODDropdown_Default<ODDropdownManagerIds_Default[DropdownId]["source"],ODDropdownManagerIds_Default[DropdownId]["params"],ODDropdownManagerIds_Default[DropdownId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODDropdown<string,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODDropdown<string,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODDropdownManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getSafe<DropdownId extends keyof ODDropdownManagerIds_Default>(id:DropdownId): ODDropdown_Default<ODDropdownManagerIds_Default[DropdownId]["source"],ODDropdownManagerIds_Default[DropdownId]["params"],ODDropdownManagerIds_Default[DropdownId]["workers"]>
|
||||
getSafe(id:api.ODValidId): api.ODDropdown<string,any>
|
||||
|
||||
getSafe(id:api.ODValidId): api.ODDropdown<string,any> {
|
||||
return super.getSafe(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODDropdown_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODDropdown class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODDropdown`'s!
|
||||
*/
|
||||
export class ODDropdown_Default<Source extends string, Params, WorkerIds extends string> extends api.ODDropdown<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODDropdownInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODFileManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODFileManager_Default` class.
|
||||
/**## ODFileManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODFileManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFileManagerIds_Default {
|
||||
export interface ODFileManagerIdMappings extends api.ODFileManagerIdConstraint {
|
||||
"opendiscord:text-transcript":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<any,object|null>,result:ODTranscriptCompilerCompileResult<any>},workers:"opendiscord:text-transcript"}
|
||||
}
|
||||
|
||||
/**## ODFileManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFileManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders.files`!
|
||||
*/
|
||||
export class ODFileManager_Default extends api.ODFileManager {
|
||||
get<FileId extends keyof ODFileManagerIds_Default>(id:FileId): ODFile_Default<ODFileManagerIds_Default[FileId]["source"],ODFileManagerIds_Default[FileId]["params"],ODFileManagerIds_Default[FileId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODFile<string,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODFile<string,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<FileId extends keyof ODFileManagerIds_Default>(id:FileId): ODFile_Default<ODFileManagerIds_Default[FileId]["source"],ODFileManagerIds_Default[FileId]["params"],ODFileManagerIds_Default[FileId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODFile<string,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODFile<string,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODFileManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getSafe<FileId extends keyof ODFileManagerIds_Default>(id:FileId): ODFile_Default<ODFileManagerIds_Default[FileId]["source"],ODFileManagerIds_Default[FileId]["params"],ODFileManagerIds_Default[FileId]["workers"]>
|
||||
getSafe(id:api.ODValidId): api.ODFile<string,any>
|
||||
|
||||
getSafe(id:api.ODValidId): api.ODFile<string,any> {
|
||||
return super.getSafe(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODFile_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODFile class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODFile`'s!
|
||||
*/
|
||||
export class ODFile_Default<Source extends string, Params, WorkerIds extends string> extends api.ODFile<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODFileInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODEmbedManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODEmbedManager_Default` class.
|
||||
/**## ODEmbedManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODEmbedManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODEmbedManagerIds_Default {
|
||||
export interface ODEmbedManagerIdMappings extends api.ODEmbedManagerIdConstraint {
|
||||
"opendiscord:error":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:string,layout:"simple"|"advanced",customTitle?:string},workers:"opendiscord:error"},
|
||||
"opendiscord:error-option-missing":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:api.ODTextCommandErrorMissingOption},workers:"opendiscord:error-option-missing"},
|
||||
"opendiscord:error-option-invalid":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:api.ODTextCommandErrorInvalidOption},workers:"opendiscord:error-option-invalid"},
|
||||
@@ -299,57 +145,11 @@ export interface ODEmbedManagerIds_Default {
|
||||
"opendiscord:transfer-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,oldCreator:discord.User,newCreator:discord.User,reason:string|null},workers:"opendiscord:transfer-message"},
|
||||
}
|
||||
|
||||
/**## ODEmbedManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODEmbedManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders.embeds`!
|
||||
*/
|
||||
export class ODEmbedManager_Default extends api.ODEmbedManager {
|
||||
get<EmbedId extends keyof ODEmbedManagerIds_Default>(id:EmbedId): ODEmbed_Default<ODEmbedManagerIds_Default[EmbedId]["source"],ODEmbedManagerIds_Default[EmbedId]["params"],ODEmbedManagerIds_Default[EmbedId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODEmbed<string,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODEmbed<string,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<EmbedId extends keyof ODEmbedManagerIds_Default>(id:EmbedId): ODEmbed_Default<ODEmbedManagerIds_Default[EmbedId]["source"],ODEmbedManagerIds_Default[EmbedId]["params"],ODEmbedManagerIds_Default[EmbedId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODEmbed<string,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODEmbed<string,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODEmbedManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getSafe<EmbedId extends keyof ODEmbedManagerIds_Default>(id:EmbedId): ODEmbed_Default<ODEmbedManagerIds_Default[EmbedId]["source"],ODEmbedManagerIds_Default[EmbedId]["params"],ODEmbedManagerIds_Default[EmbedId]["workers"]>
|
||||
getSafe(id:api.ODValidId): api.ODEmbed<string,any>
|
||||
|
||||
getSafe(id:api.ODValidId): api.ODEmbed<string,any> {
|
||||
return super.getSafe(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODEmbed_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODEmbed class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODEmbed`'s!
|
||||
*/
|
||||
export class ODEmbed_Default<Source extends string, Params, WorkerIds extends string> extends api.ODEmbed<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODEmbedInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODMessageManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODMessageManager_Default` class.
|
||||
/**## ODMessageManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODMessageManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODMessageManagerIds_Default {
|
||||
export interface ODMessageManagerIdMappings extends api.ODMessageManagerIdConstraint {
|
||||
"opendiscord:verifybar-ticket-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:api.ODVerifyBar,originalMessage:discord.Message<boolean>},workers:"opendiscord:verifybar-ticket-message"},
|
||||
"opendiscord:verifybar-close-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:api.ODVerifyBar,originalMessage:discord.Message<boolean>},workers:"opendiscord:verifybar-close-message"},
|
||||
"opendiscord:verifybar-reopen-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:api.ODVerifyBar,originalMessage:discord.Message<boolean>},workers:"opendiscord:verifybar-reopen-message"},
|
||||
@@ -438,57 +238,11 @@ export interface ODMessageManagerIds_Default {
|
||||
"opendiscord:transfer-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,oldCreator:discord.User,newCreator:discord.User,reason:string|null},workers:"opendiscord:transfer-message"},
|
||||
}
|
||||
|
||||
/**## ODMessageManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODMessageManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders.messages`!
|
||||
*/
|
||||
export class ODMessageManager_Default extends api.ODMessageManager {
|
||||
get<MessageId extends keyof ODMessageManagerIds_Default>(id:MessageId): ODMessage_Default<ODMessageManagerIds_Default[MessageId]["source"],ODMessageManagerIds_Default[MessageId]["params"],ODMessageManagerIds_Default[MessageId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODMessage<string,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODMessage<string,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<MessageId extends keyof ODMessageManagerIds_Default>(id:MessageId): ODMessage_Default<ODMessageManagerIds_Default[MessageId]["source"],ODMessageManagerIds_Default[MessageId]["params"],ODMessageManagerIds_Default[MessageId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODMessage<string,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODMessage<string,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODMessageManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getSafe<MessageId extends keyof ODMessageManagerIds_Default>(id:MessageId): ODMessage_Default<ODMessageManagerIds_Default[MessageId]["source"],ODMessageManagerIds_Default[MessageId]["params"],ODMessageManagerIds_Default[MessageId]["workers"]>
|
||||
getSafe(id:api.ODValidId): api.ODMessage<string,any>
|
||||
|
||||
getSafe(id:api.ODValidId): api.ODMessage<string,any> {
|
||||
return super.getSafe(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODMessage_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODMessage class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODMessage`'s!
|
||||
*/
|
||||
export class ODMessage_Default<Source extends string, Params, WorkerIds extends string> extends api.ODMessage<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODMessageInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
|
||||
/**## ODModalManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODModalManager_Default` class.
|
||||
/**## ODModalManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODModalManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODModalManagerIds_Default {
|
||||
export interface ODModalManagerIdMappings extends api.ODModalManagerIdConstraint {
|
||||
"opendiscord:ticket-questions":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,option:ODTicketOption},workers:"opendiscord:ticket-questions"}
|
||||
"opendiscord:close-ticket-reason":{source:"ticket-message"|"reopen-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:close-ticket-reason"}
|
||||
"opendiscord:reopen-ticket-reason":{source:"ticket-message"|"close-message"|"autoclose-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:reopen-ticket-reason"}
|
||||
@@ -499,48 +253,37 @@ export interface ODModalManagerIds_Default {
|
||||
"opendiscord:unpin-ticket-reason":{source:"ticket-message"|"pin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:unpin-ticket-reason"}
|
||||
}
|
||||
|
||||
/**## ODModalManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODModalManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.builders.modals`!
|
||||
/**## ODMappedButtonManager `class
|
||||
* A special class with types for the Open Ticket `ODButtonManager` class.
|
||||
*/
|
||||
export class ODModalManager_Default extends api.ODModalManager {
|
||||
get<ModalId extends keyof ODModalManagerIds_Default>(id:ModalId): ODModal_Default<ODModalManagerIds_Default[ModalId]["source"],ODModalManagerIds_Default[ModalId]["params"],ODModalManagerIds_Default[ModalId]["workers"]>
|
||||
get(id:api.ODValidId): api.ODModal<string,any>|null
|
||||
|
||||
get(id:api.ODValidId): api.ODModal<string,any>|null {
|
||||
return super.get(id)
|
||||
}
|
||||
export class ODMappedButtonManager extends api.ODButtonManager<ODButtonManagerIdMappings> {}
|
||||
|
||||
remove<ModalId extends keyof ODModalManagerIds_Default>(id:ModalId): ODModal_Default<ODModalManagerIds_Default[ModalId]["source"],ODModalManagerIds_Default[ModalId]["params"],ODModalManagerIds_Default[ModalId]["workers"]>
|
||||
remove(id:api.ODValidId): api.ODModal<string,any>|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODModal<string,any>|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODModalManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getSafe<ModalId extends keyof ODModalManagerIds_Default>(id:ModalId): ODModal_Default<ODModalManagerIds_Default[ModalId]["source"],ODModalManagerIds_Default[ModalId]["params"],ODModalManagerIds_Default[ModalId]["workers"]>
|
||||
getSafe(id:api.ODValidId): api.ODModal<string,any>
|
||||
|
||||
getSafe(id:api.ODValidId): api.ODModal<string,any> {
|
||||
return super.getSafe(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODModal_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODModal class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODModal`'s!
|
||||
/**## ODMappedDropdownManager `class
|
||||
* A special class with types for the Open Ticket `ODDropdownManager` class.
|
||||
*/
|
||||
export class ODModal_Default<Source extends string, Params, WorkerIds extends string> extends api.ODModal<Source,Params> {
|
||||
declare workers: ODWorkerManager_Default<api.ODModalInstance,Source,Params,WorkerIds>
|
||||
}
|
||||
export class ODMappedDropdownManager extends api.ODDropdownManager<ODDropdownManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedFileManager `class
|
||||
* A special class with types for the Open Ticket `ODFileManager` class.
|
||||
*/
|
||||
export class ODMappedFileManager extends api.ODFileManager<ODFileManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedEmbedManager `class
|
||||
* A special class with types for the Open Ticket `ODEmbedManager` class.
|
||||
*/
|
||||
export class ODMappedEmbedManager extends api.ODEmbedManager<ODEmbedManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedMessageManager `class
|
||||
* A special class with types for the Open Ticket `ODMessageManager` class.
|
||||
*/
|
||||
export class ODMappedMessageManager extends api.ODMessageManager<ODMessageManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedModalManager `class
|
||||
* A special class with types for the Open Ticket `ODModalManager` class.
|
||||
*/
|
||||
export class ODMappedModalManager extends api.ODModalManager<ODModalManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedBuilderManager `class
|
||||
* A special class with types for the Open Ticket `ODBuilderManager` class.
|
||||
*/
|
||||
export class ODMappedBuilderManager extends api.ODBuilderManager<ODButtonManagerIdMappings,ODDropdownManagerIdMappings,ODFileManagerIdMappings,ODEmbedManagerIdMappings,ODMessageManagerIdMappings,ODModalManagerIdMappings> {}
|
||||
@@ -0,0 +1,145 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET CONFIG CHECKER MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODBCheckerManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODBCheckerManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCheckerManagerIdMappings extends api.ODCheckerManagerIdConstraint {
|
||||
"opendiscord:general":api.ODChecker,
|
||||
"opendiscord:questions":api.ODChecker,
|
||||
"opendiscord:options":api.ODChecker,
|
||||
"opendiscord:panels":api.ODChecker,
|
||||
"opendiscord:transcripts":api.ODChecker
|
||||
}
|
||||
|
||||
/**## ODCheckerTranslationRegisterOtherIdMappings `type`
|
||||
* A list of all available IDs in the default `ODCheckerTranslationRegister` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export type ODCheckerTranslationRegisterOtherIdMappings = (
|
||||
"opendiscord:header-openticket"|
|
||||
"opendiscord:header-configchecker"|
|
||||
"opendiscord:header-description"|
|
||||
"opendiscord:type-error"|
|
||||
"opendiscord:type-warning"|
|
||||
"opendiscord:type-info"|
|
||||
"opendiscord:data-path"|
|
||||
"opendiscord:data-docs"|
|
||||
"opendiscord:data-message"|
|
||||
"opendiscord:compact-information"|
|
||||
"opendiscord:footer-error"|
|
||||
"opendiscord:footer-warning"|
|
||||
"opendiscord:footer-support"
|
||||
)
|
||||
|
||||
/**## ODCheckerTranslationRegisterMessageIdMappings `type`
|
||||
* A list of all available IDs in the default `ODCheckerTranslationRegister` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export type ODCheckerTranslationRegisterMessageIdMappings = (
|
||||
"opendiscord:invalid-type"|
|
||||
"opendiscord:property-missing"|
|
||||
"opendiscord:property-optional"|
|
||||
"opendiscord:object-disabled"|
|
||||
"opendiscord:null-invalid"|
|
||||
"opendiscord:switch-invalid-type"|
|
||||
"opendiscord:object-switch-invalid-type"|
|
||||
|
||||
"opendiscord:string-too-short"|
|
||||
"opendiscord:string-too-long"|
|
||||
"opendiscord:string-length-invalid"|
|
||||
"opendiscord:string-starts-with"|
|
||||
"opendiscord:string-ends-with"|
|
||||
"opendiscord:string-contains"|
|
||||
"opendiscord:string-inverted-contains"|
|
||||
"opendiscord:string-choices"|
|
||||
"opendiscord:string-lowercase"|
|
||||
"opendiscord:string-uppercase"|
|
||||
"opendiscord:string-special-characters"|
|
||||
"opendiscord:string-no-spaces"|
|
||||
"opendiscord:string-regex"|
|
||||
"opendiscord:string-capital-word"|
|
||||
"opendiscord:string-capital-sentence"|
|
||||
"opendiscord:string-punctuation"|
|
||||
|
||||
"opendiscord:number-nan"|
|
||||
"opendiscord:number-too-short"|
|
||||
"opendiscord:number-too-long"|
|
||||
"opendiscord:number-length-invalid"|
|
||||
"opendiscord:number-too-small"|
|
||||
"opendiscord:number-too-large"|
|
||||
"opendiscord:number-not-equal"|
|
||||
"opendiscord:number-step"|
|
||||
"opendiscord:number-step-offset"|
|
||||
"opendiscord:number-starts-with"|
|
||||
"opendiscord:number-ends-with"|
|
||||
"opendiscord:number-contains"|
|
||||
"opendiscord:number-inverted-contains"|
|
||||
"opendiscord:number-choices"|
|
||||
"opendiscord:number-float"|
|
||||
"opendiscord:number-negative"|
|
||||
"opendiscord:number-positive"|
|
||||
"opendiscord:number-zero"|
|
||||
|
||||
"opendiscord:boolean-true"|
|
||||
"opendiscord:boolean-false"|
|
||||
|
||||
"opendiscord:array-empty-disabled"|
|
||||
"opendiscord:array-empty-required"|
|
||||
"opendiscord:array-too-short"|
|
||||
"opendiscord:array-too-long"|
|
||||
"opendiscord:array-length-invalid"|
|
||||
"opendiscord:array-invalid-types"|
|
||||
"opendiscord:array-double"|
|
||||
|
||||
"opendiscord:discord-invalid-id"|
|
||||
"opendiscord:discord-invalid-id-options"|
|
||||
"opendiscord:discord-invalid-token"|
|
||||
"opendiscord:color-invalid"|
|
||||
"opendiscord:emoji-too-short"|
|
||||
"opendiscord:emoji-too-long"|
|
||||
"opendiscord:emoji-custom"|
|
||||
"opendiscord:emoji-invalid"|
|
||||
"opendiscord:url-invalid"|
|
||||
"opendiscord:url-invalid-http"|
|
||||
"opendiscord:url-invalid-protocol"|
|
||||
"opendiscord:url-invalid-hostname"|
|
||||
"opendiscord:url-invalid-extension"|
|
||||
"opendiscord:url-invalid-path"|
|
||||
"opendiscord:id-not-unique"|
|
||||
"opendiscord:id-non-existent"|
|
||||
|
||||
"opendiscord:invalid-language"|
|
||||
"opendiscord:invalid-button"|
|
||||
"opendiscord:unused-option"|
|
||||
"opendiscord:unused-question"|
|
||||
"opendiscord:dropdown-option"
|
||||
)
|
||||
|
||||
/**## ODCheckerFunctionManagerIdMappings `type`
|
||||
* A list of all available IDs in the default `ODCheckerFunctionManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCheckerFunctionManagerIdMappings extends api.ODCheckerFunctionManagerIdConstraint {
|
||||
"opendiscord:unused-options":api.ODCheckerFunction,
|
||||
"opendiscord:unused-questions":api.ODCheckerFunction,
|
||||
"opendiscord:dropdown-options":api.ODCheckerFunction
|
||||
}
|
||||
|
||||
/**## ODMappedCheckerManager `class
|
||||
* A special class with types for the Open Ticket `ODCheckerManager` class.
|
||||
*/
|
||||
export class ODMappedCheckerManager extends api.ODCheckerManager<ODCheckerManagerIdMappings,ODCheckerFunctionManagerIdMappings,api.ODDefaultCheckerRenderer,ODCheckerTranslationRegisterMessageIdMappings,ODCheckerTranslationRegisterOtherIdMappings> {}
|
||||
|
||||
/**## ODMappedCheckerFunctionManager `class
|
||||
* A special class with types for the Open Ticket `ODCheckerFunctionManager` class.
|
||||
*/
|
||||
export class ODMappedCheckerFunctionManager extends api.ODCheckerFunctionManager<ODCheckerFunctionManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedCheckerTranslationRegister `class
|
||||
* A special class with types for the Open Ticket `ODCheckerTranslationRegister` class.
|
||||
*/
|
||||
export class ODMappedCheckerTranslationRegister extends api.ODCheckerTranslationRegister<ODCheckerTranslationRegisterMessageIdMappings,ODCheckerTranslationRegisterOtherIdMappings> {}
|
||||
@@ -0,0 +1,109 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET CLIENT MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW COMMANDS?
|
||||
* - Register the command in loadAllSlashCommands() & loadAllTextCommands() in (./src/data/framework/commandLoader.ts)
|
||||
* - Add autocomplete for the command in OD(Slash/Text)CommandManagerIds_Default in (./src/core/api/defaults/client.ts)
|
||||
* - Add the command to the help menu in (./src/data/framework/helpMenuLoader.ts)
|
||||
* - If required, new config variables should be added (incl. logs, dm-logs & permissions).
|
||||
* - Update the Open Ticket Documentation.
|
||||
* - If the command contains complex logic or can be executed from a button/dropdown, it should be placed inside an `ODAction`.
|
||||
* - Check all files, test the bot carefully & try a lot of different scenario's with different settings.
|
||||
*/
|
||||
|
||||
/**## ODSlashCommandManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODSlashCommandManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODSlashCommandManagerIdMappings extends api.ODSlashCommandManagerIdConstraint {
|
||||
"opendiscord:help":api.ODSlashCommand,
|
||||
"opendiscord:panel":api.ODSlashCommand,
|
||||
"opendiscord:ticket":api.ODSlashCommand,
|
||||
"opendiscord:close":api.ODSlashCommand,
|
||||
"opendiscord:delete":api.ODSlashCommand,
|
||||
"opendiscord:reopen":api.ODSlashCommand,
|
||||
"opendiscord:claim":api.ODSlashCommand,
|
||||
"opendiscord:unclaim":api.ODSlashCommand,
|
||||
"opendiscord:pin":api.ODSlashCommand,
|
||||
"opendiscord:unpin":api.ODSlashCommand,
|
||||
"opendiscord:move":api.ODSlashCommand,
|
||||
"opendiscord:rename":api.ODSlashCommand,
|
||||
"opendiscord:add":api.ODSlashCommand,
|
||||
"opendiscord:remove":api.ODSlashCommand,
|
||||
"opendiscord:blacklist":api.ODSlashCommand,
|
||||
"opendiscord:stats":api.ODSlashCommand,
|
||||
"opendiscord:clear":api.ODSlashCommand,
|
||||
"opendiscord:autoclose":api.ODSlashCommand,
|
||||
"opendiscord:autodelete":api.ODSlashCommand,
|
||||
"opendiscord:topic":api.ODSlashCommand,
|
||||
"opendiscord:priority":api.ODSlashCommand,
|
||||
"opendiscord:transfer":api.ODSlashCommand,
|
||||
}
|
||||
|
||||
/**## ODTextCommandManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODTextCommandManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODTextCommandManagerIdMappings extends api.ODTextCommandManagerIdConstraint {
|
||||
"opendiscord:dump":api.ODTextCommand,
|
||||
"opendiscord:help":api.ODTextCommand,
|
||||
"opendiscord:panel":api.ODTextCommand,
|
||||
"opendiscord:close":api.ODTextCommand,
|
||||
"opendiscord:delete":api.ODTextCommand,
|
||||
"opendiscord:reopen":api.ODTextCommand,
|
||||
"opendiscord:claim":api.ODTextCommand,
|
||||
"opendiscord:unclaim":api.ODTextCommand,
|
||||
"opendiscord:pin":api.ODTextCommand,
|
||||
"opendiscord:unpin":api.ODTextCommand,
|
||||
"opendiscord:move":api.ODTextCommand,
|
||||
"opendiscord:rename":api.ODTextCommand,
|
||||
"opendiscord:add":api.ODTextCommand,
|
||||
"opendiscord:remove":api.ODTextCommand,
|
||||
"opendiscord:blacklist-view":api.ODTextCommand,
|
||||
"opendiscord:blacklist-add":api.ODTextCommand,
|
||||
"opendiscord:blacklist-remove":api.ODTextCommand,
|
||||
"opendiscord:blacklist-get":api.ODTextCommand,
|
||||
"opendiscord:stats-global":api.ODTextCommand,
|
||||
"opendiscord:stats-reset":api.ODTextCommand,
|
||||
"opendiscord:stats-ticket":api.ODTextCommand,
|
||||
"opendiscord:stats-user":api.ODTextCommand,
|
||||
"opendiscord:clear":api.ODTextCommand,
|
||||
"opendiscord:autoclose-disable":api.ODTextCommand,
|
||||
"opendiscord:autoclose-enable":api.ODTextCommand,
|
||||
"opendiscord:autodelete-disable":api.ODTextCommand,
|
||||
"opendiscord:autodelete-enable":api.ODTextCommand,
|
||||
"opendiscord:topic-set":api.ODTextCommand,
|
||||
"opendiscord:priority-set":api.ODTextCommand,
|
||||
"opendiscord:priority-get":api.ODTextCommand,
|
||||
"opendiscord:transfer":api.ODTextCommand,
|
||||
}
|
||||
|
||||
/**## ODContextMenuManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODContextMenuManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODContextMenuManagerIdMappings extends api.ODContextMenuManagerIdConstraint {
|
||||
//"opendiscord:test-menu":ODContextMenu
|
||||
}
|
||||
|
||||
/**## ODMappedClientManager `class
|
||||
* A special class with types for the Open Ticket `ODClientManager` class.
|
||||
*/
|
||||
export class ODMappedClientManager extends api.ODClientManager<ODSlashCommandManagerIdMappings,ODTextCommandManagerIdMappings,ODContextMenuManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedSlashCommandManager `class
|
||||
* A special class with types for the Open Ticket `ODSlashCommandManager` class.
|
||||
*/
|
||||
export class ODMappedSlashCommandManager extends api.ODSlashCommandManager<ODSlashCommandManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedTextCommandManager `class
|
||||
* A special class with types for the Open Ticket `ODTextCommandManager` class.
|
||||
*/
|
||||
export class ODMappedTextCommandManager extends api.ODTextCommandManager<ODTextCommandManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedContextMenuManager `class
|
||||
* A special class with types for the Open Ticket `ODContextMenuManager` class.
|
||||
*/
|
||||
export class ODMappedContextMenuManager extends api.ODContextMenuManager<ODContextMenuManagerIdMappings> {}
|
||||
@@ -0,0 +1,32 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET CODE MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODCodeManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODCodeManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCodeManagerIdMappings extends api.ODCodeManagerIdConstraint {
|
||||
"opendiscord:command-error-handling":api.ODCode,
|
||||
"opendiscord:start-listening-interactions":api.ODCode,
|
||||
"opendiscord:panel-database-cleaner":api.ODCode,
|
||||
"opendiscord:suffix-database-cleaner":api.ODCode,
|
||||
"opendiscord:option-database-cleaner":api.ODCode,
|
||||
"opendiscord:user-database-cleaner":api.ODCode,
|
||||
"opendiscord:ticket-database-cleaner":api.ODCode,
|
||||
"opendiscord:panel-auto-update":api.ODCode,
|
||||
"opendiscord:ticket-saver":api.ODCode,
|
||||
"opendiscord:blacklist-saver":api.ODCode,
|
||||
"opendiscord:auto-role-on-join":api.ODCode,
|
||||
"opendiscord:autoclose-timeout":api.ODCode,
|
||||
"opendiscord:autoclose-leave":api.ODCode,
|
||||
"opendiscord:autodelete-timeout":api.ODCode,
|
||||
"opendiscord:autodelete-leave":api.ODCode,
|
||||
"opendiscord:ticket-anti-busy":api.ODCode,
|
||||
}
|
||||
|
||||
/**## ODMappedCodeManager `class
|
||||
* A special class with types for the Open Ticket `ODCodeManager` class.
|
||||
*/
|
||||
export class ODMappedCodeManager extends api.ODCodeManager<ODCodeManagerIdMappings> {}
|
||||
@@ -1,9 +1,9 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT CONFIG MODULE
|
||||
//OPEN TICKET CONFIG MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import * as discord from "discord.js"
|
||||
import { ODRoleUpdateMode } from "../openticket/role"
|
||||
import { ODRoleUpdateMode } from "../api/role"
|
||||
|
||||
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW CONFIG VARIABLES?
|
||||
* - Make the change to the config file in (./config/) and be aware of the following things:
|
||||
@@ -25,51 +25,57 @@ import { ODRoleUpdateMode } from "../openticket/role"
|
||||
* - Check (./src/builders), (./src/actions), (./src/data) & (./src/commands) in general in the areas that were changed.
|
||||
*/
|
||||
|
||||
/**## ODConfigManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODConfigManager_Default` class.
|
||||
/**## ODConfigManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODConfigManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODConfigManagerIds_Default {
|
||||
"opendiscord:general":ODJsonConfig_DefaultGeneral,
|
||||
"opendiscord:questions":ODJsonConfig_DefaultQuestions,
|
||||
"opendiscord:options":ODJsonConfig_DefaultOptions,
|
||||
"opendiscord:panels":ODJsonConfig_DefaultPanels,
|
||||
"opendiscord:transcripts":ODJsonConfig_DefaultTranscripts
|
||||
export interface ODConfigManagerIdMappings extends api.ODConfigManagerIdConstraint {
|
||||
"opendiscord:general":ODGeneralJsonConfig,
|
||||
"opendiscord:questions":ODQuestionsJsonConfig,
|
||||
"opendiscord:options":ODOptionsJsonConfig,
|
||||
"opendiscord:panels":ODPanelsJsonConfig,
|
||||
"opendiscord:transcripts":ODTranscriptsJsonConfig
|
||||
}
|
||||
|
||||
/**## ODConfigManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODConfigManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.configs`!
|
||||
/**## ODMappedConfigManager `class
|
||||
* A special class with types for the Open Ticket `ODConfigManager` class.
|
||||
*/
|
||||
export class ODConfigManager_Default extends api.ODConfigManager {
|
||||
get<ConfigId extends keyof ODConfigManagerIds_Default>(id:ConfigId): ODConfigManagerIds_Default[ConfigId]
|
||||
get(id:api.ODValidId): api.ODConfig|null
|
||||
|
||||
get(id:api.ODValidId): api.ODConfig|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<ConfigId extends keyof ODConfigManagerIds_Default>(id:ConfigId): ODConfigManagerIds_Default[ConfigId]
|
||||
remove(id:api.ODValidId): api.ODConfig|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODConfig|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
export class ODMappedConfigManager extends api.ODConfigManager<ODConfigManagerIdMappings> {}
|
||||
|
||||
exists(id:keyof ODConfigManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
/**## ODGeneralJsonConfig `class
|
||||
* A special class with types for the Open Ticket `config/general.json` config file
|
||||
*/
|
||||
export class ODGeneralJsonConfig extends api.ODJsonConfig<ODGeneralJsonConfig_GeneralData> {}
|
||||
|
||||
/**## ODJsonConfig_DefaultStatusType `interface`
|
||||
/**## ODQuestionsJsonConfig `class
|
||||
* A special class with types for the Open Ticket `config/questions.json` config file
|
||||
*/
|
||||
export class ODQuestionsJsonConfig extends api.ODJsonConfig<ODQuestionsJsonConfig_QuestionsData> {}
|
||||
|
||||
/**## ODOptionsJsonConfig `class
|
||||
* A special class with types for the Open Ticket `config/options.json` config file
|
||||
*/
|
||||
export class ODOptionsJsonConfig extends api.ODJsonConfig<ODOptionsJsonConfig_OptionsData> {}
|
||||
|
||||
/**## ODPanelsJsonConfig `class
|
||||
* A special class with types for the Open Ticket `config/panels.json` config file
|
||||
*/
|
||||
export class ODPanelsJsonConfig extends api.ODJsonConfig<ODPanelsJsonConfig_PanelsData> {}
|
||||
|
||||
/**## ODTranscriptsJsonConfig `class
|
||||
* A special class with types for the Open Ticket `config/transcripts.json` config file
|
||||
*/
|
||||
export class ODTranscriptsJsonConfig extends api.ODJsonConfig<ODTranscriptsJsonConfig_TranscriptsData> {}
|
||||
|
||||
///////////////////////////////////////
|
||||
// CONFIG STRUCTURES, VALUES & TYPES
|
||||
// --> general.json
|
||||
///////////////////////////////////////
|
||||
|
||||
/**## ODGeneralJsonConfig_Status `interface`
|
||||
* This interface is an object which has all properties for the status object in the `general.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultStatusType {
|
||||
export interface ODGeneralJsonConfig_Status {
|
||||
/**Is the status enabled? */
|
||||
enabled:boolean,
|
||||
/**The type of status (e.g. playing, listening, custom, ...) */
|
||||
@@ -82,25 +88,25 @@ export interface ODJsonConfig_DefaultStatusType {
|
||||
state:string,
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultMessageSettingsType `interface`
|
||||
/**## ODGeneralJsonConfig_MessageSettings `interface`
|
||||
* This interface is an object which has all properties for the "system"."messages".... object in the `general.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultMessageSettingsType {
|
||||
export interface ODGeneralJsonConfig_MessageSettings {
|
||||
/**Enable sending DM logs to the ticket creator for this action. */
|
||||
dm:boolean,
|
||||
/**Enable sending logsto the log channel for this action. */
|
||||
logs:boolean
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultCmdPermissionSettingsType `type`
|
||||
/**## ODGeneralJsonConfig_CmdPermissionSettingsType `type`
|
||||
* This type is a collection of command permission settings for the "system"."permissions".... object in the `general.json` config!
|
||||
*/
|
||||
export type ODJsonConfig_DefaultCmdPermissionSettingsType = "admin"|"everyone"|"none"|string
|
||||
export type ODGeneralJsonConfig_CmdPermissionSettingsType = "admin"|"everyone"|"none"|string
|
||||
|
||||
/**## ODJsonConfig_DefaultInfo `interface`
|
||||
/**## ODGeneralJsonConfig_Info `interface`
|
||||
* This object contains a few URLs and metadata for the config.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultInfo {
|
||||
export interface ODGeneralJsonConfig_Info {
|
||||
/**A link to the Open Ticket documentation. */
|
||||
support:string,
|
||||
/**A link to the DJdj Development discord server. */
|
||||
@@ -109,20 +115,20 @@ export interface ODJsonConfig_DefaultInfo {
|
||||
version:string
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultSystemLogs `interface`
|
||||
/**## ODGeneralJsonConfig_SystemLogs `interface`
|
||||
* All settings related to the log channel.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultSystemLogs {
|
||||
export interface ODGeneralJsonConfig_SystemLogs {
|
||||
/**Enable logging. Individual actions should still be added via the `"system"."messages"..."logs"` */
|
||||
enabled:boolean,
|
||||
/**The channel to send logs to. */
|
||||
channel:string
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultSystemLimits `interface`
|
||||
/**## ODGeneralJsonConfig_SystemLimits `interface`
|
||||
* All settings related to global ticket limits.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultSystemLimits {
|
||||
export interface ODGeneralJsonConfig_SystemLimits {
|
||||
/**Enable global ticket limits. */
|
||||
enabled:boolean,
|
||||
/**The maximum amount of tickets that are allowed in the server at the same time. */
|
||||
@@ -131,10 +137,10 @@ export interface ODJsonConfig_DefaultSystemLimits {
|
||||
userMaximum:number
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultSystemChannelTopic `interface`
|
||||
/**## ODGeneralJsonConfig_SystemChannelTopic `interface`
|
||||
* All global channel topic settings.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultSystemChannelTopic {
|
||||
export interface ODGeneralJsonConfig_SystemChannelTopic {
|
||||
/**Show the option name in the channel topic. */
|
||||
showOptionName:boolean,
|
||||
/**Show the option description in the channel topic. */
|
||||
@@ -155,59 +161,59 @@ export interface ODJsonConfig_DefaultSystemChannelTopic {
|
||||
showParticipants:boolean
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultSystemPermissions `interface`
|
||||
/**## ODGeneralJsonConfig_SystemPermissions `interface`
|
||||
* Configure permissions for all Open Ticket commands & actions.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultSystemPermissions {
|
||||
help:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
panel:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
ticket:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
close:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
delete:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
reopen:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
claim:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
unclaim:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
pin:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
unpin:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
move:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
rename:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
add:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
remove:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
blacklist:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
stats:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
clear:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
autoclose:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
autodelete:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
transfer:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
topic:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
priority:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
||||
export interface ODGeneralJsonConfig_SystemPermissions {
|
||||
help:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
panel:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
ticket:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
close:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
delete:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
reopen:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
claim:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
unclaim:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
pin:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
unpin:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
move:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
rename:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
add:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
remove:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
blacklist:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
stats:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
clear:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
autoclose:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
autodelete:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
transfer:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
topic:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
priority:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultSystemMessages `interface`
|
||||
/**## ODGeneralJsonConfig_SystemMessages `interface`
|
||||
* Configure dm & log messages for all Open Ticket commands & actions.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultSystemMessages {
|
||||
creation:ODJsonConfig_DefaultMessageSettingsType,
|
||||
closing:ODJsonConfig_DefaultMessageSettingsType,
|
||||
deleting:ODJsonConfig_DefaultMessageSettingsType,
|
||||
reopening:ODJsonConfig_DefaultMessageSettingsType,
|
||||
claiming:ODJsonConfig_DefaultMessageSettingsType,
|
||||
pinning:ODJsonConfig_DefaultMessageSettingsType,
|
||||
adding:ODJsonConfig_DefaultMessageSettingsType,
|
||||
removing:ODJsonConfig_DefaultMessageSettingsType,
|
||||
renaming:ODJsonConfig_DefaultMessageSettingsType,
|
||||
moving:ODJsonConfig_DefaultMessageSettingsType,
|
||||
blacklisting:ODJsonConfig_DefaultMessageSettingsType,
|
||||
transferring:ODJsonConfig_DefaultMessageSettingsType,
|
||||
topicChange:ODJsonConfig_DefaultMessageSettingsType,
|
||||
priorityChange:ODJsonConfig_DefaultMessageSettingsType,
|
||||
reactionRole:ODJsonConfig_DefaultMessageSettingsType,
|
||||
export interface ODGeneralJsonConfig_SystemMessages {
|
||||
creation:ODGeneralJsonConfig_MessageSettings,
|
||||
closing:ODGeneralJsonConfig_MessageSettings,
|
||||
deleting:ODGeneralJsonConfig_MessageSettings,
|
||||
reopening:ODGeneralJsonConfig_MessageSettings,
|
||||
claiming:ODGeneralJsonConfig_MessageSettings,
|
||||
pinning:ODGeneralJsonConfig_MessageSettings,
|
||||
adding:ODGeneralJsonConfig_MessageSettings,
|
||||
removing:ODGeneralJsonConfig_MessageSettings,
|
||||
renaming:ODGeneralJsonConfig_MessageSettings,
|
||||
moving:ODGeneralJsonConfig_MessageSettings,
|
||||
blacklisting:ODGeneralJsonConfig_MessageSettings,
|
||||
transferring:ODGeneralJsonConfig_MessageSettings,
|
||||
topicChange:ODGeneralJsonConfig_MessageSettings,
|
||||
priorityChange:ODGeneralJsonConfig_MessageSettings,
|
||||
reactionRole:ODGeneralJsonConfig_MessageSettings,
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultSystem `interface`
|
||||
/**## ODGeneralJsonConfig_System `interface`
|
||||
* All settings related to the ticket system.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultSystem {
|
||||
export interface ODGeneralJsonConfig_System {
|
||||
/**Prefer slash-commands over text-commands when displaying them in menu's and messages. */
|
||||
preferSlashOverText:boolean,
|
||||
/**Reply with "unknown command" when the prefix is used without a valid command. */
|
||||
@@ -266,27 +272,27 @@ export interface ODJsonConfig_DefaultSystem {
|
||||
enableDeleteWithoutTranscript:boolean,
|
||||
|
||||
/**All settings related to the log channel. */
|
||||
logs:ODJsonConfig_DefaultSystemLogs,
|
||||
logs:ODGeneralJsonConfig_SystemLogs,
|
||||
|
||||
/**All settings related to global ticket limits. */
|
||||
limits:ODJsonConfig_DefaultSystemLimits,
|
||||
limits:ODGeneralJsonConfig_SystemLimits,
|
||||
|
||||
/**All global channel topic settings. */
|
||||
channelTopic:ODJsonConfig_DefaultSystemChannelTopic,
|
||||
channelTopic:ODGeneralJsonConfig_SystemChannelTopic,
|
||||
|
||||
/**Configure permissions for all Open Ticket commands & actions. */
|
||||
permissions:ODJsonConfig_DefaultSystemPermissions,
|
||||
permissions:ODGeneralJsonConfig_SystemPermissions,
|
||||
|
||||
/**Configure dm & log messages for all Open Ticket commands & actions. */
|
||||
messages:ODJsonConfig_DefaultSystemMessages
|
||||
messages:ODGeneralJsonConfig_SystemMessages
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultGeneralData `interface`
|
||||
/**## ODGeneralJsonConfig_GeneralData `interface`
|
||||
* All contents of the `general.json` config file.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultGeneralData {
|
||||
export interface ODGeneralJsonConfig_GeneralData {
|
||||
/**This object contains a few URLs and metadata for the config. */
|
||||
_INFO:ODJsonConfig_DefaultInfo,
|
||||
_INFO:ODGeneralJsonConfig_Info,
|
||||
|
||||
/**The token of the bot. (Empty when using `tokenFromENV`) */
|
||||
token:string,
|
||||
@@ -310,26 +316,21 @@ export interface ODJsonConfig_DefaultGeneralData {
|
||||
textCommands:boolean,
|
||||
|
||||
/**All settings related to the status of the bot. */
|
||||
status:ODJsonConfig_DefaultStatusType,
|
||||
status:ODGeneralJsonConfig_Status,
|
||||
|
||||
/**All settings related to the ticket system. */
|
||||
system:ODJsonConfig_DefaultSystem
|
||||
system:ODGeneralJsonConfig_System
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultGeneral `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODJsonConfig class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `general.json` config!
|
||||
*/
|
||||
export class ODJsonConfig_DefaultGeneral extends api.ODJsonConfig {
|
||||
declare data: ODJsonConfig_DefaultGeneralData
|
||||
}
|
||||
///////////////////////////////////////
|
||||
// CONFIG STRUCTURES, VALUES & TYPES
|
||||
// --> options.json
|
||||
///////////////////////////////////////
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionType `interface`
|
||||
/**## ODOptionsJsonConfig_BaseOption `interface`
|
||||
* This interface is an object which has all basic properties for options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionType {
|
||||
export interface ODOptionsJsonConfig_BaseOption {
|
||||
/**The id of this option. */
|
||||
id:string,
|
||||
/**The name of this option. */
|
||||
@@ -347,10 +348,10 @@ export interface ODJsonConfig_DefaultOptionType {
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionButtonSettingsType `interface`
|
||||
/**## ODOptionsJsonConfig_OptionButtonSettings `interface`
|
||||
* This interface is an object which has all button settings for ticket & reaction role options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionButtonSettingsType {
|
||||
export interface ODOptionsJsonConfig_OptionButtonSettings {
|
||||
/**The emoji of the button. (can also be empty) */
|
||||
emoji:string,
|
||||
/**The label of the button (can also be empty) */
|
||||
@@ -359,10 +360,10 @@ export interface ODJsonConfig_DefaultOptionButtonSettingsType {
|
||||
color:api.ODValidButtonColor
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionEmbedSettingsType `interface`
|
||||
/**## ODOptionsJsonConfig_TicketOptionEmbedSettings `interface`
|
||||
* This interface is an object which has all message embed settings for ticket options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionEmbedSettingsType {
|
||||
export interface ODOptionsJsonConfig_TicketOptionEmbedSettings {
|
||||
/**Is this embed enabled? */
|
||||
enabled:boolean,
|
||||
/**The title of the embed. */
|
||||
@@ -388,10 +389,10 @@ export interface ODJsonConfig_DefaultOptionEmbedSettingsType {
|
||||
timestamp:boolean
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionPingSettingsType `interface`
|
||||
/**## ODOptionsJsonConfig_TicketOptionPingSettings `interface`
|
||||
* This interface is an object which has all message ping settings for ticket options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionPingSettingsType {
|
||||
export interface ODOptionsJsonConfig_TicketOptionPingSettings {
|
||||
/**Ping `@here`. */
|
||||
"@here":boolean,
|
||||
/**Ping `@everyone`. */
|
||||
@@ -400,10 +401,10 @@ export interface ODJsonConfig_DefaultOptionPingSettingsType {
|
||||
custom:string[]
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionTicketChannelType `interface`
|
||||
/**## ODOptionsJsonConfig_TicketOptionChannelSettings `interface`
|
||||
* All settings related to the ticket channel itself in a ticket option.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionTicketChannelType {
|
||||
export interface ODOptionsJsonConfig_TicketOptionChannelSettings {
|
||||
/**The prefix used in the name of this ticket channel. */
|
||||
prefix:string,
|
||||
/**The type of suffix used in the name of this ticket channel. */
|
||||
@@ -425,12 +426,12 @@ export interface ODJsonConfig_DefaultOptionTicketChannelType {
|
||||
topic:string
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionTicketType `interface`
|
||||
/**## ODOptionsJsonConfig_TicketOption `interface`
|
||||
* This interface is an object which has all ticket properties for options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionTicketType extends ODJsonConfig_DefaultOptionType {
|
||||
export interface ODOptionsJsonConfig_TicketOption extends ODOptionsJsonConfig_BaseOption {
|
||||
type:"ticket",
|
||||
button:ODJsonConfig_DefaultOptionButtonSettingsType,
|
||||
button:ODOptionsJsonConfig_OptionButtonSettings,
|
||||
/**A list of discord role ids which are able to access this ticket type & use commands. */
|
||||
ticketAdmins:string[],
|
||||
/**A list of discord role ids which are able to access this ticket type but can't write in the chat. */
|
||||
@@ -440,7 +441,7 @@ export interface ODJsonConfig_DefaultOptionTicketType extends ODJsonConfig_Defau
|
||||
/**A list of valid question ids from the `questions.json` config. */
|
||||
questions:string[],
|
||||
/**All settings related to the ticket channel itself. */
|
||||
channel:ODJsonConfig_DefaultOptionTicketChannelType,
|
||||
channel:ODOptionsJsonConfig_TicketOptionChannelSettings,
|
||||
/**All settings related to the message sent in DM to the creator when the ticket is created. */
|
||||
dmMessage:{
|
||||
/**Enable this message. */
|
||||
@@ -448,7 +449,7 @@ export interface ODJsonConfig_DefaultOptionTicketType extends ODJsonConfig_Defau
|
||||
/**The raw text contents of this message. (empty for embed only) */
|
||||
text:string,
|
||||
/**The embed of this message. */
|
||||
embed:ODJsonConfig_DefaultOptionEmbedSettingsType
|
||||
embed:ODOptionsJsonConfig_TicketOptionEmbedSettings
|
||||
},
|
||||
/**All settings related to the message sent in the ticket channel when the ticket is created. */
|
||||
ticketMessage:{
|
||||
@@ -457,9 +458,9 @@ export interface ODJsonConfig_DefaultOptionTicketType extends ODJsonConfig_Defau
|
||||
/**The raw text contents of this message. (empty for embed only) */
|
||||
text:string,
|
||||
/**The embed of this message. */
|
||||
embed:ODJsonConfig_DefaultOptionEmbedSettingsType,
|
||||
embed:ODOptionsJsonConfig_TicketOptionEmbedSettings,
|
||||
/**Additional ping/mention settings for this ticket channel. */
|
||||
ping:ODJsonConfig_DefaultOptionPingSettingsType
|
||||
ping:ODOptionsJsonConfig_TicketOptionPingSettings
|
||||
},
|
||||
/**All settings related to autoclosing this ticket type. */
|
||||
autoclose:{
|
||||
@@ -508,21 +509,21 @@ export interface ODJsonConfig_DefaultOptionTicketType extends ODJsonConfig_Defau
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionWebsiteType `interface`
|
||||
/**## ODOptionsJsonConfig_WebsiteOption `interface`
|
||||
* This interface is an object which has all website properties for options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionWebsiteType extends ODJsonConfig_DefaultOptionType {
|
||||
export interface ODOptionsJsonConfig_WebsiteOption extends ODOptionsJsonConfig_BaseOption {
|
||||
type:"website",
|
||||
/**The URL this button will point to. */
|
||||
url:string
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionRoleType `interface`
|
||||
/**## ODOptionsJsonConfig_RoleOption `interface`
|
||||
* This interface is an object which has all reaction role properties for options in the `options.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultOptionRoleType extends ODJsonConfig_DefaultOptionType {
|
||||
export interface ODOptionsJsonConfig_RoleOption extends ODOptionsJsonConfig_BaseOption {
|
||||
type:"role",
|
||||
button:ODJsonConfig_DefaultOptionButtonSettingsType,
|
||||
button:ODOptionsJsonConfig_OptionButtonSettings,
|
||||
/**All roles which will be affected by this button. */
|
||||
roles:string[],
|
||||
/**The mode determines what will happen with the affected roles on the user. */
|
||||
@@ -533,25 +534,20 @@ export interface ODJsonConfig_DefaultOptionRoleType extends ODJsonConfig_Default
|
||||
addOnMemberJoin:boolean
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultOptionsData `type`
|
||||
/**## ODOptionsJsonConfig_OptionsData `type`
|
||||
* All contents of the `options.json` config file.
|
||||
*/
|
||||
export type ODJsonConfig_DefaultOptionsData = (ODJsonConfig_DefaultOptionTicketType|ODJsonConfig_DefaultOptionWebsiteType|ODJsonConfig_DefaultOptionRoleType)[]
|
||||
export type ODOptionsJsonConfig_OptionsData = (ODOptionsJsonConfig_TicketOption|ODOptionsJsonConfig_WebsiteOption|ODOptionsJsonConfig_RoleOption)[]
|
||||
|
||||
/**## ODJsonConfig_DefaultOptions `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODJsonConfig class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `options.json` config!
|
||||
*/
|
||||
export class ODJsonConfig_DefaultOptions extends api.ODJsonConfig {
|
||||
declare data: ODJsonConfig_DefaultOptionsData
|
||||
}
|
||||
///////////////////////////////////////
|
||||
// CONFIG STRUCTURES, VALUES & TYPES
|
||||
// --> panels.json
|
||||
///////////////////////////////////////
|
||||
|
||||
/**## ODJsonConfig_DefaultPanelEmbedSettingsType `interface`
|
||||
/**## ODPanelsJsonConfig_PanelEmbedSettings `interface`
|
||||
* This interface is an object which has all message embed settings for panels in the `panels.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultPanelEmbedSettingsType {
|
||||
export interface ODPanelsJsonConfig_PanelEmbedSettings {
|
||||
/**Is this embed enabled? */
|
||||
enabled:boolean,
|
||||
/**The title of the embed. */
|
||||
@@ -583,10 +579,10 @@ export interface ODJsonConfig_DefaultPanelEmbedSettingsType {
|
||||
timestamp:boolean
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultPanelSettingsType `interface`
|
||||
/**## ODPanelsJsonConfig_PanelSettings `interface`
|
||||
* This interface is a collection of additional settings for extra customisation in a panel.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultPanelSettingsType {
|
||||
export interface ODPanelsJsonConfig_PanelSettings {
|
||||
/**The placeholder used in the dropdown when enabled. */
|
||||
dropdownPlaceholder:string,
|
||||
|
||||
@@ -607,10 +603,10 @@ export interface ODJsonConfig_DefaultPanelSettingsType {
|
||||
describeOptionsInEmbedDescription:boolean
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultPanelType `interface`
|
||||
/**## ODPanelsJsonConfig_Panel `interface`
|
||||
* This interface is an object which has all properties for panels in the `panels.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultPanelType {
|
||||
export interface ODPanelsJsonConfig_Panel {
|
||||
/**The id of this panel. */
|
||||
id:string,
|
||||
/**The name of this panel. */
|
||||
@@ -623,30 +619,25 @@ export interface ODJsonConfig_DefaultPanelType {
|
||||
/**The raw text contents of this panel. (empty for embed only) */
|
||||
text:string,
|
||||
/**The embed of this panel. */
|
||||
embed:ODJsonConfig_DefaultPanelEmbedSettingsType,
|
||||
embed:ODPanelsJsonConfig_PanelEmbedSettings,
|
||||
/**A collection of additional settings for extra customisation in a panel. */
|
||||
settings:ODJsonConfig_DefaultPanelSettingsType
|
||||
settings:ODPanelsJsonConfig_PanelSettings
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultPanelsData `type`
|
||||
/**## ODPanelsJsonConfig_PanelsData `type`
|
||||
* All contents of the `panels.json` config file.
|
||||
*/
|
||||
export type ODJsonConfig_DefaultPanelsData = ODJsonConfig_DefaultPanelType[]
|
||||
export type ODPanelsJsonConfig_PanelsData = ODPanelsJsonConfig_Panel[]
|
||||
|
||||
/**## ODJsonConfig_DefaultPanels `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODJsonConfig class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `panels.json` config!
|
||||
*/
|
||||
export class ODJsonConfig_DefaultPanels extends api.ODJsonConfig {
|
||||
declare data: ODJsonConfig_DefaultPanelsData
|
||||
}
|
||||
///////////////////////////////////////
|
||||
// CONFIG STRUCTURES, VALUES & TYPES
|
||||
// --> questions.json
|
||||
///////////////////////////////////////
|
||||
|
||||
/**## ODJSonConfig_DefaultQuestionLengthSettings `interface`
|
||||
/**## ODQuestionsJsonConfig_QuestionLengthSettings `interface`
|
||||
* This interface is a collection of settings related to length validation in a question.
|
||||
*/
|
||||
export interface ODJSonConfig_DefaultQuestionLengthSettings {
|
||||
export interface ODQuestionsJsonConfig_QuestionLengthSettings {
|
||||
/**Enable text length verification. */
|
||||
enabled:boolean,
|
||||
/**The minimum text input length. */
|
||||
@@ -655,63 +646,54 @@ export interface ODJSonConfig_DefaultQuestionLengthSettings {
|
||||
max:number
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultShortQuestionType `interface`
|
||||
/**## ODQuestionsJsonConfig_BaseQuestion `interface`
|
||||
* This interface is an object which has all universal properties for questions in the `questions.json` config!
|
||||
*/
|
||||
export interface ODQuestionsJsonConfig_BaseQuestion {
|
||||
/**The id of this question. */
|
||||
id:string,
|
||||
/**The name of this question. */
|
||||
name:string,
|
||||
/**The type of this question. */
|
||||
type:"short"|"paragraph",
|
||||
/**Is this question required? */
|
||||
required:boolean,
|
||||
}
|
||||
|
||||
/**## ODQuestionsJsonConfig_ShortQuestion `interface`
|
||||
* This interface is an object which has all properties for short questions in the `questions.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultShortQuestionType {
|
||||
/**The id of this question. */
|
||||
id:string,
|
||||
/**The name of this question. */
|
||||
name:string,
|
||||
/**The type of this question. */
|
||||
type:"short",
|
||||
|
||||
/**Is this question required? */
|
||||
required:boolean,
|
||||
export interface ODQuestionsJsonConfig_ShortQuestion extends ODQuestionsJsonConfig_BaseQuestion {
|
||||
/**A placeholder for the question. */
|
||||
placeholder:string,
|
||||
/**A collection of settings related to length validation in a question. */
|
||||
length:ODJSonConfig_DefaultQuestionLengthSettings
|
||||
length:ODQuestionsJsonConfig_QuestionLengthSettings
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultParagraphQuestionType `interface`
|
||||
/**## ODQuestionsJsonConfig_ParagraphQuestion `interface`
|
||||
* This interface is an object which has all properties for paragraph questions in the `questions.json` config!
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultParagraphQuestionType {
|
||||
/**The id of this question. */
|
||||
id:string,
|
||||
/**The name of this question. */
|
||||
name:string,
|
||||
/**The type of this question. */
|
||||
type:"paragraph",
|
||||
|
||||
/**Is this question required? */
|
||||
required:boolean,
|
||||
export interface ODQuestionsJsonConfig_ParagraphQuestion extends ODQuestionsJsonConfig_BaseQuestion {
|
||||
/**A placeholder for the question. */
|
||||
placeholder:string,
|
||||
/**A collection of settings related to length validation in a question. */
|
||||
length:ODJSonConfig_DefaultQuestionLengthSettings
|
||||
length:ODQuestionsJsonConfig_QuestionLengthSettings
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultQuestionsData `type`
|
||||
/**## ODQuestionsJsonConfig_QuestionsData `type`
|
||||
* All contents of the `questions.json` config file.
|
||||
*/
|
||||
export type ODJsonConfig_DefaultQuestionsData = (ODJsonConfig_DefaultShortQuestionType|ODJsonConfig_DefaultParagraphQuestionType)[]
|
||||
export type ODQuestionsJsonConfig_QuestionsData = (ODQuestionsJsonConfig_ShortQuestion|ODQuestionsJsonConfig_ParagraphQuestion)[]
|
||||
|
||||
/**## ODJsonConfig_DefaultQuestions `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODJsonConfig class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `questions.json` config!
|
||||
*/
|
||||
export class ODJsonConfig_DefaultQuestions extends api.ODJsonConfig {
|
||||
declare data: ODJsonConfig_DefaultQuestionsData
|
||||
}
|
||||
///////////////////////////////////////
|
||||
// CONFIG STRUCTURES, VALUES & TYPES
|
||||
// --> transcripts.json
|
||||
///////////////////////////////////////
|
||||
|
||||
/**## ODJsonConfig_DefaultTranscriptsTextLayout `interface`
|
||||
/**## ODTranscriptsJsonConfig_TranscriptsTextLayout `interface`
|
||||
* This interface contains the layout of the text transcripts.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultTranscriptsTextLayout {
|
||||
export interface ODTranscriptsJsonConfig_TranscriptsTextLayout {
|
||||
/**The layout/complexity of the text transcripts. */
|
||||
layout:"simple"|"normal"|"detailed",
|
||||
/**Include stats in the transcript. */
|
||||
@@ -731,10 +713,10 @@ export interface ODJsonConfig_DefaultTranscriptsTextLayout {
|
||||
customFileName:string
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultTranscriptsHtmlLayout `interface`
|
||||
/**## ODTranscriptsJsonConfig_TranscriptsHtmlLayout `interface`
|
||||
* This interface contains the layout of the HTML transcripts.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultTranscriptsHtmlLayout {
|
||||
export interface ODTranscriptsJsonConfig_TranscriptsHtmlLayout {
|
||||
/**Settings related to the background. */
|
||||
background:{
|
||||
/**Enable a custom background. */
|
||||
@@ -779,10 +761,10 @@ export interface ODJsonConfig_DefaultTranscriptsHtmlLayout {
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODJsonConfig_DefaultTranscriptsData `interface`
|
||||
/**## ODTranscriptsJsonConfig_TranscriptsData `interface`
|
||||
* All contents of the `transcripts.json` config file.
|
||||
*/
|
||||
export interface ODJsonConfig_DefaultTranscriptsData {
|
||||
export interface ODTranscriptsJsonConfig_TranscriptsData {
|
||||
/**All general settings related to transcripts. */
|
||||
general:{
|
||||
/**Are transcripts enabled? */
|
||||
@@ -814,18 +796,7 @@ export interface ODJsonConfig_DefaultTranscriptsData {
|
||||
includeTicketStats:boolean
|
||||
},
|
||||
/**The layout of the text transcripts. */
|
||||
textTranscriptStyle:ODJsonConfig_DefaultTranscriptsTextLayout,
|
||||
textTranscriptStyle:ODTranscriptsJsonConfig_TranscriptsTextLayout,
|
||||
/**The layout of the HTML transcripts. */
|
||||
htmlTranscriptStyle:ODJsonConfig_DefaultTranscriptsHtmlLayout
|
||||
}
|
||||
|
||||
|
||||
/**## ODJsonConfig_DefaultTranscripts `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODJsonConfig class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the `transcripts.json` config!
|
||||
*/
|
||||
export class ODJsonConfig_DefaultTranscripts extends api.ODJsonConfig {
|
||||
declare data: ODJsonConfig_DefaultTranscriptsData
|
||||
htmlTranscriptStyle:ODTranscriptsJsonConfig_TranscriptsHtmlLayout
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET CONSOLE MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODLiveStatusManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODLiveStatusManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODLiveStatusManagerIdMappings extends api.ODLiveStatusManagerIdConstraint {
|
||||
"opendiscord:default-djdj-dev":api.ODLiveStatusUrlSource
|
||||
}
|
||||
|
||||
/**## ODMappedLiveStatusManager `class
|
||||
* A special class with types for the Open Ticket `ODLiveStatusManager` class.
|
||||
*/
|
||||
export class ODMappedLiveStatusManager extends api.ODLiveStatusManager<ODLiveStatusManagerIdMappings> {}
|
||||
@@ -0,0 +1,17 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET COOLDOWN MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODCooldownManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODCooldownManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCooldownManagerIdMappings extends api.ODCooldownManagerIdConstraint {
|
||||
//"opendiscord:cooldown":api.ODCooldown
|
||||
}
|
||||
|
||||
/**## ODMappedCooldownManager `class
|
||||
* A special class with types for the Open Ticket `ODCooldownManager` class.
|
||||
*/
|
||||
export class ODMappedCooldownManager extends api.ODCooldownManager<ODCooldownManagerIdMappings> {}
|
||||
@@ -0,0 +1,88 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET DATABASE MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODTicketJson } from "../api/ticket"
|
||||
import { ODOptionJson } from "../api/option"
|
||||
|
||||
/**## ODDatabaseManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODDatabaseManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODDatabaseManagerIdMappings extends api.ODDatabaseManagerIdConstraint {
|
||||
"opendiscord:global":ODGlobalDatabase,
|
||||
"opendiscord:stats":ODStatsDatabase,
|
||||
"opendiscord:tickets":ODTicketsDatabase,
|
||||
"opendiscord:users":ODUsersDatabase,
|
||||
"opendiscord:options":ODOptionsDatabase,
|
||||
}
|
||||
|
||||
/**## ODMappedDatabaseManager `class
|
||||
* A special class with types for the Open Ticket `ODDatabaseManager` class.
|
||||
*/
|
||||
export class ODMappedDatabaseManager extends api.ODDatabaseManager<ODDatabaseManagerIdMappings> {}
|
||||
|
||||
/**## ODGlobalDatabase `class
|
||||
* A special class with types for the Open Ticket `database/global.json` database file
|
||||
*/
|
||||
export class ODGlobalDatabase extends api.ODFormattedJsonDatabase<ODGlobalDatabaseIdMappings> {}
|
||||
|
||||
/**## ODStatsDatabase `class
|
||||
* A special class with types for the Open Ticket `database/stats.json` database file
|
||||
*/
|
||||
export class ODStatsDatabase extends api.ODFormattedJsonDatabase {}
|
||||
|
||||
/**## ODTicketsDatabase `class
|
||||
* A special class with types for the Open Ticket `database/tickets.json` database file
|
||||
*/
|
||||
export class ODTicketsDatabase extends api.ODFormattedJsonDatabase<ODTicketsDatabaseIdMappings> {}
|
||||
|
||||
/**## ODUsersDatabase `class
|
||||
* A special class with types for the Open Ticket `database/users.json` database file
|
||||
*/
|
||||
export class ODUsersDatabase extends api.ODFormattedJsonDatabase<ODUsersDatabaseIdMappings> {}
|
||||
|
||||
/**## ODOptionsDatabase `class
|
||||
* A special class with types for the Open Ticket `database/options.json` database file
|
||||
*/
|
||||
export class ODOptionsDatabase extends api.ODFormattedJsonDatabase<ODOptionsDatabaseIdMappings> {}
|
||||
|
||||
/////////////////////////////////////////
|
||||
// DATABASE MAPPINGS, CATEGORIES & TYPES
|
||||
/////////////////////////////////////////
|
||||
|
||||
/**## ODGlobalDatabaseIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODGlobalDatabase` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODGlobalDatabaseIdMappings extends api.ODDatabaseIdConstraint {
|
||||
"opendiscord:panel-message":string,
|
||||
"opendiscord:panel-update":string,
|
||||
"opendiscord:option-suffix-counter":number,
|
||||
"opendiscord:option-suffix-history":string[],
|
||||
"opendiscord:last-version":string
|
||||
}
|
||||
|
||||
/**## ODTicketsDatabaseIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODTicketsDatabase` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODTicketsDatabaseIdMappings extends api.ODDatabaseIdConstraint {
|
||||
"opendiscord:ticket":ODTicketJson
|
||||
}
|
||||
|
||||
/**## ODUsersDatabaseIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODUsersDatabase` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODUsersDatabaseIdMappings extends api.ODDatabaseIdConstraint {
|
||||
"opendiscord:blacklist":ODTicketJson
|
||||
}
|
||||
|
||||
/**## ODOptionsDatabaseIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODOptionsDatabase` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODOptionsDatabaseIdMappings extends api.ODDatabaseIdConstraint {
|
||||
"opendiscord:used-option":ODOptionJson
|
||||
}
|
||||
@@ -0,0 +1,339 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET EVENT MAPPINGS
|
||||
///////////////////////////////////////
|
||||
|
||||
//BASE MAPPINGSS
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
//OPEN TICKET MAPPINGS
|
||||
import { ODMappedPluginClassManager, ODMappedPluginManager } from "./plugin"
|
||||
import { ODMappedConfigManager} from "./config"
|
||||
import { ODMappedDatabaseManager } from "./database"
|
||||
import { ODMappedFlagManager } from "./flag"
|
||||
import { ODMappedSessionManager } from "./session"
|
||||
import { ODMappedLanguageManager } from "./language"
|
||||
import { ODMappedCheckerFunctionManager, ODMappedCheckerManager, ODMappedCheckerTranslationRegister } from "./checker"
|
||||
import { ODMappedClientManager, ODMappedContextMenuManager, ODMappedSlashCommandManager, ODMappedTextCommandManager } from "./client"
|
||||
import { ODMappedBuilderManager, ODMappedButtonManager, ODMappedDropdownManager, ODMappedEmbedManager, ODMappedFileManager, ODMappedMessageManager, ODMappedModalManager } from "./builder"
|
||||
import { ODMappedAutocompleteResponderManager, ODMappedButtonResponderManager, ODMappedCommandResponderManager, ODMappedContextMenuResponderManager, ODMappedDropdownResponderManager, ODMappedModalResponderManager, ODMappedResponderManager } from "./responder"
|
||||
import { ODMappedActionManager } from "./action"
|
||||
import { ODMappedPermissionManager } from "./permission"
|
||||
import { ODMappedHelpMenuManager } from "./helpmenu"
|
||||
import { ODMappedStatisticManager } from "./statistic"
|
||||
import { ODMappedCodeManager } from "./code"
|
||||
import { ODMappedCooldownManager } from "./cooldown"
|
||||
import { ODMappedPostManager } from "./post"
|
||||
import { ODMappedVerifyBarManager } from "./verifybar"
|
||||
import { ODMappedStartScreenManager } from "./startscreen"
|
||||
import { ODMappedLiveStatusManager } from "./console"
|
||||
import { ODMappedProgressBarManager, ODMappedProgressBarRendererManager } from "./progressbar"
|
||||
|
||||
//OPEN TICKET MAPPINGSS
|
||||
import { ODOptionManager, ODTicketOption } from "../api/option"
|
||||
import { ODPanel, ODPanelManager } from "../api/panel"
|
||||
import { ODTicket, ODTicketClearFilter, ODTicketManager } from "../api/ticket"
|
||||
import { ODQuestionManager } from "../api/question"
|
||||
import { ODBlacklistManager } from "../api/blacklist"
|
||||
import { ODMappedTranscriptManager } from "../api/transcript"
|
||||
import { ODRole, ODRoleManager } from "../api/role"
|
||||
import { ODMappedPriorityManager, ODPriorityLevel } from "../api/priority"
|
||||
|
||||
/**## ODEventManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODEventManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODEventManagerIdMappings extends api.ODEventManagerIdConstraint {
|
||||
//error handling
|
||||
"onErrorHandling": api.ODEvent<(error:Error, origin:NodeJS.UncaughtExceptionOrigin) => api.ODPromiseVoid>
|
||||
"afterErrorHandling": api.ODEvent<(error:Error, origin:NodeJS.UncaughtExceptionOrigin, message:api.ODError) => api.ODPromiseVoid>
|
||||
|
||||
//plugins
|
||||
"afterPluginsLoaded": api.ODEvent<(plugins:ODMappedPluginManager) => api.ODPromiseVoid>
|
||||
"onPluginClassLoad": api.ODEvent<(classes:ODMappedPluginClassManager, plugins:ODMappedPluginManager) => api.ODPromiseVoid>
|
||||
"afterPluginClassesLoaded": api.ODEvent<(classes:ODMappedPluginClassManager, plugins:ODMappedPluginManager) => api.ODPromiseVoid>
|
||||
|
||||
//flags
|
||||
"onFlagLoad": api.ODEvent<(flags:ODMappedFlagManager) => api.ODPromiseVoid>
|
||||
"afterFlagsLoaded": api.ODEvent<(flags:ODMappedFlagManager) => api.ODPromiseVoid>
|
||||
"onFlagInit": api.ODEvent<(flags:ODMappedFlagManager) => api.ODPromiseVoid>
|
||||
"afterFlagsInitiated": api.ODEvent<(flags:ODMappedFlagManager) => api.ODPromiseVoid>
|
||||
|
||||
//progress bars
|
||||
"onProgressBarRendererLoad": api.ODEvent<(renderers:ODMappedProgressBarRendererManager) => api.ODPromiseVoid>
|
||||
"afterProgressBarRenderersLoaded": api.ODEvent<(renderers:ODMappedProgressBarRendererManager) => api.ODPromiseVoid>
|
||||
"onProgressBarLoad": api.ODEvent<(progressbars:ODMappedProgressBarManager) => api.ODPromiseVoid>
|
||||
"afterProgressBarsLoaded": api.ODEvent<(progressbars:ODMappedProgressBarManager) => api.ODPromiseVoid>
|
||||
|
||||
//configs
|
||||
"onConfigLoad": api.ODEvent<(configs:ODMappedConfigManager) => api.ODPromiseVoid>
|
||||
"afterConfigsLoaded": api.ODEvent<(configs:ODMappedConfigManager) => api.ODPromiseVoid>
|
||||
"onConfigInit": api.ODEvent<(configs:ODMappedConfigManager) => api.ODPromiseVoid>
|
||||
"afterConfigsInitiated": api.ODEvent<(configs:ODMappedConfigManager) => api.ODPromiseVoid>
|
||||
|
||||
//databases
|
||||
"onDatabaseLoad": api.ODEvent<(databases:ODMappedDatabaseManager) => api.ODPromiseVoid>
|
||||
"afterDatabasesLoaded": api.ODEvent<(databases:ODMappedDatabaseManager) => api.ODPromiseVoid>
|
||||
"onDatabaseInit": api.ODEvent<(databases:ODMappedDatabaseManager) => api.ODPromiseVoid>
|
||||
"afterDatabasesInitiated": api.ODEvent<(databases:ODMappedDatabaseManager) => api.ODPromiseVoid>
|
||||
|
||||
//languages
|
||||
"onLanguageLoad": api.ODEvent<(languages:ODMappedLanguageManager) => api.ODPromiseVoid>
|
||||
"afterLanguagesLoaded": api.ODEvent<(languages:ODMappedLanguageManager) => api.ODPromiseVoid>
|
||||
"onLanguageInit": api.ODEvent<(languages:ODMappedLanguageManager) => api.ODPromiseVoid>
|
||||
"afterLanguagesInitiated": api.ODEvent<(languages:ODMappedLanguageManager) => api.ODPromiseVoid>
|
||||
"onLanguageSelect": api.ODEvent<(languages:ODMappedLanguageManager) => api.ODPromiseVoid>
|
||||
"afterLanguagesSelected": api.ODEvent<(main:api.ODLanguage|null, backup:api.ODLanguage|null, languages:ODMappedLanguageManager) => api.ODPromiseVoid>
|
||||
|
||||
//sessions
|
||||
"onSessionLoad": api.ODEvent<(languages:ODMappedSessionManager) => api.ODPromiseVoid>
|
||||
"afterSessionsLoaded": api.ODEvent<(languages:ODMappedSessionManager) => api.ODPromiseVoid>
|
||||
|
||||
//config checkers
|
||||
"onCheckerLoad": api.ODEvent<(checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"afterCheckersLoaded": api.ODEvent<(checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"onCheckerFunctionLoad": api.ODEvent<(functions:ODMappedCheckerFunctionManager, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"afterCheckerFunctionsLoaded": api.ODEvent<(functions:ODMappedCheckerFunctionManager, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"onCheckerExecute": api.ODEvent<(checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"afterCheckersExecuted": api.ODEvent<(result:api.ODCheckerResult, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"onCheckerTranslationLoad": api.ODEvent<(translations:ODMappedCheckerTranslationRegister, enabled:boolean, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"afterCheckerTranslationsLoaded": api.ODEvent<(translations:ODMappedCheckerTranslationRegister, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"onCheckerRender": api.ODEvent<(renderer:api.ODCheckerRenderer, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"afterCheckersRendered": api.ODEvent<(renderer:api.ODCheckerRenderer, checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
"onCheckerQuit": api.ODEvent<(checkers:ODMappedCheckerManager) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before client
|
||||
"onPluginBeforeClientLoad": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeClientLoaded": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
|
||||
//client configuration
|
||||
"onClientLoad": api.ODEvent<(client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterClientLoaded": api.ODEvent<(client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"onClientInit": api.ODEvent<(client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterClientInitiated": api.ODEvent<(client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"onClientReady": api.ODEvent<(client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterClientReady": api.ODEvent<(client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"onClientActivityLoad": api.ODEvent<(activity:api.ODClientActivityManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterClientActivityLoaded": api.ODEvent<(activity:api.ODClientActivityManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"onClientActivityInit": api.ODEvent<(activity:api.ODClientActivityManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterClientActivityInitiated": api.ODEvent<(activity:api.ODClientActivityManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
|
||||
//priority levels
|
||||
"onPriorityLoad": api.ODEvent<(priorities:ODMappedPriorityManager) => api.ODPromiseVoid>
|
||||
"afterPrioritiesLoaded": api.ODEvent<(priorities:ODMappedPriorityManager) => api.ODPromiseVoid>
|
||||
|
||||
//client slash commands
|
||||
"onSlashCommandLoad": api.ODEvent<(slash:ODMappedSlashCommandManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterSlashCommandsLoaded": api.ODEvent<(slash:ODMappedSlashCommandManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"onSlashCommandRegister": api.ODEvent<(slash:ODMappedSlashCommandManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterSlashCommandsRegistered": api.ODEvent<(slash:ODMappedSlashCommandManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
|
||||
//client context menus
|
||||
"onContextMenuLoad": api.ODEvent<(menu:ODMappedContextMenuManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterContextMenusLoaded": api.ODEvent<(menu:ODMappedContextMenuManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"onContextMenuRegister": api.ODEvent<(menu:ODMappedContextMenuManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterContextMenusRegistered": api.ODEvent<(menu:ODMappedContextMenuManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
|
||||
//client text commands
|
||||
"onTextCommandLoad": api.ODEvent<(text:ODMappedTextCommandManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
"afterTextCommandsLoaded": api.ODEvent<(text:ODMappedTextCommandManager, client:ODMappedClientManager) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before managers
|
||||
"onPluginBeforeManagerLoad": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeManagerLoaded": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
|
||||
//questions
|
||||
"onQuestionLoad": api.ODEvent<(questions:ODQuestionManager) => api.ODPromiseVoid>
|
||||
"afterQuestionsLoaded": api.ODEvent<(questions:ODQuestionManager) => api.ODPromiseVoid>
|
||||
|
||||
//options
|
||||
"onOptionLoad": api.ODEvent<(options:ODOptionManager) => api.ODPromiseVoid>
|
||||
"afterOptionsLoaded": api.ODEvent<(options:ODOptionManager) => api.ODPromiseVoid>
|
||||
|
||||
//panels
|
||||
"onPanelLoad": api.ODEvent<(panels:ODPanelManager) => api.ODPromiseVoid>
|
||||
"afterPanelsLoaded": api.ODEvent<(panels:ODPanelManager) => api.ODPromiseVoid>
|
||||
"onPanelSpawn": api.ODEvent<(panel:ODPanel) => api.ODPromiseVoid>
|
||||
"afterPanelSpawned": api.ODEvent<(panel:ODPanel) => api.ODPromiseVoid>
|
||||
|
||||
//tickets
|
||||
"onTicketLoad": api.ODEvent<(tickets:ODTicketManager) => api.ODPromiseVoid>
|
||||
"afterTicketsLoaded": api.ODEvent<(tickets:ODTicketManager) => api.ODPromiseVoid>
|
||||
|
||||
//ticket creation
|
||||
"onTicketChannelCreation": api.ODEvent<(option:ODTicketOption, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketChannelCreated": api.ODEvent<(option:ODTicketOption, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"onTicketChannelDeletion": api.ODEvent<(ticket:ODTicket, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketChannelDeleted": api.ODEvent<(ticket:ODTicket, user:discord.User) => api.ODPromiseVoid>
|
||||
"onTicketPermissionsCreated": api.ODEvent<(option:ODTicketOption, permissions:ODMappedPermissionManager, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketPermissionsCreated": api.ODEvent<(option:ODTicketOption, permissions:ODMappedPermissionManager, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"onTicketMainMessageCreated": api.ODEvent<(ticket:ODTicket, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketMainMessageCreated": api.ODEvent<(ticket:ODTicket, message:discord.Message, channel:discord.GuildTextBasedChannel, user:discord.User) => api.ODPromiseVoid>
|
||||
|
||||
//ticket actions
|
||||
"onTicketCreate": api.ODEvent<(creator:discord.User) => api.ODPromiseVoid>
|
||||
"afterTicketCreated": api.ODEvent<(ticket:ODTicket, creator:discord.User, channel:discord.GuildTextBasedChannel) => api.ODPromiseVoid>
|
||||
"onTicketClose": api.ODEvent<(ticket:ODTicket, closer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketClosed": api.ODEvent<(ticket:ODTicket, closer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketReopen": api.ODEvent<(ticket:ODTicket, reopener:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketReopened": api.ODEvent<(ticket:ODTicket, reopener:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketDelete": api.ODEvent<(ticket:ODTicket, deleter:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketDeleted": api.ODEvent<(ticket:ODTicket, deleter:discord.User, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketMove": api.ODEvent<(ticket:ODTicket, mover:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketMoved": api.ODEvent<(ticket:ODTicket, mover:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketClaim": api.ODEvent<(ticket:ODTicket, claimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketClaimed": api.ODEvent<(ticket:ODTicket, claimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUnclaim": api.ODEvent<(ticket:ODTicket, unclaimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUnclaimed": api.ODEvent<(ticket:ODTicket, unclaimer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketPin": api.ODEvent<(ticket:ODTicket, pinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketPinned": api.ODEvent<(ticket:ODTicket, pinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUnpin": api.ODEvent<(ticket:ODTicket, unpinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUnpinned": api.ODEvent<(ticket:ODTicket, unpinner:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUserAdd": api.ODEvent<(ticket:ODTicket, adder:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUserAdded": api.ODEvent<(ticket:ODTicket, adder:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketUserRemove": api.ODEvent<(ticket:ODTicket, remover:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketUserRemoved": api.ODEvent<(ticket:ODTicket, remover:discord.User, user:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketRename": api.ODEvent<(ticket:ODTicket, renamer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketRenamed": api.ODEvent<(ticket:ODTicket, renamer:discord.User, channel:discord.GuildTextBasedChannel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketsClear": api.ODEvent<(tickets:ODTicket[], clearer:discord.User, channel:discord.GuildTextBasedChannel, filter:ODTicketClearFilter) => api.ODPromiseVoid>
|
||||
"afterTicketsCleared": api.ODEvent<(tickets:ODTicket[], clearer:discord.User, channel:discord.GuildTextBasedChannel, filter:ODTicketClearFilter) => api.ODPromiseVoid>
|
||||
"onTicketTopicChange": api.ODEvent<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldTopic:string, newTopic:string) => api.ODPromiseVoid>
|
||||
"afterTicketTopicChanged": api.ODEvent<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldTopic:string, newTopic:string) => api.ODPromiseVoid>
|
||||
"onTicketPriorityChange": api.ODEvent<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldPriority:ODPriorityLevel, newPriority:ODPriorityLevel, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketPriorityChanged": api.ODEvent<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldPriority:ODPriorityLevel, newPriority:ODPriorityLevel, reason:string|null) => api.ODPromiseVoid>
|
||||
"onTicketTransfer": api.ODEvent<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldCreator:discord.User, newCreator:discord.User, reason:string|null) => api.ODPromiseVoid>
|
||||
"afterTicketTransferred": api.ODEvent<(ticket:ODTicket, changer:discord.User, channel:discord.GuildTextBasedChannel, oldCreator:discord.User, newCreator:discord.User, reason:string|null) => api.ODPromiseVoid>
|
||||
|
||||
//roles
|
||||
"onRoleLoad": api.ODEvent<(roles:ODRoleManager) => api.ODPromiseVoid>
|
||||
"afterRolesLoaded": api.ODEvent<(roles:ODRoleManager) => api.ODPromiseVoid>
|
||||
"onRoleUpdate": api.ODEvent<(user:discord.User,role:ODRole) => api.ODPromiseVoid>
|
||||
"afterRolesUpdated": api.ODEvent<(user:discord.User,role:ODRole) => api.ODPromiseVoid>
|
||||
|
||||
//blacklist
|
||||
"onBlacklistLoad": api.ODEvent<(blacklist:ODBlacklistManager) => api.ODPromiseVoid>
|
||||
"afterBlacklistLoaded": api.ODEvent<(blacklist:ODBlacklistManager) => api.ODPromiseVoid>
|
||||
|
||||
//transcripts
|
||||
"onTranscriptCompilerLoad": api.ODEvent<(transcripts:ODMappedTranscriptManager) => api.ODPromiseVoid>
|
||||
"afterTranscriptCompilersLoaded": api.ODEvent<(transcripts:ODMappedTranscriptManager) => api.ODPromiseVoid>
|
||||
"onTranscriptHistoryLoad": api.ODEvent<(transcripts:ODMappedTranscriptManager) => api.ODPromiseVoid>
|
||||
"afterTranscriptHistoryLoaded": api.ODEvent<(transcripts:ODMappedTranscriptManager) => api.ODPromiseVoid>
|
||||
|
||||
//transcript creation
|
||||
"onTranscriptCreate": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptCreated": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"onTranscriptInit": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptInitiated": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"onTranscriptCompile": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptCompiled": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"onTranscriptReady": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
"afterTranscriptReady": api.ODEvent<(transcripts:ODMappedTranscriptManager,ticket:ODTicket,channel:discord.TextChannel,user:discord.User) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before builders
|
||||
"onPluginBeforeBuilderLoad": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeBuilderLoaded": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
|
||||
//builders
|
||||
"onButtonBuilderLoad": api.ODEvent<(buttons:ODMappedButtonManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterButtonBuildersLoaded": api.ODEvent<(buttons:ODMappedButtonManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onDropdownBuilderLoad": api.ODEvent<(dropdowns:ODMappedDropdownManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterDropdownBuildersLoaded": api.ODEvent<(dropdowns:ODMappedDropdownManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onFileBuilderLoad": api.ODEvent<(files:ODMappedFileManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterFileBuildersLoaded": api.ODEvent<(files:ODMappedFileManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onEmbedBuilderLoad": api.ODEvent<(embeds:ODMappedEmbedManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterEmbedBuildersLoaded": api.ODEvent<(embeds:ODMappedEmbedManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onMessageBuilderLoad": api.ODEvent<(messages:ODMappedMessageManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterMessageBuildersLoaded": api.ODEvent<(messages:ODMappedMessageManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onModalBuilderLoad": api.ODEvent<(modals:ODMappedModalManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterModalBuildersLoaded": api.ODEvent<(modals:ODMappedModalManager, builders:ODMappedBuilderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before responders
|
||||
"onPluginBeforeResponderLoad": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeResponderLoaded": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
|
||||
//responders
|
||||
"onCommandResponderLoad": api.ODEvent<(commands:ODMappedCommandResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterCommandRespondersLoaded": api.ODEvent<(commands:ODMappedCommandResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onButtonResponderLoad": api.ODEvent<(buttons:ODMappedButtonResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterButtonRespondersLoaded": api.ODEvent<(buttons:ODMappedButtonResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onDropdownResponderLoad": api.ODEvent<(dropdowns:ODMappedDropdownResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterDropdownRespondersLoaded": api.ODEvent<(dropdowns:ODMappedDropdownResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onModalResponderLoad": api.ODEvent<(modals:ODMappedModalResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterModalRespondersLoaded": api.ODEvent<(modals:ODMappedModalResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onContextMenuResponderLoad": api.ODEvent<(menus:ODMappedContextMenuResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterContextMenuRespondersLoaded": api.ODEvent<(menus:ODMappedContextMenuResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"onAutocompleteResponderLoad": api.ODEvent<(autocomplete:ODMappedAutocompleteResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterAutocompleteRespondersLoaded": api.ODEvent<(autocomplete:ODMappedAutocompleteResponderManager, responders:ODMappedResponderManager, actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before finalizations
|
||||
"onPluginBeforeFinalizationLoad": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeFinalizationLoaded": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
|
||||
//actions
|
||||
"onActionLoad": api.ODEvent<(actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
"afterActionsLoaded": api.ODEvent<(actions:ODMappedActionManager) => api.ODPromiseVoid>
|
||||
|
||||
//verifybars
|
||||
"onVerifyBarLoad": api.ODEvent<(verifybars:ODMappedVerifyBarManager) => api.ODPromiseVoid>
|
||||
"afterVerifyBarsLoaded": api.ODEvent<(verifybars:ODMappedVerifyBarManager) => api.ODPromiseVoid>
|
||||
|
||||
//permissions
|
||||
"onPermissionLoad": api.ODEvent<(permissions:ODMappedPermissionManager) => api.ODPromiseVoid>
|
||||
"afterPermissionsLoaded": api.ODEvent<(permissions:ODMappedPermissionManager) => api.ODPromiseVoid>
|
||||
|
||||
//posts
|
||||
"onPostLoad": api.ODEvent<(posts:ODMappedPostManager) => api.ODPromiseVoid>
|
||||
"afterPostsLoaded": api.ODEvent<(posts:ODMappedPostManager) => api.ODPromiseVoid>
|
||||
"onPostInit": api.ODEvent<(posts:ODMappedPostManager) => api.ODPromiseVoid>
|
||||
"afterPostsInitiated": api.ODEvent<(posts:ODMappedPostManager) => api.ODPromiseVoid>
|
||||
|
||||
//cooldowns
|
||||
"onCooldownLoad": api.ODEvent<(cooldowns:ODMappedCooldownManager) => api.ODPromiseVoid>
|
||||
"afterCooldownsLoaded": api.ODEvent<(cooldowns:ODMappedCooldownManager) => api.ODPromiseVoid>
|
||||
"onCooldownInit": api.ODEvent<(cooldowns:ODMappedCooldownManager) => api.ODPromiseVoid>
|
||||
"afterCooldownsInitiated": api.ODEvent<(cooldowns:ODMappedCooldownManager) => api.ODPromiseVoid>
|
||||
|
||||
//help menu
|
||||
"onHelpMenuCategoryLoad": api.ODEvent<(menu:ODMappedHelpMenuManager) => api.ODPromiseVoid>
|
||||
"afterHelpMenuCategoriesLoaded": api.ODEvent<(menu:ODMappedHelpMenuManager) => api.ODPromiseVoid>
|
||||
"onHelpMenuComponentLoad": api.ODEvent<(menu:ODMappedHelpMenuManager) => api.ODPromiseVoid>
|
||||
"afterHelpMenuComponentsLoaded": api.ODEvent<(menu:ODMappedHelpMenuManager) => api.ODPromiseVoid>
|
||||
|
||||
//stats
|
||||
"onStatisticScopeLoad": api.ODEvent<(stats:ODMappedStatisticManager) => api.ODPromiseVoid>
|
||||
"afterStatisticScopesLoaded": api.ODEvent<(stats:ODMappedStatisticManager) => api.ODPromiseVoid>
|
||||
"onStatisticLoad": api.ODEvent<(stats:ODMappedStatisticManager) => api.ODPromiseVoid>
|
||||
"afterStatisticsLoaded": api.ODEvent<(stats:ODMappedStatisticManager) => api.ODPromiseVoid>
|
||||
"onStatisticInit": api.ODEvent<(stats:ODMappedStatisticManager) => api.ODPromiseVoid>
|
||||
"afterStatisticsInitiated": api.ODEvent<(stats:ODMappedStatisticManager) => api.ODPromiseVoid>
|
||||
|
||||
//plugin loading before code
|
||||
"onPluginBeforeCodeLoad": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
"afterPluginBeforeCodeLoaded": api.ODEvent<() => api.ODPromiseVoid>,
|
||||
|
||||
//code
|
||||
"onCodeLoad": api.ODEvent<(code:ODMappedCodeManager) => api.ODPromiseVoid>
|
||||
"afterCodeLoaded": api.ODEvent<(code:ODMappedCodeManager) => api.ODPromiseVoid>
|
||||
"onCodeExecute": api.ODEvent<(code:ODMappedCodeManager) => api.ODPromiseVoid>
|
||||
"afterCodeExecuted": api.ODEvent<(code:ODMappedCodeManager) => api.ODPromiseVoid>
|
||||
|
||||
//livestatus
|
||||
"onLiveStatusSourceLoad": api.ODEvent<(livestatus:ODMappedLiveStatusManager) => api.ODPromiseVoid>
|
||||
"afterLiveStatusSourcesLoaded": api.ODEvent<(livestatus:ODMappedLiveStatusManager) => api.ODPromiseVoid>
|
||||
|
||||
//startscreen
|
||||
"onStartScreenLoad": api.ODEvent<(startscreen:ODMappedStartScreenManager) => api.ODPromiseVoid>
|
||||
"afterStartScreensLoaded": api.ODEvent<(startscreen:ODMappedStartScreenManager) => api.ODPromiseVoid>
|
||||
"onStartScreenRender": api.ODEvent<(startscreen:ODMappedStartScreenManager) => api.ODPromiseVoid>
|
||||
"afterStartScreensRendered": api.ODEvent<(startscreen:ODMappedStartScreenManager) => api.ODPromiseVoid>
|
||||
|
||||
//ready
|
||||
"beforeReadyForUsage": api.ODEvent<() => api.ODPromiseVoid>
|
||||
"onReadyForUsage": api.ODEvent<() => api.ODPromiseVoid>
|
||||
}
|
||||
|
||||
/**## ODMappedEventManager `class
|
||||
* A special class with types for the Open Ticket `ODEventManager` class.
|
||||
*/
|
||||
export class ODMappedEventManager extends api.ODEventManager<ODEventManagerIdMappings> {}
|
||||
@@ -0,0 +1,32 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET PROCESS MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODFlagManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODFlagManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODFlagManagerIdMappings extends api.ODFlagManagerIdConstraint {
|
||||
"opendiscord:no-migration":api.ODFlag,
|
||||
"opendiscord:dev-config":api.ODFlag,
|
||||
"opendiscord:dev-database":api.ODFlag,
|
||||
"opendiscord:debug":api.ODFlag,
|
||||
"opendiscord:crash":api.ODFlag,
|
||||
"opendiscord:no-transcripts":api.ODFlag,
|
||||
"opendiscord:no-checker":api.ODFlag,
|
||||
"opendiscord:checker":api.ODFlag,
|
||||
"opendiscord:no-easter":api.ODFlag,
|
||||
"opendiscord:no-plugins":api.ODFlag,
|
||||
"opendiscord:soft-plugins":api.ODFlag,
|
||||
"opendiscord:force-slash-update":api.ODFlag,
|
||||
"opendiscord:no-compile":api.ODFlag,
|
||||
"opendiscord:compile-only":api.ODFlag,
|
||||
"opendiscord:silent":api.ODFlag,
|
||||
"opendiscord:cli":api.ODFlag,
|
||||
}
|
||||
|
||||
/**## ODMappedFlagManager `class
|
||||
* A special class with types for the Open Ticket `ODFlagManager` class.
|
||||
*/
|
||||
export class ODMappedFlagManager extends api.ODFlagManager<ODFlagManagerIdMappings> {}
|
||||
@@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT FUSE MODULE
|
||||
//OPEN TICKET FUSE MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET HELP MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW COMMANDS?
|
||||
* - Register the command in loadAllSlashCommands() & loadAllTextCommands() in (./src/data/framework/commandLoader.ts)
|
||||
* - Add autocomplete for the command in OD(Slash/Text)CommandManagerIds_Default in (./src/core/api/defaults/client.ts)
|
||||
* - Add the command to the help menu in (./src/data/framework/helpMenuLoader.ts)
|
||||
* - If required, new config variables should be added (incl. logs, dm-logs & permissions).
|
||||
* - Update the Open Ticket Documentation.
|
||||
* - If the command contains complex logic or can be executed from a button/dropdown, it should be placed inside an `ODAction`.
|
||||
* - Check all files, test the bot carefully & try a lot of different scenario's with different settings.
|
||||
*/
|
||||
|
||||
/**## ODHelpMenuManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODHelpMenuManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODHelpMenuManagerIdMappings extends api.ODHelpMenuManagerIdConstraint {
|
||||
"opendiscord:general":ODGeneralHelpMenuCategory,
|
||||
"opendiscord:ticket-basic":ODBasicTicketHelpMenuCategory,
|
||||
"opendiscord:ticket-advanced":ODAdvancedTicketHelpMenuCategory,
|
||||
"opendiscord:ticket-user":ODUserTicketHelpMenuCategory,
|
||||
"opendiscord:admin":ODAdminHelpMenuCategory,
|
||||
"opendiscord:advanced":ODAdvancedHelpMenuCategory,
|
||||
"opendiscord:extra":ODExtraHelpMenuCategory
|
||||
}
|
||||
|
||||
/**## ODMappedHelpMenuManager `class
|
||||
* A special class with types for the Open Ticket `ODHelpMenuManager` class.
|
||||
*/
|
||||
export class ODMappedHelpMenuManager extends api.ODHelpMenuManager<ODHelpMenuManagerIdMappings> {}
|
||||
|
||||
/**## ODGeneralHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `General Commands` help menu category.
|
||||
*/
|
||||
export class ODGeneralHelpMenuCategory extends api.ODHelpMenuCategory<ODGeneralHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/**## ODBasicTicketHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `Basic Ticket Commands` help menu category.
|
||||
*/
|
||||
export class ODBasicTicketHelpMenuCategory extends api.ODHelpMenuCategory<ODBasicTicketHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/**## ODAdvancedTicketHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `Advanced Ticket Commands` help menu category.
|
||||
*/
|
||||
export class ODAdvancedTicketHelpMenuCategory extends api.ODHelpMenuCategory<ODAdvancedTicketHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/**## ODUserTicketHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `User ticket Commands` help menu category.
|
||||
*/
|
||||
export class ODUserTicketHelpMenuCategory extends api.ODHelpMenuCategory<ODUserTicketHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/**## ODAdminHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `Admin Commands` help menu category.
|
||||
*/
|
||||
export class ODAdminHelpMenuCategory extends api.ODHelpMenuCategory<ODAdminHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/**## ODAdvancedHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `Advanced Commands` help menu category.
|
||||
*/
|
||||
export class ODAdvancedHelpMenuCategory extends api.ODHelpMenuCategory<ODAdvancedHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/**## ODExtraHelpMenuCategory `class
|
||||
* A special class with types for the Open Ticket `Extra Commands` help menu category.
|
||||
*/
|
||||
export class ODExtraHelpMenuCategory extends api.ODHelpMenuCategory<ODExtraHelpMenuCategoryIdMappings> {}
|
||||
|
||||
/////////////////////////////////////////
|
||||
// HELP MENU MAPPINGS, CATEGORIES & TYPES
|
||||
/////////////////////////////////////////
|
||||
|
||||
/**## ODGeneralHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODGeneralHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODGeneralHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
"opendiscord:help":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:ticket":api.ODHelpMenuCommandComponent|null
|
||||
}
|
||||
|
||||
/**## ODBasicTicketHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODBasicTicketHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODBasicTicketHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
"opendiscord:close":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:delete":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:reopen":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
|
||||
/**## ODAdvancedTicketHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODAdvancedTicketHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODAdvancedTicketHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
"opendiscord:pin":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:unpin":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:move":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:rename":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
|
||||
/**## ODUserTicketHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODUserTicketHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODUserTicketHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
"opendiscord:claim":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:unclaim":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:add":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:remove":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:transfer":api.ODHelpMenuCommandComponent,
|
||||
}
|
||||
|
||||
/**## ODAdminHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODAdminHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODAdminHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
"opendiscord:panel":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-view":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-add":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-remove":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:blacklist-get":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
|
||||
/**## ODAdvancedHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODAdvancedHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODAdvancedHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
"opendiscord:stats-global":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:stats-reset":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:stats-ticket":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:stats-user":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autoclose-disable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autoclose-enable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autodelete-disable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:autodelete-enable":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:topic-set":api.ODHelpMenuCommandComponent,
|
||||
"opendiscord:priority-set":api.ODHelpMenuCommandComponent,
|
||||
}
|
||||
|
||||
/**## ODExtraHelpMenuCategoryIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODExtraHelpMenuCategory` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODExtraHelpMenuCategoryIdMappings extends api.ODHelpMenuCategoryIdConstraint {
|
||||
//"opendiscord:help-component":api.ODHelpMenuCommandComponent
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT LANGUAGE MODULE
|
||||
//OPEN TICKET LANGUAGE MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
@@ -12,11 +12,11 @@ import * as api from "@open-discord-bots/framework/api"
|
||||
* - Update the Open Ticket Documentation.
|
||||
*/
|
||||
|
||||
/**## ODLanguageManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODLanguageManager_Default` class.
|
||||
/**## ODLanguageManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODLanguageManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODLanguageManagerIds_Default {
|
||||
export interface ODLanguageManagerIdMappings extends api.ODLanguageManagerIdConstraint {
|
||||
"opendiscord:custom":api.ODLanguage,
|
||||
"opendiscord:english":api.ODLanguage,
|
||||
"opendiscord:dutch":api.ODLanguage,
|
||||
@@ -58,11 +58,11 @@ export interface ODLanguageManagerIds_Default {
|
||||
//ADD NEW LANGUAGES HERE!!!
|
||||
}
|
||||
|
||||
/**## ODLanguageManagerTranslations_Default `type`
|
||||
* This interface is a list of ids available in the `ODLanguageManager_Default` class.
|
||||
/**## ODLanguageManagerTranslationIdMappings `type`
|
||||
* A list of all available translation IDs in the default `ODLanguageManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export type ODLanguageManagerTranslations_Default = (
|
||||
export type ODLanguageManagerTranslationIdMappings = (
|
||||
"checker.system.headerOpenTicket"|
|
||||
"checker.system.typeError"|
|
||||
"checker.system.typeWarning"|
|
||||
@@ -622,59 +622,7 @@ export type ODLanguageManagerTranslations_Default = (
|
||||
"priorities.none"
|
||||
)
|
||||
|
||||
/**## ODLanguageManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODLanguageManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.languages`!
|
||||
/**## ODMappedLanguageManager `class
|
||||
* A special class with types for the Open Ticket `ODLanguageManager` class.
|
||||
*/
|
||||
export class ODLanguageManager_Default extends api.ODLanguageManager {
|
||||
get<LanguageId extends keyof ODLanguageManagerIds_Default>(id:LanguageId): ODLanguageManagerIds_Default[LanguageId]
|
||||
get(id:api.ODValidId): api.ODLanguage|null
|
||||
|
||||
get(id:api.ODValidId): api.ODLanguage|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<LanguageId extends keyof ODLanguageManagerIds_Default>(id:LanguageId): ODLanguageManagerIds_Default[LanguageId]
|
||||
remove(id:api.ODValidId): api.ODLanguage|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODLanguage|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODLanguageManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
|
||||
getTranslation(id:ODLanguageManagerTranslations_Default): string
|
||||
getTranslation(id:string): string|null
|
||||
|
||||
getTranslation(id:string): string|null {
|
||||
return super.getTranslation(id)
|
||||
}
|
||||
|
||||
setCurrentLanguage(id:keyof ODLanguageManagerIds_Default): void
|
||||
setCurrentLanguage(id:api.ODValidId): void
|
||||
|
||||
setCurrentLanguage(id:api.ODValidId): void {
|
||||
return super.setCurrentLanguage(id)
|
||||
}
|
||||
|
||||
setBackupLanguage(id:keyof ODLanguageManagerIds_Default): void
|
||||
setBackupLanguage(id:api.ODValidId): void
|
||||
|
||||
setBackupLanguage(id:api.ODValidId): void {
|
||||
return super.setBackupLanguage(id)
|
||||
}
|
||||
|
||||
getTranslationWithParams(id:ODLanguageManagerTranslations_Default, params:string[]): string
|
||||
getTranslationWithParams(id:string, params:string[]): string|null
|
||||
|
||||
getTranslationWithParams(id:string, params:string[]): string|null {
|
||||
return super.getTranslationWithParams(id,params)
|
||||
}
|
||||
}
|
||||
export class ODMappedLanguageManager extends api.ODLanguageManager<ODLanguageManagerIdMappings,ODLanguageManagerTranslationIdMappings> {}
|
||||
@@ -0,0 +1,30 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET PERMISSION MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODPermissionManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODPermissionManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPermissionManagerIdMappings extends api.ODPermissionManagerIdConstraint {
|
||||
//"opendiscord:test-permission":api.ODPermission
|
||||
}
|
||||
|
||||
/**## ODMappedPermissionManager `class
|
||||
* A special class with types for the Open Ticket `ODPermissionManager` class.
|
||||
*/
|
||||
export class ODMappedPermissionManager extends api.ODPermissionManager<ODPermissionManagerIdMappings> {}
|
||||
|
||||
/**## ODPermissionEmbedType `type`
|
||||
* A collection of all types available in the `opendiscord:no-permissions` embed.
|
||||
*/
|
||||
export type ODPermissionEmbedType = (
|
||||
"developer"|
|
||||
"owner"|
|
||||
"admin"|
|
||||
"moderator"|
|
||||
"support"|
|
||||
"member"|
|
||||
"discord-administrator"
|
||||
)
|
||||
@@ -0,0 +1,30 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET POST MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODPluginManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODPluginManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPluginManagerIdMappings extends api.ODPluginManagerIdConstraint {
|
||||
//"opendiscord:example-plugin":api.ODPlugin
|
||||
}
|
||||
|
||||
/**## ODPluginClassManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODPluginClassManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPluginClassManagerIdMappings extends api.ODPluginClassManagerIdConstraint {
|
||||
//"opendiscord:example-plugin":any
|
||||
}
|
||||
|
||||
/**## ODMappedPluginManager `class
|
||||
* A special class with types for the Open Ticket `ODPluginManager` class.
|
||||
*/
|
||||
export class ODMappedPluginManager extends api.ODPluginManager<ODPluginManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedPluginClassManager `class
|
||||
* A special class with types for the Open Ticket `ODPluginClassManager` class.
|
||||
*/
|
||||
export class ODMappedPluginClassManager extends api.ODPluginClassManager<ODPluginClassManagerIdMappings> {}
|
||||
@@ -0,0 +1,19 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET POST MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
/**## ODPostManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODPostManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODPostManagerIdMappings extends api.ODPostManagerIdConstraint {
|
||||
"opendiscord:logs":api.ODPost<discord.GuildTextBasedChannel>|null,
|
||||
"opendiscord:transcripts":api.ODPost<discord.GuildTextBasedChannel>|null
|
||||
}
|
||||
|
||||
/**## ODMappedPostManager `class
|
||||
* A special class with types for the Open Ticket `ODPostManager` class.
|
||||
*/
|
||||
export class ODMappedPostManager extends api.ODPostManager<ODPostManagerIdMappings> {}
|
||||
@@ -0,0 +1,40 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET PROGRESS BAR MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODProgressBarManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODProgressBarManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODProgressBarManagerIdMappings extends api.ODProgressBarManagerIdConstraint {
|
||||
"opendiscord:slash-command-remove":api.ODManualProgressBar,
|
||||
"opendiscord:slash-command-create":api.ODManualProgressBar,
|
||||
"opendiscord:slash-command-update":api.ODManualProgressBar,
|
||||
"opendiscord:context-menu-remove":api.ODManualProgressBar,
|
||||
"opendiscord:context-menu-create":api.ODManualProgressBar,
|
||||
"opendiscord:context-menu-update":api.ODManualProgressBar,
|
||||
}
|
||||
|
||||
/**## ODProgressBarRendererManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODProgressBarRendererManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODProgressBarRendererManagerIdMappings extends api.ODProgressBarRendererManagerIdConstraint {
|
||||
"opendiscord:value-renderer":api.ODDefaultProgressBarRenderer,
|
||||
"opendiscord:fraction-renderer":api.ODDefaultProgressBarRenderer,
|
||||
"opendiscord:percentage-renderer":api.ODDefaultProgressBarRenderer,
|
||||
"opendiscord:time-ms-renderer":api.ODDefaultProgressBarRenderer,
|
||||
"opendiscord:time-sec-renderer":api.ODDefaultProgressBarRenderer,
|
||||
"opendiscord:time-min-renderer":api.ODDefaultProgressBarRenderer,
|
||||
}
|
||||
|
||||
/**## ODMappedProgressBarManager `class
|
||||
* A special class with types for the Open Ticket `ODProgressBarManager` class.
|
||||
*/
|
||||
export class ODMappedProgressBarManager extends api.ODProgressBarManager<ODProgressBarManagerIdMappings,ODProgressBarRendererManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedProgressBarRendererManager `class
|
||||
* A special class with types for the Open Ticket `ODProgressBarRendererManager` class.
|
||||
*/
|
||||
export class ODMappedProgressBarRendererManager extends api.ODProgressBarRendererManager<ODProgressBarRendererManagerIdMappings> {}
|
||||
@@ -0,0 +1,139 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET RESPONDER MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODCommandResponderManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODCommandResponderManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODCommandResponderManagerIdMappings extends api.ODCommandResponderManagerIdConstraint {
|
||||
"opendiscord:help":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:help"|"opendiscord:logs"},
|
||||
"opendiscord:stats":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:stats"|"opendiscord:logs"},
|
||||
"opendiscord:panel":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:panel"|"opendiscord:logs"},
|
||||
"opendiscord:ticket":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:ticket"|"opendiscord:logs"},
|
||||
"opendiscord:blacklist":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:blacklist"|"opendiscord:discord-logs"|"opendiscord:logs"},
|
||||
|
||||
"opendiscord:close":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:close"|"opendiscord:logs"},
|
||||
"opendiscord:reopen":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:reopen"|"opendiscord:logs"},
|
||||
"opendiscord:delete":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:delete"|"opendiscord:logs"},
|
||||
"opendiscord:claim":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:claim"|"opendiscord:logs"},
|
||||
"opendiscord:unclaim":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:unclaim"|"opendiscord:logs"},
|
||||
"opendiscord:pin":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:pin"|"opendiscord:logs"},
|
||||
"opendiscord:unpin":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:unpin"|"opendiscord:logs"},
|
||||
|
||||
"opendiscord:rename":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:rename"|"opendiscord:logs"},
|
||||
"opendiscord:move":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:move"|"opendiscord:logs"},
|
||||
"opendiscord:add":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:add"|"opendiscord:logs"},
|
||||
"opendiscord:remove":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:remove"|"opendiscord:logs"},
|
||||
"opendiscord:clear":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:clear"|"opendiscord:logs"},
|
||||
"opendiscord:topic":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:topic"|"opendiscord:logs"},
|
||||
"opendiscord:priority":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:priority"|"opendiscord:logs"},
|
||||
"opendiscord:transfer":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:transfer"|"opendiscord:logs"},
|
||||
|
||||
"opendiscord:autoclose":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:autoclose"|"opendiscord:logs"},
|
||||
"opendiscord:autodelete":{source:"slash"|"text",params:{},workers:"opendiscord:permissions"|"opendiscord:autodelete"|"opendiscord:logs"},
|
||||
}
|
||||
|
||||
/**## ODButtonResponderManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODButtonResponderManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODButtonResponderManagerIdMappings extends api.ODButtonResponderManagerIdConstraint {
|
||||
"opendiscord:verifybar-success":{source:"button",params:{},workers:"opendiscord:handle-verifybar"},
|
||||
"opendiscord:verifybar-failure":{source:"button",params:{},workers:"opendiscord:handle-verifybar"},
|
||||
|
||||
"opendiscord:help-menu-switch":{source:"button",params:{},workers:"opendiscord:update-help-menu"},
|
||||
"opendiscord:help-menu-previous":{source:"button",params:{},workers:"opendiscord:update-help-menu"},
|
||||
"opendiscord:help-menu-next":{source:"button",params:{},workers:"opendiscord:update-help-menu"},
|
||||
|
||||
"opendiscord:ticket-option":{source:"button",params:{},workers:"opendiscord:ticket-option"},
|
||||
"opendiscord:role-option":{source:"button",params:{},workers:"opendiscord:role-option"},
|
||||
|
||||
"opendiscord:claim-ticket":{source:"button",params:{},workers:"opendiscord:claim-ticket"},
|
||||
"opendiscord:unclaim-ticket":{source:"button",params:{},workers:"opendiscord:unclaim-ticket"},
|
||||
"opendiscord:pin-ticket":{source:"button",params:{},workers:"opendiscord:pin-ticket"},
|
||||
"opendiscord:unpin-ticket":{source:"button",params:{},workers:"opendiscord:unpin-ticket"},
|
||||
"opendiscord:close-ticket":{source:"button",params:{},workers:"opendiscord:close-ticket"},
|
||||
"opendiscord:reopen-ticket":{source:"button",params:{},workers:"opendiscord:reopen-ticket"},
|
||||
"opendiscord:delete-ticket":{source:"button",params:{},workers:"opendiscord:delete-ticket"},
|
||||
|
||||
"opendiscord:transcript-error-retry":{source:"button",params:{},workers:"opendiscord:permissions"|"opendiscord:delete-ticket"|"opendiscord:logs"},
|
||||
"opendiscord:transcript-error-continue":{source:"button",params:{},workers:"opendiscord:permissions"|"opendiscord:delete-ticket"|"opendiscord:logs"},
|
||||
"opendiscord:clear-continue":{source:"button",params:{},workers:"opendiscord:clear-continue"},
|
||||
}
|
||||
|
||||
/**## ODDropdownResponderManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODDropdownResponderManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODDropdownResponderManagerIdMappings extends api.ODDropdownResponderManagerIdConstraint {
|
||||
"opendiscord:panel-dropdown-tickets":{source:"dropdown",params:{},workers:"opendiscord:panel-dropdown-tickets"},
|
||||
}
|
||||
|
||||
/**## ODModalResponderManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODModalResponderManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODModalResponderManagerIdMappings extends api.ODModalResponderManagerIdConstraint {
|
||||
"opendiscord:ticket-questions":{source:"modal",params:{},workers:"opendiscord:ticket-questions"},
|
||||
"opendiscord:close-ticket-reason":{source:"modal",params:{},workers:"opendiscord:close-ticket-reason"},
|
||||
"opendiscord:reopen-ticket-reason":{source:"modal",params:{},workers:"opendiscord:reopen-ticket-reason"},
|
||||
"opendiscord:delete-ticket-reason":{source:"modal",params:{},workers:"opendiscord:delete-ticket-reason"},
|
||||
"opendiscord:claim-ticket-reason":{source:"modal",params:{},workers:"opendiscord:claim-ticket-reason"},
|
||||
"opendiscord:unclaim-ticket-reason":{source:"modal",params:{},workers:"opendiscord:unclaim-ticket-reason"},
|
||||
"opendiscord:pin-ticket-reason":{source:"modal",params:{},workers:"opendiscord:pin-ticket-reason"},
|
||||
"opendiscord:unpin-ticket-reason":{source:"modal",params:{},workers:"opendiscord:unpin-ticket-reason"},
|
||||
}
|
||||
|
||||
/**## ODContextMenuResponderManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODContextMenuResponderManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODContextMenuResponderManagerIdMappings extends api.ODContextMenuResponderManagerIdConstraint {
|
||||
//"opendiscord:example":{source:"context-menu",params:{},workers:"opendiscord:example"},
|
||||
}
|
||||
|
||||
/**## ODAutocompleteResponderManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODAutocompleteResponderManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODAutocompleteResponderManagerIdMappings extends api.ODAutocompleteResponderManagerIdConstraint {
|
||||
"opendiscord:panel-id":{source:"autocomplete",params:{},workers:"opendiscord:panel-id"},
|
||||
"opendiscord:option-id":{source:"autocomplete",params:{},workers:"opendiscord:option-id"}
|
||||
}
|
||||
|
||||
/**## ODMappedCommandResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODCommandResponderManager` class.
|
||||
*/
|
||||
export class ODMappedCommandResponderManager extends api.ODCommandResponderManager<ODCommandResponderManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedButtonResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODButtonResponderManager` class.
|
||||
*/
|
||||
export class ODMappedButtonResponderManager extends api.ODButtonResponderManager<ODButtonResponderManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedDropdownResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODDropdownResponderManager` class.
|
||||
*/
|
||||
export class ODMappedDropdownResponderManager extends api.ODDropdownResponderManager<ODDropdownResponderManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedModalResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODModalResponderManager` class.
|
||||
*/
|
||||
export class ODMappedModalResponderManager extends api.ODModalResponderManager<ODModalResponderManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedContextMenuResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODContextMenuResponderManager` class.
|
||||
*/
|
||||
export class ODMappedContextMenuResponderManager extends api.ODContextMenuResponderManager<ODContextMenuResponderManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedAutocompleteResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODAutocompleteResponderManager` class.
|
||||
*/
|
||||
export class ODMappedAutocompleteResponderManager extends api.ODAutocompleteResponderManager<ODAutocompleteResponderManagerIdMappings> {}
|
||||
|
||||
/**## ODMappedResponderManager `class
|
||||
* A special class with types for the Open Ticket `ODResponderManager` class.
|
||||
*/
|
||||
export class ODMappedResponderManager extends api.ODResponderManager<ODCommandResponderManagerIdMappings,ODButtonResponderManagerIdMappings,ODDropdownResponderManagerIdMappings,ODModalResponderManagerIdMappings,ODContextMenuResponderManagerIdMappings,ODAutocompleteResponderManagerIdMappings> {}
|
||||
@@ -0,0 +1,17 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET SESSION MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODSessionManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODSessionManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODSessionManagerIdMappings extends api.ODSessionManagerIdConstraint {
|
||||
//"opendiscord:example-session":api.ODSession
|
||||
}
|
||||
|
||||
/**## ODMappedSessionManager `class
|
||||
* A special class with types for the Open Ticket `ODSessionManager` class.
|
||||
*/
|
||||
export class ODMappedSessionManager extends api.ODSessionManager<ODSessionManagerIdMappings> {}
|
||||
@@ -0,0 +1,24 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET STARTSCREEN MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODLiveStatusManagerIdMappings } from "./console"
|
||||
|
||||
/**## ODStartScreenManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODStartScreenManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStartScreenManagerIdMappings extends api.ODStartScreenManagerIdConstraint {
|
||||
"opendiscord:logo":api.ODStartScreenLogoComponent,
|
||||
"opendiscord:header":api.ODStartScreenHeaderComponent,
|
||||
"opendiscord:flags":api.ODStartScreenFlagsCategoryComponent,
|
||||
"opendiscord:plugins":api.ODStartScreenPluginsCategoryComponent,
|
||||
"opendiscord:stats":api.ODStartScreenPropertiesCategoryComponent,
|
||||
"opendiscord:livestatus":api.ODStartScreenLiveStatusCategoryComponent<api.ODLiveStatusManager<ODLiveStatusManagerIdMappings>>,
|
||||
"opendiscord:logs":api.ODStartScreenCategoryComponent
|
||||
}
|
||||
|
||||
/**## ODMappedStartScreenManager `class
|
||||
* A special class with types for the Open Ticket `ODStartScreenManager` class.
|
||||
*/
|
||||
export class ODMappedStartScreenManager extends api.ODStartScreenManager<ODStartScreenManagerIdMappings> {}
|
||||
@@ -0,0 +1,139 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET STATISTICS MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
|
||||
/**## ODStatisticManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODStatisticManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODStatisticManagerIdMappings extends api.ODStatisticManagerIdConstraint {
|
||||
"opendiscord:global":ODGlobalStatisticScope,
|
||||
"opendiscord:system":ODSystemStatisticScope,
|
||||
"opendiscord:user":ODUserStatisticScope,
|
||||
"opendiscord:ticket":ODTicketStatisticScope,
|
||||
"opendiscord:participants":ODParticipantsStatisticScope,
|
||||
"opendiscord:messages":ODMessagesStatisticScope,
|
||||
}
|
||||
|
||||
/**## ODMappedStatisticManager `class
|
||||
* A special class with types for the Open Ticket `ODStatisticManager` class.
|
||||
*/
|
||||
export class ODMappedStatisticManager extends api.ODStatisticManager<ODStatisticManagerIdMappings> {}
|
||||
|
||||
/**## ODGlobalStatisticScope `class
|
||||
* A special class with types for the Open Ticket `Global` statistics category/scope.
|
||||
*/
|
||||
export class ODGlobalStatisticScope extends api.ODStatisticGlobalScope<ODGlobalStatisticScopeIdMappings> {}
|
||||
|
||||
/**## ODSystemStatisticScope `class
|
||||
* A special class with types for the Open Ticket `System` statistics category/scope.
|
||||
*/
|
||||
export class ODSystemStatisticScope extends api.ODStatisticGlobalScope<ODSystemStatisticScopeIdMappings> {}
|
||||
|
||||
/**## ODUserStatisticScope `class
|
||||
* A special class with types for the Open Ticket `User` statistics category/scope.
|
||||
*/
|
||||
export class ODUserStatisticScope extends api.ODStatisticScope<ODUserStatisticScopeIdMappings> {}
|
||||
|
||||
/**## ODTicketStatisticScope `class
|
||||
* A special class with types for the Open Ticket `Ticket` statistics category/scope.
|
||||
*/
|
||||
export class ODTicketStatisticScope extends api.ODStatisticScope<ODTicketStatisticScopeIdMappings> {}
|
||||
|
||||
/**## ODParticipantsStatisticScope `class
|
||||
* A special class with types for the Open Ticket `Participants` statistics category/scope.
|
||||
*/
|
||||
export class ODParticipantsStatisticScope extends api.ODStatisticScope<ODParticipantsStatisticScopeIdMappings> {}
|
||||
|
||||
/**## ODMessagesStatisticScope `class
|
||||
* A special class with types for the Open Ticket `Messages` statistics category/scope.
|
||||
*/
|
||||
export class ODMessagesStatisticScope extends api.ODStatisticScope<ODMessagesStatisticScopeIdMappings> {}
|
||||
|
||||
/////////////////////////////////////////
|
||||
// STATISTICS MAPPINGS, CATEGORIES & TYPES
|
||||
/////////////////////////////////////////
|
||||
|
||||
/**## ODGlobalStatisticScopeIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODGlobalStatisticScope` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODGlobalStatisticScopeIdMappings extends api.ODStatisticScopeIdConstraint {
|
||||
"opendiscord:tickets-created":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-closed":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-deleted":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-reopened":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-autoclosed":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-autodeleted":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-claimed":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-pinned":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-moved":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-transferred":api.ODBaseStatistic,
|
||||
"opendiscord:users-blacklisted":api.ODBaseStatistic,
|
||||
"opendiscord:transcripts-created":api.ODBaseStatistic,
|
||||
"opendiscord:ticket-volume":api.ODDynamicStatistic,
|
||||
"opendiscord:average-tickets":api.ODDynamicStatistic,
|
||||
}
|
||||
|
||||
/**## ODSystemStatisticScopeIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODSystemStatisticScope` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODSystemStatisticScopeIdMappings extends api.ODStatisticScopeIdConstraint {
|
||||
"opendiscord:startup-date":api.ODDynamicStatistic,
|
||||
"opendiscord:system-uptime":api.ODDynamicStatistic,
|
||||
"opendiscord:version":api.ODDynamicStatistic
|
||||
}
|
||||
|
||||
/**## ODUserStatisticScopeIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODUserStatisticScope` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODUserStatisticScopeIdMappings extends api.ODStatisticScopeIdConstraint {
|
||||
"opendiscord:name":api.ODDynamicStatistic,
|
||||
"opendiscord:role":api.ODDynamicStatistic,
|
||||
"opendiscord:tickets-created":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-closed":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-deleted":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-reopened":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-claimed":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-pinned":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-moved":api.ODBaseStatistic,
|
||||
"opendiscord:tickets-transferred":api.ODBaseStatistic,
|
||||
"opendiscord:users-blacklisted":api.ODBaseStatistic,
|
||||
"opendiscord:transcripts-created":api.ODBaseStatistic,
|
||||
"opendiscord:current-tickets":api.ODDynamicStatistic,
|
||||
}
|
||||
|
||||
/**## ODTicketStatisticScopeIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODTicketStatisticScope` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODTicketStatisticScopeIdMappings extends api.ODStatisticScopeIdConstraint {
|
||||
"opendiscord:name":api.ODDynamicStatistic,
|
||||
"opendiscord:status":api.ODDynamicStatistic,
|
||||
"opendiscord:claimed":api.ODDynamicStatistic,
|
||||
"opendiscord:pinned":api.ODDynamicStatistic,
|
||||
"opendiscord:creation-date":api.ODDynamicStatistic,
|
||||
"opendiscord:creator":api.ODDynamicStatistic,
|
||||
"opendiscord:ticket-age":api.ODDynamicStatistic,
|
||||
"opendiscord:response-time":api.ODDynamicStatistic,
|
||||
"opendiscord:resolution-time":api.ODDynamicStatistic,
|
||||
}
|
||||
|
||||
/**## ODParticipantsStatisticScopeIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODParticipantsStatisticScope` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODParticipantsStatisticScopeIdMappings extends api.ODStatisticScopeIdConstraint {
|
||||
"opendiscord:participants":api.ODDynamicStatistic
|
||||
}
|
||||
|
||||
/**## ODMessagesStatisticScopeIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODMessagesStatisticScope` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODMessagesStatisticScopeIdMappings extends api.ODStatisticScopeIdConstraint {
|
||||
"opendiscord:count":api.ODDynamicStatistic
|
||||
}
|
||||
@@ -1,15 +1,13 @@
|
||||
///////////////////////////////////////
|
||||
//DEFAULT VERIFYBAR MODULE
|
||||
//OPEN TICKET VERIFYBAR MAPPINGS
|
||||
///////////////////////////////////////
|
||||
import * as api from "@open-discord-bots/framework/api"
|
||||
import { ODWorkerManager_Default } from "../defaults/worker"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
/**## ODVerifyBarManagerIds_Default `interface`
|
||||
* This interface is a list of ids available in the `ODVerifyBarManager_Default` class.
|
||||
/**## ODVerifyBarManagerIdMappings `interface`
|
||||
* A list of all available IDs in the default `ODVerifyBarManager` class in `opendiscord`.
|
||||
* It's used to generate typescript declarations for this class.
|
||||
*/
|
||||
export interface ODVerifyBarManagerIds_Default {
|
||||
export interface ODVerifyBarManagerIdMappings extends api.ODVerifyBarManagerIdConstraint {
|
||||
"opendiscord:claim-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:claim-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"},
|
||||
"opendiscord:claim-ticket-unclaim-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:claim-ticket",failureWorkerIds:"opendiscord:back-to-unclaim-message"},
|
||||
"opendiscord:unclaim-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:unclaim-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"},
|
||||
@@ -29,42 +27,7 @@ export interface ODVerifyBarManagerIds_Default {
|
||||
"opendiscord:delete-ticket-autoclose-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:delete-ticket",failureWorkerIds:"opendiscord:back-to-autoclose-message"}
|
||||
}
|
||||
|
||||
/**## ODVerifyBarManager_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODVerifyBarManager class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the global variable `opendiscord.verifybars`!
|
||||
/**## ODMappedVerifyBarManager `class
|
||||
* A special class with types for the Open Ticket `ODVerifyBarManager` class.
|
||||
*/
|
||||
export class ODVerifyBarManager_Default extends api.ODVerifyBarManager {
|
||||
get<VerifyBarId extends keyof ODVerifyBarManagerIds_Default>(id:VerifyBarId): ODVerifyBar_Default<ODVerifyBarManagerIds_Default[VerifyBarId]["successWorkerIds"],ODVerifyBarManagerIds_Default[VerifyBarId]["failureWorkerIds"]>
|
||||
get(id:api.ODValidId): api.ODVerifyBar|null
|
||||
|
||||
get(id:api.ODValidId): api.ODVerifyBar|null {
|
||||
return super.get(id)
|
||||
}
|
||||
|
||||
remove<VerifyBarId extends keyof ODVerifyBarManagerIds_Default>(id:VerifyBarId): ODVerifyBar_Default<ODVerifyBarManagerIds_Default[VerifyBarId]["successWorkerIds"],ODVerifyBarManagerIds_Default[VerifyBarId]["failureWorkerIds"]>
|
||||
remove(id:api.ODValidId): api.ODVerifyBar|null
|
||||
|
||||
remove(id:api.ODValidId): api.ODVerifyBar|null {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODVerifyBarManagerIds_Default): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
return super.exists(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**## ODVerifyBar_Default `default_class`
|
||||
* This is a special class that adds type definitions & typescript to the ODVerifyBar class.
|
||||
* It doesn't add any extra features!
|
||||
*
|
||||
* This default class is made for the default `ODVerifyBar`'s!
|
||||
*/
|
||||
export class ODVerifyBar_Default<SuccessWorkerIds extends string,FailureWorkerIds extends string> extends api.ODVerifyBar {
|
||||
declare success: ODWorkerManager_Default<api.ODButtonResponderInstance,"verifybar",{data:string|null,verifybarMessage:discord.Message<boolean>|null},SuccessWorkerIds>
|
||||
declare failure: ODWorkerManager_Default<api.ODButtonResponderInstance,"verifybar",{data:string|null,verifybarMessage:discord.Message<boolean>|null},FailureWorkerIds>
|
||||
}
|
||||
export class ODMappedVerifyBarManager extends api.ODVerifyBarManager<ODVerifyBarManagerIdMappings> {}
|
||||
@@ -45,7 +45,7 @@ export const loadAllConfigCheckerTranslations = async () => {
|
||||
}
|
||||
|
||||
//GLOBAL FUNCTIONS
|
||||
export const registerDefaultCheckerSystemTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => {
|
||||
export const registerDefaultCheckerSystemTranslations = (tm:api.ODMappedCheckerTranslationRegister,lm:api.ODMappedLanguageManager) => {
|
||||
//SYSTEM
|
||||
//tm.quickTranslate(lm,"checker.system.headerOpenTicket","other","opendiscord:header-openticket") //OPEN TICKET (ignore)
|
||||
tm.quickTranslate(lm,"checker.system.typeError","other","opendiscord:type-error") // [ERROR] (ignore)
|
||||
@@ -62,7 +62,7 @@ export const registerDefaultCheckerSystemTranslations = (tm:api.ODCheckerTransla
|
||||
tm.quickTranslate(lm,"checker.system.dataMessages","other","opendiscord:data-message") // message
|
||||
}
|
||||
|
||||
export const registerDefaultCheckerMessageTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => {
|
||||
export const registerDefaultCheckerMessageTranslations = (tm:api.ODMappedCheckerTranslationRegister,lm:api.ODMappedLanguageManager) => {
|
||||
//STRUCTURES
|
||||
tm.quickTranslate(lm,"checker.messages.invalidType","message","opendiscord:invalid-type") // This property needs to be the type: {0}!
|
||||
tm.quickTranslate(lm,"checker.messages.propertyMissing","message","opendiscord:property-missing") // The property {0} is missing from this object!
|
||||
@@ -137,7 +137,7 @@ export const registerDefaultCheckerMessageTranslations = (tm:api.ODCheckerTransl
|
||||
tm.quickTranslate(lm,"checker.messages.idNonExistent","message","opendiscord:id-non-existent") // The id {0} doesn't exist!
|
||||
}
|
||||
|
||||
export const registerDefaultCheckerCustomTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => {
|
||||
export const registerDefaultCheckerCustomTranslations = (tm:api.ODMappedCheckerTranslationRegister,lm:api.ODMappedLanguageManager) => {
|
||||
//CUSTOM
|
||||
tm.quickTranslate(lm,"checker.messages.invalidLanguage","message","opendiscord:invalid-language") // This is an invalid language!
|
||||
tm.quickTranslate(lm,"checker.messages.invalidButton","message","opendiscord:invalid-button") // This button needs to have at least an {0} or {1}!
|
||||
|
||||
@@ -402,7 +402,7 @@ const loadAutoCode = () => {
|
||||
await opendiscord.actions.get("opendiscord:close-ticket").run("autoclose",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autoclose",sendMessage:false})
|
||||
await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autoclose-message").build("timeout",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message)
|
||||
count++
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autoclosed",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-autoclosed",1,"increase")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -428,7 +428,7 @@ const loadAutoCode = () => {
|
||||
//autoclose ticket
|
||||
await opendiscord.actions.get("opendiscord:close-ticket").run("autoclose",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autoclose",sendMessage:false})
|
||||
await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autoclose-message").build("leave",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message)
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autoclosed",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-autoclosed",1,"increase")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -457,7 +457,7 @@ const loadAutoCode = () => {
|
||||
await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autodelete-message").build("timeout",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message)
|
||||
await opendiscord.actions.get("opendiscord:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false})
|
||||
count++
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autodeleted",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-autodeleted",1,"increase")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -484,7 +484,7 @@ const loadAutoCode = () => {
|
||||
//autodelete ticket
|
||||
await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autodelete-message").build("leave",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message)
|
||||
await opendiscord.actions.get("opendiscord:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false})
|
||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autodeleted",1,"increase")
|
||||
await opendiscord.statistics.get("opendiscord:global").setStat("opendiscord:tickets-autodeleted",1,"increase")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {opendiscord, api, utilities} from "../../index"
|
||||
|
||||
export const loadAllEvents = () => {
|
||||
const eventList: (keyof api.ODEventIds_Default)[] = [
|
||||
const eventList: (keyof api.ODNoGeneric<api.ODEventManagerIdMappings>)[] = [
|
||||
//error handling
|
||||
"onErrorHandling",
|
||||
"afterErrorHandling",
|
||||
@@ -258,13 +258,13 @@ export const loadAllEvents = () => {
|
||||
"onHelpMenuComponentLoad",
|
||||
"afterHelpMenuComponentsLoaded",
|
||||
|
||||
//stats
|
||||
"onStatScopeLoad",
|
||||
"afterStatScopesLoaded",
|
||||
"onStatLoad",
|
||||
"afterStatsLoaded",
|
||||
"onStatInit",
|
||||
"afterStatsInitiated",
|
||||
//statistics
|
||||
"onStatisticScopeLoad",
|
||||
"afterStatisticScopesLoaded",
|
||||
"onStatisticLoad",
|
||||
"afterStatisticsLoaded",
|
||||
"onStatisticInit",
|
||||
"afterStatisticsInitiated",
|
||||
|
||||
//plugin loading before code
|
||||
"onPluginBeforeCodeLoad",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {opendiscord, api, utilities} from "../../index"
|
||||
|
||||
export const loadAllProgressBarRenderers = async () => {
|
||||
const defaultSettings: api.ODProgressBarRenderer_DefaultSettings = {
|
||||
const defaultSettings: api.ODDefaultProgressBarRendererSettings = {
|
||||
borderColor:"gray",
|
||||
filledBarColor:"openticket",
|
||||
emptyBarColor:"gray",
|
||||
@@ -23,34 +23,34 @@ export const loadAllProgressBarRenderers = async () => {
|
||||
}
|
||||
|
||||
//VALUE RENDERER
|
||||
const valueRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
||||
const valueRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||
valueRendererSettings.labelType = "value"
|
||||
opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:value-renderer",valueRendererSettings))
|
||||
opendiscord.progressbars.renderers.add(new api.ODDefaultProgressBarRenderer("opendiscord:value-renderer",valueRendererSettings))
|
||||
|
||||
//FRACTION RENDERER
|
||||
const fractionRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
||||
const fractionRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||
fractionRendererSettings.labelType = "fraction"
|
||||
opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:fraction-renderer",fractionRendererSettings))
|
||||
opendiscord.progressbars.renderers.add(new api.ODDefaultProgressBarRenderer("opendiscord:fraction-renderer",fractionRendererSettings))
|
||||
|
||||
//PERCENTAGE RENDERER
|
||||
const percentageRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
||||
const percentageRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||
percentageRendererSettings.labelType = "percentage"
|
||||
opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:percentage-renderer",percentageRendererSettings))
|
||||
opendiscord.progressbars.renderers.add(new api.ODDefaultProgressBarRenderer("opendiscord:percentage-renderer",percentageRendererSettings))
|
||||
|
||||
//TIME MS RENDERER
|
||||
const timeMsRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
||||
const timeMsRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||
timeMsRendererSettings.labelType = "time-ms"
|
||||
opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:time-ms-renderer",timeMsRendererSettings))
|
||||
opendiscord.progressbars.renderers.add(new api.ODDefaultProgressBarRenderer("opendiscord:time-ms-renderer",timeMsRendererSettings))
|
||||
|
||||
//TIME SEC RENDERER
|
||||
const timeSecRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
||||
const timeSecRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||
timeSecRendererSettings.labelType = "time-sec"
|
||||
opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:time-sec-renderer",timeSecRendererSettings))
|
||||
opendiscord.progressbars.renderers.add(new api.ODDefaultProgressBarRenderer("opendiscord:time-sec-renderer",timeSecRendererSettings))
|
||||
|
||||
//TIME MIN RENDERER
|
||||
const timeMinRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
||||
const timeMinRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||
timeMinRendererSettings.labelType = "time-min"
|
||||
opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:time-min-renderer",timeMinRendererSettings))
|
||||
opendiscord.progressbars.renderers.add(new api.ODDefaultProgressBarRenderer("opendiscord:time-min-renderer",timeMinRendererSettings))
|
||||
}
|
||||
|
||||
export const loadAllProgressBars = async () => {
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
import {opendiscord, api, utilities} from "../../index"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
const stats = opendiscord.stats
|
||||
const stats = opendiscord.statistics
|
||||
const lang = opendiscord.languages
|
||||
|
||||
export const loadAllStatScopes = async () => {
|
||||
stats.add(new api.ODStatGlobalScope("opendiscord:global",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.global"))))
|
||||
stats.add(new api.ODStatGlobalScope("opendiscord:system",utilities.emojiTitle("⚙️",lang.getTranslation("stats.scopes.system"))))
|
||||
stats.add(new api.ODStatScope("opendiscord:user",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.user"))))
|
||||
stats.add(new api.ODStatScope("opendiscord:ticket",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.ticket"))))
|
||||
stats.add(new api.ODStatScope("opendiscord:participants",utilities.emojiTitle("👥",lang.getTranslation("stats.scopes.participants"))))
|
||||
stats.add(new api.ODStatScope("opendiscord:messages",utilities.emojiTitle("💬",lang.getTranslation("stats.scopes.messages"))))
|
||||
export const loadAllStatisticScopes = async () => {
|
||||
stats.add(new api.ODStatisticGlobalScope("opendiscord:global",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.global"))))
|
||||
stats.add(new api.ODStatisticGlobalScope("opendiscord:system",utilities.emojiTitle("⚙️",lang.getTranslation("stats.scopes.system"))))
|
||||
stats.add(new api.ODStatisticScope("opendiscord:user",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.user"))))
|
||||
stats.add(new api.ODStatisticScope("opendiscord:ticket",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.ticket"))))
|
||||
stats.add(new api.ODStatisticScope("opendiscord:participants",utilities.emojiTitle("👥",lang.getTranslation("stats.scopes.participants"))))
|
||||
stats.add(new api.ODStatisticScope("opendiscord:messages",utilities.emojiTitle("💬",lang.getTranslation("stats.scopes.messages"))))
|
||||
}
|
||||
|
||||
export const loadAllStats = async () => {
|
||||
export const loadAllStatistics = async () => {
|
||||
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
||||
if (!generalConfig) return
|
||||
|
||||
const global = stats.get("opendiscord:global")
|
||||
if (global){
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-created",13,lang.getTranslation("stats.properties.ticketsCreated"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-closed",12,lang.getTranslation("stats.properties.ticketsClosed"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-deleted",11,lang.getTranslation("stats.properties.ticketsDeleted"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-reopened",10,lang.getTranslation("stats.properties.ticketsReopened"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-autoclosed",9,lang.getTranslation("stats.properties.ticketsAutoclosed"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-autodeleted",8,lang.getTranslation("stats.properties.ticketsAutodeleted"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-claimed",7,lang.getTranslation("stats.properties.ticketsClaimed"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-pinned",6,lang.getTranslation("stats.properties.ticketsPinned"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-moved",5,lang.getTranslation("stats.properties.ticketsMoved"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:tickets-transferred",4,lang.getTranslation("stats.properties.ticketsTransferred"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:users-blacklisted",3,lang.getTranslation("stats.properties.usersBlacklisted"),0))
|
||||
global.add(new api.ODBasicStat("opendiscord:transcripts-created",2,lang.getTranslation("stats.properties.transcriptsCreated"),0))
|
||||
global.add(new api.ODDynamicStat("opendiscord:ticket-volume",1,() => {
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-created",13,lang.getTranslation("stats.properties.ticketsCreated"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-closed",12,lang.getTranslation("stats.properties.ticketsClosed"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-deleted",11,lang.getTranslation("stats.properties.ticketsDeleted"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-reopened",10,lang.getTranslation("stats.properties.ticketsReopened"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-autoclosed",9,lang.getTranslation("stats.properties.ticketsAutoclosed"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-autodeleted",8,lang.getTranslation("stats.properties.ticketsAutodeleted"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-claimed",7,lang.getTranslation("stats.properties.ticketsClaimed"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-pinned",6,lang.getTranslation("stats.properties.ticketsPinned"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-moved",5,lang.getTranslation("stats.properties.ticketsMoved"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:tickets-transferred",4,lang.getTranslation("stats.properties.ticketsTransferred"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:users-blacklisted",3,lang.getTranslation("stats.properties.usersBlacklisted"),0))
|
||||
global.add(new api.ODBaseStatistic("opendiscord:transcripts-created",2,lang.getTranslation("stats.properties.transcriptsCreated"),0))
|
||||
global.add(new api.ODDynamicStatistic("opendiscord:ticket-volume",1,() => {
|
||||
return lang.getTranslation("stats.properties.ticketVolume")+": `"+opendiscord.tickets.getLength()+"`"
|
||||
}))
|
||||
global.add(new api.ODDynamicStat("opendiscord:average-tickets",0,async () => {
|
||||
const userTicketsCreated = await opendiscord.stats.get("opendiscord:user").getAllStats("opendiscord:tickets-created")
|
||||
global.add(new api.ODDynamicStatistic("opendiscord:average-tickets",0,async () => {
|
||||
const userTicketsCreated = await opendiscord.statistics.get("opendiscord:user").getAllStats("opendiscord:tickets-created")
|
||||
const average = userTicketsCreated.map((s) => s.value as number).filter((t) => t > 0).reduce((prev,curr) => prev+curr,0)/userTicketsCreated.length
|
||||
const roundedAverage = Math.round(average*1000)/1000
|
||||
return lang.getTranslation("stats.properties.averageTickets")+": `"+roundedAverage+"`"
|
||||
@@ -44,23 +44,23 @@ export const loadAllStats = async () => {
|
||||
|
||||
const system = stats.get("opendiscord:system")
|
||||
if (system){
|
||||
system.add(new api.ODDynamicStat("opendiscord:startup-date",2,() => {
|
||||
system.add(new api.ODDynamicStatistic("opendiscord:startup-date",2,() => {
|
||||
return lang.getTranslation("params.uppercase.startupDate")+": "+discord.time(opendiscord.processStartupDate,"f")
|
||||
}))
|
||||
system.add(new api.ODDynamicStat("opendiscord:system-uptime",1,() => {
|
||||
system.add(new api.ODDynamicStatistic("opendiscord:system-uptime",1,() => {
|
||||
return lang.getTranslation("params.uppercase.uptime")+": "+discord.time(opendiscord.processStartupDate,"R")
|
||||
}))
|
||||
system.add(new api.ODDynamicStat("opendiscord:version",0,() => {
|
||||
system.add(new api.ODDynamicStatistic("opendiscord:version",0,() => {
|
||||
return lang.getTranslation("params.uppercase.version")+": `"+opendiscord.versions.get("opendiscord:version").toString()+"`"
|
||||
}))
|
||||
}
|
||||
|
||||
const user = stats.get("opendiscord:user")
|
||||
if (user){
|
||||
user.add(new api.ODDynamicStat("opendiscord:name",11,async (scopeId,guild,channel,user) => {
|
||||
user.add(new api.ODDynamicStatistic("opendiscord:name",11,async (scopeId,guild,channel,user) => {
|
||||
return lang.getTranslation("params.uppercase.name")+": "+discord.userMention(scopeId)
|
||||
}))
|
||||
user.add(new api.ODDynamicStat("opendiscord:role",10,async (scopeId,guild,channel,user) => {
|
||||
user.add(new api.ODDynamicStatistic("opendiscord:role",10,async (scopeId,guild,channel,user) => {
|
||||
const scopeMember = await opendiscord.client.fetchGuildMember(guild,scopeId)
|
||||
if (!scopeMember) return ""
|
||||
|
||||
@@ -72,27 +72,27 @@ export const loadAllStats = async () => {
|
||||
if (permissions.type == "support") return lang.getTranslation("params.uppercase.role")+": 💬 `"+lang.getTranslation("stats.roles.support")+"`"
|
||||
else return lang.getTranslation("params.uppercase.role")+": 👤 `"+lang.getTranslation("stats.roles.member")+"`"
|
||||
}))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-created",10,lang.getTranslation("stats.properties.ticketsCreated"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-closed",9,lang.getTranslation("stats.properties.ticketsClosed"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-deleted",8,lang.getTranslation("stats.properties.ticketsDeleted"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-reopened",7,lang.getTranslation("stats.properties.ticketsReopened"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-claimed",6,lang.getTranslation("stats.properties.ticketsClaimed"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-pinned",5,lang.getTranslation("stats.properties.ticketsPinned"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-moved",4,lang.getTranslation("stats.properties.ticketsMoved"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:tickets-transferred",3,lang.getTranslation("stats.properties.ticketsTransferred"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:users-blacklisted",2,lang.getTranslation("stats.properties.usersBlacklisted"),0))
|
||||
user.add(new api.ODBasicStat("opendiscord:transcripts-created",1,lang.getTranslation("stats.properties.transcriptsCreated"),0))
|
||||
user.add(new api.ODDynamicStat("opendiscord:current-tickets",0,async (scopeId,guild,channel,user) => {
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-created",10,lang.getTranslation("stats.properties.ticketsCreated"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-closed",9,lang.getTranslation("stats.properties.ticketsClosed"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-deleted",8,lang.getTranslation("stats.properties.ticketsDeleted"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-reopened",7,lang.getTranslation("stats.properties.ticketsReopened"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-claimed",6,lang.getTranslation("stats.properties.ticketsClaimed"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-pinned",5,lang.getTranslation("stats.properties.ticketsPinned"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-moved",4,lang.getTranslation("stats.properties.ticketsMoved"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:tickets-transferred",3,lang.getTranslation("stats.properties.ticketsTransferred"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:users-blacklisted",2,lang.getTranslation("stats.properties.usersBlacklisted"),0))
|
||||
user.add(new api.ODBaseStatistic("opendiscord:transcripts-created",1,lang.getTranslation("stats.properties.transcriptsCreated"),0))
|
||||
user.add(new api.ODDynamicStatistic("opendiscord:current-tickets",0,async (scopeId,guild,channel,user) => {
|
||||
return lang.getTranslation("stats.properties.currentTickets")+": `"+opendiscord.tickets.getFiltered((t) => t.get("opendiscord:opened-by").value === scopeId).length+"`"
|
||||
}))
|
||||
}
|
||||
|
||||
const ticket = stats.get("opendiscord:ticket")
|
||||
if (ticket){
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:name",5,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:name",5,async (scopeId,guild,channel,user) => {
|
||||
return lang.getTranslation("params.uppercase.ticket")+": "+discord.channelMention(scopeId)
|
||||
}))
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:status",4,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:status",4,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
@@ -100,35 +100,35 @@ export const loadAllStats = async () => {
|
||||
|
||||
return closed ? lang.getTranslation("params.uppercase.status")+": 🔒 `"+lang.getTranslation("params.uppercase.closed")+"`" : lang.getTranslation("params.uppercase.status")+": 🔓 `"+lang.getTranslation("params.uppercase.open")+"`"
|
||||
}))
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:claimed",3,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:claimed",3,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
const claimed = ticket.exists("opendiscord:claimed") ? ticket.get("opendiscord:claimed").value : false
|
||||
return claimed ? lang.getTranslation("params.uppercase.claimed")+": 🟢 `"+lang.getTranslation("params.uppercase.yes")+"`" : lang.getTranslation("params.uppercase.claimed")+": 🔴 `"+lang.getTranslation("params.uppercase.no")+"`"
|
||||
}))
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:pinned",2,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:pinned",2,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
const pinned = ticket.exists("opendiscord:pinned") ? ticket.get("opendiscord:pinned").value : false
|
||||
return pinned ? lang.getTranslation("params.uppercase.pinned")+": 🟢 `"+lang.getTranslation("params.uppercase.yes")+"`" : lang.getTranslation("params.uppercase.pinned")+": 🔴 `"+lang.getTranslation("params.uppercase.no")+"`"
|
||||
}))
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:creation-date",1,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:creation-date",1,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
const rawDate = ticket.get("opendiscord:opened-on").value ?? new Date().getTime()
|
||||
return lang.getTranslation("params.uppercase.creationDate")+": "+discord.time(new Date(rawDate),"f")
|
||||
}))
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:creator",0,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:creator",0,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
const creator = ticket.get("opendiscord:opened-by").value
|
||||
return lang.getTranslation("params.uppercase.creator")+": "+ (creator ? discord.userMention(creator) : "`unknown`")
|
||||
}))
|
||||
ticket.add(new api.ODDynamicStat("opendiscord:ticket-age",-1,async (scopeId,guild,channel,user) => {
|
||||
ticket.add(new api.ODDynamicStatistic("opendiscord:ticket-age",-1,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
@@ -142,7 +142,7 @@ export const loadAllStats = async () => {
|
||||
|
||||
const participants = stats.get("opendiscord:participants")
|
||||
if (participants){
|
||||
participants.add(new api.ODDynamicStat("opendiscord:participants",0,async (scopeId,guild,channel,user) => {
|
||||
participants.add(new api.ODDynamicStatistic("opendiscord:participants",0,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
@@ -157,7 +157,7 @@ export const loadAllStats = async () => {
|
||||
|
||||
const messages = stats.get("opendiscord:messages")
|
||||
if (messages){
|
||||
messages.add(new api.ODDynamicStat("opendiscord:count",0,async (scopeId,guild,channel,user) => {
|
||||
messages.add(new api.ODDynamicStatistic("opendiscord:count",0,async (scopeId,guild,channel,user) => {
|
||||
const ticket = opendiscord.tickets.get(scopeId)
|
||||
if (!ticket) return ""
|
||||
|
||||
@@ -54,7 +54,7 @@ export const loadAllOptions = async () => {
|
||||
})
|
||||
}
|
||||
|
||||
export const loadTicketOption = (option:api.ODJsonConfig_DefaultOptionTicketType): api.ODTicketOption => {
|
||||
export const loadTicketOption = (option:api.ODOptionsJsonConfig_TicketOption): api.ODTicketOption => {
|
||||
return new api.ODTicketOption(option.id,[
|
||||
new api.ODOptionData("opendiscord:name",option.name),
|
||||
new api.ODOptionData("opendiscord:description",option.description),
|
||||
@@ -107,7 +107,7 @@ export const loadTicketOption = (option:api.ODJsonConfig_DefaultOptionTicketType
|
||||
])
|
||||
}
|
||||
|
||||
export const loadWebsiteOption = (opt:api.ODJsonConfig_DefaultOptionWebsiteType): api.ODWebsiteOption => {
|
||||
export const loadWebsiteOption = (opt:api.ODOptionsJsonConfig_WebsiteOption): api.ODWebsiteOption => {
|
||||
return new api.ODWebsiteOption(opt.id,[
|
||||
new api.ODOptionData("opendiscord:name",opt.name),
|
||||
new api.ODOptionData("opendiscord:description",opt.description),
|
||||
@@ -119,7 +119,7 @@ export const loadWebsiteOption = (opt:api.ODJsonConfig_DefaultOptionWebsiteType)
|
||||
])
|
||||
}
|
||||
|
||||
export const loadRoleOption = (opt:api.ODJsonConfig_DefaultOptionRoleType): api.ODRoleOption => {
|
||||
export const loadRoleOption = (opt:api.ODOptionsJsonConfig_RoleOption): api.ODRoleOption => {
|
||||
return new api.ODRoleOption(opt.id,[
|
||||
new api.ODOptionData("opendiscord:name",opt.name),
|
||||
new api.ODOptionData("opendiscord:description",opt.description),
|
||||
|
||||
@@ -23,7 +23,7 @@ export const loadAllPanels = async () => {
|
||||
})
|
||||
}
|
||||
|
||||
export const loadPanel = (panel:api.ODJsonConfig_DefaultPanelType) => {
|
||||
export const loadPanel = (panel:api.ODPanelsJsonConfig_Panel) => {
|
||||
return new api.ODPanel(panel.id,[
|
||||
new api.ODPanelData("opendiscord:name",panel.name),
|
||||
new api.ODPanelData("opendiscord:options",panel.options),
|
||||
|
||||
@@ -28,7 +28,7 @@ export const loadAllQuestions = async () => {
|
||||
})
|
||||
}
|
||||
|
||||
export const loadShortQuestion = (option:api.ODJsonConfig_DefaultShortQuestionType) => {
|
||||
export const loadShortQuestion = (option:api.ODQuestionsJsonConfig_ShortQuestion) => {
|
||||
return new api.ODShortQuestion(option.id,[
|
||||
new api.ODQuestionData("opendiscord:name",option.name),
|
||||
new api.ODQuestionData("opendiscord:required",option.required),
|
||||
@@ -40,7 +40,7 @@ export const loadShortQuestion = (option:api.ODJsonConfig_DefaultShortQuestionTy
|
||||
])
|
||||
}
|
||||
|
||||
export const loadParagraphQuestion = (option:api.ODJsonConfig_DefaultParagraphQuestionType) => {
|
||||
export const loadParagraphQuestion = (option:api.ODQuestionsJsonConfig_ParagraphQuestion) => {
|
||||
return new api.ODParagraphQuestion(option.id,[
|
||||
new api.ODQuestionData("opendiscord:name",option.name),
|
||||
new api.ODQuestionData("opendiscord:required",option.required),
|
||||
|
||||
+21
-20
@@ -37,11 +37,12 @@
|
||||
//initialize API & check npm libraries
|
||||
import { loadDumpCommand, loadAllPlugins, loadErrorHandling } from "@open-discord-bots/framework"
|
||||
import * as utilities from "@open-discord-bots/framework/utilities"
|
||||
import * as api from "./core/api/api"
|
||||
export * as utilities from "@open-discord-bots/framework/utilities"
|
||||
export * as api from "./core/api/api"
|
||||
import * as api from "./core/api"
|
||||
import ansis from "ansis"
|
||||
|
||||
export * as utilities from "@open-discord-bots/framework/utilities"
|
||||
export * as api from "./core/api"
|
||||
|
||||
utilities.checkNodeVersion("openticket")
|
||||
|
||||
utilities.moduleInstalled("@open-discord-bots/framework",true)
|
||||
@@ -822,27 +823,27 @@ const main = async () => {
|
||||
await opendiscord.events.get("onHelpMenuComponentLoad").emit([opendiscord.helpmenu])
|
||||
await opendiscord.events.get("afterHelpMenuComponentsLoaded").emit([opendiscord.helpmenu])
|
||||
|
||||
//load stat scopes
|
||||
opendiscord.log("Loading stats...","system")
|
||||
if (opendiscord.sharedFuses.getFuse("statScopesLoading")){
|
||||
opendiscord.stats.useDatabase(opendiscord.databases.get("opendiscord:stats"))
|
||||
await (await import("./data/framework/statLoader.js")).loadAllStatScopes()
|
||||
//load statistic scopes
|
||||
opendiscord.log("Loading statistics...","system")
|
||||
if (opendiscord.sharedFuses.getFuse("statisticScopesLoading")){
|
||||
opendiscord.statistics.useDatabase(opendiscord.databases.get("opendiscord:stats"))
|
||||
await (await import("./data/framework/statisticLoader.js")).loadAllStatisticScopes()
|
||||
}
|
||||
await opendiscord.events.get("onStatScopeLoad").emit([opendiscord.stats])
|
||||
await opendiscord.events.get("afterStatScopesLoaded").emit([opendiscord.stats])
|
||||
await opendiscord.events.get("onStatisticScopeLoad").emit([opendiscord.statistics])
|
||||
await opendiscord.events.get("afterStatisticScopesLoaded").emit([opendiscord.statistics])
|
||||
|
||||
//load stats
|
||||
if (opendiscord.sharedFuses.getFuse("statLoading")){
|
||||
await (await import("./data/framework/statLoader.js")).loadAllStats()
|
||||
//load statistics
|
||||
if (opendiscord.sharedFuses.getFuse("statisticLoading")){
|
||||
await (await import("./data/framework/statisticLoader.js")).loadAllStatistics()
|
||||
}
|
||||
await opendiscord.events.get("onStatLoad").emit([opendiscord.stats])
|
||||
await opendiscord.events.get("afterStatsLoaded").emit([opendiscord.stats])
|
||||
await opendiscord.events.get("onStatisticLoad").emit([opendiscord.statistics])
|
||||
await opendiscord.events.get("afterStatisticsLoaded").emit([opendiscord.statistics])
|
||||
|
||||
//init stats
|
||||
await opendiscord.events.get("onStatInit").emit([opendiscord.stats])
|
||||
if (opendiscord.sharedFuses.getFuse("statInitiating")){
|
||||
await opendiscord.stats.init()
|
||||
await opendiscord.events.get("afterStatsInitiated").emit([opendiscord.stats])
|
||||
//init statistics
|
||||
await opendiscord.events.get("onStatisticInit").emit([opendiscord.statistics])
|
||||
if (opendiscord.sharedFuses.getFuse("statisticInitiating")){
|
||||
await opendiscord.statistics.init()
|
||||
await opendiscord.events.get("afterStatisticsInitiated").emit([opendiscord.statistics])
|
||||
}
|
||||
|
||||
//plugin loading before code
|
||||
|
||||
Reference in New Issue
Block a user