LookAtMySuitBot/js/node_modules/mineflayer/lib/plugins/time.js

41 lines
962 B
JavaScript
Raw Normal View History

2023-12-24 20:08:39 -05:00
module.exports = inject
function inject (bot) {
bot.time = {
doDaylightCycle: null,
bigTime: null,
time: null,
timeOfDay: null,
day: null,
isDay: null,
moonPhase: null,
bigAge: null,
age: null
}
bot._client.on('update_time', (packet) => {
let time = longToBigInt(packet.time)
if (time < 0) {
bot.time.doDaylightCycle = false
time *= -1n
} else {
bot.time.doDaylightCycle = true
}
bot.time.bigTime = time
bot.time.time = Number(time)
bot.time.timeOfDay = bot.time.time % 24000
bot.time.day = Math.floor(bot.time.time / 24000)
bot.time.isDay = bot.time.timeOfDay < 13000 || bot.time.timeOfDay >= 23000
bot.time.moonPhase = bot.time.day % 8
bot.time.bigAge = longToBigInt(packet.age)
bot.time.age = Number(bot.time.bigAge)
bot.emit('time')
})
}
function longToBigInt (arr) {
return BigInt.asIntN(64, (BigInt(arr[0]) << 32n)) | BigInt(arr[1])
}