v3.3 push 7 (added autoclose)
This commit is contained in:
+2
-2
@@ -44,7 +44,7 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
require("../core/ticketActions/ticketCloser").NEWcloseTicket(msg.member,msg.channel,prefix,"close",reason,true)
|
require("../core/ticketActions/ticketCloser").closeManager(msg.member,msg.channel,prefix,"close",reason,true)
|
||||||
|
|
||||||
log("command","someone used the 'close' command",[{key:"user",value:msg.author.tag}])
|
log("command","someone used the 'close' command",[{key:"user",value:msg.author.tag}])
|
||||||
APIEvents.onCommand("close",true,msg.author,msg.channel,msg.guild,new Date())
|
APIEvents.onCommand("close",true,msg.author,msg.channel,msg.guild,new Date())
|
||||||
@@ -84,7 +84,7 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
require("../core/ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close",false,true)
|
require("../core/ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"close",false,true)
|
||||||
|
|
||||||
log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}])
|
log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}])
|
||||||
APIEvents.onCommand("close",true,interaction.user,interaction.channel,interaction.guild,new Date())
|
APIEvents.onCommand("close",true,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
require("../core/ticketActions/ticketCloser").NEWcloseTicket(msg.member,msg.channel,prefix,"delete",false,true)
|
require("../core/ticketActions/ticketCloser").closeManager(msg.member,msg.channel,prefix,"delete",false,true)
|
||||||
|
|
||||||
log("command","someone used the 'delete' command",[{key:"user",value:msg.author.tag}])
|
log("command","someone used the 'delete' command",[{key:"user",value:msg.author.tag}])
|
||||||
APIEvents.onCommand("delete",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
APIEvents.onCommand("delete",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
||||||
@@ -76,7 +76,7 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
require("../core/ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete",false,true)
|
require("../core/ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"delete",false,true)
|
||||||
|
|
||||||
log("command","someone used the 'delete' command",[{key:"user",value:interaction.user.tag}])
|
log("command","someone used the 'delete' command",[{key:"user",value:interaction.user.tag}])
|
||||||
APIEvents.onCommand("delete",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
APIEvents.onCommand("delete",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||||
|
|||||||
+17
-4
@@ -38,9 +38,16 @@ module.exports = () => {
|
|||||||
storage.set("claimData",interaction.channel.id,"false")
|
storage.set("claimData",interaction.channel.id,"false")
|
||||||
|
|
||||||
const newEmbed = new embed(firstmsg.embeds[0].data)
|
const newEmbed = new embed(firstmsg.embeds[0].data)
|
||||||
.setFooter(null)
|
|
||||||
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
|
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
|
||||||
|
|
||||||
|
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||||
|
if (ticketData && ticketData.autoclose.enable){
|
||||||
|
const footerText = l.commands.autocloseTitle.replace("{0}",ticketData.autoclose.inactiveHours+"h")
|
||||||
|
newEmbed.setFooter({text:footerText})
|
||||||
|
}else{
|
||||||
|
newEmbed.setFooter(null)
|
||||||
|
}
|
||||||
|
|
||||||
if (!firstmsg.components[0].components[1].disabled){
|
if (!firstmsg.components[0].components[1].disabled){
|
||||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
|
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
|
||||||
|
|
||||||
@@ -53,7 +60,7 @@ module.exports = () => {
|
|||||||
log("command","someone used the 'unclaim' command",[{key:"user",value:msg.author.tag}])
|
log("command","someone used the 'unclaim' command",[{key:"user",value:msg.author.tag}])
|
||||||
log("system","user unclaimed from ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
log("system","user unclaimed from ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
||||||
|
|
||||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
|
||||||
APIEvents.onTicketUnclaim(msg.author,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
|
APIEvents.onTicketUnclaim(msg.author,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
|
||||||
APIEvents.onCommand("unclaim",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
APIEvents.onCommand("unclaim",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
||||||
})
|
})
|
||||||
@@ -87,9 +94,16 @@ module.exports = () => {
|
|||||||
storage.set("claimData",interaction.channel.id,"false")
|
storage.set("claimData",interaction.channel.id,"false")
|
||||||
|
|
||||||
const newEmbed = new embed(firstmsg.embeds[0].data)
|
const newEmbed = new embed(firstmsg.embeds[0].data)
|
||||||
.setFooter(null)
|
|
||||||
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
|
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
|
||||||
|
|
||||||
|
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||||
|
if (ticketData && ticketData.autoclose.enable){
|
||||||
|
const footerText = l.commands.autocloseTitle.replace("{0}",ticketData.autoclose.inactiveHours+"h")
|
||||||
|
newEmbed.setFooter({text:footerText})
|
||||||
|
}else{
|
||||||
|
newEmbed.setFooter(null)
|
||||||
|
}
|
||||||
|
|
||||||
if (!firstmsg.components[0].components[1].disabled){
|
if (!firstmsg.components[0].components[1].disabled){
|
||||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
|
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
|
||||||
|
|
||||||
@@ -102,7 +116,6 @@ module.exports = () => {
|
|||||||
log("command","someone used the 'unclaim' command",[{key:"user",value:interaction.user.tag}])
|
log("command","someone used the 'unclaim' command",[{key:"user",value:interaction.user.tag}])
|
||||||
log("system","user unclaimed from ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
log("system","user unclaimed from ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
||||||
|
|
||||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
|
||||||
APIEvents.onTicketUnclaim(interaction.user,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
|
APIEvents.onTicketUnclaim(interaction.user,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
|
||||||
APIEvents.onCommand("unclaim",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
APIEvents.onCommand("unclaim",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -58,6 +58,11 @@
|
|||||||
"closedCategory":{
|
"closedCategory":{
|
||||||
"enable":false,
|
"enable":false,
|
||||||
"id":"category id"
|
"id":"category id"
|
||||||
|
},
|
||||||
|
|
||||||
|
"autoclose":{
|
||||||
|
"enable":false,
|
||||||
|
"inactiveHours":24
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -261,6 +261,14 @@ exports.checker = async () => {
|
|||||||
createError("'"+path+"/closedCategory' | there is no closedCategory object!")
|
createError("'"+path+"/closedCategory' | there is no closedCategory object!")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//autoclose
|
||||||
|
if (option.autoclose){
|
||||||
|
checkType(option.autoclose.enable,"boolean",path/"/autoclose/enable")
|
||||||
|
checkType(option.autoclose.inactiveHours,"number",path/"/autoclose/id")
|
||||||
|
}else{
|
||||||
|
createError("'"+path+"/autoclose' | there is no autoclose object!")
|
||||||
|
}
|
||||||
|
|
||||||
}else if (type == "website"){
|
}else if (type == "website"){
|
||||||
//url
|
//url
|
||||||
checkType(option.url,"string",path+"/url")
|
checkType(option.url,"string",path+"/url")
|
||||||
|
|||||||
@@ -47,6 +47,17 @@ exports.get = (category,key) => {
|
|||||||
const result = tempresult ? tempresult.value : false
|
const result = tempresult ? tempresult.value : false
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {String} category
|
||||||
|
* @returns {[{key:String,value:String}]|false}
|
||||||
|
*/
|
||||||
|
exports.getCategory = (category) => {
|
||||||
|
const currentData = getData()
|
||||||
|
const result = currentData.filter((v) => v.category == category)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {String} category
|
* @param {String} category
|
||||||
* @param {String} key
|
* @param {String} key
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
|
/**
|
||||||
|
==================================================================
|
||||||
|
ALL DATABASE FILES NEED TO EXPORT THE FOLLOWING FUNCTIONS:
|
||||||
|
- get(category:String,key:String) => String (value)
|
||||||
|
- set(category:String,key:String,value:String) => Boolean (success)
|
||||||
|
- delete(category:String,key:String) => Boolean (success)
|
||||||
|
- getCategory(category:String) => Array[{key:String,value:String}] (key,value)
|
||||||
|
==================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var db = require("./dynamicfiles/database")
|
var db = require("./dynamicfiles/database")
|
||||||
}catch(err){
|
}catch(err){
|
||||||
|
|||||||
@@ -53,6 +53,21 @@ exports.closeEmbed = (closer,description) => {
|
|||||||
return embd
|
return embd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {discord.User} closer
|
||||||
|
* @param {Number} time
|
||||||
|
* @returns {discord.EmbedBuilder}
|
||||||
|
*/
|
||||||
|
exports.autocloseSignalEmbed = (closer,time) => {
|
||||||
|
const embd = new embed()
|
||||||
|
.setTitle("⏰ This ticket got closed by Autoclose!")
|
||||||
|
.setColor(mc)
|
||||||
|
.setFooter({text:closer.tag,iconURL:closer.displayAvatarURL()})
|
||||||
|
.setDescription("This ticket has been inactive for `"+time+"h`!")
|
||||||
|
return embd
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {discord.User} deleter
|
* @param {discord.User} deleter
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
if (interaction.message.pinned && interaction.message.author.id == client.user.id){
|
if (interaction.message.pinned && interaction.message.author.id == client.user.id){
|
||||||
const claimdata = storage.get("claimData",interaction.channel.id)
|
const claimdata = storage.get("claimData",interaction.channel.id)
|
||||||
console.log(claimdata)
|
|
||||||
if (claimdata && claimdata != "false"){
|
if (claimdata && claimdata != "false"){
|
||||||
interaction.message.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim]})
|
interaction.message.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim]})
|
||||||
}else{
|
}else{
|
||||||
@@ -67,7 +66,7 @@ module.exports = () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
interaction.channel.send({embeds:[bot.embeds.commands.closeEmbed(interaction.user)],components:[bot.buttons.close.closeCommandRow]})
|
interaction.channel.send({embeds:[bot.embeds.commands.closeEmbed(interaction.user)],components:[bot.buttons.close.closeCommandRow]})
|
||||||
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close",false,true)
|
await require("../../../ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"close",false,true)
|
||||||
closeTicketButtonChecker = false
|
closeTicketButtonChecker = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -93,7 +93,7 @@ module.exports = () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
//interaction.channel.send({embeds:[bot.embeds.commands.closeEmbed(interaction.user)],components:[bot.buttons.close.closeCommandRow]})
|
//interaction.channel.send({embeds:[bot.embeds.commands.closeEmbed(interaction.user)],components:[bot.buttons.close.closeCommandRow]})
|
||||||
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close",reason,true)
|
await require("../../../ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"close",reason,true)
|
||||||
closeTicketButtonChecker = false
|
closeTicketButtonChecker = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -52,7 +52,7 @@ module.exports = () => {
|
|||||||
|
|
||||||
await interaction.message.edit({components:[bot.buttons.close.openRowDisabled]})
|
await interaction.message.edit({components:[bot.buttons.close.openRowDisabled]})
|
||||||
await interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
await interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
||||||
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete",false,true)
|
await require("../../../ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"delete",false,true)
|
||||||
deleteTicketButtonChecker = false
|
deleteTicketButtonChecker = false
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ module.exports = () => {
|
|||||||
|
|
||||||
await interaction.message.edit({components:[bot.buttons.close.closeCommandRowDisabled]})
|
await interaction.message.edit({components:[bot.buttons.close.closeCommandRowDisabled]})
|
||||||
await interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
await interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
||||||
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete",false,true)
|
await require("../../../ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"delete",false,true)
|
||||||
deleteTicketButtonChecker1 = false
|
deleteTicketButtonChecker1 = false
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -33,7 +33,17 @@ module.exports = () => {
|
|||||||
try {
|
try {
|
||||||
interaction.deferUpdate()
|
interaction.deferUpdate()
|
||||||
} catch{}
|
} catch{}
|
||||||
interaction.message.edit({components:[bot.buttons.close.openRowNormal]})
|
|
||||||
|
if (interaction.message.pinned && interaction.message.author.id == client.user.id){
|
||||||
|
const claimdata = storage.get("claimData",interaction.channel.id)
|
||||||
|
if (claimdata && claimdata != "false"){
|
||||||
|
interaction.message.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim]})
|
||||||
|
}else{
|
||||||
|
interaction.message.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal]})
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
interaction.message.edit({components:[bot.buttons.close.openRowNormal]})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
//DELETE
|
//DELETE
|
||||||
@@ -54,7 +64,17 @@ module.exports = () => {
|
|||||||
try {
|
try {
|
||||||
interaction.deferUpdate()
|
interaction.deferUpdate()
|
||||||
} catch{}
|
} catch{}
|
||||||
interaction.message.edit({components:[bot.buttons.close.openRowNormal]})
|
|
||||||
|
if (interaction.message.pinned && interaction.message.author.id == client.user.id){
|
||||||
|
const claimdata = storage.get("claimData",interaction.channel.id)
|
||||||
|
if (claimdata && claimdata != "false"){
|
||||||
|
interaction.message.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim]})
|
||||||
|
}else{
|
||||||
|
interaction.message.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal]})
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
interaction.message.edit({components:[bot.buttons.close.openRowNormal]})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
//DELETE NO TRANSCRIPT
|
//DELETE NO TRANSCRIPT
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
const discord = require('discord.js')
|
||||||
|
const bot = require('../../index')
|
||||||
|
const client = bot.client
|
||||||
|
const config = bot.config
|
||||||
|
const log = bot.errorLog.log
|
||||||
|
const l = bot.language
|
||||||
|
const storage = bot.storage
|
||||||
|
|
||||||
|
module.exports = () => {
|
||||||
|
setInterval(async () => {
|
||||||
|
const tickets = storage.getCategory("autocloseTickets")
|
||||||
|
if (!tickets) return
|
||||||
|
tickets.forEach(async (t) => {
|
||||||
|
if (t.value == "false" || t.value == 0 || typeof t.value != "number") return
|
||||||
|
const channel = await client.channels.fetch(t.key,{cache:true})
|
||||||
|
if (!channel || !channel.isTextBased()) return
|
||||||
|
|
||||||
|
const message = (await channel.messages.fetch({limit:10})).first()
|
||||||
|
if (!message) return
|
||||||
|
|
||||||
|
const secondsSLM = Math.round((new Date().getTime() - message.createdTimestamp)/1000)
|
||||||
|
const hoursSLM = secondsSLM/3600
|
||||||
|
|
||||||
|
if (hoursSLM > t.value){
|
||||||
|
/**@type {discord.Guild|false} */
|
||||||
|
const guild = client.guilds.cache.find((g) => g.id == channel.guild.id)
|
||||||
|
if (!guild) return
|
||||||
|
const clientMember = guild.members.cache.find((m) => m.id == client.user.id)
|
||||||
|
if (!clientMember) return
|
||||||
|
|
||||||
|
var name = channel.name
|
||||||
|
var prefix = ""
|
||||||
|
const tickets = config.options
|
||||||
|
tickets.forEach((ticket) => {
|
||||||
|
if (name.startsWith(ticket.channelprefix)){
|
||||||
|
prefix = ticket.channelprefix
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
require("./ticketCloser").closeManager(clientMember,channel,prefix,"close","OTautoclose",true)
|
||||||
|
storage.delete("autocloseTickets",channel.id)
|
||||||
|
|
||||||
|
channel.send({embeds:[bot.embeds.commands.autocloseSignalEmbed(client.user,t.value)],components:[bot.buttons.close.closeCommandRow]})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},2000)
|
||||||
|
}
|
||||||
@@ -18,7 +18,7 @@ const pendingDelete = []
|
|||||||
* @param {Boolean} nomessage
|
* @param {Boolean} nomessage
|
||||||
* @param {String} reason only when closing, not when deleting!
|
* @param {String} reason only when closing, not when deleting!
|
||||||
*/
|
*/
|
||||||
exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) => {
|
exports.closeManager = async (member,channel,prefix,mode,reason,nomessage) => {
|
||||||
const guild = channel.guild
|
const guild = channel.guild
|
||||||
const user = member.user
|
const user = member.user
|
||||||
const chalk = await (await import("chalk")).default
|
const chalk = await (await import("chalk")).default
|
||||||
@@ -69,6 +69,8 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
if (!isDatabaseError) storage.set("amountOfUserTickets",getuserID,Number(storage.get("amountOfUserTickets",getuserID)) - 1)
|
if (!isDatabaseError) storage.set("amountOfUserTickets",getuserID,Number(storage.get("amountOfUserTickets",getuserID)) - 1)
|
||||||
storage.delete("userFromChannel",channel.id)
|
storage.delete("userFromChannel",channel.id)
|
||||||
storage.delete("claimData",channel.id)
|
storage.delete("claimData",channel.id)
|
||||||
|
storage.delete("autocloseTickets",channel.id)
|
||||||
|
if (Number(storage.get("amountOfUserTickets",getuserID)) < 0) storage.set("amountOfUserTickets",getuserID,0)
|
||||||
|
|
||||||
//getID & send DM & send api event
|
//getID & send DM & send api event
|
||||||
await channel.messages.fetchPinned().then(async msglist => {
|
await channel.messages.fetchPinned().then(async msglist => {
|
||||||
|
|||||||
@@ -53,13 +53,13 @@ module.exports = () => {
|
|||||||
|
|
||||||
if (interaction.isButton()){
|
if (interaction.isButton()){
|
||||||
try {
|
try {
|
||||||
if (config.system.answerInEphemeralOnOpen) interaction.deferReply({ephemeral:true})
|
if (config.system.answerInEphemeralOnOpen) await interaction.deferReply({ephemeral:true})
|
||||||
} catch{}
|
} catch{}
|
||||||
}else if (interaction.isChatInputCommand()){
|
}else if (interaction.isChatInputCommand()){
|
||||||
interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
||||||
}else if (interaction.isStringSelectMenu()){
|
}else if (interaction.isStringSelectMenu()){
|
||||||
try {
|
try {
|
||||||
interaction.deferUpdate()
|
await interaction.deferUpdate()
|
||||||
} catch{}
|
} catch{}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,6 +163,7 @@ module.exports = () => {
|
|||||||
|
|
||||||
}).then((ticketChannel) => {
|
}).then((ticketChannel) => {
|
||||||
storage.set("userFromChannel",ticketChannel.id,interaction.member.id)
|
storage.set("userFromChannel",ticketChannel.id,interaction.member.id)
|
||||||
|
if (currentTicketOptions.autoclose.enable) storage.set("autocloseTickets",ticketChannel.id,currentTicketOptions.autoclose.inactiveHours)
|
||||||
|
|
||||||
const hiddendata = bot.hiddenData.writeHiddenData("ticketdata",[{key:"type",value:currentTicketOptions.id},{key:"openerid",value:interaction.user.id},{key:"createdms",value:new Date().getTime()}])
|
const hiddendata = bot.hiddenData.writeHiddenData("ticketdata",[{key:"type",value:currentTicketOptions.id},{key:"openerid",value:interaction.user.id},{key:"createdms",value:new Date().getTime()}])
|
||||||
|
|
||||||
@@ -171,6 +172,11 @@ module.exports = () => {
|
|||||||
.setColor(config.color)
|
.setColor(config.color)
|
||||||
.setTitle(currentTicketOptions.name)
|
.setTitle(currentTicketOptions.name)
|
||||||
//.setFooter({text:"Ticket Type: "+currentTicketOptions.id})
|
//.setFooter({text:"Ticket Type: "+currentTicketOptions.id})
|
||||||
|
if (currentTicketOptions.autoclose.enable){
|
||||||
|
const footerText = l.commands.autocloseTitle.replace("{0}",currentTicketOptions.autoclose.inactiveHours+"h")
|
||||||
|
ticketEmbed.setFooter({text:footerText})
|
||||||
|
}
|
||||||
|
|
||||||
if (currentTicketOptions.ticketmessage.length > 0){
|
if (currentTicketOptions.ticketmessage.length > 0){
|
||||||
ticketEmbed.setDescription(currentTicketOptions.ticketmessage+hiddendata)
|
ticketEmbed.setDescription(currentTicketOptions.ticketmessage+hiddendata)
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -30,11 +30,11 @@ exports.createTranscript = async (messagecollection,channel,backup) => {
|
|||||||
if (msg.content){
|
if (msg.content){
|
||||||
var content = msg.content
|
var content = msg.content
|
||||||
}else if (msg.embeds.length > 0 && msg.attachments.length > 0){
|
}else if (msg.embeds.length > 0 && msg.attachments.length > 0){
|
||||||
var content = "*this message only has embeds & files**"
|
var content = "*this message only has embeds & files*"
|
||||||
}else if (msg.embeds.length > 0){
|
}else if (msg.embeds.length > 0){
|
||||||
var content = "*this message only has embeds**"
|
var content = "*this message only has embeds*"
|
||||||
}else if (msg.attachments.length > 0){
|
}else if (msg.attachments.length > 0){
|
||||||
var content = "*this message only has files**"
|
var content = "*this message only has files*"
|
||||||
}else{
|
}else{
|
||||||
var content = "*empty message*"
|
var content = "*empty message*"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const l = bot.language
|
|||||||
//==================
|
//==================
|
||||||
|
|
||||||
//OTTicketOptions
|
//OTTicketOptions
|
||||||
/**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color: "red"|"green"|"blue"|"gray",adminroles: String[],channelprefix: String,category: String,message: String,enableDmOnOpen: Boolean,ticketmessage: String, thumbnail:{enable:Boolean,url:String}, image:{enable:Boolean,url:String}, closedCategory:{enable:Boolean,id:String}}} OTTicketOptions */
|
/**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color: "red"|"green"|"blue"|"gray",adminroles: String[],channelprefix: String,category: String,message: String,enableDmOnOpen: Boolean,ticketmessage: String, thumbnail:{enable:Boolean,url:String}, image:{enable:Boolean,url:String}, closedCategory:{enable:Boolean,id:String}, autoclose:{enable:Boolean,inactiveHours:Number} }} OTTicketOptions */
|
||||||
|
|
||||||
//OTRoleOptions
|
//OTRoleOptions
|
||||||
/**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color:"red"|"green"|"blue"|"gray"|"none",roles:String[],mode:"add&remove"|"remove"|"add",enableDmOnOpen:Boolean}} OTRoleOptions */
|
/**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color:"red"|"green"|"blue"|"gray"|"none",roles:String[],mode:"add&remove"|"remove"|"add",enableDmOnOpen:Boolean}} OTRoleOptions */
|
||||||
@@ -19,7 +19,7 @@ const l = bot.language
|
|||||||
/**@typedef {{id: string, name: string, description: string, dropdown: boolean, enableFooter: boolean, footer: string, enableThumbnail: boolean, thumbnail: string, enableCustomColor: boolean, color: string, options: string[], other:{enableTicketExplaination: boolean, enableMaxTicketsWarning: boolean, customDropdownPlaceholder:{enable:Boolean,text:String}, customCategoryText:{enable:Boolean,text:String}, embedTitleURL:{enable:Boolean,url:String} } }} OTConfigMessage*/
|
/**@typedef {{id: string, name: string, description: string, dropdown: boolean, enableFooter: boolean, footer: string, enableThumbnail: boolean, thumbnail: string, enableCustomColor: boolean, color: string, options: string[], other:{enableTicketExplaination: boolean, enableMaxTicketsWarning: boolean, customDropdownPlaceholder:{enable:Boolean,text:String}, customCategoryText:{enable:Boolean,text:String}, embedTitleURL:{enable:Boolean,url:String} } }} OTConfigMessage*/
|
||||||
|
|
||||||
//OTAllOptions
|
//OTAllOptions
|
||||||
/**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color:"red"|"green"|"blue"|"gray"|"none",roles:String[],mode:"add&remove"|"remove"|"add",adminroles: String[],channelprefix: String,category: String,message: String,enableDmOnOpen: Boolean,ticketmessage: String, thumbnail:{enable:Boolean,url:String}, image:{enable:Boolean,url:String}, url:String, closedCategory:{enable:Boolean,id:String}}} OTAllOptions */
|
/**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color:"red"|"green"|"blue"|"gray"|"none",roles:String[],mode:"add&remove"|"remove"|"add",adminroles: String[],channelprefix: String,category: String,message: String,enableDmOnOpen: Boolean,ticketmessage: String, thumbnail:{enable:Boolean,url:String}, image:{enable:Boolean,url:String}, url:String, closedCategory:{enable:Boolean,id:String}, autoclose:{enable:Boolean,inactiveHours:Number}}} OTAllOptions */
|
||||||
|
|
||||||
//StringOptions
|
//StringOptions
|
||||||
/**@typedef {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDmOnOpen"|"ticketmessage"|"thumbnail"|"image"|"closedCategory"} OTTicketStringOptions */
|
/**@typedef {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDmOnOpen"|"ticketmessage"|"thumbnail"|"image"|"closedCategory"} OTTicketStringOptions */
|
||||||
|
|||||||
@@ -300,6 +300,7 @@ if (process.argv[2] && process.argv[2].startsWith("slash")){
|
|||||||
//core
|
//core
|
||||||
require('./core/ticketActions/ticketOpener')()
|
require('./core/ticketActions/ticketOpener')()
|
||||||
require("./core/reactionRoles")()
|
require("./core/reactionRoles")()
|
||||||
|
require("./core/ticketActions/ticketAutoclose")()
|
||||||
|
|
||||||
this.errorLog.log("debug","LOADING INTERACTION HANDLERS")
|
this.errorLog.log("debug","LOADING INTERACTION HANDLERS")
|
||||||
//InteractionHandlers
|
//InteractionHandlers
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"deleteTitle":"Deleting this ticket...",
|
"deleteTitle":"Deleting this ticket...",
|
||||||
"reopenTitle":"Re-Opened this ticket!",
|
"reopenTitle":"Re-Opened this ticket!",
|
||||||
|
|
||||||
"claimTitle":"This ticket is now claimed to {0}",
|
"claimTitle":"This ticket is claimed to {0}",
|
||||||
"unclaimTitle":"This ticket isn't claimed anymore!",
|
"unclaimTitle":"This ticket isn't claimed anymore!",
|
||||||
"changeTitle":"Changed ticket type to {0}!",
|
"changeTitle":"Changed ticket type to {0}!",
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"deleteTitle":"Deleting this ticket...",
|
"deleteTitle":"Deleting this ticket...",
|
||||||
"reopenTitle":"Re-Opened this ticket!",
|
"reopenTitle":"Re-Opened this ticket!",
|
||||||
|
|
||||||
"claimTitle":"This ticket is now claimed to {0}",
|
"claimTitle":"This ticket is claimed to {0}",
|
||||||
"unclaimTitle":"This ticket isn't claimed anymore!",
|
"unclaimTitle":"This ticket isn't claimed anymore!",
|
||||||
"changeTitle":"Changed ticket type to {0}!",
|
"changeTitle":"Changed ticket type to {0}!",
|
||||||
|
|
||||||
|
|||||||
+15
-15
@@ -25,16 +25,16 @@
|
|||||||
"deleteTitle":"Suppression de ce ticket...",
|
"deleteTitle":"Suppression de ce ticket...",
|
||||||
"reopenTitle":"A rouvert ce ticket!",
|
"reopenTitle":"A rouvert ce ticket!",
|
||||||
|
|
||||||
"claimTitle":"This ticket is now claimed to {0}",
|
"claimTitle":"Ce ticket est maintenant réclamé à {0}",
|
||||||
"unclaimTitle":"This ticket isn't claimed anymore!",
|
"unclaimTitle":"Ce ticket n'est pas réclamé!",
|
||||||
"changeTitle":"Changed ticket type to {0}!",
|
"changeTitle":"Modification du type de ticket en {0}!",
|
||||||
|
|
||||||
"statsTitle":"Here are the stats for {0}!",
|
"statsTitle":"Voici les statistiques pour {0}!",
|
||||||
"autocloseTitle":"This ticket will be closed automatically after {0}!",
|
"autocloseTitle":"Ce ticket sera automatiquement clôturé après {0}!",
|
||||||
"autocloseRejectTitle":"This ticket will no longer be closed automatically!",
|
"autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement!",
|
||||||
"autocloseWarn":"This only affects inactive tickets!",
|
"autocloseWarn":"Cela n'affecte que les tickets inactifs!",
|
||||||
|
|
||||||
"goToTicket":"go to ticket",
|
"goToTicket":"Aller au ticket",
|
||||||
"ticketWarning":"L'intégration est dans le message ci-dessous!",
|
"ticketWarning":"L'intégration est dans le message ci-dessous!",
|
||||||
"maxTicketWarning":"**Attention :** _Vous ne pouvez créer que {0} ticket(s) à la fois !_"
|
"maxTicketWarning":"**Attention :** _Vous ne pouvez créer que {0} ticket(s) à la fois !_"
|
||||||
},
|
},
|
||||||
@@ -50,11 +50,11 @@
|
|||||||
"addCmd":"Ajouter un utilisateur au ticket.",
|
"addCmd":"Ajouter un utilisateur au ticket.",
|
||||||
"removeCmd":"Supprimer un utilisateur du ticket.",
|
"removeCmd":"Supprimer un utilisateur du ticket.",
|
||||||
"reopenCmd":"Rouvrir un ticket après sa clôture.",
|
"reopenCmd":"Rouvrir un ticket après sa clôture.",
|
||||||
"changeCmd":"Change ticket type.",
|
"changeCmd":"Changer le type de ticket.",
|
||||||
"claimCmd":"Claim a ticket.",
|
"claimCmd":"Réclamer un billet",
|
||||||
"unclaimCmd":"Unclaim a ticket.",
|
"unclaimCmd":"Annuler la réclamation d'un ticket.",
|
||||||
"statsCmd":"View ticket stats.",
|
"statsCmd":"Afficher les statistiques des tickets.",
|
||||||
"autocloseCmd":"Set timer to automatically close ticket"
|
"autocloseCmd":"Définir une minuterie pour fermer automatiquement le ticket"
|
||||||
},
|
},
|
||||||
"buttons":{
|
"buttons":{
|
||||||
"close":"Fermer le ticket",
|
"close":"Fermer le ticket",
|
||||||
@@ -80,8 +80,8 @@
|
|||||||
|
|
||||||
"none":"rien",
|
"none":"rien",
|
||||||
"reason":"raison",
|
"reason":"raison",
|
||||||
"createdat":"created at",
|
"createdat":"Créé à",
|
||||||
"openedby":"opened by",
|
"openedby":"Ouvert par",
|
||||||
"deletedby":"supprimé par",
|
"deletedby":"supprimé par",
|
||||||
"closedby":"fermé par",
|
"closedby":"fermé par",
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user