2022-12-05 03:16:48 -05:00
2022-12-24 00:59:52 -05:00
const { EmbedBuilder } = require ( 'discord.js' )
2022-08-14 05:51:45 -04:00
2022-12-01 05:15:30 -05:00
function list ( bot , discord , channeldc , selector , config ) {
2022-11-27 02:35:28 -05:00
const message = [ ]
2022-08-14 05:51:45 -04:00
2022-10-19 21:14:29 -04:00
if ( discord ) {
2022-12-09 08:09:49 -05:00
for ( const [ index , { command , interval , list } ] of Object . entries ( bot . cloop . list ) ) {
2022-12-08 05:51:30 -05:00
if ( ! list ) continue
2022-12-09 08:09:49 -05:00
message . push ( index )
2022-11-27 02:35:28 -05:00
message . push ( ' > ' )
2022-12-09 08:09:49 -05:00
message . push ( ` \` ${ command } \` ` )
2022-11-27 02:35:28 -05:00
message . push ( ' - ' )
2022-12-09 08:09:49 -05:00
message . push ( interval )
2022-11-27 02:35:28 -05:00
message . push ( '\n' )
2022-10-19 21:14:29 -04:00
}
2022-11-27 02:35:28 -05:00
message . pop ( )
2022-10-19 21:14:29 -04:00
2022-12-24 00:59:52 -05:00
const Embed = new EmbedBuilder ( )
2022-12-01 05:15:30 -05:00
. setColor ( config . discord . embedsColors . normal )
2022-11-27 02:35:28 -05:00
. setTitle ( 'Cloops' )
. setDescription ( message . join ( '' ) )
channeldc . send ( { embeds : [ Embed ] } )
2022-12-08 05:51:30 -05:00
} else {
message . push ( { text : 'Cloops:' , color : 'green' } )
2022-11-27 02:35:28 -05:00
message . push ( '\n' )
2022-08-14 05:51:45 -04:00
2022-12-09 08:09:49 -05:00
for ( const [ index , { command , interval , list } ] of Object . entries ( bot . cloop . list ) ) {
2022-12-08 05:51:30 -05:00
if ( ! list ) continue
2022-12-09 08:09:49 -05:00
message . push ( { text : index , color : 'aqua' } )
2022-12-08 05:51:30 -05:00
message . push ( { text : ' > ' , color : 'gold' } )
2022-12-09 08:09:49 -05:00
message . push ( { text : command , color : 'green' } )
2022-12-08 05:51:30 -05:00
message . push ( { text : ' - ' , color : 'gold' } )
2022-12-09 08:09:49 -05:00
message . push ( { text : interval , color : 'green' } )
2022-12-08 05:51:30 -05:00
message . push ( '\n' )
}
2022-08-14 05:51:45 -04:00
2022-12-08 05:51:30 -05:00
message . pop ( )
bot . tellraw ( selector , message )
}
2022-08-14 05:51:45 -04:00
}
2022-12-08 05:51:30 -05:00
2022-08-14 05:51:45 -04:00
module . exports = {
name : 'cloop' ,
alias : [ ] ,
description : 'Loop commands' ,
2022-11-13 02:41:59 -05:00
usage : [
2022-12-12 06:37:29 -05:00
'<hash> add <interval> <command>' ,
'<hash> remove <index>' ,
'<hash> removeall|clear' ,
'<hash> list'
2022-11-13 02:41:59 -05:00
] ,
2022-08-14 05:51:45 -04:00
trusted : 1 ,
2022-12-14 08:51:30 -05:00
execute ( bot , username , sender , prefix , args , config , hash , ownerhash , selector ) {
2022-11-23 04:24:00 -05:00
if ( args [ 1 ] === 'add' && args [ 3 ] ) {
2022-11-27 02:35:28 -05:00
if ( ! Number ( args [ 2 ] ) && Number ( args [ 2 ] ) !== 0 ) throw new SyntaxError ( 'Invalid interval' )
2022-12-08 05:51:30 -05:00
bot . cloop . add ( args . slice ( 3 ) . join ( ' ' ) , args [ 2 ] )
2022-11-27 02:35:28 -05:00
bot . tellraw ( selector , [ { text : 'Added command ' , color : 'white' } , { text : ` ${ args . slice ( 3 ) . join ( ' ' ) } ` , color : 'aqua' } , { text : ' with interval ' , color : 'white' } , { text : ` ${ args [ 2 ] } ` , color : 'green' } , { text : ' to the cloops' , color : 'white' } ] )
2022-11-23 04:24:00 -05:00
} else if ( args [ 1 ] === 'list' ) {
2022-11-27 02:35:28 -05:00
list ( bot , false , null , selector )
2022-11-23 04:24:00 -05:00
} else if ( args [ 1 ] === 'remove' ) {
2022-12-08 05:51:30 -05:00
bot . cloop . remove ( args [ 2 ] )
2022-11-27 02:35:28 -05:00
bot . tellraw ( selector , [ { text : 'Removed cloop ' } , { text : args [ 2 ] , color : 'aqua' } ] )
2022-12-08 05:51:30 -05:00
} else if ( args [ 1 ] === 'removeall' || args [ 1 ] === 'clear' ) {
bot . cloop . clear ( )
2022-11-27 02:35:28 -05:00
bot . tellraw ( selector , [ { text : 'Removed all looped commands' , color : 'white' } ] )
2022-11-07 08:08:29 -05:00
} else {
2022-11-27 02:35:28 -05:00
throw new SyntaxError ( 'Invalid argument' )
2022-08-14 05:51:45 -04:00
}
} ,
2022-12-14 08:51:30 -05:00
discordExecute ( bot , username , sender , prefix , args , channeldc , message , config ) {
2022-11-23 06:10:45 -05:00
if ( args [ 0 ] === 'add' && args [ 2 ] ) {
2022-11-27 02:35:28 -05:00
if ( ! Number ( args [ 1 ] ) && Number ( args [ 1 ] ) !== 0 ) throw new SyntaxError ( 'Invalid interval' )
2022-12-08 05:51:30 -05:00
bot . cloop . add ( args . slice ( 2 ) . join ( ' ' ) , args [ 1 ] )
2022-12-24 00:59:52 -05:00
const Embed = new EmbedBuilder ( )
2022-12-01 05:15:30 -05:00
. setColor ( config . discord . embedsColors . normal )
2022-11-27 02:35:28 -05:00
. setTitle ( 'Cloop' )
. setDescription ( ` Added cloop \` ${ args . slice ( 2 ) . join ( ' ' ) } \` with interval ${ args [ 1 ] } to the cloops ` )
channeldc . send ( { embeds : [ Embed ] } )
2022-11-23 06:10:45 -05:00
} else if ( args [ 0 ] === 'list' ) {
2022-12-01 05:15:30 -05:00
list ( bot , true , channeldc , '@a' , config )
2022-11-23 06:10:45 -05:00
} else if ( args [ 0 ] === 'remove' ) {
2022-12-08 05:51:30 -05:00
bot . cloop . remove ( args [ 1 ] )
2022-12-24 00:59:52 -05:00
const Embed = new EmbedBuilder ( )
2022-12-01 05:15:30 -05:00
. setColor ( config . discord . embedsColors . normal )
2022-11-27 02:35:28 -05:00
. setTitle ( 'Cloop' )
. setDescription ( ` Removed cloop \` ${ args [ 1 ] } \` ` )
channeldc . send ( { embeds : [ Embed ] } )
2022-12-08 05:51:30 -05:00
} else if ( args [ 0 ] === 'removeall' || args [ 0 ] === 'clear' ) {
bot . cloop . clear ( )
2022-12-24 00:59:52 -05:00
const Embed = new EmbedBuilder ( )
2022-12-01 05:15:30 -05:00
. setColor ( config . discord . embedsColors . normal )
2022-11-27 02:35:28 -05:00
. setTitle ( 'Cloop' )
. setDescription ( 'Removed all looped commands' )
channeldc . send ( { embeds : [ Embed ] } )
2022-11-07 08:08:29 -05:00
} else {
2022-11-27 02:35:28 -05:00
throw new Error ( 'Invalid argument' )
2022-10-19 21:14:29 -04:00
}
2022-11-27 02:35:28 -05:00
}
}