v3.3 push 4 (1 entire afternoon of work)
My TODO list is too big :)
This commit is contained in:
+2
-2
@@ -15,10 +15,10 @@ module.exports = () => {
|
|||||||
const prefix = config.system.showSlashcmdsInHelp ? "/" : config.prefix
|
const prefix = config.system.showSlashcmdsInHelp ? "/" : config.prefix
|
||||||
|
|
||||||
const helpEmbed = new discord.EmbedBuilder()
|
const helpEmbed = new discord.EmbedBuilder()
|
||||||
.setColor(config.main_color)
|
.setColor(config.color)
|
||||||
.setTitle("❔ "+l.helpMenu.title)
|
.setTitle("❔ "+l.helpMenu.title)
|
||||||
|
|
||||||
const header = config.system.ticket_channel ? l.helpMenu.header1.replace("{0}","<#"+config.system.ticket_channel+">") : l.helpMenu.header2
|
const header = l.helpMenu.header2
|
||||||
helpEmbed.setDescription(header+"`"+prefix+msgName+" <id>` ➜ _"+l.helpMenu.msgCmd+"_\n\n`"+prefix+"rename <name>` ➜ _"+l.helpMenu.renameCmd+"_\n`"+prefix+"close` ➜ _"+l.helpMenu.closeCmd+"_\n`"+prefix+"delete` ➜ _"+l.helpMenu.deleteCmd+"_\n`"+prefix+"reopen` ➜ _"+l.helpMenu.reopenCmd+"_\n\n`"+prefix+"add <user>` ➜ _"+l.helpMenu.addCmd+"_\n`"+prefix+"remove <user>` ➜ _"+l.helpMenu.removeCmd+"_\n\n`"+prefix+"change <newtype>` ➜ _Change ticket type._")
|
helpEmbed.setDescription(header+"`"+prefix+msgName+" <id>` ➜ _"+l.helpMenu.msgCmd+"_\n\n`"+prefix+"rename <name>` ➜ _"+l.helpMenu.renameCmd+"_\n`"+prefix+"close` ➜ _"+l.helpMenu.closeCmd+"_\n`"+prefix+"delete` ➜ _"+l.helpMenu.deleteCmd+"_\n`"+prefix+"reopen` ➜ _"+l.helpMenu.reopenCmd+"_\n\n`"+prefix+"add <user>` ➜ _"+l.helpMenu.addCmd+"_\n`"+prefix+"remove <user>` ➜ _"+l.helpMenu.removeCmd+"_\n\n`"+prefix+"change <newtype>` ➜ _Change ticket type._")
|
||||||
|
|
||||||
var otherprefix = prefix.endsWith(" ") ? prefix.substring(0,prefix.length-1) : prefix
|
var otherprefix = prefix.endsWith(" ") ? prefix.substring(0,prefix.length-1) : prefix
|
||||||
|
|||||||
+12
-11
@@ -1,10 +1,13 @@
|
|||||||
{
|
{
|
||||||
"main_color":"#ffffff",
|
"color":"#ffffff",
|
||||||
"server_id":"server id (for slash cmds)",
|
"serverId":"server id (for slash cmds)",
|
||||||
"auth_token":"auth token",
|
"token":{
|
||||||
"main_adminroles":["discord role id"],
|
"value":"insert your bot token here",
|
||||||
|
"fromENV":false
|
||||||
|
},
|
||||||
|
"adminRoles":["discord role id"],
|
||||||
"prefix":"!ticket ",
|
"prefix":"!ticket ",
|
||||||
"languagefile":"english",
|
"languageFile":"english",
|
||||||
|
|
||||||
"status":{
|
"status":{
|
||||||
"enabled":true,
|
"enabled":true,
|
||||||
@@ -13,13 +16,11 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"system":{
|
"system":{
|
||||||
"ticket_channel":"channel id",
|
"maxAmountOfTickets":3,
|
||||||
"max_allowed_tickets":3,
|
"dmMessages":false,
|
||||||
"enable_DM_Messages":false,
|
|
||||||
|
|
||||||
"has@everyoneaccess":false,
|
"memberRole":"member role (leave empty if you have no member role)",
|
||||||
"member_role":"member role (this role doesn't have access to tickets)",
|
"closeMode":"adminonly OR normal (select one!)",
|
||||||
"closeMode":"adminonly or normal (select one of the 2)",
|
|
||||||
|
|
||||||
"transcripts":"!!!! ALL SETTINGS FOR TRANSCRIPTS ARE LOCATED IN: transcriptconfig.json !!!!",
|
"transcripts":"!!!! ALL SETTINGS FOR TRANSCRIPTS ARE LOCATED IN: transcriptconfig.json !!!!",
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
/** FOR DEVELOPERS ONLY!!
|
|
||||||
* Don't change anything in this file before reading the documentation!
|
|
||||||
* visit the api documentation at https://docs.openticket.dj-dj.be
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
exports.embeddedMode = false
|
|
||||||
exports.clientLocation = require("../../../index").client
|
|
||||||
+40
-43
@@ -53,9 +53,9 @@ exports.checker = async () => {
|
|||||||
/**@param {String} value */
|
/**@param {String} value */
|
||||||
const checkToken = (value) => {
|
const checkToken = (value) => {
|
||||||
if (value.length < 40){
|
if (value.length < 40){
|
||||||
createError("'auth_token' | your token is invalid")
|
createError("'token/value' | your token is invalid")
|
||||||
}
|
}
|
||||||
if (value.includes(" ")) createError("'auth_token' | your token includes spaces!")
|
if (value.includes(" ")) createError("'token/value' | your token includes spaces!")
|
||||||
}
|
}
|
||||||
|
|
||||||
/**@param {String} value @param {String} path */
|
/**@param {String} value @param {String} path */
|
||||||
@@ -119,24 +119,29 @@ exports.checker = async () => {
|
|||||||
if (type == "boolean"){
|
if (type == "boolean"){
|
||||||
if (typeof value != "boolean"){
|
if (typeof value != "boolean"){
|
||||||
createError("'"+path+"' | invalid type, this must be a boolean!")
|
createError("'"+path+"' | invalid type, this must be a boolean!")
|
||||||
}
|
return true
|
||||||
|
}else return false
|
||||||
}else if (type == "number"){
|
}else if (type == "number"){
|
||||||
if (typeof value != "number"){
|
if (typeof value != "number"){
|
||||||
createError("'"+path+"' | invalid type, this must be a number!")
|
createError("'"+path+"' | invalid type, this must be a number!")
|
||||||
}
|
return true
|
||||||
|
}else return false
|
||||||
}else if (type == "string"){
|
}else if (type == "string"){
|
||||||
if (typeof value != "string"){
|
if (typeof value != "string"){
|
||||||
createError("'"+path+"' | invalid type, this must be a string!")
|
createError("'"+path+"' | invalid type, this must be a string!")
|
||||||
}
|
return true
|
||||||
|
}else return false
|
||||||
}else if (type == "array"){
|
}else if (type == "array"){
|
||||||
if (!Array.isArray(value)){
|
if (!Array.isArray(value)){
|
||||||
createError("'"+path+"' | invalid type, this must be an array!")
|
createError("'"+path+"' | invalid type, this must be an array!")
|
||||||
}
|
return true
|
||||||
|
}else return false
|
||||||
}else if (type == "object"){
|
}else if (type == "object"){
|
||||||
if (typeof value != "object"){
|
if (typeof value != "object"){
|
||||||
createError("'"+path+"' | invalid type, this must be an object!")
|
createError("'"+path+"' | invalid type, this must be an object!")
|
||||||
}
|
return true
|
||||||
}
|
}else return false
|
||||||
|
}else return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkButtonColor = (value,path) => {
|
const checkButtonColor = (value,path) => {
|
||||||
@@ -337,17 +342,19 @@ exports.checker = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//OPTIONS!!!
|
//OPTIONS!!!
|
||||||
var counter = 0
|
if (checkType(input.options,"array",path+"/options")){
|
||||||
input.options.forEach((option) => {if (!configParser.optionExists(option)){counter++}})
|
var counter = 0
|
||||||
|
input.options.forEach((option) => {if (!configParser.optionExists(option)){counter++}})
|
||||||
|
|
||||||
if (counter == input.options.length){
|
if (counter == input.options.length){
|
||||||
createWarn("'"+path+"/options' | insert the option ids here!")
|
createWarn("'"+path+"/options' | insert the option ids here!")
|
||||||
}else{
|
}else{
|
||||||
input.options.forEach((option,index) => {
|
input.options.forEach((option,index) => {
|
||||||
if (!configParser.optionExists(option)){
|
if (!configParser.optionExists(option)){
|
||||||
createWarn("'"+path+"/options:"+index+"' | this option doesnt exist!")
|
createWarn("'"+path+"/options:"+index+"' | this option doesnt exist!")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//other
|
//other
|
||||||
@@ -393,24 +400,24 @@ exports.checker = async () => {
|
|||||||
//--------------------------|
|
//--------------------------|
|
||||||
//--------------------------|
|
//--------------------------|
|
||||||
|
|
||||||
var configArray = ["main_color","server_id","auth_token","main_adminroles","prefix","languagefile","status","system","options","messages"]
|
var configArray = ["color","serverId","token","adminRoles","prefix","languageFile","status","system","options","messages"]
|
||||||
configArray.forEach((item) => {
|
configArray.forEach((item) => {
|
||||||
if (config[item] == undefined){
|
if (config[item] == undefined){
|
||||||
throw new Error("\n\nMAIN ERROR: the item '"+item+"' doesn't exist in config.json")
|
throw new Error("\n\nMAIN ERROR: the item '"+item+"' doesn't exist in config.json")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
checkHexColor(config.main_color,"main_color")
|
checkHexColor(config.color,"main_color")
|
||||||
checkDiscord("serverid",config.server_id,"server_id")
|
checkDiscord("serverid",config.serverId,"server_id")
|
||||||
|
|
||||||
if (!require("./api/api.json").disable.checkerjs.token) checkToken(config.auth_token)
|
if (!require("./api/api.json").disable.checkerjs.token && !config.token.fromENV) checkToken(config.token.value)
|
||||||
|
|
||||||
checkType(config.main_adminroles,"array","/main_adminroles")
|
checkType(config.adminRoles,"array","/main_adminroles")
|
||||||
checkDiscordArray("roleid",config.main_adminroles,"main_adminroles")
|
checkDiscordArray("roleid",config.adminRoles,"main_adminroles")
|
||||||
checkString(config.prefix,1,15,"prefix","prefix")
|
checkString(config.prefix,1,15,"prefix","prefix")
|
||||||
//languagefile
|
//languagefile
|
||||||
checkType(config.languagefile,"string","languagefile")
|
checkType(config.languageFile,"string","languagefile")
|
||||||
const lf = config.languagefile
|
const lf = config.languageFile
|
||||||
|
|
||||||
if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish") && !lf.startsWith("portuguese") && !lf.startsWith("french") && !lf.startsWith("italian") && !lf.startsWith("czech") && !lf.startsWith("danish") && !lf.startsWith("russian") && !lf.startsWith("turkish") && !lf.startsWith("polish")){
|
if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish") && !lf.startsWith("portuguese") && !lf.startsWith("french") && !lf.startsWith("italian") && !lf.startsWith("czech") && !lf.startsWith("danish") && !lf.startsWith("russian") && !lf.startsWith("turkish") && !lf.startsWith("polish")){
|
||||||
createError("'languagefile' | invalid language, more info in the wiki")
|
createError("'languagefile' | invalid language, more info in the wiki")
|
||||||
@@ -430,28 +437,18 @@ exports.checker = async () => {
|
|||||||
|
|
||||||
|
|
||||||
//system:
|
//system:
|
||||||
//ticket channel
|
|
||||||
if (config.system.ticket_channel){
|
|
||||||
if (config.system.ticket_channel.length < 16 || config.system.ticket_channel.length > 20 || !/^\d+$/.test(config.system.ticket_channel)){
|
|
||||||
createError("'system/ticket_channel' | this channel id is invalid")
|
|
||||||
}
|
|
||||||
}else createWarn("'"+path+"' | you have no ticket channel selected!")
|
|
||||||
|
|
||||||
//max tickets
|
//max tickets
|
||||||
checkType(config.system.max_allowed_tickets,"number","system/max_allowed_tickets")
|
checkType(config.system.maxAmountOfTickets,"number","system/maxAmountOfTickets")
|
||||||
|
|
||||||
//enableDMmessages
|
//enableDMmessages
|
||||||
checkType(config.system.enable_DM_Messages,"boolean","system/enable_DM_Messages")
|
checkType(config.system.dmMessages,"boolean","system/dmMessages")
|
||||||
|
|
||||||
//has@everyoneaccess
|
//memberRole
|
||||||
checkType(config.system["has@everyoneaccess"],"boolean","system/has@everyoneaccess")
|
checkType(config.system.memberRole,"string","system/memberRole")
|
||||||
|
if (config.system.memberRole && ![" ","0","false","null","undefined"].includes(config.system.memberRole)){
|
||||||
//member_role
|
checkDiscord("roleid",config.system.memberRole,"system/memberRole")
|
||||||
checkType(config.system.member_role,"string","system/member_role")
|
|
||||||
if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){
|
|
||||||
checkDiscord("roleid",config.system.member_role,"system/member_role")
|
|
||||||
}else{
|
}else{
|
||||||
createWarn("'system/member_role' | You don't have a member role, but it's recommended!")
|
createWarn("'system/memberRole' | You don't have a member role, but it's recommended!")
|
||||||
}
|
}
|
||||||
|
|
||||||
//closemode
|
//closemode
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ exports.notInATicket = new embed()
|
|||||||
/**@param {String} message @param {String} title */
|
/**@param {String} message @param {String} title */
|
||||||
exports.success = (title,message) => {
|
exports.success = (title,message) => {
|
||||||
var x = new embed()
|
var x = new embed()
|
||||||
.setColor(config.main_color)
|
.setColor(config.color)
|
||||||
.setTitle(":white_check_mark: "+title)
|
.setTitle(":white_check_mark: "+title)
|
||||||
.setDescription(message)
|
.setDescription(message)
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const log = bot.errorLog.log
|
|||||||
|
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const log = bot.errorLog.log
|
|||||||
|
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const log = bot.errorLog.log
|
|||||||
|
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const log = bot.errorLog.log
|
|||||||
|
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const permissionChecker = require("../../../utils/permisssionChecker")
|
|||||||
const storage = bot.storage
|
const storage = bot.storage
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const permissionChecker = require("../../../utils/permisssionChecker")
|
|||||||
const storage = bot.storage
|
const storage = bot.storage
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const permissionChecker = require("../../../utils/permisssionChecker")
|
|||||||
const storage = bot.storage
|
const storage = bot.storage
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const permissionChecker = require("../../../utils/permisssionChecker")
|
|||||||
const storage = bot.storage
|
const storage = bot.storage
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const log = bot.errorLog.log
|
|||||||
const storage = bot.storage
|
const storage = bot.storage
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const log = bot.errorLog.log
|
|||||||
const storage = bot.storage
|
const storage = bot.storage
|
||||||
const hiddendata = bot.hiddenData
|
const hiddendata = bot.hiddenData
|
||||||
const embed = discord.EmbedBuilder
|
const embed = discord.EmbedBuilder
|
||||||
const mc = config.main_color
|
const mc = config.color
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
const button = discord.ButtonBuilder
|
||||||
const arb = discord.ActionRowBuilder
|
const arb = discord.ActionRowBuilder
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ if (index.developerConfig){
|
|||||||
|
|
||||||
var localLanguage = require("../language/english.json")
|
var localLanguage = require("../language/english.json")
|
||||||
const fs = require("fs")
|
const fs = require("fs")
|
||||||
const lfexists = fs.existsSync("./language/"+config.languagefile+".json")
|
const lfexists = fs.existsSync("./language/"+config.languageFile+".json")
|
||||||
if (lfexists) localLanguage = require("../language/"+config.languagefile+".json")
|
if (lfexists) localLanguage = require("../language/"+config.languageFile+".json")
|
||||||
|
|
||||||
const errorLog = async () => {
|
const errorLog = async () => {
|
||||||
const chalk = await (await import("chalk")).default
|
const chalk = await (await import("chalk")).default
|
||||||
@@ -30,5 +30,5 @@ if (!localLanguage){
|
|||||||
runError()
|
runError()
|
||||||
}else{
|
}else{
|
||||||
exports.language = localLanguage
|
exports.language = localLanguage
|
||||||
successLog(config.languagefile)
|
successLog(config.languageFile)
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@ const act = discord.ApplicationCommandType
|
|||||||
const acot = discord.ApplicationCommandOptionType
|
const acot = discord.ApplicationCommandOptionType
|
||||||
|
|
||||||
module.exports = async () => {
|
module.exports = async () => {
|
||||||
const sid = config.server_id
|
const sid = config.serverId
|
||||||
|
|
||||||
const ids = configParser.getTicketValuesArray("id")
|
const ids = configParser.getTicketValuesArray("id")
|
||||||
/**@type {[{name:String,value:String}]} */
|
/**@type {[{name:String,value:String}]} */
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ const acot = discord.ApplicationCommandOptionType
|
|||||||
/**@param {Boolean|undefined} invisible*/
|
/**@param {Boolean|undefined} invisible*/
|
||||||
module.exports = async (invisible) => {
|
module.exports = async (invisible) => {
|
||||||
const chalk = (await import("chalk")).default
|
const chalk = (await import("chalk")).default
|
||||||
const sid = config.server_id
|
const sid = config.serverId
|
||||||
|
|
||||||
const ids = configParser.getTicketValuesArray("id")
|
const ids = configParser.getTicketValuesArray("id")
|
||||||
/**@type {[{name:String,value:String}]} */
|
/**@type {[{name:String,value:String}]} */
|
||||||
@@ -36,8 +36,6 @@ module.exports = async (invisible) => {
|
|||||||
process.stdout.cursorTo(0)
|
process.stdout.cursorTo(0)
|
||||||
process.stdout.write("[status] there are "+chalk.blue(readystats+" out of 13")+" commands ready! (this can take up to 40 seconds)")
|
process.stdout.write("[status] there are "+chalk.blue(readystats+" out of 13")+" commands ready! (this can take up to 40 seconds)")
|
||||||
if (readystats >= 13){
|
if (readystats >= 13){
|
||||||
const fs = require("fs")
|
|
||||||
fs.writeFileSync("./storage/slashcmdEnabled.txt","true")
|
|
||||||
console.log(chalk.green("\nready!"))
|
console.log(chalk.green("\nready!"))
|
||||||
console.log(chalk.blue("you can now start the bot with "+chalk.bgBlue("'npm start'")+"!"))
|
console.log(chalk.blue("you can now start the bot with "+chalk.bgBlue("'npm start'")+"!"))
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
@@ -45,6 +43,9 @@ module.exports = async (invisible) => {
|
|||||||
},100)
|
},100)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fs = require("fs")
|
||||||
|
fs.writeFileSync("./storage/slashcmdEnabled.txt",require("../../package.json").version)
|
||||||
|
|
||||||
//slashtranslation
|
//slashtranslation
|
||||||
const ST = require("../../language/slashcmds/slash.json").data
|
const ST = require("../../language/slashcmds/slash.json").data
|
||||||
|
|
||||||
|
|||||||
+6
-4
@@ -15,6 +15,7 @@ const showFlags = async (chalk) => {
|
|||||||
if (process.argv.some((v) => v == "--tsoffline")) console.log(chalk.blue("[FLAGS] => offline check for html transcripts disabled!")); isFlag = true
|
if (process.argv.some((v) => v == "--tsoffline")) console.log(chalk.blue("[FLAGS] => offline check for html transcripts disabled!")); isFlag = true
|
||||||
if (process.argv.some((v) => v == "--debug")) console.log(chalk.blue("[FLAGS] => enabled DEBUG mode")); isFlag = true
|
if (process.argv.some((v) => v == "--debug")) console.log(chalk.blue("[FLAGS] => enabled DEBUG mode")); isFlag = true
|
||||||
if (process.argv.some((v) => v == "--noslash")) console.log(chalk.blue("[FLAGS] => slash commands disabled")); isFlag = true
|
if (process.argv.some((v) => v == "--noslash")) console.log(chalk.blue("[FLAGS] => slash commands disabled")); isFlag = true
|
||||||
|
if (process.argv.some((v) => v == "--localstatus")) console.log(chalk.blue("[FLAGS] => using local livestatus.json")); isFlag = true
|
||||||
|
|
||||||
if (!isFlag) console.log(chalk.blue("no flags!"))
|
if (!isFlag) console.log(chalk.blue("no flags!"))
|
||||||
}
|
}
|
||||||
@@ -23,7 +24,7 @@ exports.run = async () => {
|
|||||||
const chalk = await (await import("chalk")).default
|
const chalk = await (await import("chalk")).default
|
||||||
console.log(chalk.hex("f8ba00")(logo))
|
console.log(chalk.hex("f8ba00")(logo))
|
||||||
const version = require("../package.json").version
|
const version = require("../package.json").version
|
||||||
var headertext = "v"+version+" - Support: https://discord.dj-dj.be - Language: "+config.languagefile
|
var headertext = "v"+version+" - Support: https://discord.dj-dj.be - Language: "+config.languageFile
|
||||||
const spaceamount = (84-headertext.length)/2
|
const spaceamount = (84-headertext.length)/2
|
||||||
var i = 0
|
var i = 0
|
||||||
while (i < spaceamount){
|
while (i < spaceamount){
|
||||||
@@ -63,14 +64,15 @@ exports.headerDataLanguage = async (message,err) => {
|
|||||||
languageErr = err
|
languageErr = err
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**@param {{total:Number,error:Number,success:Number}} plugins*/
|
||||||
* @param {{total:Number,error:Number,success:Number}} plugins
|
|
||||||
*/
|
|
||||||
exports.headerDataPlugins = async (plugins) => {
|
exports.headerDataPlugins = async (plugins) => {
|
||||||
const chalk = await (await import("chalk")).default
|
const chalk = await (await import("chalk")).default
|
||||||
const lmsg = languageErr ? chalk.red(languageMSG) : languageMSG
|
const lmsg = languageErr ? chalk.red(languageMSG) : languageMSG
|
||||||
console.log(chalk.hex("f8ba00")("language: ")+lmsg)
|
console.log(chalk.hex("f8ba00")("language: ")+lmsg)
|
||||||
console.log(chalk.hex("f8ba00")("plugins loaded: ")+chalk.bold(plugins.total+" total ")+"("+plugins.success+"✅ "+plugins.error+"❌)")
|
console.log(chalk.hex("f8ba00")("plugins loaded: ")+chalk.bold(plugins.total+" total ")+"("+plugins.success+"✅ "+plugins.error+"❌)")
|
||||||
|
|
||||||
|
console.log("\n"+chalk.bold(chalk.underline("LIVESTATUS:")))
|
||||||
|
await require("./utils/liveStatus").run(plugins)
|
||||||
|
|
||||||
console.log("\n"+chalk.bold(chalk.underline("LOGS:")))
|
console.log("\n"+chalk.bold(chalk.underline("LOGS:")))
|
||||||
}
|
}
|
||||||
@@ -119,7 +119,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
})
|
})
|
||||||
|
|
||||||
//add main adminroles
|
//add main adminroles
|
||||||
config.main_adminroles.forEach((role,index) => {
|
config.adminRoles.forEach((role,index) => {
|
||||||
try {
|
try {
|
||||||
const adminrole = guild.roles.cache.find(r => r.id == role)
|
const adminrole = guild.roles.cache.find(r => r.id == role)
|
||||||
if (!adminrole) return
|
if (!adminrole) return
|
||||||
@@ -170,7 +170,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
*/
|
*/
|
||||||
const ticketadmin = ticketData.adminroles
|
const ticketadmin = ticketData.adminroles
|
||||||
ticketadmin.forEach((role,index) => {
|
ticketadmin.forEach((role,index) => {
|
||||||
if (!config.main_adminroles.includes(role)){
|
if (!config.adminRoles.includes(role)){
|
||||||
try {
|
try {
|
||||||
const adminrole = guild.roles.cache.find(r => r.id == role)
|
const adminrole = guild.roles.cache.find(r => r.id == role)
|
||||||
if (!adminrole) return
|
if (!adminrole) return
|
||||||
@@ -211,7 +211,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
)
|
)
|
||||||
|
|
||||||
const embed = new discord.EmbedBuilder()
|
const embed = new discord.EmbedBuilder()
|
||||||
.setColor(config.main_color)
|
.setColor(config.color)
|
||||||
.setTitle(":lock: "+l.commands.closeTitle+" :lock:")
|
.setTitle(":lock: "+l.commands.closeTitle+" :lock:")
|
||||||
.setDescription(l.messages.closedDescription)
|
.setDescription(l.messages.closedDescription)
|
||||||
channel.send({embeds:[embed],components:[closeButtonRow]})
|
channel.send({embeds:[embed],components:[closeButtonRow]})
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ module.exports = () => {
|
|||||||
} catch{}
|
} catch{}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (storage.get("ticketStorage",interaction.member.id) == null || storage.get("ticketStorage",interaction.member.id) == "false"|| Number(storage.get("ticketStorage",interaction.member.id)) < config.system.max_allowed_tickets){
|
if (storage.get("ticketStorage",interaction.member.id) == null || storage.get("ticketStorage",interaction.member.id) == "false"|| Number(storage.get("ticketStorage",interaction.member.id)) < config.system.maxAmountOfTickets){
|
||||||
|
|
||||||
//update storage
|
//update storage
|
||||||
storage.set("ticketStorage",interaction.member.id,Number(storage.get("ticketStorage",interaction.member.id))+1)
|
storage.set("ticketStorage",interaction.member.id,Number(storage.get("ticketStorage",interaction.member.id))+1)
|
||||||
@@ -84,19 +84,12 @@ module.exports = () => {
|
|||||||
const pfb = discord.PermissionFlagsBits
|
const pfb = discord.PermissionFlagsBits
|
||||||
const guild = client.guilds.cache.find(g => g.id == interaction.guild.id)
|
const guild = client.guilds.cache.find(g => g.id == interaction.guild.id)
|
||||||
|
|
||||||
//set everyone allowed
|
//set @everyone no ticket access
|
||||||
if (config.system['has@everyoneaccess']){
|
|
||||||
var everyoneAllowPerms = [pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
|
|
||||||
var everyoneDenyPerms = []
|
|
||||||
}else{
|
|
||||||
var everyoneAllowPerms = []
|
|
||||||
var everyoneDenyPerms = [pfb.ViewChannel]
|
|
||||||
}
|
|
||||||
permissionsArray.push({
|
permissionsArray.push({
|
||||||
id:interaction.guild.roles.everyone,
|
id:interaction.guild.roles.everyone,
|
||||||
type:"role",
|
type:"role",
|
||||||
allow:everyoneAllowPerms,
|
allow:[],
|
||||||
deny:everyoneDenyPerms
|
deny:[pfb.ViewChannel]
|
||||||
})
|
})
|
||||||
|
|
||||||
//add the user that created the ticket
|
//add the user that created the ticket
|
||||||
@@ -107,7 +100,7 @@ module.exports = () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
//add main adminroles
|
//add main adminroles
|
||||||
config.main_adminroles.forEach((role,index) => {
|
config.adminRoles.forEach((role,index) => {
|
||||||
try {
|
try {
|
||||||
const adminrole = guild.roles.cache.find(r => r.id == role)
|
const adminrole = guild.roles.cache.find(r => r.id == role)
|
||||||
if (!adminrole) return
|
if (!adminrole) return
|
||||||
@@ -128,7 +121,7 @@ module.exports = () => {
|
|||||||
*/
|
*/
|
||||||
const ticketadmin = currentTicketOptions.adminroles
|
const ticketadmin = currentTicketOptions.adminroles
|
||||||
ticketadmin.forEach((role,index) => {
|
ticketadmin.forEach((role,index) => {
|
||||||
if (!config.main_adminroles.includes(role)){
|
if (!config.adminRoles.includes(role)){
|
||||||
try {
|
try {
|
||||||
const adminrole = guild.roles.cache.find(r => r.id == role)
|
const adminrole = guild.roles.cache.find(r => r.id == role)
|
||||||
if (!adminrole) return
|
if (!adminrole) return
|
||||||
@@ -145,9 +138,9 @@ module.exports = () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
//add member role
|
//add member role
|
||||||
if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){
|
if (config.system.memberRole && ![" ","0","false","null","undefined"].includes(config.system.memberRole)){
|
||||||
try {
|
try {
|
||||||
const userrole = guild.roles.cache.find(r => r.id == config.system.member_role)
|
const userrole = guild.roles.cache.find(r => r.id == config.system.memberRole)
|
||||||
if (userrole){
|
if (userrole){
|
||||||
permissionsArray.push({
|
permissionsArray.push({
|
||||||
id:userrole,
|
id:userrole,
|
||||||
@@ -156,7 +149,7 @@ module.exports = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}catch{
|
}catch{
|
||||||
log("system","invalid role! At 'config.json => system/member_role")
|
log("system","invalid role! At 'config.json => system/memberRole")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,7 +168,7 @@ module.exports = () => {
|
|||||||
|
|
||||||
var ticketEmbed = new discord.EmbedBuilder()
|
var ticketEmbed = new discord.EmbedBuilder()
|
||||||
//.setAuthor({name:interaction.user.id})
|
//.setAuthor({name:interaction.user.id})
|
||||||
.setColor(config.main_color)
|
.setColor(config.color)
|
||||||
.setTitle(currentTicketOptions.name)
|
.setTitle(currentTicketOptions.name)
|
||||||
//.setFooter({text:"Ticket Type: "+currentTicketOptions.id})
|
//.setFooter({text:"Ticket Type: "+currentTicketOptions.id})
|
||||||
if (currentTicketOptions.ticketmessage.length > 0){
|
if (currentTicketOptions.ticketmessage.length > 0){
|
||||||
@@ -210,7 +203,7 @@ module.exports = () => {
|
|||||||
])
|
])
|
||||||
|
|
||||||
try{
|
try{
|
||||||
if (currentTicketOptions.enableDmOnOpen) interaction.member.send({embeds:[bot.errorLog.custom(l.messages.newTicketDmTitle,currentTicketOptions.message,":ticket:",config.main_color)],components:[channelbutton]})
|
if (currentTicketOptions.enableDmOnOpen) interaction.member.send({embeds:[bot.errorLog.custom(l.messages.newTicketDmTitle,currentTicketOptions.message,":ticket:",config.color)],components:[channelbutton]})
|
||||||
}
|
}
|
||||||
catch{log("system","failed to send DM")}
|
catch{log("system","failed to send DM")}
|
||||||
|
|
||||||
@@ -219,7 +212,7 @@ module.exports = () => {
|
|||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
try {
|
try {
|
||||||
if (config.system.enable_DM_Messages){
|
if (config.system.dmMessages){
|
||||||
interaction.member.send({embeds:[bot.errorLog.warning(l.errors.maxAmountTitle,l.errors.maxAmountDescription)]})
|
interaction.member.send({embeds:[bot.errorLog.warning(l.errors.maxAmountTitle,l.errors.maxAmountDescription)]})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,19 +19,12 @@ const reopenTicket = (guild,channel,user) => {
|
|||||||
|
|
||||||
var permissionsArray = []
|
var permissionsArray = []
|
||||||
|
|
||||||
//set everyone allowed
|
//set @everyone no ticket access
|
||||||
if (config.system['has@everyoneaccess']){
|
|
||||||
var everyoneAllowPerms = [pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
|
|
||||||
var everyoneDenyPerms = []
|
|
||||||
}else{
|
|
||||||
var everyoneAllowPerms = []
|
|
||||||
var everyoneDenyPerms = [pfb.ViewChannel]
|
|
||||||
}
|
|
||||||
permissionsArray.push({
|
permissionsArray.push({
|
||||||
id:guild.roles.everyone,
|
id:guild.roles.everyone,
|
||||||
type:"role",
|
type:"role",
|
||||||
allow:everyoneAllowPerms,
|
allow:[],
|
||||||
deny:everyoneDenyPerms
|
deny:[pfb.ViewChannel]
|
||||||
})
|
})
|
||||||
|
|
||||||
channel.permissionOverwrites.cache.forEach((p) => {
|
channel.permissionOverwrites.cache.forEach((p) => {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ exports.beingprocessed = (name,id,rawprocesstime,user) => {
|
|||||||
|
|
||||||
const embed = new discord.EmbedBuilder()
|
const embed = new discord.EmbedBuilder()
|
||||||
.setTitle("🧾 "+l.transcripts.title)
|
.setTitle("🧾 "+l.transcripts.title)
|
||||||
.setColor(config.main_color)
|
.setColor(config.color)
|
||||||
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||||
.setFooter({text:name})
|
.setFooter({text:name})
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ exports.beingprocessed = (name,id,rawprocesstime,user) => {
|
|||||||
exports.tsready = (name,id,url,user) => {
|
exports.tsready = (name,id,url,user) => {
|
||||||
const embed = new discord.EmbedBuilder()
|
const embed = new discord.EmbedBuilder()
|
||||||
.setTitle("🧾 "+l.transcripts.title)
|
.setTitle("🧾 "+l.transcripts.title)
|
||||||
.setColor(config.main_color)
|
.setColor(config.color)
|
||||||
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||||
.setFooter({text:name})
|
.setFooter({text:name})
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,20 @@ exports.createTranscript = async (messagecollection,channel,backup) => {
|
|||||||
messagecollection.forEach((msg) => {
|
messagecollection.forEach((msg) => {
|
||||||
const timestamp = new Date(msg.createdTimestamp)
|
const timestamp = new Date(msg.createdTimestamp)
|
||||||
|
|
||||||
if (msg.content){var content = msg.content}else{var content = "*empty message*"}
|
//empty message handling
|
||||||
|
if (msg.content){
|
||||||
|
var content = msg.content
|
||||||
|
}else if (msg.embeds.length > 0 && msg.attachments.length > 0){
|
||||||
|
var content = "*this message only has embeds & files**"
|
||||||
|
}else if (msg.embeds.length > 0){
|
||||||
|
var content = "*this message only has embeds**"
|
||||||
|
}else if (msg.attachments.length > 0){
|
||||||
|
var content = "*this message only has files**"
|
||||||
|
}else{
|
||||||
|
var content = "*empty message*"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const fileurls = []
|
const fileurls = []
|
||||||
const rawfiles = Array.from(msg.attachments)
|
const rawfiles = Array.from(msg.attachments)
|
||||||
rawfiles.forEach((file) => {
|
rawfiles.forEach((file) => {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ exports.createEmbed = (id) => {
|
|||||||
if (data.enableCustomColor){
|
if (data.enableCustomColor){
|
||||||
embed.setColor(data.color)
|
embed.setColor(data.color)
|
||||||
}else{
|
}else{
|
||||||
embed.setColor(config.main_color)
|
embed.setColor(config.color)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.other.embedTitleURL.enable) embed.setURL(data.other.embedTitleURL.url)
|
if (data.other.embedTitleURL.enable) embed.setURL(data.other.embedTitleURL.url)
|
||||||
@@ -63,7 +63,7 @@ exports.createEmbed = (id) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data.other.enableMaxTicketsWarning){
|
if (data.other.enableMaxTicketsWarning){
|
||||||
description = description+"\n\n"+l.commands.maxTicketWarning.replace("{0}",config.system.max_allowed_tickets)
|
description = description+"\n\n"+l.commands.maxTicketWarning.replace("{0}",config.system.maxAmountOfTickets)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (description) embed.setDescription(description)
|
if (description) embed.setDescription(description)
|
||||||
|
|||||||
+131
-3
@@ -3,13 +3,141 @@ const bot = require('../../index')
|
|||||||
const client = bot.client
|
const client = bot.client
|
||||||
const config = bot.config
|
const config = bot.config
|
||||||
const log = bot.errorLog.log
|
const log = bot.errorLog.log
|
||||||
|
const axios = require("axios").default
|
||||||
|
|
||||||
const loadChalk = async () => {
|
const loadChalk = async () => {
|
||||||
return await (await import("chalk")).default
|
return await (await import("chalk")).default
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = async () => {
|
//OTLiveStatus
|
||||||
|
/**@typedef {[{style:[{title:String,titleColor:"normal"|"red"|"green"|"blue"|"yellow"|"white"|"gray"|"magenta"|"cyan",description:String,descriptionColor:"normal"|"red"|"green"|"blue"|"yellow"|"white"|"gray"|"magenta"|"cyan"}],active:{versions:String[],languages:String[],usingPlugins:["yes"|"no"|"both"],usingSlashCommands:["yes"|"no"|"both"],transcripts:["html"|"text"|"both"]}}]} OTLiveStatus */
|
||||||
|
|
||||||
|
//OTLiveStatusError
|
||||||
|
/**@typedef {{bot:{id:String,pfp:String,name:String}, openticket:{version:String,language:String, slashcmds:Boolean,transcripts:false|"text"|"html",config:{system:{},options:{},messages:{},transcripts:{}},plugins:String[],pluginload:{success:Number,error:Number,total:Number}}, details:{actions:[{type:String,category:String,file:String,time:Number}],errortime:Number}, error:String}} OTLiveStatusError */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Boolean} [local=false]
|
||||||
|
* @returns {Promise<OTLiveStatus|false>}
|
||||||
|
*/
|
||||||
|
const getLivestatus = (local) => {
|
||||||
|
return new Promise((resolve,reject) => {
|
||||||
|
if (local){
|
||||||
|
try {
|
||||||
|
const livestatus = require("../../livestatus.json")
|
||||||
|
if (!livestatus) return resolve(false)
|
||||||
|
resolve(livestatus)
|
||||||
|
}catch{
|
||||||
|
return resolve(false)
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
try {
|
||||||
|
axios.get("https://livestatus.dj-dj.be/openticket.json").then((res) => {
|
||||||
|
const livestatus = res.data
|
||||||
|
if (!Array.isArray(livestatus)) return resolve(false)
|
||||||
|
if (!livestatus) return resolve(false)
|
||||||
|
resolve(livestatus)
|
||||||
|
})
|
||||||
|
}catch{
|
||||||
|
return resolve(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
var globalPluginData = {total:0,error:0,success:0}
|
||||||
|
|
||||||
|
//announcer
|
||||||
|
/**@param {{total:Number,error:Number,success:Number}} pluginData*/
|
||||||
|
exports.run = async (pluginData) => {
|
||||||
const chalk = await loadChalk()
|
const chalk = await loadChalk()
|
||||||
|
globalPluginData = pluginData
|
||||||
//LIVESTATUS SOON
|
const res = await getLivestatus(process.argv.some((v) => v == "--localstatus"))
|
||||||
|
if (!res) return false
|
||||||
|
if (res.length == 0) return
|
||||||
|
|
||||||
|
/**@type {[{title:String,titleColor:"normal"|"red"|"green"|"blue"|"yellow"|"white"|"gray"|"magenta"|"cyan",description:String,descriptionColor:"normal"|"red"|"green"|"blue"|"yellow"|"white"|"gray"|"magenta"|"cyan"}]} */
|
||||||
|
const activeStyles = []
|
||||||
|
res.forEach((announcement) => {
|
||||||
|
const a = announcement.active
|
||||||
|
|
||||||
|
const isLanguage = a.languages.includes(config.languageFile) || a.languages.includes("all")
|
||||||
|
const isVersion = a.versions.includes(require("../../package.json").version)
|
||||||
|
|
||||||
|
var tsenabled = (bot.tsconfig.sendTranscripts.enableChannel || bot.tsconfig.sendTranscripts.enableDM)
|
||||||
|
var tsmode = bot.tsconfig.sendTranscripts.useHTMLtranscripts ? "html" : "text"
|
||||||
|
const isTranscript = (a.transcripts.includes("html") && tsmode == "html" && tsenabled) || (a.transcripts.includes("text") && tsmode == "text" && tsenabled) || (a.transcripts.includes("both") && tsenabled)
|
||||||
|
const isPlugins = (a.usingPlugins.includes("yes") && pluginData.total > 0) || (a.usingPlugins.includes("no") && pluginData.total == 0) || (a.usingPlugins.includes("both"))
|
||||||
|
|
||||||
|
if (!isLanguage || !isVersion || !isTranscript || !isPlugins) return
|
||||||
|
announcement.style.forEach((s) => activeStyles.push(s))
|
||||||
|
})
|
||||||
|
const final = []
|
||||||
|
activeStyles.forEach((style) => {
|
||||||
|
const dc = style.descriptionColor
|
||||||
|
const tempd = style.description.split("\n")
|
||||||
|
const tc = style.titleColor
|
||||||
|
const t = "["+style.title+"]"
|
||||||
|
const tempd2 = []
|
||||||
|
tempd.forEach((tmpd,i) => {
|
||||||
|
if (i > 0){
|
||||||
|
var newtext = tmpd
|
||||||
|
var i2 = 0
|
||||||
|
while(i2 < t.length+1){
|
||||||
|
newtext = " "+newtext
|
||||||
|
i2++
|
||||||
|
}
|
||||||
|
tempd2.push(newtext)
|
||||||
|
}else{
|
||||||
|
tempd2.push(tmpd)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const d = tempd2.join("\n")
|
||||||
|
|
||||||
|
|
||||||
|
var fd = d
|
||||||
|
if (dc == "normal" || dc == "white") fd = chalk.white(d)
|
||||||
|
if (dc == "red") fd = chalk.red(d)
|
||||||
|
if (dc == "yellow") fd = chalk.yellow(d)
|
||||||
|
if (dc == "green") fd = chalk.green(d)
|
||||||
|
if (dc == "blue") fd = chalk.blue(d)
|
||||||
|
if (dc == "gray") fd = chalk.gray(d)
|
||||||
|
if (dc == "magenta") fd = chalk.magenta(d)
|
||||||
|
if (dc == "cyan") fd = chalk.cyan(d)
|
||||||
|
|
||||||
|
var ft = t
|
||||||
|
if (tc == "normal" || tc == "white") ft = chalk.white(t)
|
||||||
|
if (tc == "red") ft = chalk.red(t)
|
||||||
|
if (tc == "yellow") ft = chalk.yellow(t)
|
||||||
|
if (tc == "green") ft = chalk.green(t)
|
||||||
|
if (tc == "blue") ft = chalk.blue(t)
|
||||||
|
if (tc == "gray") ft = chalk.gray(t)
|
||||||
|
if (tc == "magenta") ft = chalk.magenta(t)
|
||||||
|
if (tc == "cyan") ft = chalk.cyan(t)
|
||||||
|
|
||||||
|
final.push(ft+" "+fd)
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(final.join("\n\n"))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**@param {OTLiveStatusError} options @returns {Promise<Boolean>} */
|
||||||
|
const uploadLiveStatus = (options) => {
|
||||||
|
return new Promise((resolve,reject) => {
|
||||||
|
try {
|
||||||
|
var data = encodeURIComponent(JSON.stringify(options))
|
||||||
|
axios.get("https://livestatus.dj-dj.be/openticket?auth=openticketLIVESTATUS1234&data="+data).then((res) => {
|
||||||
|
if (res.status == 200) resolve(true)
|
||||||
|
else resolve(false)
|
||||||
|
})
|
||||||
|
}catch{
|
||||||
|
resolve(false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**@param {String} err */
|
||||||
|
const liveStatusUploadManager = (err) => {
|
||||||
|
//use globalPluginData for (some) plugin details
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -14,7 +14,7 @@ const storage = bot.storage
|
|||||||
*/
|
*/
|
||||||
exports.command = (memberid,guildid) => {
|
exports.command = (memberid,guildid) => {
|
||||||
const permsmember = client.guilds.cache.find(g => g.id == guildid).members.cache.find(m => m.id == memberid)
|
const permsmember = client.guilds.cache.find(g => g.id == guildid).members.cache.find(m => m.id == memberid)
|
||||||
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
|
if (config.adminRoles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
|
||||||
return false
|
return false
|
||||||
}else {return true}
|
}else {return true}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,24 +45,17 @@
|
|||||||
const discord = require("discord.js")
|
const discord = require("discord.js")
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const {GatewayIntentBits,Partials} = discord
|
const {GatewayIntentBits,Partials} = discord
|
||||||
const APIBase = require("./core/api/modules/base")
|
const client = new discord.Client({
|
||||||
if (APIBase.embeddedMode){
|
intents:[
|
||||||
var tempClient = APIBase.clientLocation
|
GatewayIntentBits.DirectMessages,
|
||||||
}else{
|
GatewayIntentBits.GuildInvites,
|
||||||
var tempClient = new discord.Client({
|
GatewayIntentBits.GuildMembers,
|
||||||
intents:[
|
GatewayIntentBits.GuildMessages,
|
||||||
GatewayIntentBits.DirectMessages,
|
GatewayIntentBits.Guilds,
|
||||||
GatewayIntentBits.GuildInvites,
|
GatewayIntentBits.MessageContent
|
||||||
GatewayIntentBits.GuildMembers,
|
],
|
||||||
GatewayIntentBits.GuildMessages,
|
partials:[Partials.Channel,Partials.Message]
|
||||||
GatewayIntentBits.Guilds,
|
})
|
||||||
GatewayIntentBits.MessageContent
|
|
||||||
],
|
|
||||||
partials:[Partials.Channel,Partials.Message]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/**@type {discord.Client} */
|
|
||||||
const client = tempClient
|
|
||||||
exports.client = client
|
exports.client = client
|
||||||
client.setMaxListeners(50)
|
client.setMaxListeners(50)
|
||||||
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","created client")
|
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","created client")
|
||||||
@@ -139,8 +132,6 @@ client.on('ready',async () => {
|
|||||||
if (!process.argv[2] || (process.argv[2] && !process.argv[2].startsWith("slash"))){
|
if (!process.argv[2] || (process.argv[2] && !process.argv[2].startsWith("slash"))){
|
||||||
//normal start
|
//normal start
|
||||||
this.errorLog.log("debug","loaded console interface")
|
this.errorLog.log("debug","loaded console interface")
|
||||||
|
|
||||||
require("./core/utils/liveStatus")()
|
|
||||||
|
|
||||||
if (config.status.enabled){
|
if (config.status.enabled){
|
||||||
setStatus(config.status.type,config.status.text)
|
setStatus(config.status.type,config.status.text)
|
||||||
@@ -148,26 +139,31 @@ client.on('ready',async () => {
|
|||||||
|
|
||||||
var updatingSlash = false
|
var updatingSlash = false
|
||||||
if (fs.existsSync("./storage/slashcmdEnabled.txt")){
|
if (fs.existsSync("./storage/slashcmdEnabled.txt")){
|
||||||
/**@type {"true"|"false"} */
|
/**@type {"true"|"false"|String} */
|
||||||
const data = fs.readFileSync("./storage/slashcmdEnabled.txt").toString()
|
const data = fs.readFileSync("./storage/slashcmdEnabled.txt").toString()
|
||||||
if (data === "true"){require("./core/slashSystem/autoSlashUpdate")(); updatingSlash = true}
|
if (data === require("./package.json").version){
|
||||||
|
require("./core/slashSystem/autoSlashUpdate")()
|
||||||
|
updatingSlash = true
|
||||||
|
|
||||||
|
}else if ((data != require("./package.json").version) && (data != "false")){
|
||||||
|
require("./core/slashSystem/slashEnable")(true)
|
||||||
|
updatingSlash = true
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if (process.argv.some((v) => v == "--noslash")){
|
if (process.argv.some((v) => v == "--noslash")){
|
||||||
fs.writeFileSync("./storage/slashcmdEnabled.txt","false")
|
fs.writeFileSync("./storage/slashcmdEnabled.txt","false")
|
||||||
}else{
|
}else{
|
||||||
fs.writeFileSync("./storage/slashcmdEnabled.txt","true")
|
fs.writeFileSync("./storage/slashcmdEnabled.txt",require("./package.json").version)
|
||||||
require("./core/slashSystem/slashEnable")(true)
|
require("./core/slashSystem/slashEnable")(true)
|
||||||
updatingSlash = true
|
updatingSlash = true
|
||||||
console.log("LEEEETSSS GOOO!")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await client.guilds.cache.find((g) => g.id == config.server_id).members.fetch()
|
await client.guilds.cache.find((g) => g.id == config.serverId).members.fetch()
|
||||||
}catch{
|
}catch{
|
||||||
this.errorLog.log("info","tried to cache user information, failed!")
|
this.errorLog.log("info","tried to cache user information, failed!")
|
||||||
}
|
}
|
||||||
console.log("updatingslash",updatingSlash)
|
|
||||||
require("./core/startscreen").headerDataReady(chalk,config.status,updatingSlash,false)
|
require("./core/startscreen").headerDataReady(chalk,config.status,updatingSlash,false)
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
@@ -260,5 +256,6 @@ process.on("uncaughtException",async (error,origin) => {
|
|||||||
APIEvents.onError(error.name+": "+error.message,new Date())
|
APIEvents.onError(error.name+": "+error.message,new Date())
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!APIBase.embeddedMode) client.login(config.auth_token)
|
const token = config.token.fromENV ? process.env.TOKEN : config.token.value
|
||||||
|
client.login(token)
|
||||||
this.errorLog.log("debug","login with token")
|
this.errorLog.log("debug","login with token")
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node index.js",
|
"start": "node index.js",
|
||||||
"test": "node index.js d",
|
"test": "node index.js --devconfig",
|
||||||
"slashEnable": "node index.js slash enable",
|
"slashEnable": "node index.js slash enable",
|
||||||
"slashDisable": "node index.js slash disable",
|
"slashDisable": "node index.js slash disable",
|
||||||
"cleardata": "node ./core/dynamicdatabase/cleardata.js"
|
"cleardata": "node ./core/dynamicdatabase/cleardata.js"
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"sendTranscripts":{
|
"sendTranscripts":{
|
||||||
"enableChannel":false,
|
"enableChannel":false,
|
||||||
|
"enableDM":false,
|
||||||
|
|
||||||
"channel":"transcript channel id",
|
"channel":"transcript channel id",
|
||||||
"useHTMLtranscripts":true,
|
"useHTMLtranscripts":true
|
||||||
|
|
||||||
"enableDM":false
|
|
||||||
},
|
},
|
||||||
"style":{
|
"style":{
|
||||||
"titleColor":"#F8BA00",
|
"titleColor":"#F8BA00",
|
||||||
|
|||||||
Reference in New Issue
Block a user