📦 Bookshelf - 3.1.0#

💫 The Spatial Update!

Introduces Moon and Sun position features, as well as fully customizable hitboxes that integrate across the entire Bookshelf ecosystem.

Bookshelf is now based on Minecraft 1.21.8.

🧱 bs.block#

  • 🐛 #469 - 修复基于位置的战利品表运行时缺失execute in minecraft:overworld的问题。

🔬 bs.dump#

  • 🐛 #441 - 修复#bs.dump:var错误添加undefined到输出的问题。

⛰️ bs.environment#

  • #14 - Added #bs.environment:get_sun_angle to get the sun’s angle at a specific time on the Y axis relative to the horizon, in degrees.

  • #14 - Added #bs.environment:get_moon_angleto get the moon’s angle at a specific time on the Y axis relative to the horizon, in degrees.

  • #14 - Added #bs.environment:get_current_sun_angle to get the current sun’s angle on the Y axis relative to the horizon, in degrees.

  • #14 - Added #bs.environment:get_current_moon_angle to get the current moon’s angle on the Y axis relative to the horizon, in degrees.

  • #14 - Added #bs.environment:get_moon_phase to get the current moon phase as a string identifier following Minecraft’s 8-day lunar cycle.

  • #14 - Added #bs.environment:look_at_sun to orient the executing entity to look at the sun.

  • #14 - Added #bs.environment:look_at_moon to orient the executing entity to look at the moon.

  • #475 - Added time-based predicates: is_day_time, is_night_time, is_sunrise_time, is_sunset_time for determining current time of day.

  • #475 - Added villagers behavior predicates: is_villager_working_time, is_villager_socializing_time, is_villager_sleeping_time for detecting villager activity phases.

  • #475 - Added beds usage predicate: is_bed_time for determining when players can use beds based on weather and time conditions.

  • #475 - Added mobs behavior predicates: is_undead_burning_time, is_monster_spawning_time for detecting mob behavior condition according to weather and time.

  • #475 - Added bees behavior predicate: is_bee_sleeping_time for detecting time when bees are in their nests/hives.

  • #475 - Added creakings spawning predicate: is_creaking_spawn_time for detecting time when creakings can spawn.

❤️ bs.health#

  • 🐛 #466 - 修复Paper服务器上治疗总将玩家生命值设为最大值的问题。

🎯 bs.hitbox#

  • #465 - 新增自定义碰撞箱支持。#bs.hitbox:get_entity 现在额外返回depth值。对于大多数动态实体depth等于width,但静态实体(如物品展示框、画)及自定义碰撞箱除外。

🖱️ bs.interaction#

  • 🐛 #463 - 修复左/右键点击事件可能错误定位至先前点击实体的问题。

🏃 bs.move#

  • #465 - 优化移动实体的边界框计算,增加烘焙和自定义碰撞箱支持。

🧭 bs.position#

  • 🐛 #455 – 在bs.position中用/tp替换/rotate,解决抖动和动量问题。

🎲 bs.random#

  • #286 - bs.random模块新增正态分布生成支持。

  • 🐛 #469 - 修复基于位置的战利品表运行时缺失execute in minecraft:overworld的问题。

🔦 bs.raycast#

  • #465 - 新增烘焙和自定义实体碰撞箱支持。

  • #445 - #bs.raycast:run 现在调用回调前计算所有lambda数据。

  • 🐛 #457 - 修复同时检测方块和实体时射线未停止在最近碰撞点的问题。

🧣 bs.spline#

  • #417 - 新增完整线性样条曲线支持。