2022-08-14 05:51:45 -04:00
/* eslint-disable max-len */
/* eslint-disable require-jsdoc */
function inject ( bot ) {
let vanish = false ;
let cspy = false ;
let op = true ;
let gameMode = 1 ;
let prefix = false ;
let muted = false ;
bot . on ( 'parsed_chat' , ( data ) => {
2022-08-20 04:40:33 -04:00
if ( data . toString ( ) === 'You are now completely invisible to normal users, and hidden from in-game commands.' ) vanish = true ;
2022-08-14 05:51:45 -04:00
if ( ! bot . visibility ) {
if ( data . toString ( ) . startsWith ( 'Vanish for ' ) && data . toString ( ) . endsWith ( 'disabled' ) ) vanish = false ;
}
2022-08-20 04:49:57 -04:00
if ( data . toString ( ) === 'Successfully enabled CommandSpy' || data . toString ( ) === ' Enabled your command spy.' || data . toString ( ) === ' Your command spy is already enabled.' ) cspy = true ;
2022-08-20 04:40:33 -04:00
if ( data . toString ( ) === 'Successfully disabled CommandSpy' || data . toString ( ) === ' Disabled your command spy.' ) cspy = false ;
if ( data . toString ( ) === 'You now have the tag: [ChomeNS Bot]' ) {
2022-08-14 05:51:45 -04:00
prefix = true ;
return ;
}
if ( data . toString ( ) . startsWith ( 'You no longer have a tag' ) ) prefix = false ;
if ( data . toString ( ) . startsWith ( 'You now have the tag: ' ) ) prefix = false ;
if ( data . toString ( ) . startsWith ( 'You have been muted' ) ) muted = true ;
2022-08-20 04:40:33 -04:00
if ( data . toString ( ) === 'You have been unmuted.' ) muted = false ;
2022-08-14 05:51:45 -04:00
} ) ;
bot . _client . on ( 'entity_status' , ( data ) => {
if ( data . entityId !== bot . entityId ) return ;
switch ( data . entityStatus ) {
case 24 :
op = false ;
bot . emit ( 'deop' ) ;
break ;
case 28 :
op = true ;
bot . emit ( 'op' ) ;
break ;
}
bot . emit ( 'entity_status' , data ) ;
} ) ;
bot . _client . on ( 'game_state_change' , ( data ) => {
if ( data . reason !== 3 ) return ;
gameMode = data . gameMode ;
} ) ;
bot . _client . once ( 'login' , ( data ) => {
gameMode = data . gameMode ;
} ) ;
2022-08-17 06:24:54 -04:00
const interval = setInterval ( ( ) => {
2022-08-20 22:25:14 -04:00
if ( bot . options . host !== '0.tcp.ap.ngrok.io' ) {
2022-08-20 04:18:54 -04:00
if ( ! prefix ) bot . chat ( '/extras:prefix &8[&eChomeNS Bot&8]' ) ;
2022-08-20 22:25:14 -04:00
if ( ! op ) {
bot . chat ( '/minecraft:op @s[type=player]' ) ;
return ;
}
2022-08-20 04:18:54 -04:00
}
2022-08-20 04:40:33 -04:00
if ( ! cspy ) bot . chat ( '/commandspy:commandspy on' ) ;
if ( ! vanish ) bot . chat ( '/essentials:vanish enable' ) ;
2022-08-14 05:51:45 -04:00
if ( gameMode !== 1 ) bot . chat ( '/minecraft:gamemode creative @s[type=player]' ) ;
if ( muted ) bot . chat ( '/essentials:mute ' + bot . uuid ) ;
2022-08-16 08:15:11 -04:00
} , 2000 ) ;
2022-08-17 06:24:54 -04:00
bot . once ( 'end' , ( ) => {
clearInterval ( interval ) ;
} ) ;
2022-08-14 05:51:45 -04:00
}
module . exports = { inject } ;