2024-07-07 15:44:16 -04:00
function selfcare ( bot , options , config ) {
let entityId ;
let permissionLevel = 2 ;
2024-07-20 20:27:17 -04:00
let unmuted = false ;
2024-07-07 15:44:16 -04:00
let gameMode ;
let commandSpy = false ;
let vanished = false ;
let prefix = false ;
2024-07-20 20:27:17 -04:00
let god = false ;
2024-08-21 12:20:11 -04:00
let teleportToggle = false ;
let username = false ;
let nickname = false ;
2024-07-07 15:44:16 -04:00
// You now have the tag: &8[&bPrefix&8: &3~&8]
// You no longer have a tag
bot . on ( 'message' , ( message ) => {
2024-07-20 20:27:17 -04:00
const stringMessage = bot . getMessageAsPrismarine ( message ) ? . toString ( ) ;
if ( stringMessage ? . startsWith ( "Successfully enabled CommandSpy" ) ) commandSpy = true ;
2024-07-07 15:44:16 -04:00
else if ( stringMessage ? . startsWith ( "Successfully disabled CommandSpy" ) ) commandSpy = false ;
else if ( stringMessage === ` Vanish for ${ bot . options . username } : enabled ` ) vanished = true ;
else if ( stringMessage === ` Vanish for ${ bot . options . username } : disabled ` ) vanished = false ;
else if ( stringMessage === ` You now have the tag: &8[&bPrefix&8: &3 ${ config . prefixes [ 0 ] } &8] ` || stringMessage === "Something went wrong while saving the prefix. Please check console." ) prefix = true ;
else if ( stringMessage ? . startsWith ( "You now have the tag: " ) || stringMessage === "You no longer have a tag" ) prefix = false
2024-07-20 20:27:17 -04:00
else if ( stringMessage ? . startsWith ( "You have been muted" ) ) unmuted = true ;
else if ( stringMessage ? . startsWith ( "You have been unmuted" ) ) unmuted = false ;
else if ( stringMessage ? . startsWith ( "Your voice has been silenced" ) ) unmuted = true ;
else if ( stringMessage === "God mode disabled." ) god = false ;
else if ( stringMessage === "God mode enabled." ) god = true ;
2024-08-21 12:20:11 -04:00
else if ( stringMessage === "Teleportation disabled." ) teleportToggle = true ;
else if ( stringMessage === "Teleportation enabled." ) teleportToggle = false ;
else if ( stringMessage === ` Successfully set your username to " ${ bot . username } " ` ) {
username = false
return
}
else if ( stringMessage ? . startsWith ( "Successfully set your username to " ) ) username = true
else if ( stringMessage === ` You already have the username " ${ bot . username } " ` ) username = false
2024-08-30 11:56:58 -04:00
else if ( stringMessage === ` You no longer have a nickname. ` ) nickname = false ;
else if ( stringMessage . startsWith ( 'Your nickname is now ' ) ) nickname = true ;
2024-07-07 15:44:16 -04:00
} )
bot . on ( 'packet.entity_status' , packet => {
if ( packet . entityId !== entityId || packet . entityStatus < 24 || packet . entityStatus > 28 ) return
permissionLevel = packet . entityStatus - 24
} )
bot . on ( 'packet.game_state_change' , packet => {
if ( packet . reason !== 3 ) return // Reason 3 = Change Game Mode
gameMode = packet . gameMode ;
} ) ;
bot . on ( "packet.game_state.change" , packet => {
2024-08-30 11:56:58 -04:00
if ( packet . reason !== 4 ) return // checks if the bot is seeing the endcredits or died
2024-07-20 20:27:17 -04:00
clientLock = packet . gameMode ;
2024-07-07 15:44:16 -04:00
} )
let timer ;
bot . on ( 'packet.login' , ( packet ) => {
2024-08-30 11:56:58 -04:00
entityId = packet . entityId ;
gameMode = packet . gameMode ;
clientLock = packet . gameMode ;
timer = setInterval ( ( ) => {
if ( bot . options . isSavage && ! bot . options . isKaboom ) {
if ( clientLock !== 4 ) bot . _client . write ( "client_command" , { actionId : 0 } ) ;
} else if ( bot . options . isKaboom && ! bot . options . isSavage ) {
if ( permissionLevel < 2 ) bot . chat . command ( 'op @s[type=player]' ) ;
else if ( gameMode !== 1 ) bot . chat . command ( 'gamemode creative @s[type=player]' ) ;
else if ( ! commandSpy ) bot . chat . command ( 'commandspy on' ) ;
else if ( username ) bot . chat . command ( ` username ${ bot . options . username } ` )
else if ( nickname ) bot . chat . command ( ` nick off ` )
else if ( ! prefix ) bot . chat . command ( ` prefix &8[&bPrefix&8: &3 ${ config . prefixes [ 0 ] } &8] ` ) ;
else if ( ! vanished ) bot . core . run ( ` vanish ${ bot . options . username } on ` ) ;
else if ( unmuted ) bot . core . run ( ` essentials:mute ${ bot . uuid } ` ) ;
else if ( ! god ) bot . core . run ( ` god ${ bot . options . username } enable ` ) ;
else if ( ! teleportToggle ) bot . core . run ( ` tptoggle ${ bot . options . username } disable ` ) ;
else if ( clientLock !== 4 ) bot . _client . write ( "client_command" , { actionId : 0 } ) ;
}
} , 1000 ) ;
2024-07-07 15:44:16 -04:00
} ) ;
bot . on ( 'end' , ( ) => {
if ( timer ) clearInterval ( timer )
prefix = false ;
commandSpy = false ;
vanished = false ;
prefix = false ;
2024-07-20 20:27:17 -04:00
god = false ;
unmuted = false ;
2024-08-21 12:20:11 -04:00
username = false ;
2024-07-07 15:44:16 -04:00
} ) ;
}
module . exports = selfcare ;