v3.2 last push
This commit is contained in:
+4
-2
@@ -29,7 +29,8 @@
|
||||
"remove":false,
|
||||
"rename":false,
|
||||
"claim":false,
|
||||
"unclaim":false
|
||||
"unclaim":false,
|
||||
"change":false
|
||||
},
|
||||
"slash":{
|
||||
"help":false,
|
||||
@@ -42,7 +43,8 @@
|
||||
"remove":false,
|
||||
"rename":false,
|
||||
"claim":false,
|
||||
"unclaim":false
|
||||
"unclaim":false,
|
||||
"change":false
|
||||
}
|
||||
},
|
||||
"checkerjs":{
|
||||
|
||||
@@ -17,6 +17,10 @@ const ticketReopenListeners = []
|
||||
const ticketAddListeners = []
|
||||
const ticketRemoveListeners = []
|
||||
|
||||
const ticketClaimListeners = []
|
||||
const ticketUnclaimListeners = []
|
||||
const ticketChangeListeners = []
|
||||
|
||||
|
||||
const transcriptCreationListeners = []
|
||||
const commandListeners = []
|
||||
@@ -146,6 +150,66 @@ exports.onTicketRemove = (user,editeduser,channel,guild,date,ticketdata) => {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {discord.User} user
|
||||
* @param {discord.TextChannel} channel
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:configParser.OTTicketOptions}} ticketdata
|
||||
*/
|
||||
exports.onTicketClaim = (user,channel,guild,date,ticketdata) => {
|
||||
//system
|
||||
bot.errorLog.log("api","user claimed a ticket",[{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
|
||||
|
||||
ticketClaimListeners.forEach((func) => {
|
||||
try {
|
||||
func(user,channel,guild,date,ticketdata)
|
||||
}catch{}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {discord.User} user
|
||||
* @param {discord.TextChannel} channel
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:configParser.OTTicketOptions}} ticketdata
|
||||
*/
|
||||
exports.onTicketUnclaim = (user,channel,guild,date,ticketdata) => {
|
||||
//system
|
||||
bot.errorLog.log("api","user unclaimed a ticket",[{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
|
||||
|
||||
ticketUnclaimListeners.forEach((func) => {
|
||||
try {
|
||||
func(user,channel,guild,date,ticketdata)
|
||||
}catch{}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {String} newtype
|
||||
* @param {discord.User} user
|
||||
* @param {discord.TextChannel} channel
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:configParser.OTTicketOptions}} ticketdata
|
||||
*/
|
||||
exports.onTicketChange = (newtype,user,channel,guild,date,ticketdata) => {
|
||||
//system
|
||||
bot.errorLog.log("api","user changed ticket type",[{key:"newtype",value:newtype},{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
|
||||
|
||||
ticketChangeListeners.forEach((func) => {
|
||||
try {
|
||||
func(newtype,user,channel,guild,date,ticketdata)
|
||||
}catch{}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {discord.Message[]} messages
|
||||
@@ -165,7 +229,7 @@ exports.onTranscriptCreation = (messages,channel,guild,date) => {
|
||||
|
||||
}
|
||||
|
||||
/**@typedef {"help"|"message"|"close"|"delete"|"reopen"|"rename"|"add"|"remove"} OTCommandType */
|
||||
/**@typedef {"help"|"message"|"close"|"delete"|"reopen"|"rename"|"add"|"remove"|"claim"|"unclaim"|"change"} OTCommandType */
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -269,6 +333,16 @@ exports.onCommand = (type,hasPerms,user,channel,guild,date) => {
|
||||
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:configParser.OTTicketOptions}} ticketdata
|
||||
*/
|
||||
|
||||
/**
|
||||
* @callback TicketTypeChangeEvent
|
||||
* @param {String} newtype
|
||||
* @param {discord.User} user
|
||||
* @param {discord.TextChannel} channel
|
||||
* @param {discord.Guild} guild
|
||||
* @param {Date} date
|
||||
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:configParser.OTTicketOptions}} ticketdata
|
||||
*/
|
||||
|
||||
/**
|
||||
* @callback CommandEvent
|
||||
* @param {OTCommandType} type
|
||||
@@ -328,6 +402,21 @@ const onTicketRemove = (callback) => {
|
||||
ticketRemoveListeners.push(callback)
|
||||
}
|
||||
|
||||
/**@param {TicketActionEvent} callback */
|
||||
const onTicketClaim = (callback) => {
|
||||
ticketClaimListeners.push(callback)
|
||||
}
|
||||
|
||||
/**@param {TicketActionEvent} callback */
|
||||
const onTicketUnclaim = (callback) => {
|
||||
ticketUnclaimListeners.push(callback)
|
||||
}
|
||||
|
||||
/**@param {TicketTypeChangeEvent} callback */
|
||||
const onTicketChange = (callback) => {
|
||||
ticketChangeListeners.push(callback)
|
||||
}
|
||||
|
||||
/**@param {TranscriptCreationEvent} callback */
|
||||
const onTranscriptCreation = (callback) => {
|
||||
transcriptCreationListeners.push(callback)
|
||||
@@ -355,6 +444,9 @@ exports.events = {
|
||||
onTicketReopen,
|
||||
onTicketAdd,
|
||||
onTicketRemove,
|
||||
onTicketClaim,
|
||||
onTicketUnclaim,
|
||||
onTicketChange,
|
||||
onTranscriptCreation,
|
||||
onCommand,
|
||||
onReactionRole,
|
||||
|
||||
@@ -136,4 +136,17 @@ exports.renameEmbed = (renamer,newname) => {
|
||||
.setDescription("Loading...")
|
||||
.setFooter({text:author.tag,iconURL:author.displayAvatarURL()})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {discord.User} changer
|
||||
* @param {String} newtype
|
||||
* @returns {discord.EmbedBuilder}
|
||||
*/
|
||||
exports.changeEmbed = (changer,newtype) => {
|
||||
return new embed()
|
||||
.setTitle("🔄 "+l.commands.changeTitle.replace("{0}",newtype))
|
||||
.setColor(mc)
|
||||
.setFooter({text:changer.tag,iconURL:changer.displayAvatarURL()})
|
||||
}
|
||||
@@ -32,8 +32,8 @@ module.exports = async () => {
|
||||
//process.stdout.write("[status] there are "+chalk.blue("0 out of 10")+" commands ready! (this can take up to 40 seconds)")
|
||||
setInterval(() => {
|
||||
process.stdout.cursorTo(0)
|
||||
process.stdout.write("[status] there are "+chalk.blue(readystats+" out of 12")+" commands ready! (this can take up to 40 seconds)")
|
||||
if (readystats >= 12){
|
||||
process.stdout.write("[status] there are "+chalk.blue(readystats+" out of 13")+" commands ready! (this can take up to 40 seconds)")
|
||||
if (readystats >= 13){
|
||||
const fs = require("fs")
|
||||
fs.writeFileSync("./storage/slashcmdEnabled.txt","true")
|
||||
console.log(chalk.green("\nready!"))
|
||||
@@ -245,4 +245,23 @@ module.exports = async () => {
|
||||
readystats++
|
||||
})
|
||||
|
||||
//category
|
||||
client.application.commands.create({
|
||||
name:"change",
|
||||
description:"Change ticket type.",
|
||||
defaultPermission:true,
|
||||
type:act.ChatInput,
|
||||
options:[
|
||||
{
|
||||
type:acot.String,
|
||||
name:"type",
|
||||
description:"The new ticket type.",
|
||||
required:true,
|
||||
choices:choices
|
||||
}
|
||||
]
|
||||
},sid).then(() => {
|
||||
readystats++
|
||||
})
|
||||
|
||||
}
|
||||
@@ -88,12 +88,6 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
||||
|
||||
if (!id) return false
|
||||
|
||||
try{
|
||||
if (config.system.enable_DM_Messages){
|
||||
member.send({embeds:[bot.errorLog.custom(l.messages.deletedTicketDmTitle,l.messages.deletedTicketDmDescription,":ticket:",config.main_color)]})
|
||||
}
|
||||
}
|
||||
catch{log("system","can't send DM to member, member doesn't allow dm's")}
|
||||
})
|
||||
|
||||
}else if (mode == "close"){
|
||||
@@ -229,12 +223,6 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
||||
|
||||
if (!id) return false
|
||||
|
||||
try{
|
||||
if (config.system.enable_DM_Messages){
|
||||
member.send({embeds:[bot.errorLog.custom(l.messages.closedTicketDmTitle,l.messages.closedTicketDmDescription+"\n\n**reason:** "+newReason,":ticket:",config.main_color)]})
|
||||
}
|
||||
}
|
||||
catch{log("system","can't send DM to member, member doesn't allow dm's")}
|
||||
})
|
||||
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ module.exports = () => {
|
||||
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){
|
||||
|
||||
try{
|
||||
if (config.system.enable_DM_Messages){
|
||||
if (currentTicketOptions.enableDmOnOpen){
|
||||
interaction.member.send({embeds:[bot.errorLog.custom(l.messages.newTicketDmTitle,currentTicketOptions.message,":ticket:",config.main_color)]})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ const version = require("../info.json").version
|
||||
*/
|
||||
exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
const messages = messagesInv.reverse()
|
||||
var invisibleMessages = 0
|
||||
|
||||
const rawfiles = messages.filter((m) => Array.from(m.attachments).length > 0)
|
||||
var fileAmount = 0
|
||||
@@ -30,8 +31,6 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
|
||||
const messagesArray = []
|
||||
messages.forEach((msg) => {
|
||||
|
||||
console.log("'"+msg.content+"'",msg.embeds.length,msg.attachments.toJSON().length)
|
||||
if (msg.content || msg.embeds.length > 0 || msg.attachments.toJSON().length > 0){
|
||||
|
||||
const embedArray = []
|
||||
@@ -78,7 +77,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
embeds:embedArray,
|
||||
files:fileArray
|
||||
})
|
||||
}
|
||||
}else {invisibleMessages++}
|
||||
})
|
||||
|
||||
const result = {
|
||||
@@ -109,7 +108,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
closedtime:data.ticket.closedtime,
|
||||
openedtime:data.ticket.openedtime,
|
||||
|
||||
messages:Array.from(messages).length,
|
||||
messages:Array.from(messages).length-invisibleMessages,
|
||||
files:fileAmount
|
||||
},
|
||||
messages:messagesArray
|
||||
|
||||
@@ -10,19 +10,20 @@ const tsdb = require("../tsdb")
|
||||
|
||||
/**
|
||||
* @param {Object} json
|
||||
* @returns {OTuploadResponse}
|
||||
* @returns {Promise<OTuploadResponse|false>}
|
||||
*/
|
||||
exports.upload = async (json) => {
|
||||
return new Promise(async (resolve,reject) => {
|
||||
const data = encodeURIComponent(JSON.stringify(json))
|
||||
|
||||
const data = encodeURIComponent(JSON.stringify(json))
|
||||
try {
|
||||
const res = await axios.get("https://api.transcripts.dj-dj.be/upload?auth=openticketTRANSCRIPT1234&version=1.0.0&data="+data)
|
||||
if (res.status != 200) resolve(false)
|
||||
|
||||
try {
|
||||
const res = await axios.get("https://api.transcripts.dj-dj.be/upload?auth=openticketTRANSCRIPT1234&version=1.0.0&data="+data)
|
||||
if (res.status != 200) return false
|
||||
|
||||
return res.data
|
||||
}catch{
|
||||
console.log("failed transcript upload!")
|
||||
return false
|
||||
}
|
||||
resolve(res.data)
|
||||
}catch{
|
||||
console.log("failed transcript upload!")
|
||||
resolve(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -57,15 +57,18 @@ exports.tsready = (name,id,url,user) => {
|
||||
* @param {String} name
|
||||
* @param {String} id
|
||||
* @param {discord.User} user
|
||||
* @param {undefined|String} err
|
||||
*/
|
||||
exports.tserror = (name,id,user) => {
|
||||
exports.tserror = (name,id,user,err) => {
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setTitle("❌ Transcript")
|
||||
.setColor(discord.Colors.Red)
|
||||
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:name})
|
||||
|
||||
.setDescription("Something went wrong while creating the HTML transcript.\n\n[possible reasons](https://docs.openticket.dj-dj.be/the-system/transcripts/transcript-errors)")
|
||||
const errDesc = (typeof err == "string") ? "\n"+err : ""
|
||||
|
||||
embed.setDescription("Something went wrong while creating the HTML transcript.\n\n[possible reasons](https://docs.openticket.dj-dj.be/the-system/transcripts/transcript-errors)"+errDesc)
|
||||
|
||||
return embed
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
})
|
||||
|
||||
if (!await checkAvailability()){
|
||||
const attachment = await require("./oldTranscript").createTranscript(messages,ch)
|
||||
const attachment = await require("./oldTranscript").createTranscript(messages,channel)
|
||||
const errembed = tsembeds.tserror(chName,chId,user)
|
||||
|
||||
if (tsconfig.sendTranscripts.enableChannel){
|
||||
@@ -85,6 +85,7 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
|
||||
const TSdata = await require("./communication/index").upload(JSONDATA)
|
||||
if (!TSdata) return false
|
||||
|
||||
if (TSdata.status == "success"){
|
||||
const url = "https://transcripts.dj-dj.be/t/"+TSdata.time+"_"+TSdata.id+".html"
|
||||
|
||||
@@ -121,6 +122,17 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
}catch{}
|
||||
}
|
||||
},duration)
|
||||
}else{
|
||||
const attachment = await require("./oldTranscript").createTranscript(messages,channel)
|
||||
const errembed = tsembeds.tserror(chName,chId,user,"`error type: transcript API error`")
|
||||
|
||||
if (tsconfig.sendTranscripts.enableChannel){
|
||||
/**@type {discord.TextChannel|undefined} */
|
||||
const tc = guild.channels.cache.find((c) => c.id == tsconfig.sendTranscripts.channel)
|
||||
|
||||
if (!tc) return
|
||||
tc.send({embeds:[errembed],files:[attachment]})
|
||||
}
|
||||
}
|
||||
}
|
||||
asyncmanager(msglist)
|
||||
|
||||
Reference in New Issue
Block a user