mineflayer
Version:
create minecraft bots with a stable, high level API
42 lines (35 loc) • 946 B
JavaScript
module.exports = inject
function inject (bot, options) {
bot.isAlive = true
bot._client.on('respawn', (packet) => {
bot.isAlive = false
bot.emit('respawn')
})
bot._client.once('update_health', (packet) => {
if (packet.health > 0) {
bot.emit('spawn')
}
})
bot._client.on('update_health', (packet) => {
bot.health = packet.health
bot.food = packet.food
bot.foodSaturation = packet.foodSaturation
bot.emit('health')
if (bot.health <= 0) {
if (bot.isAlive) {
bot.isAlive = false
bot.emit('death')
}
if (!options.respawn) return
bot.respawn()
} else if (bot.health > 0 && !bot.isAlive) {
bot.isAlive = true
bot.emit('spawn')
}
})
const respawn = () => {
if (bot.isAlive) return
bot._client.write('client_command', bot.supportFeature('respawnIsPayload') ? { payload: 0 } : { actionId: 0 })
}
bot.respawn = respawn
}