2022-08-14 05:51:45 -04:00
/* eslint-disable max-len */
function add ( command , interval , bot ) {
const id = setInterval ( ( ) => bot . core . run ( command ) , interval ) ;
bot . cloops . push ( { id , interval , command } ) ;
}
function remove ( item ) {
clearInterval ( bot . cloops [ item ] . id ) ;
bot . cloops . splice ( item , 1 ) ;
}
function clear ( ) {
for ( const interval of bot . cloops ) clearInterval ( interval . id ) ;
bot . cloops = [ ] ;
}
function list ( bot ) {
const message = [ ] ;
message . push ( { text : 'Cloops:' , color : 'green' } ) ;
2022-08-14 07:18:52 -04:00
message . push ( '\n' ) ;
2022-08-14 05:51:45 -04:00
for ( const [ id , cloop ] of Object . entries ( bot . cloops ) ) {
message . push ( { text : id , color : 'aqua' } ) ;
message . push ( { text : ' > ' , color : 'gold' } ) ;
message . push ( { text : cloop . command , color : 'green' } ) ;
message . push ( { text : ' - ' , color : 'gold' } ) ;
message . push ( { text : cloop . interval , color : 'green' } ) ;
message . push ( '\n' ) ;
}
message . pop ( ) ;
bot . core . run ( 'minecraft:tellraw @a ' + JSON . stringify ( message ) ) ;
}
module . exports = {
name : 'cloop' ,
alias : [ ] ,
description : 'Loop commands' ,
usage : '<hash> <add|remove|removeall|list> <interval|index> <command>' ,
trusted : 1 ,
execute : function ( bot , username , usernameraw , sender , prefix , args ) {
2022-10-19 07:17:41 -04:00
if ( ! bot . cloops ) bot . cloops = [ ] ;
2022-08-14 05:51:45 -04:00
if ( args [ 1 ] === 'add' ) {
if ( args [ 0 ] === bot . hash ) {
2022-10-19 07:17:41 -04:00
if ( args [ 3 ] ) {
if ( ! Number ( args [ 2 ] ) ) throw new SyntaxError ( 'Invalid interval' ) ;
2022-08-14 05:51:45 -04:00
add ( args . slice ( 3 ) . join ( ' ' ) , args [ 2 ] , bot ) ;
bot . core . run ( 'minecraft:tellraw @a ' + JSON . stringify ( [ { 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' } ] ) ) ;
}
} else {
throw new Error ( 'Invalid hash' ) ;
}
return ;
}
if ( args [ 1 ] === 'list' ) {
if ( args [ 0 ] === bot . hash ) {
list ( bot ) ;
} else {
throw new Error ( 'Invalid hash' ) ;
}
return ;
}
if ( args [ 1 ] === 'remove' ) {
if ( args [ 0 ] === bot . hash ) {
remove ( args [ 2 ] ) ;
bot . core . run ( 'minecraft:tellraw @a ' + JSON . stringify ( [ '' , { text : 'Removed cloop ' } , { text : args [ 2 ] , color : 'aqua' } ] ) ) ;
} else {
throw new Error ( 'Invalid hash' ) ;
}
return ;
}
if ( args [ 1 ] === 'removeall' ) {
if ( args [ 0 ] === bot . hash ) {
clear ( ) ;
bot . core . run ( 'minecraft:tellraw @a ' + JSON . stringify ( [ '' , { text : 'Removed all looped commands' , color : 'white' } ] ) ) ;
} else {
throw new Error ( 'Invalid hash' ) ;
}
return ;
}
} ,
} ;