FNFGirlfriendBot/modules/selfcare.js

146 lines
No EOL
6 KiB
JavaScript

const util = require('util')
const COMMANDSPY_ENABLED_MESSAGE = { text: 'Successfully enabled CommandSpy' }
const COMMANDSPY_DISABLED_MESSAGE = { text: 'Successfully disabled CommandSpy' }
//You now have the tag: &8[&bPrefix &4d~&8]
function inject (bot) {
let entityId
let gameMode
let permissionLevel = 2
let unmuted = false
let commandSpyEnabled = false
let vanished = false
let prefix = false
let skin = false
let username = false
let nickname = false
let god = false
let tptoggle = false
/* if (data.toString().startsWith('You have been muted')) muted = true
if (data.toString() === 'You have been unmuted.') muted = false
*/
//bot.on('message', (data) => {
bot.on('message', (message, data) => {
// Successfully removed your skin
const stringmessage = bot.getMessageAsPrismarine(message)?.toString()
if (stringmessage.startsWith('You have been muted')) unmuted = true
else if (stringmessage === "You have been unmuted.") unmuted = false
else if (util.isDeepStrictEqual(message, COMMANDSPY_ENABLED_MESSAGE)) commandSpyEnabled = true
else if (util.isDeepStrictEqual(message, COMMANDSPY_DISABLED_MESSAGE)) commandSpyEnabled = false
else if (stringmessage === `You now have the tag: &8[&bPrefix &4${bot.options.commands.prefix}&8]`) {
prefix = true
return
}
else if (stringmessage.startsWith("You now have the tag: ") || stringmessage === "You no longer have a tag") prefix = false
else if (stringmessage === "Successfully set your skin to Parker2991's") {
skin = true
return
}
//Successfully set your skin to Parker2991's
//Successfully removed your skin
else if (stringmessage.startsWith("Successfully set your skin to ") || stringmessage === "Successfully removed your skin") skin = false
else if (stringmessage === `Successfully set your username to "${bot.username}"`) {
username = true
return
}//"Successfully set your username to "${bot.username}"""
else if (stringmessage.startsWith("Successfully set your username to ")) username = false
else if (stringmessage === `You already have the username "${bot.username}"`) username = true
//That name is already in use.
//Error: Nicknames must be alphanumeric.
//You no longer have a nickname.
//Your nickname is now sus.
else if (stringmessage === `You no longer have a nickname.`) {
nickname = true
return
}//"Successfully set your username to "${bot.username}"""
else if (stringmessage.startsWith("Your nickname is now ")) nickname = false
// else if (stringmessage === `Error: Nicknames must be alphanumeric.`) nickname = false
else if (stringmessage === `You no longer have a nickname.`) nickname = false
//else if (stringmessage === `That name is already in use.`) nickname = false
//God mode enabled.
//God mode disabled.
else if (stringmessage === `God mode enabled.`) {
god = true
return
}
else if (stringmessage === 'God mode disabled.') god = false
else if (stringmessage === `Teleportation enabled.`) {
tptoggle = false
return
}
else if (stringmessage === 'Teleportation disabled.') tptoggle = true
if (message?.text !== '' || !Array.isArray(message.extra) || message.extra.length < 2 || !message.extra[0]?.text?.startsWith('Vanish for') || message.extra[0].color !== 'gold') return
const suffix = message.extra[message.extra.length - 1]
if (suffix?.color !== 'gold') return
//data.toString().startsWith
if (suffix.text?.endsWith(': enabled')) vanished = true
else if (suffix.text?.endsWith(': disabled')) vanished = false // Bruh what is this ohio code
//
})
bot.on('packet.entity_status', packet => {
if (packet.entityId !== entityId || packet.entityStatus < 24 || packet.entityStatus > 28) return
permissionLevel = packet.entityStatus - 24
})//
//TO-DO create a array for nick, prefix, and mabe username in selfcare so that when it joins or has the nick/prefix changed it will change it back to the set nick and prefix in selfcare
bot.on('packet.game_state_change', packet => {
if (packet.reason !== 3) return // Reason 3 = Change Game Mode
gameMode = packet.gameMode
})
let timer
bot.on('packet.login', (packet) => {
entityId = packet.entityId
gameMode = packet.gameMode
timer = setInterval(() => {
if (permissionLevel < 2 && bot.options.selfcare.op) bot.command('op @s[type=player]')
if (!commandSpyEnabled && bot.options.selfcare.cspy) bot.command('commandspy:commandspy on')
else if (!vanished && bot.options.selfcare.vanished) bot.core.run(`essentials:vanish ${bot.username} enable`)
else if (unmuted && bot.options.selfcare.unmuted) bot.core.run(`essentials:mute ${bot.uuid}`)
else if (!prefix && bot.options.selfcare.prefix) bot.command(`prefix &8[&bPrefix &4${bot.options.commands.prefix}&8]`)
else if (gameMode !== 1 && bot.options.selfcare.gmc) bot.command('gamemode creative @s[type=player]')
else if (!skin && bot.options.selfcare.skin) bot.command('skin Parker2991')
else if (!username && bot.options.selfcare.username) bot.command(`username ${bot.username}`)
else if (!nickname && bot.options.selfcare.nickname) bot.command(`nick off`)
else if (!god && bot.options.selfcare.god) bot.command('god on')
else if (!tptoggle && bot.options.selfcare.tptoggle) bot.command('tptoggle off')
}, bot.options.selfcare.interval)
})
bot.on('end', () => {
if (timer) clearInterval(timer)
prefix = false
muted = false
commandSpyEnabled = false
vanished = false
skin = false
username = false
nickname = false
god = false
tptoggle = false
})
}
module.exports = inject
/*const buildstring = process.env['buildstring']
bot.on('login', async () => {
console.log(`starting ${buildstring}`)
await bot.discord.channel.send(`Starting ${buildstring}`)
await sendChat('/prefix &8[&4Prefix ~ &8]')
await sendChat(buildstring)
await sendChat('Prefix ~')
})
}*/