(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",
|
"type": "commonjs",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@discordjs/rest": "^2.6.0",
|
"@discordjs/rest": "^2.6.1",
|
||||||
"@open-discord-bots/framework": "^0.1.2",
|
"@open-discord-bots/framework": "^0.2.8",
|
||||||
"@types/node": "^22.5.0",
|
"@types/node": "^22.5.0",
|
||||||
"@types/terminal-kit": "^2.5.7",
|
"@types/terminal-kit": "^2.5.7",
|
||||||
"ansis": "^4.2.0",
|
"ansis": "^4.2.0",
|
||||||
"discord.js": "^14.24.2",
|
"discord.js": "^14.26.0",
|
||||||
"formatted-json-stringify": "^1.2.1",
|
"formatted-json-stringify": "^1.2.1",
|
||||||
"terminal-kit": "^3.1.2",
|
"terminal-kit": "^3.1.2",
|
||||||
"typescript": "^5.9.3"
|
"typescript": "^5.9.3"
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ export const registerActions = async () => {
|
|||||||
ticket.get("opendiscord:busy").value = true
|
ticket.get("opendiscord:busy").value = true
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-claimed",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-claimed",user.id,1,"increase")
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ export const registerActions = async () => {
|
|||||||
ticket.get("opendiscord:busy").value = true
|
ticket.get("opendiscord:busy").value = true
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-closed",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-closed",user.id,1,"increase")
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
||||||
|
|||||||
@@ -184,8 +184,8 @@ export const registerActions = async () => {
|
|||||||
])
|
])
|
||||||
|
|
||||||
//manage stats
|
//manage stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-created",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-created",user.id,1,"increase")
|
||||||
|
|
||||||
//manage bot permissions
|
//manage bot permissions
|
||||||
await opendiscord.events.get("onTicketPermissionsCreated").emit([option,opendiscord.permissions,channel,user])
|
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")
|
if (generalConfig.data.system.pinFirstTicketMessage && msg.pinnable) await msg.pin("Ticket Message")
|
||||||
|
|
||||||
//manage stats
|
//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])
|
await opendiscord.events.get("afterTicketMainMessageCreated").emit([ticket,msg,channel,user])
|
||||||
}catch(err){
|
}catch(err){
|
||||||
|
|||||||
@@ -149,8 +149,8 @@ export const registerActions = async () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:transcripts-created",1,"increase")
|
await opendiscord.statistics.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: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])
|
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) => {
|
new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => {
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ export const registerActions = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-deleted",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-deleted",user.id,1,"increase")
|
||||||
|
|
||||||
//delete ticket from manager
|
//delete ticket from manager
|
||||||
opendiscord.tickets.remove(ticket.id)
|
opendiscord.tickets.remove(ticket.id)
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ export const registerActions = async () => {
|
|||||||
ticket.option = data
|
ticket.option = data
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-moved",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-moved",user.id,1,"increase")
|
||||||
|
|
||||||
//get new channel properties
|
//get new channel properties
|
||||||
const channelPrefix = ticket.option.get("opendiscord:channel-prefix").value
|
const channelPrefix = ticket.option.get("opendiscord:channel-prefix").value
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ export const registerActions = async () => {
|
|||||||
ticket.get("opendiscord:busy").value = true
|
ticket.get("opendiscord:busy").value = true
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-pinned",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-pinned",user.id,1,"increase")
|
||||||
|
|
||||||
//move to top of category
|
//move to top of category
|
||||||
if (channel.parent){
|
if (channel.parent){
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ export const registerActions = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-reopened",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-reopened",user.id,1,"increase")
|
||||||
|
|
||||||
//update category
|
//update category
|
||||||
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
if (typeof params.allowCategoryChange == "boolean" ? params.allowCategoryChange : true){
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ export const registerActions = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//update stats
|
//update stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-transferred",1,"increase")
|
await opendiscord.statistics.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:user").setStat("opendiscord:tickets-transferred",user.id,1,"increase")
|
||||||
|
|
||||||
//get new channel properties
|
//get new channel properties
|
||||||
const channelPrefix = ticket.option.get("opendiscord:channel-prefix").value
|
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) => {
|
new api.ODWorker("opendiscord:stats-global",0,async (instance,params) => {
|
||||||
const {guild,channel,user} = params
|
const {guild,channel,user} = params
|
||||||
|
|
||||||
const scope = opendiscord.stats.get("opendiscord:global")
|
const scope = opendiscord.statistics.get("opendiscord:global")
|
||||||
if (!scope) return
|
if (!scope) return
|
||||||
const data = await scope.render("GLOBAL",guild,channel,user)
|
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))){
|
if (opendiscord.permissions.hasPermissions("owner",await opendiscord.permissions.getPermissions(user,channel,guild))){
|
||||||
//show system data when owner or developer
|
//show system data when owner or developer
|
||||||
const systemScope = opendiscord.stats.get("opendiscord:system")
|
const systemScope = opendiscord.statistics.get("opendiscord:system")
|
||||||
if (!systemScope) return
|
if (!systemScope) return
|
||||||
const systemData = await systemScope.render("GLOBAL",guild,channel,user)
|
const systemData = await systemScope.render("GLOBAL",guild,channel,user)
|
||||||
instance.addFields({name:systemScope.name,value:systemData,inline:false})
|
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) => {
|
new api.ODWorker("opendiscord:stats-ticket",0,async (instance,params) => {
|
||||||
const {guild,channel,user,scopeData} = params
|
const {guild,channel,user,scopeData} = params
|
||||||
|
|
||||||
const scope = opendiscord.stats.get("opendiscord:ticket")
|
const scope = opendiscord.statistics.get("opendiscord:ticket")
|
||||||
const participantsScope = opendiscord.stats.get("opendiscord:participants")
|
const participantsScope = opendiscord.statistics.get("opendiscord:participants")
|
||||||
const messagesScope = opendiscord.stats.get("opendiscord:messages")
|
const messagesScope = opendiscord.statistics.get("opendiscord:messages")
|
||||||
if (!scope || !participantsScope || !messagesScope) return
|
if (!scope || !participantsScope || !messagesScope) return
|
||||||
const data = await scope.render(scopeData.id.value,guild,channel,user)
|
const data = await scope.render(scopeData.id.value,guild,channel,user)
|
||||||
const participantsData = await participantsScope.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) => {
|
new api.ODWorker("opendiscord:stats-user",0,async (instance,params) => {
|
||||||
const {guild,channel,user,scopeData} = params
|
const {guild,channel,user,scopeData} = params
|
||||||
|
|
||||||
const scope = opendiscord.stats.get("opendiscord:user")
|
const scope = opendiscord.statistics.get("opendiscord:user")
|
||||||
if (!scope) return
|
if (!scope) return
|
||||||
const data = await scope.render(scopeData.id,guild,channel,user)
|
const data = await scope.render(scopeData.id,guild,channel,user)
|
||||||
|
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ export const registerCommandResponders = async () => {
|
|||||||
])
|
])
|
||||||
|
|
||||||
//manage stats
|
//manage stats
|
||||||
await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:users-blacklisted",1,"increase")
|
await opendiscord.statistics.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: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}))
|
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"){
|
}else if (scope == "reset"){
|
||||||
const reason = instance.options.getString("reason",false)
|
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}))
|
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
|
//OPENTICKET OPTION MODULE
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
import * as api from "@open-discord-bots/framework/api"
|
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 discord from "discord.js"
|
||||||
import * as crypto from "crypto"
|
import * as crypto from "crypto"
|
||||||
|
import { ODOptionsJsonConfig_TicketOptionEmbedSettings, ODOptionsJsonConfig_TicketOptionPingSettings } from "../mappings/config"
|
||||||
import { ODRoleUpdateMode } from "./role"
|
import { ODRoleUpdateMode } from "./role"
|
||||||
|
|
||||||
/**## ODOptionManager `class`
|
/**## ODOptionManager `class`
|
||||||
@@ -158,12 +158,12 @@ export interface ODTicketOptionIds {
|
|||||||
|
|
||||||
"opendiscord:dm-message-enabled":ODOptionData<boolean>,
|
"opendiscord:dm-message-enabled":ODOptionData<boolean>,
|
||||||
"opendiscord:dm-message-text":ODOptionData<string>,
|
"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-enabled":ODOptionData<boolean>,
|
||||||
"opendiscord:ticket-message-text":ODOptionData<string>,
|
"opendiscord:ticket-message-text":ODOptionData<string>,
|
||||||
"opendiscord:ticket-message-embed":ODOptionData<ODJsonConfig_DefaultOptionEmbedSettingsType>,
|
"opendiscord:ticket-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
|
||||||
"opendiscord:ticket-message-ping":ODOptionData<ODJsonConfig_DefaultOptionPingSettingsType>,
|
"opendiscord:ticket-message-ping":ODOptionData<ODOptionsJsonConfig_TicketOptionPingSettings>,
|
||||||
|
|
||||||
"opendiscord:autoclose-enable-hours":ODOptionData<boolean>,
|
"opendiscord:autoclose-enable-hours":ODOptionData<boolean>,
|
||||||
"opendiscord:autoclose-enable-leave":ODOptionData<boolean>,
|
"opendiscord:autoclose-enable-leave":ODOptionData<boolean>,
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
//OPENTICKET PANEL MODULE
|
//OPENTICKET PANEL MODULE
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
import * as api from "@open-discord-bots/framework/api"
|
import * as api from "@open-discord-bots/framework/api"
|
||||||
import { ODJsonConfig_DefaultPanelEmbedSettingsType } from "../defaults/config"
|
import { ODPanelsJsonConfig_PanelEmbedSettings } from "../mappings/config"
|
||||||
|
|
||||||
/**## ODPanelManager `class`
|
/**## ODPanelManager `class`
|
||||||
* This is an Open Ticket panel manager.
|
* This is an Open Ticket panel manager.
|
||||||
@@ -58,7 +58,7 @@ export interface ODPanelIds {
|
|||||||
"opendiscord:dropdown":ODPanelData<boolean>,
|
"opendiscord:dropdown":ODPanelData<boolean>,
|
||||||
|
|
||||||
"opendiscord:text":ODPanelData<string>,
|
"opendiscord:text":ODPanelData<string>,
|
||||||
"opendiscord:embed":ODPanelData<ODJsonConfig_DefaultPanelEmbedSettingsType>,
|
"opendiscord:embed":ODPanelData<ODPanelsJsonConfig_PanelEmbedSettings>,
|
||||||
|
|
||||||
"opendiscord:dropdown-placeholder":ODPanelData<string>,
|
"opendiscord:dropdown-placeholder":ODPanelData<string>,
|
||||||
|
|
||||||
@@ -2,7 +2,25 @@
|
|||||||
//OPENTICKET PRIORITY MODULE
|
//OPENTICKET PRIORITY MODULE
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
import * as api from "@open-discord-bots/framework/api"
|
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`
|
/**## ODPriorityManager `class`
|
||||||
* This is an Open Ticket priority manager.
|
* 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.
|
* 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. */
|
/**A reference to the Open Ticket debugger. */
|
||||||
#debug: api.ODDebugger
|
#debug: api.ODDebugger
|
||||||
|
|
||||||
@@ -28,44 +46,22 @@ export class ODPriorityManager extends api.ODManager<ODPriorityLevel> {
|
|||||||
listAvailableLevels(){
|
listAvailableLevels(){
|
||||||
return this.getAll().map((lvl) => lvl.priority)
|
return this.getAll().map((lvl) => lvl.priority)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**## ODPriorityManagerIds `type`
|
get<PriorityId extends keyof api.ODNoGeneric<IdList>>(id:PriorityId): IdList[PriorityId]
|
||||||
* 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(id:api.ODValidId): ODPriorityLevel|null
|
get(id:api.ODValidId): ODPriorityLevel|null
|
||||||
|
|
||||||
get(id:api.ODValidId): ODPriorityLevel|null {
|
get(id:api.ODValidId): ODPriorityLevel|null {
|
||||||
return super.get(id)
|
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
|
||||||
|
|
||||||
remove(id:api.ODValidId): ODPriorityLevel|null {
|
remove(id:api.ODValidId): ODPriorityLevel|null {
|
||||||
return super.remove(id)
|
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
|
||||||
|
|
||||||
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`
|
/**## ODPriorityLevel `class`
|
||||||
* This is an Open Ticket priority level.
|
* This is an Open Ticket priority level.
|
||||||
*
|
*
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
//OPENTICKET TICKET MODULE
|
//OPENTICKET TICKET MODULE
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
import * as api from "@open-discord-bots/framework/api"
|
import * as api from "@open-discord-bots/framework/api"
|
||||||
import { ODClientManager_Default } from "../defaults/client"
|
|
||||||
import { ODTicketOption } from "./option"
|
import { ODTicketOption } from "./option"
|
||||||
import * as discord from "discord.js"
|
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 */
|
/**A reference to the main server of the bot */
|
||||||
#guild: discord.Guild|null = null
|
#guild: discord.Guild|null = null
|
||||||
/**A reference to the Open Ticket client manager. */
|
/**A reference to the Open Ticket client manager. */
|
||||||
#client: ODClientManager_Default
|
#client: api.ODClientManager
|
||||||
/**A reference to the Open Ticket debugger. */
|
/**A reference to the Open Ticket debugger. */
|
||||||
#debug: api.ODDebugger
|
#debug: api.ODDebugger
|
||||||
|
|
||||||
constructor(debug:api.ODDebugger, client:ODClientManager_Default){
|
constructor(debug:api.ODDebugger, client:api.ODClientManager){
|
||||||
super(debug,"ticket")
|
super(debug,"ticket")
|
||||||
this.#debug = debug
|
this.#debug = debug
|
||||||
this.#client = client
|
this.#client = client
|
||||||
@@ -2,10 +2,23 @@
|
|||||||
//OPENTICKET TRANSCRIPT MODULE
|
//OPENTICKET TRANSCRIPT MODULE
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
import * as api from "@open-discord-bots/framework/api"
|
import * as api from "@open-discord-bots/framework/api"
|
||||||
import { ODPermissionManager_Default } from "../defaults/permission"
|
|
||||||
import { ODTicket, ODTicketManager } from "./ticket"
|
import { ODTicket, ODTicketManager } from "./ticket"
|
||||||
import * as discord from "discord.js"
|
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`
|
/**## ODTranscriptManager `class`
|
||||||
* This is an Open Ticket transcript manager.
|
* 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`.
|
* 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. */
|
/**The manager responsible for collecting all messages in a channel. */
|
||||||
collector: ODTranscriptCollector
|
collector: ODTranscriptCollector
|
||||||
/**Alias for the client manager. */
|
/**Alias for the client manager. */
|
||||||
#client: api.ODClientManager
|
#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")
|
super(debug,"transcript compiler")
|
||||||
this.#client = client
|
this.#client = client
|
||||||
this.collector = new ODTranscriptCollector(tickets,client,permissions)
|
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`
|
/**## ODTranscriptCompilerInitFunction `type`
|
||||||
* This function will initiate/prepare the transcript system for an incoming transcript.
|
* 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`
|
/**## ODTranscriptCollector `class`
|
||||||
* This is an Open Ticket transcript collector.
|
* This is an Open Ticket transcript collector.
|
||||||
*
|
*
|
||||||
@@ -165,9 +166,9 @@ export class ODTranscriptCollector {
|
|||||||
/**Alias for the client manager. */
|
/**Alias for the client manager. */
|
||||||
#client: api.ODClientManager
|
#client: api.ODClientManager
|
||||||
/**Alias for the permissions manager. */
|
/**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.#tickets = tickets
|
||||||
this.#client = client
|
this.#client = client
|
||||||
this.#permissions = permissions
|
this.#permissions = permissions
|
||||||
+11
-62
@@ -1,8 +1,7 @@
|
|||||||
import {opendiscord, api, utilities} from "../../index"
|
import {opendiscord, api, utilities} from "../../index"
|
||||||
import {Terminal, terminal} from "terminal-kit"
|
import * as cli from "@open-discord-bots/framework/cli"
|
||||||
import ansis from "ansis"
|
|
||||||
|
|
||||||
const logo = [
|
export const logo = [
|
||||||
" ██████╗ ██████╗ ███████╗███╗ ██╗ ████████╗██╗ ██████╗██╗ ██╗███████╗████████╗ ",
|
" ██████╗ ██████╗ ███████╗███╗ ██╗ ████████╗██╗ ██████╗██╗ ██╗███████╗████████╗ ",
|
||||||
" ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ╚══██╔══╝██║██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝ ",
|
" ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ╚══██╔══╝██║██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝ ",
|
||||||
" ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██║ █████╔╝ █████╗ ██║ ",
|
" ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██║ █████╔╝ █████╗ ██║ ",
|
||||||
@@ -10,66 +9,16 @@ const logo = [
|
|||||||
" ╚██████╔╝██║ ███████╗██║ ╚████║ ██║ ██║╚██████╗██║ ██╗███████╗ ██║ ",
|
" ╚██████╔╝██║ ███████╗██║ ╚████║ ██║ ██║╚██████╗██║ ██╗███████╗ ██║ ",
|
||||||
" ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝ "
|
" ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝ "
|
||||||
]
|
]
|
||||||
|
export const headerOpts: cli.ODCliHeaderOpts = {
|
||||||
/**A utility function to center text to a certain width. */
|
logo,
|
||||||
export function centerText(text:string,width:number){
|
projectColor:"#f8ba00",
|
||||||
if (width < text.length) return text
|
projectName:"Open Ticket",
|
||||||
let newWidth = width-ansis.strip(text).length+1
|
projectVersion:opendiscord.versions.get("opendiscord:version")
|
||||||
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 async function execute(){
|
export async function execute(){
|
||||||
if (terminal.width < 100 || terminal.height < 35){
|
const editConfig = new cli.ODCliEditConfigInstance(headerOpts,opendiscord)
|
||||||
terminal(ansis.red.bold("\n\nMake sure your console or cmd window has a "+ansis.cyan("minimum width & height")+" of "+ansis.cyan("100x35")+" characters."))
|
const renderQuickSetup = (await import("./quickSetup.js")).renderQuickSetup
|
||||||
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)+"."))
|
await cli.execute(headerOpts,editConfig.renderEditConfig,renderQuickSetup)
|
||||||
}else await renderCliModeSelector(terminate)
|
|
||||||
}
|
}
|
||||||
@@ -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 {opendiscord, api, utilities} from "../../index"
|
||||||
|
import * as cli from "@open-discord-bots/framework/cli"
|
||||||
import {Terminal, terminal} from "terminal-kit"
|
import {Terminal, terminal} from "terminal-kit"
|
||||||
import ansis from "ansis"
|
import ansis from "ansis"
|
||||||
import * as discord from "discord.js"
|
import * as discord from "discord.js"
|
||||||
import crypto from "crypto"
|
import { headerOpts } from "./cli"
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ODQuickSetupVariables {
|
interface ODQuickSetupVariables {
|
||||||
client?:api.ODClientManager,
|
client?:api.ODClientManager,
|
||||||
@@ -20,7 +13,7 @@ interface ODQuickSetupVariables {
|
|||||||
language?:string,
|
language?:string,
|
||||||
slashCommands?:boolean,
|
slashCommands?:boolean,
|
||||||
textCommands?:boolean,
|
textCommands?:boolean,
|
||||||
status?:api.ODJsonConfig_DefaultStatusType,
|
status?:api.ODGeneralJsonConfig_Status,
|
||||||
logChannel?:string|null,
|
logChannel?:string|null,
|
||||||
ticketCategory?:string|null,
|
ticketCategory?:string|null,
|
||||||
ticketOptions:({
|
ticketOptions:({
|
||||||
@@ -30,7 +23,7 @@ interface ODQuickSetupVariables {
|
|||||||
buttonColor:api.ODValidButtonColor,
|
buttonColor:api.ODValidButtonColor,
|
||||||
buttonEmoji:string|null,
|
buttonEmoji:string|null,
|
||||||
channelPrefix:string,
|
channelPrefix:string,
|
||||||
channelSuffix:api.ODJsonConfig_DefaultOptionTicketChannelType["suffix"]
|
channelSuffix:api.ODOptionsJsonConfig_TicketOptionChannelSettings["suffix"]
|
||||||
}|null)[],
|
}|null)[],
|
||||||
optionIdStorage:string[],
|
optionIdStorage:string[],
|
||||||
autocloseHours?:number|null,
|
autocloseHours?:number|null,
|
||||||
@@ -38,7 +31,7 @@ interface ODQuickSetupVariables {
|
|||||||
globalUserLimit?:number|null,
|
globalUserLimit?:number|null,
|
||||||
removeParticipantsOnClose?:boolean,
|
removeParticipantsOnClose?:boolean,
|
||||||
ticketMessageLayout?:"embed"|"text"|null,
|
ticketMessageLayout?:"embed"|"text"|null,
|
||||||
emojiStyle?:api.ODJsonConfig_DefaultSystem["emojiStyle"],
|
emojiStyle?:api.ODGeneralJsonConfig_System["emojiStyle"],
|
||||||
panelName?:string,
|
panelName?:string,
|
||||||
panelDescription?:string,
|
panelDescription?:string,
|
||||||
panelDropdown?:boolean,
|
panelDropdown?:boolean,
|
||||||
@@ -113,7 +106,7 @@ function quickSetupRequiresReset(): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function renderQuickSetupWarning(backFn:() => api.ODPromiseVoid) {
|
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.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")
|
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){
|
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.bold.underline.blue("Open Ticket: Quick Setup\n")
|
||||||
terminal.gray([
|
terminal.gray([
|
||||||
@@ -165,7 +158,7 @@ async function renderQuickSetupWelcome(backFn:() => api.ODPromiseVoid){
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function renderQuickSetupDevPortal(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")
|
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){
|
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){
|
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")
|
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){
|
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.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> ")
|
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
|
const {client} = quickSetupStorage
|
||||||
if (!client) return
|
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.bold.blue(stepCount(3)+"Please select a Discord Server to use.\n")
|
||||||
terminal.gray("The bot will only work in this server.\n\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
|
const {client,guild} = quickSetupStorage
|
||||||
if (!client || !guild) return
|
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.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")
|
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
|
const {client,guild,globalAdmins} = quickSetupStorage
|
||||||
if (!client || !guild || !globalAdmins) return
|
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.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> ")
|
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){
|
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.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> ")
|
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){
|
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.bold.blue(stepCount(7)+"Would you like to use slash commands, text commands or both?\n")
|
||||||
terminal.gray("Slash commands are recommended.\n\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){
|
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.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")
|
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
|
const {status} = quickSetupStorage
|
||||||
if (!status) return
|
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.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> ")
|
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
|
const {client,guild} = quickSetupStorage
|
||||||
if (!client || !guild) return
|
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.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")
|
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
|
const {client,guild} = quickSetupStorage
|
||||||
if (!client || !guild) return
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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> ")
|
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){
|
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.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> ")
|
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){
|
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.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")
|
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){
|
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.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> ")
|
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){
|
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.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")
|
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){
|
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.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> ")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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> ")
|
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){
|
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.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> ")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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){
|
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.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")
|
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(){
|
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.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")
|
terminal.gray("Press 'Enter' to exit the Quick Setup CLI.\n\n")
|
||||||
@@ -1203,13 +1196,13 @@ async function renderQuickSetupFinished(){
|
|||||||
}).promise
|
}).promise
|
||||||
|
|
||||||
//stop CLI
|
//stop CLI
|
||||||
return await terminate()
|
return await cli.terminate(headerOpts)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveQuickSetupConfig(){
|
async function saveQuickSetupConfig(){
|
||||||
//GENERAL CONFIG
|
//GENERAL CONFIG
|
||||||
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
||||||
const generalConfigData: api.ODJsonConfig_DefaultGeneralData = {
|
const generalConfigData: api.ODGeneralJsonConfig_GeneralData = {
|
||||||
_INFO:{
|
_INFO:{
|
||||||
support:"https://otdocs.dj-dj.be",
|
support:"https://otdocs.dj-dj.be",
|
||||||
discord:"https://discord.dj-dj.be",
|
discord:"https://discord.dj-dj.be",
|
||||||
@@ -1333,7 +1326,7 @@ async function saveQuickSetupConfig(){
|
|||||||
|
|
||||||
//QUESTIONS CONFIG => no configuration needed (coming soonTM)
|
//QUESTIONS CONFIG => no configuration needed (coming soonTM)
|
||||||
const questionsConfig = opendiscord.configs.get("opendiscord:questions")
|
const questionsConfig = opendiscord.configs.get("opendiscord:questions")
|
||||||
const questionsConfigData: api.ODJsonConfig_DefaultQuestionsData = [
|
const questionsConfigData: api.ODQuestionsJsonConfig_QuestionsData = [
|
||||||
{
|
{
|
||||||
id:"example-question-1",
|
id:"example-question-1",
|
||||||
name:"Example Question 1",
|
name:"Example Question 1",
|
||||||
@@ -1366,8 +1359,8 @@ async function saveQuickSetupConfig(){
|
|||||||
|
|
||||||
//OPTIONS CONFIG
|
//OPTIONS CONFIG
|
||||||
const optionsConfig = opendiscord.configs.get("opendiscord:options")
|
const optionsConfig = opendiscord.configs.get("opendiscord:options")
|
||||||
const optionsConfigData: api.ODJsonConfig_DefaultOptionsData = quickSetupStorage.ticketOptions.filter((ticket) => ticket !== null).map((ticket) => {
|
const optionsConfigData: api.ODOptionsJsonConfig_OptionsData = quickSetupStorage.ticketOptions.filter((ticket) => ticket !== null).map((ticket) => {
|
||||||
const id = generateUniqueIdFromName(ticket.name)
|
const id = cli.generateUniqueIdFromName(ticket.name)
|
||||||
quickSetupStorage.optionIdStorage.push(id)
|
quickSetupStorage.optionIdStorage.push(id)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -1464,9 +1457,9 @@ async function saveQuickSetupConfig(){
|
|||||||
|
|
||||||
//PANELS CONFIG
|
//PANELS CONFIG
|
||||||
const panelsConfig = opendiscord.configs.get("opendiscord:panels")
|
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",
|
name:quickSetupStorage.panelName ?? "Ticket Panel",
|
||||||
dropdown:quickSetupStorage.panelDropdown ?? false,
|
dropdown:quickSetupStorage.panelDropdown ?? false,
|
||||||
options:quickSetupStorage.optionIdStorage,
|
options:quickSetupStorage.optionIdStorage,
|
||||||
@@ -1506,7 +1499,7 @@ async function saveQuickSetupConfig(){
|
|||||||
|
|
||||||
//TRANSCRIPTS CONFIG => no configuration needed (coming soonTM)
|
//TRANSCRIPTS CONFIG => no configuration needed (coming soonTM)
|
||||||
const transcriptsConfig = opendiscord.configs.get("opendiscord:transcripts")
|
const transcriptsConfig = opendiscord.configs.get("opendiscord:transcripts")
|
||||||
const transcriptsConfigData: api.ODJsonConfig_DefaultTranscriptsData = {
|
const transcriptsConfigData: api.ODTranscriptsJsonConfig_TranscriptsData = {
|
||||||
general:{
|
general:{
|
||||||
enabled:(typeof quickSetupStorage.logChannel == "string"),
|
enabled:(typeof quickSetupStorage.logChannel == "string"),
|
||||||
|
|
||||||
|
|||||||
@@ -5,32 +5,32 @@ import * as api from "./api"
|
|||||||
import * as utilities from "@open-discord-bots/framework/utilities"
|
import * as utilities from "@open-discord-bots/framework/utilities"
|
||||||
|
|
||||||
export class ODOpenTicketMain extends api.ODMain {
|
export class ODOpenTicketMain extends api.ODMain {
|
||||||
declare versions: api.ODVersionManager_Default
|
declare versions: api.ODMappedVersionManager
|
||||||
declare events: api.ODEventManager_Default
|
declare events: api.ODMappedEventManager
|
||||||
|
|
||||||
declare plugins: api.ODPluginManager_Default
|
declare plugins: api.ODMappedPluginManager
|
||||||
declare flags: api.ODFlagManager_Default
|
declare flags: api.ODMappedFlagManager
|
||||||
declare progressbars: api.ODProgressBarManager_Default
|
declare progressbars: api.ODMappedProgressBarManager
|
||||||
declare configs: api.ODConfigManager_Default
|
declare configs: api.ODMappedConfigManager
|
||||||
declare databases: api.ODDatabaseManager_Default
|
declare databases: api.ODMappedDatabaseManager
|
||||||
declare sessions: api.ODSessionManager_Default
|
declare sessions: api.ODMappedSessionManager
|
||||||
declare languages: api.ODLanguageManager_Default
|
declare languages: api.ODMappedLanguageManager
|
||||||
|
|
||||||
declare checkers: api.ODCheckerManager_Default
|
declare checkers: api.ODMappedCheckerManager
|
||||||
declare builders: api.ODBuilderManager_Default
|
declare builders: api.ODMappedBuilderManager
|
||||||
declare responders: api.ODResponderManager_Default
|
declare responders: api.ODMappedResponderManager
|
||||||
declare actions: api.ODActionManager_Default
|
declare actions: api.ODMappedActionManager
|
||||||
declare verifybars: api.ODVerifyBarManager_Default
|
declare verifybars: api.ODMappedVerifyBarManager
|
||||||
declare permissions: api.ODPermissionManager_Default
|
declare permissions: api.ODMappedPermissionManager
|
||||||
declare cooldowns: api.ODCooldownManager_Default
|
declare cooldowns: api.ODMappedCooldownManager
|
||||||
declare helpmenu: api.ODHelpMenuManager_Default
|
declare helpmenu: api.ODMappedHelpMenuManager
|
||||||
declare stats: api.ODStatsManager_Default
|
declare statistics: api.ODMappedStatisticManager
|
||||||
declare code: api.ODCodeManager_Default
|
declare code: api.ODMappedCodeManager
|
||||||
declare posts: api.ODPostManager_Default
|
declare posts: api.ODMappedPostManager
|
||||||
|
|
||||||
declare client: api.ODClientManager_Default
|
declare client: api.ODMappedClientManager
|
||||||
declare livestatus: api.ODLiveStatusManager_Default
|
declare livestatus: api.ODMappedLiveStatusManager
|
||||||
declare startscreen: api.ODStartScreenManager_Default
|
declare startscreen: api.ODMappedStartScreenManager
|
||||||
|
|
||||||
/////////////////////
|
/////////////////////
|
||||||
//// OPEN TICKET ////
|
//// 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) */
|
/**The manager that manages the ticket blacklist. (people who are blacklisted can't create a ticket) */
|
||||||
blacklist: api.ODBlacklistManager
|
blacklist: api.ODBlacklistManager
|
||||||
/**The manager that manages the ticket transcripts. (both the history & compilers) */
|
/**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) */
|
/**The manager that manages all reaction roles in the bot. (here, you can add additional data to roles) */
|
||||||
roles: api.ODRoleManager
|
roles: api.ODRoleManager
|
||||||
/**The manager that manages all priority levels in the bot. (register/edit ticket priority levels) */
|
/**The manager that manages all priority levels in the bot. (register/edit ticket priority levels) */
|
||||||
priorities: api.ODPriorityManager_Default
|
priorities: api.ODMappedPriorityManager
|
||||||
|
|
||||||
constructor(){
|
constructor(){
|
||||||
const version = api.ODVersion.fromString("opendiscord:version","v4.1.3")
|
const version = api.ODVersion.fromString("opendiscord:version","v4.1.3")
|
||||||
const debugfile = new api.ODDebugFileManager("./","otdebug.txt",5000,version)
|
const debugfile = new api.ODDebugFileManager("./","otdebug.txt",5000,version)
|
||||||
const console = new api.ODConsoleManager(100,debugfile)
|
const console = new api.ODConsoleManager(100,debugfile)
|
||||||
const debug = new api.ODDebugger(console)
|
const debug = new api.ODDebugger(console)
|
||||||
const client = new api.ODClientManager_Default(debug)
|
const client = new api.ODMappedClientManager(debug)
|
||||||
const livestatus = new api.ODLiveStatusManager_Default(debug,console)
|
const livestatus = new api.ODMappedLiveStatusManager(debug,console)
|
||||||
const permissions = new api.ODPermissionManager_Default(debug,client)
|
const permissions = new api.ODMappedPermissionManager(debug,client)
|
||||||
|
|
||||||
super({
|
super({
|
||||||
versions:new api.ODVersionManager_Default(),
|
versions:new api.ODMappedVersionManager(),
|
||||||
debugfile,console,debug,
|
debugfile,console,debug,
|
||||||
events:new api.ODEventManager_Default(debug),
|
events:new api.ODMappedEventManager(debug),
|
||||||
processStartupDate:new Date(),
|
processStartupDate:new Date(),
|
||||||
readyStartupDate:null,
|
readyStartupDate:null,
|
||||||
|
|
||||||
plugins:new api.ODPluginManager_Default(debug),
|
plugins:new api.ODMappedPluginManager(debug),
|
||||||
flags:new api.ODFlagManager_Default(debug),
|
flags:new api.ODMappedFlagManager(debug),
|
||||||
progressbars:new api.ODProgressBarManager_Default(debug),
|
progressbars:new api.ODMappedProgressBarManager(debug),
|
||||||
configs:new api.ODConfigManager_Default(debug),
|
configs:new api.ODMappedConfigManager(debug),
|
||||||
databases:new api.ODDatabaseManager_Default(debug),
|
databases:new api.ODMappedDatabaseManager(debug),
|
||||||
sessions:new api.ODSessionManager_Default(debug),
|
sessions:new api.ODMappedSessionManager(debug),
|
||||||
languages:new api.ODLanguageManager_Default(debug,false),
|
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)),
|
checkers:new api.ODMappedCheckerManager(debug,
|
||||||
builders:new api.ODBuilderManager_Default(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,
|
client,
|
||||||
responders:new api.ODResponderManager_Default(debug,client),
|
responders:new api.ODMappedResponderManager(debug,client),
|
||||||
actions:new api.ODActionManager_Default(debug),
|
actions:new api.ODMappedActionManager(debug),
|
||||||
verifybars:new api.ODVerifyBarManager_Default(debug),
|
verifybars:new api.ODMappedVerifyBarManager(debug),
|
||||||
permissions,
|
permissions,
|
||||||
cooldowns:new api.ODCooldownManager_Default(debug),
|
cooldowns:new api.ODMappedCooldownManager(debug),
|
||||||
helpmenu:new api.ODHelpMenuManager_Default(debug),
|
helpmenu:new api.ODMappedHelpMenuManager(debug),
|
||||||
stats:new api.ODStatsManager_Default(debug),
|
statistics:new api.ODMappedStatisticManager(debug),
|
||||||
code:new api.ODCodeManager_Default(debug),
|
code:new api.ODMappedCodeManager(debug),
|
||||||
posts:new api.ODPostManager_Default(debug),
|
posts:new api.ODMappedPostManager(debug),
|
||||||
|
|
||||||
sharedFuses:utilities.sharedFuses,
|
sharedFuses:utilities.sharedFuses,
|
||||||
env:new api.ODEnvHelper(),
|
env:new api.ODEnvHelper(),
|
||||||
livestatus,
|
livestatus,
|
||||||
startscreen:new api.ODStartScreenManager_Default(debug,livestatus),
|
startscreen:new api.ODMappedStartScreenManager(debug,livestatus),
|
||||||
},"openticket")
|
},"openticket")
|
||||||
|
|
||||||
this.livestatus.useMain(this)
|
this.livestatus.useMain(this)
|
||||||
@@ -120,8 +125,8 @@ export class ODOpenTicketMain extends api.ODMain {
|
|||||||
this.panels = new api.ODPanelManager(debug)
|
this.panels = new api.ODPanelManager(debug)
|
||||||
this.tickets = new api.ODTicketManager(debug,client)
|
this.tickets = new api.ODTicketManager(debug,client)
|
||||||
this.blacklist = new api.ODBlacklistManager(debug)
|
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.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 * as api from "@open-discord-bots/framework/api"
|
||||||
import { ODWorkerManager_Default } from "./worker"
|
|
||||||
import * as discord from "discord.js"
|
import * as discord from "discord.js"
|
||||||
import { ODRoleOption, ODTicketOption } from "../openticket/option"
|
import { ODRoleOption, ODTicketOption } from "../api/option"
|
||||||
import { ODTicket, ODTicketClearFilter } from "../openticket/ticket"
|
import { ODTicket, ODTicketClearFilter } from "../api/ticket"
|
||||||
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../openticket/transcript"
|
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../api/transcript"
|
||||||
import { ODRole, ODRoleUpdateMode, ODRoleUpdateResult } from "../openticket/role"
|
import { ODRole, ODRoleUpdateMode, ODRoleUpdateResult } from "../api/role"
|
||||||
import { ODPriorityLevel } from "../openticket/priority"
|
import { ODPriorityLevel } from "../api/priority"
|
||||||
|
|
||||||
/**## ODActionManagerIds_Default `interface`
|
/**## ODActionManagerIdMappings `interface`
|
||||||
* This interface is a list of ids available in the `ODActionManager_Default` class.
|
* A list of all available IDs in the default `ODActionManager` class in `opendiscord`.
|
||||||
* It's used to generate typescript declarations for this class.
|
* It's used to generate typescript declarations for this class.
|
||||||
*/
|
*/
|
||||||
export interface ODActionManagerIds_Default {
|
export interface ODActionManagerIdMappings extends api.ODActionManagerIdConstraint {
|
||||||
"opendiscord:create-ticket-permissions":{
|
"opendiscord:create-ticket-permissions":{
|
||||||
source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",
|
source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",
|
||||||
params:{guild:discord.Guild,user:discord.User,option:ODTicketOption},
|
params:{guild:discord.Guild,user:discord.User,option:ODTicketOption},
|
||||||
@@ -131,41 +130,16 @@ export interface ODActionManagerIds_Default {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODActionManager_Default `default_class`
|
type ODNoGeneric<T extends Record<string|number|symbol,any>> = {
|
||||||
* This is a special class that adds type definitions & typescript to the ODActionManager class.
|
[K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K]
|
||||||
* It doesn't add any extra features!
|
}
|
||||||
*
|
export type ODActionManagerMappingsModifier<T extends api.ODActionManagerIdConstraint = ODActionManagerIdMappings> = {
|
||||||
* This default class is made for the global variable `opendiscord.actions`!
|
[K in keyof T]: api.ODAction<T[K]["source"],T[K]["params"],T[K]["result"],T[K]["workers"]>
|
||||||
*/
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODAction_Default `default_class`
|
type test = ODActionManagerMappingsModifier
|
||||||
* This is a special class that adds type definitions & typescript to the ODAction class.
|
|
||||||
* It doesn't add any extra features!
|
/**## ODMappedActionManager `class
|
||||||
*
|
* A special class with types for the Open Ticket `ODActionManager` class.
|
||||||
* This default class is made for the default `ODAction`'s!
|
|
||||||
*/
|
*/
|
||||||
export class ODAction_Default<Source extends string, Params extends object, Result extends object, WorkerIds extends string> extends api.ODAction<Source,Params,Result> {
|
export class ODMappedActionManager extends api.ODActionManager<ODActionManagerIdMappings> {}
|
||||||
declare workers: ODWorkerManager_Default<Result,Source,Params,WorkerIds>
|
|
||||||
}
|
|
||||||
@@ -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 * as api from "@open-discord-bots/framework/api"
|
||||||
import { ODWorkerManager_Default } from "./worker"
|
|
||||||
import { ODPermissionEmbedType } from "./permission"
|
import { ODPermissionEmbedType } from "./permission"
|
||||||
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../openticket/transcript"
|
import { ODTranscriptCompiler, ODTranscriptCompilerCompileResult } from "../api/transcript"
|
||||||
import { ODRoleOption, ODTicketOption, ODWebsiteOption } from "../openticket/option"
|
import { ODRoleOption, ODTicketOption, ODWebsiteOption } from "../api/option"
|
||||||
import { ODTicket, ODTicketClearFilter } from "../openticket/ticket"
|
import { ODTicket, ODTicketClearFilter } from "../api/ticket"
|
||||||
import { ODRole, ODRoleUpdateResult } from "../openticket/role"
|
import { ODRole, ODRoleUpdateResult } from "../api/role"
|
||||||
import { ODPriorityLevel } from "../openticket/priority"
|
import { ODPriorityLevel } from "../api/priority"
|
||||||
import { ODPanel } from "../openticket/panel"
|
import { ODPanel } from "../api/panel"
|
||||||
import * as discord from "discord.js"
|
import * as discord from "discord.js"
|
||||||
|
|
||||||
/**## ODBuilderManager_Default `default_class`
|
/**## ODButtonManagerIdMappings `interface`
|
||||||
* This is a special class that adds type definitions & typescript to the ODBuilderManager class.
|
* A list of all available IDs in the default `ODButtonManager` class in `opendiscord`.
|
||||||
* 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.
|
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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-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"},
|
"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"},
|
"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`
|
/**## ODDropdownManagerIdMappings `interface`
|
||||||
* This is a special class that adds type definitions & typescript to the ODButtonManager class.
|
* A list of all available IDs in the default `ODDropdownManager` class in `opendiscord`.
|
||||||
* 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.
|
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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"}
|
"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`
|
/**## ODFileManagerIdMappings `interface`
|
||||||
* This is a special class that adds type definitions & typescript to the ODDropdownManager class.
|
* A list of all available IDs in the default `ODFileManager` class in `opendiscord`.
|
||||||
* 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.
|
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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"}
|
"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`
|
/**## ODEmbedManagerIdMappings `interface`
|
||||||
* This is a special class that adds type definitions & typescript to the ODFileManager class.
|
* A list of all available IDs in the default `ODEmbedManager` class in `opendiscord`.
|
||||||
* 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.
|
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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":{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-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"},
|
"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"},
|
"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`
|
/**## ODMessageManagerIdMappings `interface`
|
||||||
* This is a special class that adds type definitions & typescript to the ODEmbedManager class.
|
* A list of all available IDs in the default `ODMessageManager` class in `opendiscord`.
|
||||||
* 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.
|
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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-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-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"},
|
"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"},
|
"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`
|
/**## ODModalManagerIdMappings `interface`
|
||||||
* This is a special class that adds type definitions & typescript to the ODMessageManager class.
|
* A list of all available IDs in the default `ODModalManager` class in `opendiscord`.
|
||||||
* 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.
|
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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: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: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"}
|
"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"}
|
"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`
|
/**## ODMappedButtonManager `class
|
||||||
* This is a special class that adds type definitions & typescript to the ODModalManager class.
|
* A special class with types for the Open Ticket `ODButtonManager` class.
|
||||||
* It doesn't add any extra features!
|
|
||||||
*
|
|
||||||
* This default class is made for the global variable `opendiscord.builders.modals`!
|
|
||||||
*/
|
*/
|
||||||
export class ODModalManager_Default extends api.ODModalManager {
|
export class ODMappedButtonManager extends api.ODButtonManager<ODButtonManagerIdMappings> {}
|
||||||
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 {
|
/**## ODMappedDropdownManager `class
|
||||||
return super.get(id)
|
* A special class with types for the Open Ticket `ODDropdownManager` class.
|
||||||
}
|
|
||||||
|
|
||||||
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!
|
|
||||||
*/
|
*/
|
||||||
export class ODModal_Default<Source extends string, Params, WorkerIds extends string> extends api.ODModal<Source,Params> {
|
export class ODMappedDropdownManager extends api.ODDropdownManager<ODDropdownManagerIdMappings> {}
|
||||||
declare workers: ODWorkerManager_Default<api.ODModalInstance,Source,Params,WorkerIds>
|
|
||||||
}
|
/**## 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 api from "@open-discord-bots/framework/api"
|
||||||
import * as discord from "discord.js"
|
import * as discord from "discord.js"
|
||||||
import { ODRoleUpdateMode } from "../openticket/role"
|
import { ODRoleUpdateMode } from "../api/role"
|
||||||
|
|
||||||
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW CONFIG VARIABLES?
|
/** (CONTRIBUTOR GUIDE) HOW TO ADD NEW CONFIG VARIABLES?
|
||||||
* - Make the change to the config file in (./config/) and be aware of the following things:
|
* - 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.
|
* - Check (./src/builders), (./src/actions), (./src/data) & (./src/commands) in general in the areas that were changed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**## ODConfigManagerIds_Default `interface`
|
/**## ODConfigManagerIdMappings `interface`
|
||||||
* This interface is a list of ids available in the `ODConfigManager_Default` class.
|
* A list of all available IDs in the default `ODConfigManager` class in `opendiscord`.
|
||||||
* It's used to generate typescript declarations for this class.
|
* It's used to generate typescript declarations for this class.
|
||||||
*/
|
*/
|
||||||
export interface ODConfigManagerIds_Default {
|
export interface ODConfigManagerIdMappings extends api.ODConfigManagerIdConstraint {
|
||||||
"opendiscord:general":ODJsonConfig_DefaultGeneral,
|
"opendiscord:general":ODGeneralJsonConfig,
|
||||||
"opendiscord:questions":ODJsonConfig_DefaultQuestions,
|
"opendiscord:questions":ODQuestionsJsonConfig,
|
||||||
"opendiscord:options":ODJsonConfig_DefaultOptions,
|
"opendiscord:options":ODOptionsJsonConfig,
|
||||||
"opendiscord:panels":ODJsonConfig_DefaultPanels,
|
"opendiscord:panels":ODPanelsJsonConfig,
|
||||||
"opendiscord:transcripts":ODJsonConfig_DefaultTranscripts
|
"opendiscord:transcripts":ODTranscriptsJsonConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODConfigManager_Default `default_class`
|
/**## ODMappedConfigManager `class
|
||||||
* This is a special class that adds type definitions & typescript to the ODConfigManager class.
|
* A special class with types for the Open Ticket `ODConfigManager` class.
|
||||||
* It doesn't add any extra features!
|
|
||||||
*
|
|
||||||
* This default class is made for the global variable `opendiscord.configs`!
|
|
||||||
*/
|
*/
|
||||||
export class ODConfigManager_Default extends api.ODConfigManager {
|
export class ODMappedConfigManager extends api.ODConfigManager<ODConfigManagerIdMappings> {}
|
||||||
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 {
|
/**## ODGeneralJsonConfig `class
|
||||||
return super.get(id)
|
* A special class with types for the Open Ticket `config/general.json` config file
|
||||||
}
|
*/
|
||||||
|
export class ODGeneralJsonConfig extends api.ODJsonConfig<ODGeneralJsonConfig_GeneralData> {}
|
||||||
|
|
||||||
remove<ConfigId extends keyof ODConfigManagerIds_Default>(id:ConfigId): ODConfigManagerIds_Default[ConfigId]
|
/**## ODQuestionsJsonConfig `class
|
||||||
remove(id:api.ODValidId): api.ODConfig|null
|
* A special class with types for the Open Ticket `config/questions.json` config file
|
||||||
|
*/
|
||||||
|
export class ODQuestionsJsonConfig extends api.ODJsonConfig<ODQuestionsJsonConfig_QuestionsData> {}
|
||||||
|
|
||||||
remove(id:api.ODValidId): api.ODConfig|null {
|
/**## ODOptionsJsonConfig `class
|
||||||
return super.remove(id)
|
* A special class with types for the Open Ticket `config/options.json` config file
|
||||||
}
|
*/
|
||||||
|
export class ODOptionsJsonConfig extends api.ODJsonConfig<ODOptionsJsonConfig_OptionsData> {}
|
||||||
|
|
||||||
exists(id:keyof ODConfigManagerIds_Default): boolean
|
/**## ODPanelsJsonConfig `class
|
||||||
exists(id:api.ODValidId): boolean
|
* A special class with types for the Open Ticket `config/panels.json` config file
|
||||||
|
*/
|
||||||
|
export class ODPanelsJsonConfig extends api.ODJsonConfig<ODPanelsJsonConfig_PanelsData> {}
|
||||||
|
|
||||||
exists(id:api.ODValidId): boolean {
|
/**## ODTranscriptsJsonConfig `class
|
||||||
return super.exists(id)
|
* A special class with types for the Open Ticket `config/transcripts.json` config file
|
||||||
}
|
*/
|
||||||
}
|
export class ODTranscriptsJsonConfig extends api.ODJsonConfig<ODTranscriptsJsonConfig_TranscriptsData> {}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultStatusType `interface`
|
///////////////////////////////////////
|
||||||
|
// 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!
|
* 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? */
|
/**Is the status enabled? */
|
||||||
enabled:boolean,
|
enabled:boolean,
|
||||||
/**The type of status (e.g. playing, listening, custom, ...) */
|
/**The type of status (e.g. playing, listening, custom, ...) */
|
||||||
@@ -82,25 +88,25 @@ export interface ODJsonConfig_DefaultStatusType {
|
|||||||
state:string,
|
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!
|
* 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. */
|
/**Enable sending DM logs to the ticket creator for this action. */
|
||||||
dm:boolean,
|
dm:boolean,
|
||||||
/**Enable sending logsto the log channel for this action. */
|
/**Enable sending logsto the log channel for this action. */
|
||||||
logs:boolean
|
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!
|
* 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.
|
* 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. */
|
/**A link to the Open Ticket documentation. */
|
||||||
support:string,
|
support:string,
|
||||||
/**A link to the DJdj Development discord server. */
|
/**A link to the DJdj Development discord server. */
|
||||||
@@ -109,20 +115,20 @@ export interface ODJsonConfig_DefaultInfo {
|
|||||||
version:string
|
version:string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultSystemLogs `interface`
|
/**## ODGeneralJsonConfig_SystemLogs `interface`
|
||||||
* All settings related to the log channel.
|
* 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"` */
|
/**Enable logging. Individual actions should still be added via the `"system"."messages"..."logs"` */
|
||||||
enabled:boolean,
|
enabled:boolean,
|
||||||
/**The channel to send logs to. */
|
/**The channel to send logs to. */
|
||||||
channel:string
|
channel:string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultSystemLimits `interface`
|
/**## ODGeneralJsonConfig_SystemLimits `interface`
|
||||||
* All settings related to global ticket limits.
|
* All settings related to global ticket limits.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultSystemLimits {
|
export interface ODGeneralJsonConfig_SystemLimits {
|
||||||
/**Enable global ticket limits. */
|
/**Enable global ticket limits. */
|
||||||
enabled:boolean,
|
enabled:boolean,
|
||||||
/**The maximum amount of tickets that are allowed in the server at the same time. */
|
/**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
|
userMaximum:number
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultSystemChannelTopic `interface`
|
/**## ODGeneralJsonConfig_SystemChannelTopic `interface`
|
||||||
* All global channel topic settings.
|
* All global channel topic settings.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultSystemChannelTopic {
|
export interface ODGeneralJsonConfig_SystemChannelTopic {
|
||||||
/**Show the option name in the channel topic. */
|
/**Show the option name in the channel topic. */
|
||||||
showOptionName:boolean,
|
showOptionName:boolean,
|
||||||
/**Show the option description in the channel topic. */
|
/**Show the option description in the channel topic. */
|
||||||
@@ -155,59 +161,59 @@ export interface ODJsonConfig_DefaultSystemChannelTopic {
|
|||||||
showParticipants:boolean
|
showParticipants:boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultSystemPermissions `interface`
|
/**## ODGeneralJsonConfig_SystemPermissions `interface`
|
||||||
* Configure permissions for all Open Ticket commands & actions.
|
* Configure permissions for all Open Ticket commands & actions.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultSystemPermissions {
|
export interface ODGeneralJsonConfig_SystemPermissions {
|
||||||
help:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
help:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
panel:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
panel:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
ticket:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
ticket:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
close:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
close:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
delete:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
delete:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
reopen:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
reopen:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
claim:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
claim:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
unclaim:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
unclaim:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
pin:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
pin:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
unpin:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
unpin:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
move:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
move:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
rename:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
rename:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
add:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
add:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
remove:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
remove:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
blacklist:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
blacklist:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
stats:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
stats:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
clear:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
clear:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
autoclose:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
autoclose:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
autodelete:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
autodelete:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
transfer:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
transfer:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
topic:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
topic:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
priority:ODJsonConfig_DefaultCmdPermissionSettingsType,
|
priority:ODGeneralJsonConfig_CmdPermissionSettingsType,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultSystemMessages `interface`
|
/**## ODGeneralJsonConfig_SystemMessages `interface`
|
||||||
* Configure dm & log messages for all Open Ticket commands & actions.
|
* Configure dm & log messages for all Open Ticket commands & actions.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultSystemMessages {
|
export interface ODGeneralJsonConfig_SystemMessages {
|
||||||
creation:ODJsonConfig_DefaultMessageSettingsType,
|
creation:ODGeneralJsonConfig_MessageSettings,
|
||||||
closing:ODJsonConfig_DefaultMessageSettingsType,
|
closing:ODGeneralJsonConfig_MessageSettings,
|
||||||
deleting:ODJsonConfig_DefaultMessageSettingsType,
|
deleting:ODGeneralJsonConfig_MessageSettings,
|
||||||
reopening:ODJsonConfig_DefaultMessageSettingsType,
|
reopening:ODGeneralJsonConfig_MessageSettings,
|
||||||
claiming:ODJsonConfig_DefaultMessageSettingsType,
|
claiming:ODGeneralJsonConfig_MessageSettings,
|
||||||
pinning:ODJsonConfig_DefaultMessageSettingsType,
|
pinning:ODGeneralJsonConfig_MessageSettings,
|
||||||
adding:ODJsonConfig_DefaultMessageSettingsType,
|
adding:ODGeneralJsonConfig_MessageSettings,
|
||||||
removing:ODJsonConfig_DefaultMessageSettingsType,
|
removing:ODGeneralJsonConfig_MessageSettings,
|
||||||
renaming:ODJsonConfig_DefaultMessageSettingsType,
|
renaming:ODGeneralJsonConfig_MessageSettings,
|
||||||
moving:ODJsonConfig_DefaultMessageSettingsType,
|
moving:ODGeneralJsonConfig_MessageSettings,
|
||||||
blacklisting:ODJsonConfig_DefaultMessageSettingsType,
|
blacklisting:ODGeneralJsonConfig_MessageSettings,
|
||||||
transferring:ODJsonConfig_DefaultMessageSettingsType,
|
transferring:ODGeneralJsonConfig_MessageSettings,
|
||||||
topicChange:ODJsonConfig_DefaultMessageSettingsType,
|
topicChange:ODGeneralJsonConfig_MessageSettings,
|
||||||
priorityChange:ODJsonConfig_DefaultMessageSettingsType,
|
priorityChange:ODGeneralJsonConfig_MessageSettings,
|
||||||
reactionRole:ODJsonConfig_DefaultMessageSettingsType,
|
reactionRole:ODGeneralJsonConfig_MessageSettings,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultSystem `interface`
|
/**## ODGeneralJsonConfig_System `interface`
|
||||||
* All settings related to the ticket system.
|
* 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. */
|
/**Prefer slash-commands over text-commands when displaying them in menu's and messages. */
|
||||||
preferSlashOverText:boolean,
|
preferSlashOverText:boolean,
|
||||||
/**Reply with "unknown command" when the prefix is used without a valid command. */
|
/**Reply with "unknown command" when the prefix is used without a valid command. */
|
||||||
@@ -266,27 +272,27 @@ export interface ODJsonConfig_DefaultSystem {
|
|||||||
enableDeleteWithoutTranscript:boolean,
|
enableDeleteWithoutTranscript:boolean,
|
||||||
|
|
||||||
/**All settings related to the log channel. */
|
/**All settings related to the log channel. */
|
||||||
logs:ODJsonConfig_DefaultSystemLogs,
|
logs:ODGeneralJsonConfig_SystemLogs,
|
||||||
|
|
||||||
/**All settings related to global ticket limits. */
|
/**All settings related to global ticket limits. */
|
||||||
limits:ODJsonConfig_DefaultSystemLimits,
|
limits:ODGeneralJsonConfig_SystemLimits,
|
||||||
|
|
||||||
/**All global channel topic settings. */
|
/**All global channel topic settings. */
|
||||||
channelTopic:ODJsonConfig_DefaultSystemChannelTopic,
|
channelTopic:ODGeneralJsonConfig_SystemChannelTopic,
|
||||||
|
|
||||||
/**Configure permissions for all Open Ticket commands & actions. */
|
/**Configure permissions for all Open Ticket commands & actions. */
|
||||||
permissions:ODJsonConfig_DefaultSystemPermissions,
|
permissions:ODGeneralJsonConfig_SystemPermissions,
|
||||||
|
|
||||||
/**Configure dm & log messages for all Open Ticket commands & actions. */
|
/**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.
|
* 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. */
|
/**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`) */
|
/**The token of the bot. (Empty when using `tokenFromENV`) */
|
||||||
token:string,
|
token:string,
|
||||||
@@ -310,26 +316,21 @@ export interface ODJsonConfig_DefaultGeneralData {
|
|||||||
textCommands:boolean,
|
textCommands:boolean,
|
||||||
|
|
||||||
/**All settings related to the status of the bot. */
|
/**All settings related to the status of the bot. */
|
||||||
status:ODJsonConfig_DefaultStatusType,
|
status:ODGeneralJsonConfig_Status,
|
||||||
|
|
||||||
/**All settings related to the ticket system. */
|
/**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.
|
// CONFIG STRUCTURES, VALUES & TYPES
|
||||||
* It doesn't add any extra features!
|
// --> options.json
|
||||||
*
|
///////////////////////////////////////
|
||||||
* This default class is made for the `general.json` config!
|
|
||||||
*/
|
|
||||||
export class ODJsonConfig_DefaultGeneral extends api.ODJsonConfig {
|
|
||||||
declare data: ODJsonConfig_DefaultGeneralData
|
|
||||||
}
|
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultOptionType `interface`
|
/**## ODOptionsJsonConfig_BaseOption `interface`
|
||||||
* This interface is an object which has all basic properties for options in the `options.json` config!
|
* 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. */
|
/**The id of this option. */
|
||||||
id:string,
|
id:string,
|
||||||
/**The name of this option. */
|
/**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!
|
* 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) */
|
/**The emoji of the button. (can also be empty) */
|
||||||
emoji:string,
|
emoji:string,
|
||||||
/**The label of the button (can also be empty) */
|
/**The label of the button (can also be empty) */
|
||||||
@@ -359,10 +360,10 @@ export interface ODJsonConfig_DefaultOptionButtonSettingsType {
|
|||||||
color:api.ODValidButtonColor
|
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!
|
* 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? */
|
/**Is this embed enabled? */
|
||||||
enabled:boolean,
|
enabled:boolean,
|
||||||
/**The title of the embed. */
|
/**The title of the embed. */
|
||||||
@@ -388,10 +389,10 @@ export interface ODJsonConfig_DefaultOptionEmbedSettingsType {
|
|||||||
timestamp:boolean
|
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!
|
* 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`. */
|
/**Ping `@here`. */
|
||||||
"@here":boolean,
|
"@here":boolean,
|
||||||
/**Ping `@everyone`. */
|
/**Ping `@everyone`. */
|
||||||
@@ -400,10 +401,10 @@ export interface ODJsonConfig_DefaultOptionPingSettingsType {
|
|||||||
custom:string[]
|
custom:string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultOptionTicketChannelType `interface`
|
/**## ODOptionsJsonConfig_TicketOptionChannelSettings `interface`
|
||||||
* All settings related to the ticket channel itself in a ticket option.
|
* 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. */
|
/**The prefix used in the name of this ticket channel. */
|
||||||
prefix:string,
|
prefix:string,
|
||||||
/**The type of suffix used in the name of this ticket channel. */
|
/**The type of suffix used in the name of this ticket channel. */
|
||||||
@@ -425,12 +426,12 @@ export interface ODJsonConfig_DefaultOptionTicketChannelType {
|
|||||||
topic:string
|
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!
|
* 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",
|
type:"ticket",
|
||||||
button:ODJsonConfig_DefaultOptionButtonSettingsType,
|
button:ODOptionsJsonConfig_OptionButtonSettings,
|
||||||
/**A list of discord role ids which are able to access this ticket type & use commands. */
|
/**A list of discord role ids which are able to access this ticket type & use commands. */
|
||||||
ticketAdmins:string[],
|
ticketAdmins:string[],
|
||||||
/**A list of discord role ids which are able to access this ticket type but can't write in the chat. */
|
/**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. */
|
/**A list of valid question ids from the `questions.json` config. */
|
||||||
questions:string[],
|
questions:string[],
|
||||||
/**All settings related to the ticket channel itself. */
|
/**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. */
|
/**All settings related to the message sent in DM to the creator when the ticket is created. */
|
||||||
dmMessage:{
|
dmMessage:{
|
||||||
/**Enable this message. */
|
/**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) */
|
/**The raw text contents of this message. (empty for embed only) */
|
||||||
text:string,
|
text:string,
|
||||||
/**The embed of this message. */
|
/**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. */
|
/**All settings related to the message sent in the ticket channel when the ticket is created. */
|
||||||
ticketMessage:{
|
ticketMessage:{
|
||||||
@@ -457,9 +458,9 @@ export interface ODJsonConfig_DefaultOptionTicketType extends ODJsonConfig_Defau
|
|||||||
/**The raw text contents of this message. (empty for embed only) */
|
/**The raw text contents of this message. (empty for embed only) */
|
||||||
text:string,
|
text:string,
|
||||||
/**The embed of this message. */
|
/**The embed of this message. */
|
||||||
embed:ODJsonConfig_DefaultOptionEmbedSettingsType,
|
embed:ODOptionsJsonConfig_TicketOptionEmbedSettings,
|
||||||
/**Additional ping/mention settings for this ticket channel. */
|
/**Additional ping/mention settings for this ticket channel. */
|
||||||
ping:ODJsonConfig_DefaultOptionPingSettingsType
|
ping:ODOptionsJsonConfig_TicketOptionPingSettings
|
||||||
},
|
},
|
||||||
/**All settings related to autoclosing this ticket type. */
|
/**All settings related to autoclosing this ticket type. */
|
||||||
autoclose:{
|
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!
|
* 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",
|
type:"website",
|
||||||
/**The URL this button will point to. */
|
/**The URL this button will point to. */
|
||||||
url:string
|
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!
|
* 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",
|
type:"role",
|
||||||
button:ODJsonConfig_DefaultOptionButtonSettingsType,
|
button:ODOptionsJsonConfig_OptionButtonSettings,
|
||||||
/**All roles which will be affected by this button. */
|
/**All roles which will be affected by this button. */
|
||||||
roles:string[],
|
roles:string[],
|
||||||
/**The mode determines what will happen with the affected roles on the user. */
|
/**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
|
addOnMemberJoin:boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultOptionsData `type`
|
/**## ODOptionsJsonConfig_OptionsData `type`
|
||||||
* All contents of the `options.json` config file.
|
* 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.
|
// CONFIG STRUCTURES, VALUES & TYPES
|
||||||
* It doesn't add any extra features!
|
// --> panels.json
|
||||||
*
|
///////////////////////////////////////
|
||||||
* This default class is made for the `options.json` config!
|
|
||||||
*/
|
|
||||||
export class ODJsonConfig_DefaultOptions extends api.ODJsonConfig {
|
|
||||||
declare data: ODJsonConfig_DefaultOptionsData
|
|
||||||
}
|
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultPanelEmbedSettingsType `interface`
|
/**## ODPanelsJsonConfig_PanelEmbedSettings `interface`
|
||||||
* This interface is an object which has all message embed settings for panels in the `panels.json` config!
|
* 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? */
|
/**Is this embed enabled? */
|
||||||
enabled:boolean,
|
enabled:boolean,
|
||||||
/**The title of the embed. */
|
/**The title of the embed. */
|
||||||
@@ -583,10 +579,10 @@ export interface ODJsonConfig_DefaultPanelEmbedSettingsType {
|
|||||||
timestamp:boolean
|
timestamp:boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultPanelSettingsType `interface`
|
/**## ODPanelsJsonConfig_PanelSettings `interface`
|
||||||
* This interface is a collection of additional settings for extra customisation in a panel.
|
* 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. */
|
/**The placeholder used in the dropdown when enabled. */
|
||||||
dropdownPlaceholder:string,
|
dropdownPlaceholder:string,
|
||||||
|
|
||||||
@@ -607,10 +603,10 @@ export interface ODJsonConfig_DefaultPanelSettingsType {
|
|||||||
describeOptionsInEmbedDescription:boolean
|
describeOptionsInEmbedDescription:boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultPanelType `interface`
|
/**## ODPanelsJsonConfig_Panel `interface`
|
||||||
* This interface is an object which has all properties for panels in the `panels.json` config!
|
* 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. */
|
/**The id of this panel. */
|
||||||
id:string,
|
id:string,
|
||||||
/**The name of this panel. */
|
/**The name of this panel. */
|
||||||
@@ -623,30 +619,25 @@ export interface ODJsonConfig_DefaultPanelType {
|
|||||||
/**The raw text contents of this panel. (empty for embed only) */
|
/**The raw text contents of this panel. (empty for embed only) */
|
||||||
text:string,
|
text:string,
|
||||||
/**The embed of this panel. */
|
/**The embed of this panel. */
|
||||||
embed:ODJsonConfig_DefaultPanelEmbedSettingsType,
|
embed:ODPanelsJsonConfig_PanelEmbedSettings,
|
||||||
/**A collection of additional settings for extra customisation in a panel. */
|
/**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.
|
* 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.
|
// CONFIG STRUCTURES, VALUES & TYPES
|
||||||
* It doesn't add any extra features!
|
// --> questions.json
|
||||||
*
|
///////////////////////////////////////
|
||||||
* This default class is made for the `panels.json` config!
|
|
||||||
*/
|
|
||||||
export class ODJsonConfig_DefaultPanels extends api.ODJsonConfig {
|
|
||||||
declare data: ODJsonConfig_DefaultPanelsData
|
|
||||||
}
|
|
||||||
|
|
||||||
/**## ODJSonConfig_DefaultQuestionLengthSettings `interface`
|
/**## ODQuestionsJsonConfig_QuestionLengthSettings `interface`
|
||||||
* This interface is a collection of settings related to length validation in a question.
|
* 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. */
|
/**Enable text length verification. */
|
||||||
enabled:boolean,
|
enabled:boolean,
|
||||||
/**The minimum text input length. */
|
/**The minimum text input length. */
|
||||||
@@ -655,63 +646,54 @@ export interface ODJSonConfig_DefaultQuestionLengthSettings {
|
|||||||
max:number
|
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!
|
* This interface is an object which has all properties for short questions in the `questions.json` config!
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultShortQuestionType {
|
export interface ODQuestionsJsonConfig_ShortQuestion extends ODQuestionsJsonConfig_BaseQuestion {
|
||||||
/**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,
|
|
||||||
/**A placeholder for the question. */
|
/**A placeholder for the question. */
|
||||||
placeholder:string,
|
placeholder:string,
|
||||||
/**A collection of settings related to length validation in a question. */
|
/**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!
|
* This interface is an object which has all properties for paragraph questions in the `questions.json` config!
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultParagraphQuestionType {
|
export interface ODQuestionsJsonConfig_ParagraphQuestion extends ODQuestionsJsonConfig_BaseQuestion {
|
||||||
/**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,
|
|
||||||
/**A placeholder for the question. */
|
/**A placeholder for the question. */
|
||||||
placeholder:string,
|
placeholder:string,
|
||||||
/**A collection of settings related to length validation in a question. */
|
/**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.
|
* 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.
|
// CONFIG STRUCTURES, VALUES & TYPES
|
||||||
* It doesn't add any extra features!
|
// --> transcripts.json
|
||||||
*
|
///////////////////////////////////////
|
||||||
* This default class is made for the `questions.json` config!
|
|
||||||
*/
|
|
||||||
export class ODJsonConfig_DefaultQuestions extends api.ODJsonConfig {
|
|
||||||
declare data: ODJsonConfig_DefaultQuestionsData
|
|
||||||
}
|
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultTranscriptsTextLayout `interface`
|
/**## ODTranscriptsJsonConfig_TranscriptsTextLayout `interface`
|
||||||
* This interface contains the layout of the text transcripts.
|
* This interface contains the layout of the text transcripts.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultTranscriptsTextLayout {
|
export interface ODTranscriptsJsonConfig_TranscriptsTextLayout {
|
||||||
/**The layout/complexity of the text transcripts. */
|
/**The layout/complexity of the text transcripts. */
|
||||||
layout:"simple"|"normal"|"detailed",
|
layout:"simple"|"normal"|"detailed",
|
||||||
/**Include stats in the transcript. */
|
/**Include stats in the transcript. */
|
||||||
@@ -731,10 +713,10 @@ export interface ODJsonConfig_DefaultTranscriptsTextLayout {
|
|||||||
customFileName:string
|
customFileName:string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODJsonConfig_DefaultTranscriptsHtmlLayout `interface`
|
/**## ODTranscriptsJsonConfig_TranscriptsHtmlLayout `interface`
|
||||||
* This interface contains the layout of the HTML transcripts.
|
* This interface contains the layout of the HTML transcripts.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultTranscriptsHtmlLayout {
|
export interface ODTranscriptsJsonConfig_TranscriptsHtmlLayout {
|
||||||
/**Settings related to the background. */
|
/**Settings related to the background. */
|
||||||
background:{
|
background:{
|
||||||
/**Enable a custom 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.
|
* All contents of the `transcripts.json` config file.
|
||||||
*/
|
*/
|
||||||
export interface ODJsonConfig_DefaultTranscriptsData {
|
export interface ODTranscriptsJsonConfig_TranscriptsData {
|
||||||
/**All general settings related to transcripts. */
|
/**All general settings related to transcripts. */
|
||||||
general:{
|
general:{
|
||||||
/**Are transcripts enabled? */
|
/**Are transcripts enabled? */
|
||||||
@@ -814,18 +796,7 @@ export interface ODJsonConfig_DefaultTranscriptsData {
|
|||||||
includeTicketStats:boolean
|
includeTicketStats:boolean
|
||||||
},
|
},
|
||||||
/**The layout of the text transcripts. */
|
/**The layout of the text transcripts. */
|
||||||
textTranscriptStyle:ODJsonConfig_DefaultTranscriptsTextLayout,
|
textTranscriptStyle:ODTranscriptsJsonConfig_TranscriptsTextLayout,
|
||||||
/**The layout of the HTML transcripts. */
|
/**The layout of the HTML transcripts. */
|
||||||
htmlTranscriptStyle:ODJsonConfig_DefaultTranscriptsHtmlLayout
|
htmlTranscriptStyle:ODTranscriptsJsonConfig_TranscriptsHtmlLayout
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**## 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
|
|
||||||
}
|
}
|
||||||
@@ -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"
|
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"
|
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.
|
* - Update the Open Ticket Documentation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**## ODLanguageManagerIds_Default `interface`
|
/**## ODLanguageManagerIdMappings `interface`
|
||||||
* This interface is a list of ids available in the `ODLanguageManager_Default` class.
|
* A list of all available IDs in the default `ODLanguageManager` class in `opendiscord`.
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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:custom":api.ODLanguage,
|
||||||
"opendiscord:english":api.ODLanguage,
|
"opendiscord:english":api.ODLanguage,
|
||||||
"opendiscord:dutch":api.ODLanguage,
|
"opendiscord:dutch":api.ODLanguage,
|
||||||
@@ -58,11 +58,11 @@ export interface ODLanguageManagerIds_Default {
|
|||||||
//ADD NEW LANGUAGES HERE!!!
|
//ADD NEW LANGUAGES HERE!!!
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODLanguageManagerTranslations_Default `type`
|
/**## ODLanguageManagerTranslationIdMappings `type`
|
||||||
* This interface is a list of ids available in the `ODLanguageManager_Default` class.
|
* A list of all available translation IDs in the default `ODLanguageManager` class in `opendiscord`.
|
||||||
* It's used to generate typescript declarations for this class.
|
* It's used to generate typescript declarations for this class.
|
||||||
*/
|
*/
|
||||||
export type ODLanguageManagerTranslations_Default = (
|
export type ODLanguageManagerTranslationIdMappings = (
|
||||||
"checker.system.headerOpenTicket"|
|
"checker.system.headerOpenTicket"|
|
||||||
"checker.system.typeError"|
|
"checker.system.typeError"|
|
||||||
"checker.system.typeWarning"|
|
"checker.system.typeWarning"|
|
||||||
@@ -622,59 +622,7 @@ export type ODLanguageManagerTranslations_Default = (
|
|||||||
"priorities.none"
|
"priorities.none"
|
||||||
)
|
)
|
||||||
|
|
||||||
/**## ODLanguageManager_Default `default_class`
|
/**## ODMappedLanguageManager `class
|
||||||
* This is a special class that adds type definitions & typescript to the ODLanguageManager class.
|
* A special class with types for the Open Ticket `ODLanguageManager` class.
|
||||||
* It doesn't add any extra features!
|
|
||||||
*
|
|
||||||
* This default class is made for the global variable `opendiscord.languages`!
|
|
||||||
*/
|
*/
|
||||||
export class ODLanguageManager_Default extends api.ODLanguageManager {
|
export class ODMappedLanguageManager extends api.ODLanguageManager<ODLanguageManagerIdMappings,ODLanguageManagerTranslationIdMappings> {}
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 * as api from "@open-discord-bots/framework/api"
|
||||||
import { ODWorkerManager_Default } from "../defaults/worker"
|
|
||||||
import * as discord from "discord.js"
|
|
||||||
|
|
||||||
/**## ODVerifyBarManagerIds_Default `interface`
|
/**## ODVerifyBarManagerIdMappings `interface`
|
||||||
* This interface is a list of ids available in the `ODVerifyBarManager_Default` class.
|
* A list of all available IDs in the default `ODVerifyBarManager` class in `opendiscord`.
|
||||||
* It's used to generate typescript declarations for this class.
|
* 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-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: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"},
|
"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"}
|
"opendiscord:delete-ticket-autoclose-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:delete-ticket",failureWorkerIds:"opendiscord:back-to-autoclose-message"}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**## ODVerifyBarManager_Default `default_class`
|
/**## ODMappedVerifyBarManager `class
|
||||||
* This is a special class that adds type definitions & typescript to the ODVerifyBarManager class.
|
* A special class with types for the Open Ticket `ODVerifyBarManager` class.
|
||||||
* It doesn't add any extra features!
|
|
||||||
*
|
|
||||||
* This default class is made for the global variable `opendiscord.verifybars`!
|
|
||||||
*/
|
*/
|
||||||
export class ODVerifyBarManager_Default extends api.ODVerifyBarManager {
|
export class ODMappedVerifyBarManager extends api.ODVerifyBarManager<ODVerifyBarManagerIdMappings> {}
|
||||||
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>
|
|
||||||
}
|
|
||||||
@@ -45,7 +45,7 @@ export const loadAllConfigCheckerTranslations = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//GLOBAL FUNCTIONS
|
//GLOBAL FUNCTIONS
|
||||||
export const registerDefaultCheckerSystemTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => {
|
export const registerDefaultCheckerSystemTranslations = (tm:api.ODMappedCheckerTranslationRegister,lm:api.ODMappedLanguageManager) => {
|
||||||
//SYSTEM
|
//SYSTEM
|
||||||
//tm.quickTranslate(lm,"checker.system.headerOpenTicket","other","opendiscord:header-openticket") //OPEN TICKET (ignore)
|
//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)
|
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
|
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
|
//STRUCTURES
|
||||||
tm.quickTranslate(lm,"checker.messages.invalidType","message","opendiscord:invalid-type") // This property needs to be the type: {0}!
|
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!
|
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!
|
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
|
//CUSTOM
|
||||||
tm.quickTranslate(lm,"checker.messages.invalidLanguage","message","opendiscord:invalid-language") // This is an invalid language!
|
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}!
|
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 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)
|
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++
|
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
|
//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 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 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 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})
|
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++
|
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
|
//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 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.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"
|
import {opendiscord, api, utilities} from "../../index"
|
||||||
|
|
||||||
export const loadAllEvents = () => {
|
export const loadAllEvents = () => {
|
||||||
const eventList: (keyof api.ODEventIds_Default)[] = [
|
const eventList: (keyof api.ODNoGeneric<api.ODEventManagerIdMappings>)[] = [
|
||||||
//error handling
|
//error handling
|
||||||
"onErrorHandling",
|
"onErrorHandling",
|
||||||
"afterErrorHandling",
|
"afterErrorHandling",
|
||||||
@@ -258,13 +258,13 @@ export const loadAllEvents = () => {
|
|||||||
"onHelpMenuComponentLoad",
|
"onHelpMenuComponentLoad",
|
||||||
"afterHelpMenuComponentsLoaded",
|
"afterHelpMenuComponentsLoaded",
|
||||||
|
|
||||||
//stats
|
//statistics
|
||||||
"onStatScopeLoad",
|
"onStatisticScopeLoad",
|
||||||
"afterStatScopesLoaded",
|
"afterStatisticScopesLoaded",
|
||||||
"onStatLoad",
|
"onStatisticLoad",
|
||||||
"afterStatsLoaded",
|
"afterStatisticsLoaded",
|
||||||
"onStatInit",
|
"onStatisticInit",
|
||||||
"afterStatsInitiated",
|
"afterStatisticsInitiated",
|
||||||
|
|
||||||
//plugin loading before code
|
//plugin loading before code
|
||||||
"onPluginBeforeCodeLoad",
|
"onPluginBeforeCodeLoad",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import {opendiscord, api, utilities} from "../../index"
|
import {opendiscord, api, utilities} from "../../index"
|
||||||
|
|
||||||
export const loadAllProgressBarRenderers = async () => {
|
export const loadAllProgressBarRenderers = async () => {
|
||||||
const defaultSettings: api.ODProgressBarRenderer_DefaultSettings = {
|
const defaultSettings: api.ODDefaultProgressBarRendererSettings = {
|
||||||
borderColor:"gray",
|
borderColor:"gray",
|
||||||
filledBarColor:"openticket",
|
filledBarColor:"openticket",
|
||||||
emptyBarColor:"gray",
|
emptyBarColor:"gray",
|
||||||
@@ -23,34 +23,34 @@ export const loadAllProgressBarRenderers = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//VALUE RENDERER
|
//VALUE RENDERER
|
||||||
const valueRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
const valueRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||||
valueRendererSettings.labelType = "value"
|
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
|
//FRACTION RENDERER
|
||||||
const fractionRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
const fractionRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||||
fractionRendererSettings.labelType = "fraction"
|
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
|
//PERCENTAGE RENDERER
|
||||||
const percentageRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
const percentageRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||||
percentageRendererSettings.labelType = "percentage"
|
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
|
//TIME MS RENDERER
|
||||||
const timeMsRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
const timeMsRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||||
timeMsRendererSettings.labelType = "time-ms"
|
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
|
//TIME SEC RENDERER
|
||||||
const timeSecRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
const timeSecRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||||
timeSecRendererSettings.labelType = "time-sec"
|
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
|
//TIME MIN RENDERER
|
||||||
const timeMinRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings}
|
const timeMinRendererSettings: api.ODDefaultProgressBarRendererSettings = {...defaultSettings}
|
||||||
timeMinRendererSettings.labelType = "time-min"
|
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 () => {
|
export const loadAllProgressBars = async () => {
|
||||||
|
|||||||
@@ -1,41 +1,41 @@
|
|||||||
import {opendiscord, api, utilities} from "../../index"
|
import {opendiscord, api, utilities} from "../../index"
|
||||||
import * as discord from "discord.js"
|
import * as discord from "discord.js"
|
||||||
|
|
||||||
const stats = opendiscord.stats
|
const stats = opendiscord.statistics
|
||||||
const lang = opendiscord.languages
|
const lang = opendiscord.languages
|
||||||
|
|
||||||
export const loadAllStatScopes = async () => {
|
export const loadAllStatisticScopes = async () => {
|
||||||
stats.add(new api.ODStatGlobalScope("opendiscord:global",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.global"))))
|
stats.add(new api.ODStatisticGlobalScope("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.ODStatisticGlobalScope("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.ODStatisticScope("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.ODStatisticScope("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.ODStatisticScope("opendiscord:participants",utilities.emojiTitle("👥",lang.getTranslation("stats.scopes.participants"))))
|
||||||
stats.add(new api.ODStatScope("opendiscord:messages",utilities.emojiTitle("💬",lang.getTranslation("stats.scopes.messages"))))
|
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")
|
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
||||||
if (!generalConfig) return
|
if (!generalConfig) return
|
||||||
|
|
||||||
const global = stats.get("opendiscord:global")
|
const global = stats.get("opendiscord:global")
|
||||||
if (global){
|
if (global){
|
||||||
global.add(new api.ODBasicStat("opendiscord:tickets-created",13,lang.getTranslation("stats.properties.ticketsCreated"),0))
|
global.add(new api.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("opendiscord:transcripts-created",2,lang.getTranslation("stats.properties.transcriptsCreated"),0))
|
||||||
global.add(new api.ODDynamicStat("opendiscord:ticket-volume",1,() => {
|
global.add(new api.ODDynamicStatistic("opendiscord:ticket-volume",1,() => {
|
||||||
return lang.getTranslation("stats.properties.ticketVolume")+": `"+opendiscord.tickets.getLength()+"`"
|
return lang.getTranslation("stats.properties.ticketVolume")+": `"+opendiscord.tickets.getLength()+"`"
|
||||||
}))
|
}))
|
||||||
global.add(new api.ODDynamicStat("opendiscord:average-tickets",0,async () => {
|
global.add(new api.ODDynamicStatistic("opendiscord:average-tickets",0,async () => {
|
||||||
const userTicketsCreated = await opendiscord.stats.get("opendiscord:user").getAllStats("opendiscord:tickets-created")
|
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 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
|
const roundedAverage = Math.round(average*1000)/1000
|
||||||
return lang.getTranslation("stats.properties.averageTickets")+": `"+roundedAverage+"`"
|
return lang.getTranslation("stats.properties.averageTickets")+": `"+roundedAverage+"`"
|
||||||
@@ -44,23 +44,23 @@ export const loadAllStats = async () => {
|
|||||||
|
|
||||||
const system = stats.get("opendiscord:system")
|
const system = stats.get("opendiscord:system")
|
||||||
if (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")
|
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")
|
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()+"`"
|
return lang.getTranslation("params.uppercase.version")+": `"+opendiscord.versions.get("opendiscord:version").toString()+"`"
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
const user = stats.get("opendiscord:user")
|
const user = stats.get("opendiscord:user")
|
||||||
if (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)
|
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)
|
const scopeMember = await opendiscord.client.fetchGuildMember(guild,scopeId)
|
||||||
if (!scopeMember) return ""
|
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")+"`"
|
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")+"`"
|
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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.ODBaseStatistic("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.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+"`"
|
return lang.getTranslation("stats.properties.currentTickets")+": `"+opendiscord.tickets.getFiltered((t) => t.get("opendiscord:opened-by").value === scopeId).length+"`"
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
const ticket = stats.get("opendiscord:ticket")
|
const ticket = stats.get("opendiscord:ticket")
|
||||||
if (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)
|
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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
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")+"`"
|
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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
if (!ticket) return ""
|
||||||
|
|
||||||
const claimed = ticket.exists("opendiscord:claimed") ? ticket.get("opendiscord:claimed").value : false
|
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")+"`"
|
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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
if (!ticket) return ""
|
||||||
|
|
||||||
const pinned = ticket.exists("opendiscord:pinned") ? ticket.get("opendiscord:pinned").value : false
|
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")+"`"
|
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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
if (!ticket) return ""
|
||||||
|
|
||||||
const rawDate = ticket.get("opendiscord:opened-on").value ?? new Date().getTime()
|
const rawDate = ticket.get("opendiscord:opened-on").value ?? new Date().getTime()
|
||||||
return lang.getTranslation("params.uppercase.creationDate")+": "+discord.time(new Date(rawDate),"f")
|
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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
if (!ticket) return ""
|
||||||
|
|
||||||
const creator = ticket.get("opendiscord:opened-by").value
|
const creator = ticket.get("opendiscord:opened-by").value
|
||||||
return lang.getTranslation("params.uppercase.creator")+": "+ (creator ? discord.userMention(creator) : "`unknown`")
|
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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
if (!ticket) return ""
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ export const loadAllStats = async () => {
|
|||||||
|
|
||||||
const participants = stats.get("opendiscord:participants")
|
const participants = stats.get("opendiscord:participants")
|
||||||
if (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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
if (!ticket) return ""
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ export const loadAllStats = async () => {
|
|||||||
|
|
||||||
const messages = stats.get("opendiscord:messages")
|
const messages = stats.get("opendiscord:messages")
|
||||||
if (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)
|
const ticket = opendiscord.tickets.get(scopeId)
|
||||||
if (!ticket) return ""
|
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,[
|
return new api.ODTicketOption(option.id,[
|
||||||
new api.ODOptionData("opendiscord:name",option.name),
|
new api.ODOptionData("opendiscord:name",option.name),
|
||||||
new api.ODOptionData("opendiscord:description",option.description),
|
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,[
|
return new api.ODWebsiteOption(opt.id,[
|
||||||
new api.ODOptionData("opendiscord:name",opt.name),
|
new api.ODOptionData("opendiscord:name",opt.name),
|
||||||
new api.ODOptionData("opendiscord:description",opt.description),
|
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,[
|
return new api.ODRoleOption(opt.id,[
|
||||||
new api.ODOptionData("opendiscord:name",opt.name),
|
new api.ODOptionData("opendiscord:name",opt.name),
|
||||||
new api.ODOptionData("opendiscord:description",opt.description),
|
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,[
|
return new api.ODPanel(panel.id,[
|
||||||
new api.ODPanelData("opendiscord:name",panel.name),
|
new api.ODPanelData("opendiscord:name",panel.name),
|
||||||
new api.ODPanelData("opendiscord:options",panel.options),
|
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,[
|
return new api.ODShortQuestion(option.id,[
|
||||||
new api.ODQuestionData("opendiscord:name",option.name),
|
new api.ODQuestionData("opendiscord:name",option.name),
|
||||||
new api.ODQuestionData("opendiscord:required",option.required),
|
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,[
|
return new api.ODParagraphQuestion(option.id,[
|
||||||
new api.ODQuestionData("opendiscord:name",option.name),
|
new api.ODQuestionData("opendiscord:name",option.name),
|
||||||
new api.ODQuestionData("opendiscord:required",option.required),
|
new api.ODQuestionData("opendiscord:required",option.required),
|
||||||
|
|||||||
+21
-20
@@ -37,11 +37,12 @@
|
|||||||
//initialize API & check npm libraries
|
//initialize API & check npm libraries
|
||||||
import { loadDumpCommand, loadAllPlugins, loadErrorHandling } from "@open-discord-bots/framework"
|
import { loadDumpCommand, loadAllPlugins, loadErrorHandling } from "@open-discord-bots/framework"
|
||||||
import * as utilities from "@open-discord-bots/framework/utilities"
|
import * as utilities from "@open-discord-bots/framework/utilities"
|
||||||
import * as api from "./core/api/api"
|
import * as api from "./core/api"
|
||||||
export * as utilities from "@open-discord-bots/framework/utilities"
|
|
||||||
export * as api from "./core/api/api"
|
|
||||||
import ansis from "ansis"
|
import ansis from "ansis"
|
||||||
|
|
||||||
|
export * as utilities from "@open-discord-bots/framework/utilities"
|
||||||
|
export * as api from "./core/api"
|
||||||
|
|
||||||
utilities.checkNodeVersion("openticket")
|
utilities.checkNodeVersion("openticket")
|
||||||
|
|
||||||
utilities.moduleInstalled("@open-discord-bots/framework",true)
|
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("onHelpMenuComponentLoad").emit([opendiscord.helpmenu])
|
||||||
await opendiscord.events.get("afterHelpMenuComponentsLoaded").emit([opendiscord.helpmenu])
|
await opendiscord.events.get("afterHelpMenuComponentsLoaded").emit([opendiscord.helpmenu])
|
||||||
|
|
||||||
//load stat scopes
|
//load statistic scopes
|
||||||
opendiscord.log("Loading stats...","system")
|
opendiscord.log("Loading statistics...","system")
|
||||||
if (opendiscord.sharedFuses.getFuse("statScopesLoading")){
|
if (opendiscord.sharedFuses.getFuse("statisticScopesLoading")){
|
||||||
opendiscord.stats.useDatabase(opendiscord.databases.get("opendiscord:stats"))
|
opendiscord.statistics.useDatabase(opendiscord.databases.get("opendiscord:stats"))
|
||||||
await (await import("./data/framework/statLoader.js")).loadAllStatScopes()
|
await (await import("./data/framework/statisticLoader.js")).loadAllStatisticScopes()
|
||||||
}
|
}
|
||||||
await opendiscord.events.get("onStatScopeLoad").emit([opendiscord.stats])
|
await opendiscord.events.get("onStatisticScopeLoad").emit([opendiscord.statistics])
|
||||||
await opendiscord.events.get("afterStatScopesLoaded").emit([opendiscord.stats])
|
await opendiscord.events.get("afterStatisticScopesLoaded").emit([opendiscord.statistics])
|
||||||
|
|
||||||
//load stats
|
//load statistics
|
||||||
if (opendiscord.sharedFuses.getFuse("statLoading")){
|
if (opendiscord.sharedFuses.getFuse("statisticLoading")){
|
||||||
await (await import("./data/framework/statLoader.js")).loadAllStats()
|
await (await import("./data/framework/statisticLoader.js")).loadAllStatistics()
|
||||||
}
|
}
|
||||||
await opendiscord.events.get("onStatLoad").emit([opendiscord.stats])
|
await opendiscord.events.get("onStatisticLoad").emit([opendiscord.statistics])
|
||||||
await opendiscord.events.get("afterStatsLoaded").emit([opendiscord.stats])
|
await opendiscord.events.get("afterStatisticsLoaded").emit([opendiscord.statistics])
|
||||||
|
|
||||||
//init stats
|
//init statistics
|
||||||
await opendiscord.events.get("onStatInit").emit([opendiscord.stats])
|
await opendiscord.events.get("onStatisticInit").emit([opendiscord.statistics])
|
||||||
if (opendiscord.sharedFuses.getFuse("statInitiating")){
|
if (opendiscord.sharedFuses.getFuse("statisticInitiating")){
|
||||||
await opendiscord.stats.init()
|
await opendiscord.statistics.init()
|
||||||
await opendiscord.events.get("afterStatsInitiated").emit([opendiscord.stats])
|
await opendiscord.events.get("afterStatisticsInitiated").emit([opendiscord.statistics])
|
||||||
}
|
}
|
||||||
|
|
||||||
//plugin loading before code
|
//plugin loading before code
|
||||||
|
|||||||
Reference in New Issue
Block a user