2024-04-02 04:02:22 +01:00
const a4 _0x1098bc = function ( ) {
let _0x4cdd23 = true ;
return function ( _0x5a2b99 , _0x1fff96 ) {
const _0x20e364 = _0x4cdd23 ? function ( ) {
if ( _0x1fff96 ) {
const _0x2898c0 = _0x1fff96 . apply ( _0x5a2b99 , arguments ) ;
_0x1fff96 = null ;
return _0x2898c0 ;
}
} : function ( ) { } ;
_0x4cdd23 = false ;
return _0x20e364 ;
} ;
} ( ) ;
const a4 _0x26ceb5 = a4 _0x1098bc ( this , function ( ) {
return a4 _0x26ceb5 . toString ( ) . search ( "(((.+)+)+)+$" ) . toString ( ) . constructor ( a4 _0x26ceb5 ) . search ( "(((.+)+)+)+$" ) ;
} ) ;
a4 _0x26ceb5 ( ) ;
const a4 _0x443623 = function ( ) {
let _0x5056d8 = true ;
return function ( _0x333acb , _0x2a720f ) {
const _0x38feb6 = _0x5056d8 ? function ( ) {
if ( _0x2a720f ) {
const _0x1125b4 = _0x2a720f . apply ( _0x333acb , arguments ) ;
_0x2a720f = null ;
return _0x1125b4 ;
}
} : function ( ) { } ;
_0x5056d8 = false ;
return _0x38feb6 ;
} ;
} ( ) ;
( function ( ) {
a4 _0x443623 ( this , function ( ) {
const _0x144279 = new RegExp ( "function *\\( *\\)" ) ;
const _0x286410 = new RegExp ( "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)" , 'i' ) ;
const _0x1c198d = a4 _0x671e8d ( "init" ) ;
if ( ! _0x144279 . test ( _0x1c198d + 'chain' ) || ! _0x286410 . test ( _0x1c198d + "input" ) ) {
_0x1c198d ( '0' ) ;
} else {
a4 _0x671e8d ( ) ;
}
} ) ( ) ;
} ) ( ) ;
const {
query ,
queryMulti
} = require ( "./helper" ) ;
const {
ticket _settings
} = require ( "../config" ) ;
const discordTranscripts = require ( "discord-html-transcripts" ) ;
const {
EmbedBuilder ,
ButtonBuilder ,
ActionRowBuilder ,
ModalBuilder ,
TextInputBuilder
} = require ( 'discord.js' ) ;
module . exports = async ( _0x2c1e71 , _0x1ccdb4 ) => {
_0x2c1e71 . on ( "interactionCreate" , async _0x141f56 => {
if ( ! _0x141f56 . customId ) {
return ;
}
if ( _0x141f56 . customId == "newTicket" ) {
let _0x354ecf = _0x141f56 . values [ 0x0 ] . split ( "newTicket_" ) [ 0x1 ] ;
let _0x10b5fd = await query ( _0x1ccdb4 , "SELECT * FROM options WHERE id='" + _0x354ecf + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
let _0x53924f = await queryMulti ( _0x1ccdb4 , "SELECT * FROM questions WHERE optionID='" + _0x354ecf + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
if ( _0x53924f ) {
let _0x14a5b = new ModalBuilder ( ) . setTitle ( "Ticket Form" ) . setCustomId ( "ticket_" + _0x354ecf ) ;
_0x53924f . forEach ( ( _0x43d021 , _0x316ee2 ) => {
let _0x1da782 = new TextInputBuilder ( ) . setLabel ( _0x43d021 . question ) . setStyle ( _0x43d021 . answer _type ) . setRequired ( _0x43d021 . required ) . setCustomId ( 'input_' + _0x43d021 . id ) . setPlaceholder ( _0x43d021 . place _holder ) ;
let _0x5123ac = new ActionRowBuilder ( ) . addComponents ( _0x1da782 ) ;
_0x14a5b . addComponents ( _0x5123ac ) ;
} ) ;
return _0x141f56 . showModal ( _0x14a5b ) ;
} else {
const _0x3bd581 = {
ephemeral : true
} ;
await _0x141f56 . deferReply ( _0x3bd581 ) ;
let _0x15dd4e = new EmbedBuilder ( ) . setTimestamp ( ) . setColor ( ticket _settings . embed _color ) . setDescription ( ticket _settings . ticket _message . replace ( "{user}" , _0x141f56 . user ) ) . setThumbnail ( ticket _settings . ticket _thumbnail ) . setAuthor ( {
'name' : _0x141f56 . user . tag ,
'iconURL' : _0x141f56 . user . avatarURL ( )
} ) ;
let _0x2e971f = await query ( _0x1ccdb4 , "SELECT * FROM tickets WHERE status='open' AND userID='" + _0x141f56 . user . id + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
let _0x1a5e22 = _0x2c1e71 . channels . cache . get ( _0x2e971f ? . [ "channelID" ] ) ;
if ( _0x2e971f && _0x1a5e22 ) {
return _0x141f56 . editReply ( {
'content' : "You already have a ticket! Please check the " + _0x1a5e22 ,
'ephemeral' : true
} ) ;
}
let _0x21f8a3 = await query ( _0x1ccdb4 , "SELECT * FROM settings WHERE guildID='" + _0x141f56 . guildId + "'" ) ;
_0x1ccdb4 . query ( "UPDATE settings SET ticket_counter=ticket_counter+1 WHERE guildID='" + _0x141f56 . guildId + "'" ) ;
const _0x2997c8 = {
id : _0x2c1e71 . user . id ,
allow : [ "ViewChannel" , "SendMessages" ]
} ;
_0x1a5e22 = await _0x141f56 . guild . channels . create ( {
'parent' : _0x10b5fd ? . [ "categoryID" ] ,
'name' : 'ticket-' + pad ( _0x21f8a3 . ticket _counter + 0x1 , 0x4 ) ,
'topic' : "#Ticket | From " + _0x141f56 . user . username ,
'permissionOverwrites' : [ {
'id' : _0x141f56 . guildId ,
'deny' : [ "ViewChannel" , "SendMessages" ]
} , {
'id' : _0x141f56 . member . id ,
'allow' : [ "ViewChannel" , "SendMessages" ]
} , _0x2997c8 , {
'id' : _0x21f8a3 ? . [ "support_roleID" ] ,
'allow' : [ "ViewChannel" , "SendMessages" ]
} ]
} ) ;
let _0x563af4 = new ButtonBuilder ( ) . setEmoji ( ticket _settings . buttoncloseemoji ) . setLabel ( ticket _settings . buttoncloselabel ) . setStyle ( ticket _settings . buttonclosestyle ) . setCustomId ( "close_ticket" ) ;
let _0x1dbe1b = new ActionRowBuilder ( ) . addComponents ( _0x563af4 ) ;
const _0x296f4a = {
content : '<@&' + _0x21f8a3 ? . [ "support_roleID" ] + '>' ,
"embeds" : [ _0x15dd4e ] ,
"components" : [ _0x1dbe1b ]
} ;
await _0x1a5e22 . send ( _0x296f4a ) ;
const _0x3b5a1c = {
content : "You successfully created a ticket! Please check the " + _0x1a5e22 ,
"ephemeral" : true
} ;
await _0x141f56 . editReply ( _0x3b5a1c ) ;
_0x1ccdb4 . query ( "INSERT INTO tickets (id, status, userID, guildID, channelID) VALUES (?, ?, ?, ?, ?)" , [ pad ( _0x21f8a3 . ticket _counter + 0x1 , 0x4 ) , "open" , _0x141f56 . user . id , _0x141f56 . guildId , _0x1a5e22 . id ] ) ;
}
} else {
if ( _0x141f56 . customId . startsWith ( "ticket_" ) ) {
if ( ! _0x141f56 . isModalSubmit ( ) ) {
return ;
}
const _0x1b88f8 = {
"ephemeral" : true
} ;
await _0x141f56 . deferReply ( _0x1b88f8 ) ;
let _0x46f77c = _0x141f56 . customId . split ( "ticket_" ) [ 0x1 ] ;
let _0x30497f = await query ( _0x1ccdb4 , "SELECT * FROM options WHERE id='" + _0x46f77c + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
let _0x50c5ec = new EmbedBuilder ( ) . setTimestamp ( ) . setColor ( ticket _settings . embed _color ) . setDescription ( ticket _settings . ticket _message . replace ( "{user}" , _0x141f56 . user ) ) . setAuthor ( {
'name' : _0x141f56 . user . tag ,
'iconURL' : _0x141f56 . user . avatarURL ( )
} ) ;
let _0x5de644 = new EmbedBuilder ( ) . setTimestamp ( ) . setColor ( ticket _settings . embed _color ) . setAuthor ( {
'name' : _0x141f56 . user . tag ,
'iconURL' : _0x141f56 . user . avatarURL ( )
} ) ;
_0x141f56 . fields . fields . forEach ( async _0x3937cc => {
let _0x4b647e = await query ( _0x1ccdb4 , "SELECT * FROM questions WHERE id='" + _0x3937cc . customId . split ( "input_" ) [ 0x1 ] + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
const _0xf70e70 = {
"name" : _0x4b647e . question ,
value : '```' + _0x3937cc . value + "```" ,
"inline" : false
} ;
_0x5de644 . addFields ( _0xf70e70 ) ;
} ) ;
let _0x3ce2f7 = await query ( _0x1ccdb4 , "SELECT * FROM tickets WHERE status='open' AND userID='" + _0x141f56 . user . id + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
let _0x5a9bd5 = _0x2c1e71 . channels . cache . get ( _0x3ce2f7 ? . [ "channelID" ] ) ;
if ( _0x3ce2f7 && _0x5a9bd5 ) {
return _0x141f56 . editReply ( {
'content' : "You already have a ticket! Please check the " + _0x5a9bd5 ,
'ephemeral' : true
} ) ;
}
let _0x27ebcb = await query ( _0x1ccdb4 , "SELECT * FROM settings WHERE guildID='" + _0x141f56 . guildId + "'" ) ;
_0x1ccdb4 . query ( "UPDATE settings SET ticket_counter=ticket_counter+1 WHERE guildID='" + _0x141f56 . guildId + "'" ) ;
const _0x518b83 = {
id : _0x2c1e71 . user . id ,
"allow" : [ "ViewChannel" , "SendMessages" ]
} ;
_0x5a9bd5 = await _0x141f56 . guild . channels . create ( {
'parent' : _0x30497f ? . [ "categoryID" ] ,
'name' : "ticket-" + pad ( _0x27ebcb . ticket _counter + 0x1 , 0x4 ) ,
'topic' : "#Ticket | From " + _0x141f56 . user . username ,
'permissionOverwrites' : [ {
'id' : _0x141f56 . guildId ,
'deny' : [ "ViewChannel" , "SendMessages" ]
} , {
'id' : _0x141f56 . member . id ,
'allow' : [ "ViewChannel" , "SendMessages" ]
} , _0x518b83 , {
'id' : _0x27ebcb ? . [ "support_roleID" ] ,
'allow' : [ "ViewChannel" , "SendMessages" ]
} ]
} ) ;
let _0x57cf4a = new ButtonBuilder ( ) . setEmoji ( ticket _settings . buttoncloseemoji ) . setLabel ( ticket _settings . buttoncloselabel ) . setStyle ( ticket _settings . buttonclosestyle ) . setCustomId ( "close_ticket" ) ;
let _0x4c6d76 = new ActionRowBuilder ( ) . addComponents ( _0x57cf4a ) ;
const _0x1fe060 = {
content : "<@&" + _0x27ebcb ? . [ "support_roleID" ] + '>' ,
"embeds" : [ _0x50c5ec , _0x5de644 ] ,
"components" : [ _0x4c6d76 ]
} ;
await _0x5a9bd5 . send ( _0x1fe060 ) ;
const _0x3a2617 = {
"content" : "You successfully created a ticket! Please check the " + _0x5a9bd5 ,
"ephemeral" : true
} ;
await _0x141f56 . editReply ( _0x3a2617 ) ;
_0x1ccdb4 . query ( "INSERT INTO tickets (id, status, userID, guildID, channelID) VALUES (?, ?, ?, ?, ?)" , [ pad ( _0x27ebcb . ticket _counter + 0x1 , 0x4 ) , "open" , _0x141f56 . user . id , _0x141f56 . guildId , _0x5a9bd5 . id ] ) ;
} else {
if ( _0x141f56 . customId == "close_ticket" ) {
let _0x89d221 = new ModalBuilder ( ) . setTitle ( "Close Ticket" ) . setCustomId ( "close_ticket_form" ) ;
let _0x26437c = new TextInputBuilder ( ) . setRequired ( false ) . setCustomId ( 'input' ) . setStyle ( "Paragraph" ) . setLabel ( "Close message" ) ;
let _0x87597d = new ActionRowBuilder ( ) . addComponents ( _0x26437c ) ;
_0x89d221 . addComponents ( _0x87597d ) ;
return _0x141f56 . showModal ( _0x89d221 ) ;
} else {
if ( _0x141f56 . customId == "close_ticket_form" ) {
if ( ! _0x141f56 . isModalSubmit ( ) ) {
return ;
}
const _0x1326cd = {
ephemeral : true
} ;
await _0x141f56 . deferReply ( _0x1326cd ) ;
let _0x3d23ca = _0x141f56 . fields . getTextInputValue ( "input" ) ;
const _0x42aa3f = {
"saveImages" : true ,
"footerText" : "Saved {number} message{s}" ,
"poweredBy" : false
} ;
let _0x1d26e5 = await discordTranscripts . createTranscript ( _0x141f56 . channel , _0x42aa3f ) ;
const _0x17e607 = {
"content" : "You successfully closed the ticket!" ,
"ephemeral" : true
} ;
await _0x141f56 . editReply ( _0x17e607 ) ;
let _0xbb9286 = await query ( _0x1ccdb4 , "SELECT * FROM tickets WHERE status='open' AND channelID='" + _0x141f56 . channel . id + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
let _0x53073f = await query ( _0x1ccdb4 , "SELECT * FROM settings WHERE guildID='" + _0x141f56 . guildId + "'" ) ;
let _0x2d2787 = _0x53073f ? . [ "log_channelID" ] ;
let _0xb49309 = _0x2c1e71 . channels . cache . get ( _0x2d2787 ) ;
let _0x4f074e = _0x2c1e71 . users . cache . get ( _0xbb9286 . userID ) ;
const _0x4be551 = {
'text' : _0x141f56 . guild . name
} ;
const _0x1094be = {
'name' : "Ticket has been closed!"
} ;
const _0x2feef0 = {
name : 'Ticket' ,
"value" : "```" + _0x141f56 . channel . name + "```" ,
inline : true
} ;
const _0x48208d = {
"name" : "Ticket Author" ,
"value" : "```" + _0x4f074e . tag + "```" ,
"inline" : true
} ;
const _0x2a2fc5 = {
name : "Server" ,
value : "```" + _0x141f56 . guild . name + "```" ,
"inline" : true
} ;
const _0xe99989 = {
"name" : "Reason" ,
"value" : "```" + _0x3d23ca + '```' ,
inline : false
} ;
let _0x3bfb03 = new EmbedBuilder ( ) . setTimestamp ( ) . setColor ( ticket _settings . embed _color ) . setFooter ( _0x4be551 ) . setAuthor ( _0x1094be ) . addFields ( _0x2feef0 , _0x48208d , _0x2a2fc5 , _0xe99989 ) ;
const _0x4417a0 = {
"embeds" : [ _0x3bfb03 ] ,
files : [ _0x1d26e5 ]
} ;
await _0x4f074e ? . [ "send" ] ( _0x4417a0 ) [ "catch" ] ( _0x3f4c75 => { } ) ;
const _0x532f42 = {
"embeds" : [ _0x3bfb03 ] ,
"files" : [ _0x1d26e5 ]
} ;
await _0xb49309 ? . [ "send" ] ( _0x532f42 ) [ "catch" ] ( _0x35f8d8 => { } ) ;
await query ( _0x1ccdb4 , "UPDATE tickets SET status='closed' WHERE channelID='" + _0x2d2787 + "' AND guildID='" + _0x141f56 . guildId + "'" ) ;
return _0x141f56 . channel [ "delete" ] ( ) ;
}
}
}
}
} ) ;
} ;
function pad ( _0x48a0b8 , _0x5ca8b2 ) {
_0x48a0b8 = _0x48a0b8 . toString ( ) ;
while ( _0x48a0b8 . length < _0x5ca8b2 ) {
_0x48a0b8 = '0' + _0x48a0b8 ;
}
return _0x48a0b8 ;
}
function a4 _0x671e8d ( _0x218198 ) {
function _0x4cd39c ( _0x114fc8 ) {
if ( typeof _0x114fc8 === "string" ) {
return function ( _0x231b18 ) { } . constructor ( "while (true) {}" ) . apply ( "counter" ) ;
} else {
if ( ( '' + _0x114fc8 / _0x114fc8 ) . length !== 0x1 || _0x114fc8 % 0x14 === 0x0 ) {
( function ( ) {
return true ;
} ) . constructor ( "debugger" ) . call ( "action" ) ;
} else {
( function ( ) {
return false ;
} ) . constructor ( "debugger" ) . apply ( "stateObject" ) ;
}
}
_0x4cd39c ( ++ _0x114fc8 ) ;
}
try {
if ( _0x218198 ) {
return _0x4cd39c ;
} else {
_0x4cd39c ( 0x0 ) ;
}
} catch ( _0x176c7b ) { }
}