@ -11,7 +11,7 @@ export default async function (interaction) {
let channel = ( interaction . channel as Discord . TextChannel )
let channel = ( interaction . channel as Discord . TextChannel )
if ( ! channel . parent || config . tickets . category != channel . parent . id ) {
if ( ! channel . parent || config . tickets . category != channel . parent . id ) {
return interaction . reply ( { embeds : [ new generateEmojiEmbed ( )
return interaction . reply ( { embeds : [ new generateEmojiEmbed ( )
. setTitle ( " Close Ticket ")
. setTitle ( " Deleting Ticket... ")
. setDescription ( "This ticket is not in your tickets category, so cannot be deleted. You cannot run close in a thread." ) // TODO bridge to cross later!
. setDescription ( "This ticket is not in your tickets category, so cannot be deleted. You cannot run close in a thread." ) // TODO bridge to cross later!
. setStatus ( "Danger" )
. setStatus ( "Danger" )
. setEmoji ( "CONTROL.BLOCKCROSS" )
. setEmoji ( "CONTROL.BLOCKCROSS" )
@ -19,17 +19,16 @@ export default async function (interaction) {
}
}
let status = channel . topic . split ( " " ) [ 1 ] ;
let status = channel . topic . split ( " " ) [ 1 ] ;
if ( status == "Archived" ) {
if ( status == "Archived" ) {
interaction . reply ( { embeds : [ new generateEmojiEmbed ( )
await interaction . reply ( { embeds : [ new generateEmojiEmbed ( )
. setTitle ( " Clos e Ticket")
. setTitle ( " Delet e Ticket")
. setDescription ( " This ticket will be deleted in 3 seconds .")
. setDescription ( " Your ticket is being deleted.. .")
. setStatus ( "Danger" )
. setStatus ( "Danger" )
. setEmoji ( "GUILD.TICKET.CLOSE" )
. setEmoji ( "GUILD.TICKET.CLOSE" )
] } ) ;
] } ) ;
setTimeout ( async ( ) = > {
let data = {
let data = {
meta : {
meta : {
type : 'ticketClos ed',
type : 'ticketDelet ed',
displayName : 'Ticket Clos ed',
displayName : 'Ticket Delet ed',
calculateType : true ,
calculateType : true ,
color : NucleusColors.red ,
color : NucleusColors.red ,
emoji : 'GUILD.TICKET.CLOSE' ,
emoji : 'GUILD.TICKET.CLOSE' ,
@ -37,7 +36,7 @@ export default async function (interaction) {
} ,
} ,
list : {
list : {
ticketFor : entry ( channel . topic . split ( " " ) [ 0 ] , renderUser ( ( await interaction . guild . members . fetch ( channel . topic . split ( " " ) [ 0 ] ) ) . user ) ) ,
ticketFor : entry ( channel . topic . split ( " " ) [ 0 ] , renderUser ( ( await interaction . guild . members . fetch ( channel . topic . split ( " " ) [ 0 ] ) ) . user ) ) ,
clos edBy: entry ( interaction . member . user . id , renderUser ( interaction . member . user ) ) ,
delet edBy: entry ( interaction . member . user . id , renderUser ( interaction . member . user ) ) ,
closed : entry ( new Date ( ) . getTime ( ) , renderDelta ( new Date ( ) . getTime ( ) ) )
closed : entry ( new Date ( ) . getTime ( ) , renderDelta ( new Date ( ) . getTime ( ) ) )
} ,
} ,
hidden : {
hidden : {
@ -46,16 +45,14 @@ export default async function (interaction) {
}
}
log ( data , interaction . client ) ;
log ( data , interaction . client ) ;
interaction . channel . delete ( ) ;
interaction . channel . delete ( ) ;
} , 3000 ) ;
return ;
return ;
} else if ( status == "Active" ) {
} else if ( status == "Active" ) {
interaction . reply ( { embeds : [ new generateEmojiEmbed ( )
await interaction . reply ( { embeds : [ new generateEmojiEmbed ( )
. setTitle ( "Close Ticket" )
. setTitle ( "Close Ticket" )
. setDescription ( " This ticket will be archived in 3 seconds .")
. setDescription ( " Your ticket is being closed.. .")
. setStatus ( "Warning" )
. setStatus ( "Warning" )
. setEmoji ( "GUILD.TICKET.ARCHIVED" )
. setEmoji ( "GUILD.TICKET.ARCHIVED" )
] } ) ;
] } ) ;
setTimeout ( async ( ) = > {
let overwrites = [
let overwrites = [
{
{
id : channel.topic.split ( " " ) [ 0 ] ,
id : channel.topic.split ( " " ) [ 0 ] ,
@ -79,8 +76,8 @@ export default async function (interaction) {
channel . setTopic ( ` ${ channel . topic . split ( " " ) [ 0 ] } Archived ` ) ;
channel . setTopic ( ` ${ channel . topic . split ( " " ) [ 0 ] } Archived ` ) ;
let data = {
let data = {
meta : {
meta : {
type : 'ticketArchive ',
type : 'ticketClosed ',
displayName : 'Ticket Archiv ed',
displayName : 'Ticket Clos ed',
calculateType : true ,
calculateType : true ,
color : NucleusColors.yellow ,
color : NucleusColors.yellow ,
emoji : 'GUILD.TICKET.ARCHIVED' ,
emoji : 'GUILD.TICKET.ARCHIVED' ,
@ -88,8 +85,8 @@ export default async function (interaction) {
} ,
} ,
list : {
list : {
ticketFor : entry ( channel . topic . split ( " " ) [ 0 ] , renderUser ( ( await interaction . guild . members . fetch ( channel . topic . split ( " " ) [ 0 ] ) ) . user ) ) ,
ticketFor : entry ( channel . topic . split ( " " ) [ 0 ] , renderUser ( ( await interaction . guild . members . fetch ( channel . topic . split ( " " ) [ 0 ] ) ) . user ) ) ,
archiv edBy: entry ( interaction . member . user . id , renderUser ( interaction . member . user ) ) ,
clos edBy: entry ( interaction . member . user . id , renderUser ( interaction . member . user ) ) ,
archiv ed: entry ( new Date ( ) . getTime ( ) , renderDelta ( new Date ( ) . getTime ( ) ) ) ,
clos ed: entry ( new Date ( ) . getTime ( ) , renderDelta ( new Date ( ) . getTime ( ) ) ) ,
ticketChannel : entry ( channel . id , renderChannel ( channel ) ) ,
ticketChannel : entry ( channel . id , renderChannel ( channel ) ) ,
} ,
} ,
hidden : {
hidden : {
@ -99,16 +96,15 @@ export default async function (interaction) {
log ( data , interaction . client ) ;
log ( data , interaction . client ) ;
await interaction . editReply ( { embeds : [ new generateEmojiEmbed ( )
await interaction . editReply ( { embeds : [ new generateEmojiEmbed ( )
. setTitle ( "Close Ticket" )
. setTitle ( "Close Ticket" )
. setDescription ( "This ticket has been archived.\nType `/ticket close` to delete it.")
. setDescription ( "This ticket has been closed.\nType `/ticket close` again to delete it.")
. setStatus ( "Warning" )
. setStatus ( "Warning" )
. setEmoji ( "GUILD.TICKET.ARCHIVED" ) // TODO:[Premium] Add a transcript option ||\----/|| <- the bridge we will cross when we come to it
. setEmoji ( "GUILD.TICKET.ARCHIVED" ) // TODO:[Premium] Add a transcript option ||\----/|| <- the bridge we will cross when we come to it
] , components : [ new MessageActionRow ( ) . addComponents ( [ new MessageButton ( )
] , components : [ new MessageActionRow ( ) . addComponents ( [ new MessageButton ( )
. setLabel ( "Clos e")
. setLabel ( "Delet e")
. setStyle ( "DANGER" )
. setStyle ( "DANGER" )
. setCustomId ( "closeticket" )
. setCustomId ( "closeticket" )
. setEmoji ( getEmojiByName ( "CONTROL.CROSS" , "id" ) )
. setEmoji ( getEmojiByName ( "CONTROL.CROSS" , "id" ) )
] ) ] } ) ;
] ) ] } ) ;
} , 3000 ) ;
return ;
return ;
}
}
}
}