This commit is contained in:
DJj123dj
2023-04-19 18:39:21 +02:00
parent 2d7a7b5728
commit 27912a0c37
14 changed files with 88 additions and 52 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
<img src="https://www.dj-dj.be/wp-content/uploads/2023/02/open-ticket-cropped.png" alt="Open Ticket" width="600px"> <img src="https://www.dj-dj.be/wp-content/uploads/2023/02/open-ticket-cropped.png" alt="Open Ticket" width="600px">
[![discord](https://img.shields.io/badge/discord-join%20our%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-3.3.1-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v3.3.1) [![discord.js](https://img.shields.io/badge/discord.js-v14-CB3837.svg?style=flat-square&logo=npm)]() [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [![stars](https://img.shields.io/github/stars/djj123dj/open-ticket?color=yellow&label=stars&logo=github&style=flat-square)](https://docs.openticket.dj-dj.be) [![discord](https://img.shields.io/badge/discord-join%20our%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-3.3.1-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v3.3.2) [![discord.js](https://img.shields.io/badge/discord.js-v14-CB3837.svg?style=flat-square&logo=npm)]() [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [![stars](https://img.shields.io/github/stars/djj123dj/open-ticket?color=yellow&label=stars&logo=github&style=flat-square)](https://docs.openticket.dj-dj.be)
### Open Ticket ### Open Ticket
Open Ticket is of the most customisable discord ticket bots of all time! Open Ticket is of the most customisable discord ticket bots of all time!
@@ -62,7 +62,7 @@ Translators
|Slovenian |n1kkec#5341 | |Slovenian |n1kkec#5341 |
## links ## links
current version: _v3.3.1_ current version: _v3.3.2_
</br>changelog: [click here](https://docs.openticket.dj-dj.be/other/changelog) </br>changelog: [click here](https://docs.openticket.dj-dj.be/other/changelog)
</br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start) </br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start)
+6 -7
View File
@@ -34,11 +34,11 @@ module.exports = () => {
const hiddendata = hdraw.hiddenData const hiddendata = hdraw.hiddenData
const ticketId = hiddendata.data.find(d => d.key == "type").value const ticketId = hiddendata.data.find(d => d.key == "type").value
hiddendata.data.push({key:"claimedby",value:interaction.user.id}) hiddendata.data.push({key:"claimedby",value:claimingUser.id})
storage.set("claimData",interaction.channel.id,interaction.user.id) storage.set("claimData",msg.channel.id,claimingUser.id)
const newEmbed = new embed(firstmsg.embeds[0].data) const newEmbed = new embed(firstmsg.embeds[0].data)
.setFooter({text:"claimed by: "+interaction.user.tag,iconURL:interaction.user.displayAvatarURL()}) .setFooter({text:"claimed by: "+msg.author.tag,iconURL:msg.author.displayAvatarURL()})
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data)) .setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){ if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
@@ -66,8 +66,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){ if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user) permsChecker.sendUserNoPerms(interaction.user)
interaction.reply({content:":x: "+l.errors.noPermsTitle,ephemeral:true}) return interaction.reply({content:":x: "+l.errors.noPermsTitle,ephemeral:true})
return
} }
await interaction.deferReply() await interaction.deferReply()
@@ -80,8 +79,8 @@ module.exports = () => {
const hiddendata = hdraw.hiddenData const hiddendata = hdraw.hiddenData
const ticketId = hiddendata.data.find(d => d.key == "type").value const ticketId = hiddendata.data.find(d => d.key == "type").value
hiddendata.data.push({key:"claimedby",value:interaction.user.id}) hiddendata.data.push({key:"claimedby",value:user.id})
storage.set("claimData",interaction.channel.id,interaction.user.id) storage.set("claimData",interaction.channel.id,user.id)
const newEmbed = new embed(firstmsg.embeds[0].data) const newEmbed = new embed(firstmsg.embeds[0].data)
.setFooter({text:"claimed by: "+user.tag,iconURL:user.displayAvatarURL()}) .setFooter({text:"claimed by: "+user.tag,iconURL:user.displayAvatarURL()})
+1 -1
View File
@@ -35,7 +35,7 @@ module.exports = () => {
const ticketId = hiddendata.data.find(d => d.key == "type").value const ticketId = hiddendata.data.find(d => d.key == "type").value
hiddendata.data.push({key:"claimedby",value:"false"}) hiddendata.data.push({key:"claimedby",value:"false"})
storage.set("claimData",interaction.channel.id,"false") storage.set("claimData",msg.channel.id,"false")
const newEmbed = new embed(firstmsg.embeds[0].data) const newEmbed = new embed(firstmsg.embeds[0].data)
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data)) .setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
+8 -1
View File
@@ -40,6 +40,7 @@
"color":"gray", "color":"gray",
"adminroles":["role id"], "adminroles":["role id"],
"readonlyAdminroles":["role id"],
"channelprefix":"question-", "channelprefix":"question-",
"category":"category id", "category":"category id",
"message":"You created a ticket!", "message":"You created a ticket!",
@@ -101,11 +102,17 @@
"dropdown":false, "dropdown":false,
"enableFooter":false, "enableFooter":false,
"footer":"Open Ticket v3.3.1 - I'm a footer!", "footer":"Open Ticket v3.3.2 - I'm a footer!",
"enableFooterImage":false,
"footerImage":"https://www.example.com/catmemes/cat.png",
"enableThumbnail":false, "enableThumbnail":false,
"thumbnail":"https://www.example.com/catmemes/cat.png", "thumbnail":"https://www.example.com/catmemes/cat.png",
"enableImage":false,
"image":"https://www.example.com/catmemes/cat.png",
"enableCustomColor":false, "enableCustomColor":false,
"color":"#ffffff", "color":"#ffffff",
@@ -52,6 +52,8 @@ module.exports = () => {
}else{ }else{
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]}) firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
} }
interaction.channel.send({embeds:[bot.embeds.commands.claimEmbed(interaction.user,interaction.user)]})
}) })
}) })
} }
@@ -23,7 +23,7 @@ module.exports = () => {
if (interaction.customId != "OTcloseTicketTrue") return if (interaction.customId != "OTcloseTicketTrue") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
if (closeTicketButtonChecker == true) return if (closeTicketButtonChecker == true) return
@@ -22,7 +22,7 @@ module.exports = () => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTdeleteTicketTrue") return if (interaction.customId != "OTdeleteTicketTrue") return
interaction.deferUpdate() await interaction.deferUpdate()
if (deleteTicketButtonChecker == true) return if (deleteTicketButtonChecker == true) return
deleteTicketButtonChecker = true deleteTicketButtonChecker = true
@@ -62,7 +62,7 @@ module.exports = () => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTdeleteTicketTrue1") return if (interaction.customId != "OTdeleteTicketTrue1") return
interaction.deferUpdate() await interaction.deferUpdate()
if (deleteTicketButtonChecker1 == true) return if (deleteTicketButtonChecker1 == true) return
deleteTicketButtonChecker1 = true deleteTicketButtonChecker1 = true
@@ -17,11 +17,11 @@ const bs = discord.ButtonStyle
module.exports = () => { module.exports = () => {
//REOPEN //REOPEN
client.on("interactionCreate",(interaction) => { client.on("interactionCreate",async (interaction) => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTreopenTicket") return if (interaction.customId != "OTreopenTicket") return
interaction.deferUpdate() await interaction.deferUpdate()
interaction.message.edit({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]}) interaction.message.edit({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]})
require("../../../ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user) require("../../../ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user)
}) })
+12 -12
View File
@@ -16,22 +16,22 @@ const bs = discord.ButtonStyle
module.exports = () => { module.exports = () => {
//CLOSE //CLOSE
client.on("interactionCreate",interaction => { client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTcloseTicket") return if (interaction.customId != "OTcloseTicket") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
interaction.message.edit({components:[bot.buttons.verifybars.closeVerifyBar]}) interaction.message.edit({components:[bot.buttons.verifybars.closeVerifyBar]})
}) })
client.on("interactionCreate",interaction => { client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTcloseTicketFalse") return if (interaction.customId != "OTcloseTicketFalse") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
if (interaction.message.pinned && interaction.message.author.id == client.user.id){ if (interaction.message.pinned && interaction.message.author.id == client.user.id){
@@ -47,22 +47,22 @@ module.exports = () => {
}) })
//DELETE //DELETE
client.on("interactionCreate",interaction => { client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTdeleteTicket") return if (interaction.customId != "OTdeleteTicket") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
interaction.message.edit({components:[bot.buttons.verifybars.deleteVerifyBar]}) interaction.message.edit({components:[bot.buttons.verifybars.deleteVerifyBar]})
}) })
client.on("interactionCreate",interaction => { client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTdeleteTicketFalse") return if (interaction.customId != "OTdeleteTicketFalse") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
if (interaction.message.pinned && interaction.message.author.id == client.user.id){ if (interaction.message.pinned && interaction.message.author.id == client.user.id){
@@ -78,22 +78,22 @@ module.exports = () => {
}) })
//DELETE NO TRANSCRIPT //DELETE NO TRANSCRIPT
client.on("interactionCreate",interaction => { client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTdeleteTicket1") return if (interaction.customId != "OTdeleteTicket1") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
interaction.message.edit({components:[bot.buttons.verifybars.delete1VerifyBar]}) interaction.message.edit({components:[bot.buttons.verifybars.delete1VerifyBar]})
}) })
client.on("interactionCreate",interaction => { client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return if (!interaction.isButton()) return
if (interaction.customId != "OTdeleteTicketFalse1") return if (interaction.customId != "OTdeleteTicketFalse1") return
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
interaction.message.edit({components:[bot.buttons.close.closeCommandRow]}) interaction.message.edit({components:[bot.buttons.close.closeCommandRow]})
}) })
+2 -2
View File
@@ -11,7 +11,7 @@ const APIEvents = require("./api/modules/events")
module.exports = async () => { module.exports = async () => {
const chalk = await (await import("chalk")).default const chalk = await (await import("chalk")).default
client.on("interactionCreate",(interaction) => { client.on("interactionCreate",async (interaction) => {
if (!interaction.isButton() && !interaction.isStringSelectMenu()) return if (!interaction.isButton() && !interaction.isStringSelectMenu()) return
if (interaction.isButton() && !interaction.customId.startsWith("newR")) return if (interaction.isButton() && !interaction.customId.startsWith("newR")) return
if (interaction.isStringSelectMenu() && !(interaction.customId == "OTdropdownMenu")) return if (interaction.isStringSelectMenu() && !(interaction.customId == "OTdropdownMenu")) return
@@ -32,7 +32,7 @@ module.exports = async () => {
return return
}else{ }else{
try { try {
interaction.deferUpdate() await interaction.deferUpdate()
} catch{} } catch{}
} }
+27 -13
View File
@@ -10,13 +10,12 @@ const storage = bot.storage
module.exports = () => { module.exports = () => {
//dropdown placeholder //dropdown placeholder
client.on("interactionCreate",(interaction) => { client.on("interactionCreate",async (interaction) => {
if (!interaction.isStringSelectMenu()) return if (!interaction.isStringSelectMenu()) return
if (interaction.customId != "OTdropdownMenu") return if (interaction.customId != "OTdropdownMenu") return
if (interaction.values.includes("OTChooseTicket")){ if (interaction.values.includes("OTChooseTicket")){
interaction.deferUpdate() await interaction.deferUpdate()
} }
}) })
@@ -37,7 +36,7 @@ module.exports = () => {
if (interaction.customId.startsWith("OTnewT")){ if (interaction.customId.startsWith("OTnewT")){
const optionid = interaction.customId.split("OTnewT")[1] const optionid = interaction.customId.split("OTnewT")[1]
if (!optionid){ if (!optionid){
interaction.reply({embeds:[bot.errorLog.serverError(l.errors.ticketDoesntExist)]}) await interaction.reply({embeds:[bot.errorLog.serverError(l.errors.ticketDoesntExist)]})
return return
} }
} }
@@ -53,7 +52,7 @@ module.exports = () => {
if (interaction.isButton()){ if (interaction.isButton()){
try { try {
if (config.system.answerInEphemeralOnOpen) await interaction.deferReply({ephemeral:true}) await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpe})
} catch{} } catch{}
}else if (interaction.isChatInputCommand()){ }else if (interaction.isChatInputCommand()){
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen}) await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
@@ -110,9 +109,7 @@ module.exports = () => {
type:"role", type:"role",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel] allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
}) })
}catch{ }catch{}
log("system","invalid role! At 'config.json => main_adminroles:"+index)
}
}) })
//add ticket adminroles //add ticket adminroles
@@ -131,9 +128,28 @@ module.exports = () => {
type:"role", type:"role",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel] allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
}) })
}catch{ }catch{}
log("system","invalid role! At 'config.json => options/ticket/...:"+index)
} }
})
//add ticket adminroles
/**
* @type {String[]}
*/
const readonlyTicketadmin = currentTicketOptions.readonlyAdminroles
readonlyTicketadmin.forEach((role,index) => {
if (!config.adminRoles.includes(role) && !currentTicketOptions.adminroles.includes(role)){
try {
const adminrole = guild.roles.cache.find(r => r.id == role)
if (!adminrole) return
permissionsArray.push({
id:adminrole,
type:"role",
allow:[pfb.AddReactions,pfb.ViewChannel],
deny:[pfb.SendMessages,pfb.AttachFiles,pfb.EmbedLinks]
})
}catch{}
} }
}) })
@@ -148,9 +164,7 @@ module.exports = () => {
deny:[pfb.ViewChannel] deny:[pfb.ViewChannel]
}) })
} }
}catch{ }catch{}
log("system","invalid role! At 'config.json => system/memberRole")
}
} }
//create the channel //create the channel
+4 -4
View File
@@ -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}, autoclose:{enable:Boolean,inactiveHours:Number} }} OTTicketOptions */ /**@typedef {{id: String,name: String,description: String,icon: String,label: String,type: "ticket"|"role"|"website",color: "red"|"green"|"blue"|"gray",adminroles: String[], readonlyAdminroles: 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 */
@@ -16,13 +16,13 @@ const l = bot.language
//OTConfigMessage //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*/ /**@typedef {{id: string, name: string, description: string, dropdown: boolean, enableFooter: boolean, footer: string, enableFooterImage: boolean, footerImage: string, enableThumbnail: boolean, thumbnail: string, enableImage: boolean, image: 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}, autoclose:{enable:Boolean,inactiveHours:Number}}} 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}, readonlyAdminroles: String[]}} 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"|"adminroles"|"autoclose"} OTTicketStringOptions */
/**@typedef {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"roles"|"mode"|"enableDmOnOpen"} OTRoleStringOptions */ /**@typedef {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"roles"|"mode"|"enableDmOnOpen"} OTRoleStringOptions */
/**@typedef {"id"|"name"|"description"|"icon"|"label"|"type"|"url"} OTWebsiteStringOptions */ /**@typedef {"id"|"name"|"description"|"icon"|"label"|"type"|"url"} OTWebsiteStringOptions */
+16 -2
View File
@@ -40,11 +40,25 @@ exports.createEmbed = (id) => {
//create the embed //create the embed
const embed = new discord.EmbedBuilder() const embed = new discord.EmbedBuilder()
.setTitle(data.name) .setTitle(data.name)
if (data.enableFooter) embed.setFooter({text:data.footer})
try {
const footerimg = (data.enableFooter && data.enableFooterImage) ? data.footerImage : undefined
if (data.enableFooter) embed.setFooter({text:data.footer,iconURL:footerimg})
}catch{
bot.errorLog.log("info","FOOTER FAILED TO LOAD, probably invalid url!")
}
try { try {
if (data.enableThumbnail) embed.setThumbnail(data.thumbnail) if (data.enableThumbnail) embed.setThumbnail(data.thumbnail)
}catch{bot.errorLog.log("info","THUMBNAIL FAILED TO LOAD, probably invalid url!")} }catch{
bot.errorLog.log("info","THUMBNAIL FAILED TO LOAD, probably invalid url!")
}
try {
if (data.enableImage) embed.setImage(data.image)
}catch{
bot.errorLog.log("info","IMAGE FAILED TO LOAD, probably invalid url!")
}
if (data.enableCustomColor){ if (data.enableCustomColor){
embed.setColor(data.color) embed.setColor(data.color)
+1 -1
View File
@@ -28,7 +28,7 @@
INFORMATION: INFORMATION:
============ ============
Open Ticket v3.3.1 - © DJdj Development Open Ticket v3.3.2 - © DJdj Development
discord: https://discord.dj-dj.be discord: https://discord.dj-dj.be
website: https://www.dj-dj.be website: https://www.dj-dj.be