Repository navigation
Releases
Libreforge 2026.27 · Memory Fix 14
举盾但没有实际挡住攻击时,旧版仍会触发格挡效果。本版要求本次伤害确有盾牌格挡修正,修复背面受击误触发,同时保留成功格挡的效果数值、概率及配置冷却。
下载与安装
下载附件 libreforge-standalone-2026.27-memoryfix-14.jar,正常停服替换,插件目录只留一份 libreforge。无需配置或数据迁移;插件描述符仍为 2026.27。
SHA-256:E6C25C9F4280F22F5316D4672DEE15A75ABA55A3D4CCB38A8EACF2C54AC1566D
大小:29,357,399 字节。
相对上次发布的第 8 版
- 保留第 8 版性能优化,不包含第 9、10 版实验改动。
- 合入第 11 版 Folia 越区受害者血量修复。越区占位符返回
unavailable,当前 eco 数值转换回退为 0;同区仍返回实际血量。 - 合入第 12 版补种目标复检与延后扣种子,避免覆盖期间放入的方块。
- 合入第 13 版非法种子材料防护,修复
CAVE_VINES isn't an item。 - 第 14 版仅在实际有负的
BLOCKING修正时分发格挡效果。不增加全局冷却,trigger_value仍取原始事件伤害。
验证
- 隔离服核心:Shiroha
26.2-DEV-398b90d。 - 修改前新增测试 8 项中 4 项失败,并在原生攻击中复现背面误触发。
- 修改后完整构建成功,40 项自动测试全部通过。
- 17 组、117 次核心伤害检查通过,包括 100 次连续成功格挡,以及雷击、失明、挖掘疲劳和回血冷却检查。
- 与第 13 版比较,14,686 个 JAR 条目无增删,仅
TriggerShieldBlock.class内容变化。测试探针未打入交付包。
100 次连续格挡是两个测试玩家的受控串行测试,不是百人并发压测;部分格挡通过修改原生事件的测试夹具验证。未做全部生产插件整合、投射物/爆炸、全部破盾/禁用时序、热卸载或多战斗区域验收。未改变原监听优先级,后续插件改写事件的所有组合未验收。此次没有新的整服性能百分比结论,也没有部署到生产服。
源码、核验数据及适用边界。完整验证报告见附件;其本机证据索引适用于原测试环境。
Libreforge 2026.27 · Memory Fix 8
以 memoryfix-7 为基线,减少同一次物品扫描中多个有效 holder 的重复组件哈希;修复父构造期间读取未初始化子类属性导致的 hashCode 不一致。
- 保留耐久事件、装备强制刷新、效果触发、配置和原公开构造入口。
- 不包含 memoryfix-9、memoryfix-10 的实验优化;后续以8版作为基线。
- 复杂物品提供多个 holder 的受控扫描场景有明显分配收益,单 holder 收益较小;局部百分比不能代表整服内存或CPU降幅。
本次发布前在仅含8版改动的独立工作目录重新执行 clean check :core:buildStandalone --rerun-tasks --offline --no-daemon,使用项目 Gradle Wrapper及既有 Windows ASCII 测试类路径适配脚本:30项测试,0失败、0错误、0跳过。JAR独立结构检查通过。
重新构建的JAR与此前通过运行验证、已交付的8版逐字节相同;附件使用该已交付成品。历史运行验证基于 Shiroha 26.2-DEV-f10fd16;本次未重新启动服务器或部署生产,不代表全部生产配置组合认证。
附件:libreforge-standalone-2026.27-memoryfix-8.jar
SHA-256:616A08996AE4029638455189C723EEEC2324C02AB7EA1AF63F19A06DF0F2BE0D
大小:29,356,722字节。内部插件版本仍为2026.27,使用修订文件名与哈希区分。
正常停服后仅替换 libreforge,保留7版备份到plugins目录以外;无需修改配置或迁移世界/数据库。发生异常时停服换回旧JAR。
源码与验证范围:audit/memoryfix-8/README.md。
Libreforge 2026.27 · Memory Fix 7
Libreforge 2026.27 · Memory Fix 7
本发布汇总已验收的 memoryfix-5、6、7 优化,基于已同步的上游源码,保留此前修复。插件内部版本仍为 2026.27。
更新内容
- 空装备槽在进入物品 finder 前跳过 AIR、CAVE_AIR、VOID_AIR;普通物品仍参与判定,不按“无附魔/无 ItemMeta”误跳过。
- 每个长期存在的 Effect 最多复用 64 组不可变标识;原子发布,不缓存实体或物品,超出范围沿用原算法。
- Holder 扫描复用已有映射检查变化,省去两组临时差集;保留重复 ID、事件顺序和最新 payload。
- 效果筛选不再先创建中间列表再转集合;仍按原顺序判断每一个效果的条件,包括重复项。
- 附带回归测试。未纳入原地排序、血量事件合并或空状态差集实验;不修改 eco。
验证与收益边界
发布前执行 clean check :core:buildStandalone,25 项测试通过,并独立验证 JAR 描述、CRC、主类和 Folia 声明。Java 25.0.3 / Gradle 9.3.1,编译目标 Java 21。Windows 非 ASCII 测试依赖路径使用字节一致副本。
此前在用户提供的 Shiroha 26.2 隔离核心完成新旧版对照:4 个独立 region,每区 128 实体。memoryfix-7 自身完成 1,228,800 次刷新与 20,000 次血量事件;覆盖装备、卸下、重新装备、叠加、拾取、切主手、取消事件及清理。新旧两组累计刷新 2,457,600 次。
相对 memoryfix-6,真实 getProvidedActiveEffects 组件每次调用分配:单效果 304→224 B(-26.3%)、双效果 576→496 B(-13.9%)、16 效果 2,008→1,904 B(-5.2%)。这些是指定场景的临时分配,不是整服常驻内存降幅。延迟仍有波动,不承诺每种场景 CPU 都更快,也不代表生产全部配置及外部插件组合已验证。
安装与回滚
正常停服,备份旧 libreforge JAR 后替换,只保留一份;配置不需要修改。不要热替换。不满意时正常停服换回备份。没有自动部署到生产服务器。
文件:libreforge-standalone-2026.27-memoryfix-7.jar
SHA-256:E76154E7818D7E1671E760625F23E1F1B0C8C9DACC1C2B8A78C147BDED0821FA
Libreforge 2026.27 · Memory Fix 4
Libreforge 2026.27 · Memory Fix 4
本版修复非玩家实体移除时,命中记录清理重复扫描全部受击者的问题;不改配置、不更换 UUID 或并发表。
修复内容
- 非玩家实体移除只清理自己的受击记录,不再扫描所有攻击者记录。
- 玩家退出仍保留原来的双角色清理,命中累计、满血重置、重新命中恢复规则不变。
- 继承 memoryfix-3 的生命周期与空效果状态优化。
已完成验证
使用 mizuki 26.2 9daa83b、eco 2026.28、Java 25.0.3 在隔离服验证:
- 修复前后各 3 个独立 JVM,每轮 20 项专项检查全部通过。
- 6 项原有效果启用/禁用/恢复回归通过。
- 8 线程共 8,000 UUID 清理、20,000 dispatcher 状态清理通过。
- 5,000 条命中记录时,单次真实盔甲架/掉落物移除:无用内表 remove 调用从 5,000 降到 0。
- 10,000 条记录的清理方法微基准:临时分配从 320,000 B/次降到 0;不代表插件总内存或整服开销同比下降。
源码中附有 audit/hits-cleanup 复现探针、运行说明和数据边界。探针会自动关闭测试服,禁止安装到生产服。
安装与边界
下载下面的 libreforge-standalone-2026.27-memoryfix-4.jar。完整停服、备份旧版后替换,只保留一个 libreforge JAR,再启动;不要热重载。异常时停服回退 memoryfix-3。
插件描述版本仍为 2026.27,用文件名区分修复批次。最终发布的是此前实际测试过的同一 JAR:以 memoryfix-3 为基础,仅替换干净构建得到的两个目标 class,其他条目逐项保持一致,避免夹带依赖快照引起的三个酿造/熔炼类字节码差异。
尚未覆盖完整生产插件组合、真实玩家客户端联机、生产 OS/JVM/网络环境,也没有测量整个插件的驻留堆内存。四坐标所有权检查不等于四区域同时 tick;并发压力针对 UUID 数据。本地已完成干净构建;项目自带 test 为 NO-SOURCE,专项测试是独立服务端探针,不是 GitHub CI 全覆盖。
SHA-256:
6CCC955F56D995B3C4319600BC82489C8D2CD39F28F3E49BF2BB4AEEC9FB30E0
Libreforge 2026.27 · Folia & Memory Fix 3
Libreforge 2026.27 · Folia & Memory Fix 3
Community maintenance build for Shiroha/Folia 26.2, based on Libreforge 2026.27.
✨ Highlights
- Tracks non-player living entities by lifecycle and schedules each refresh on the entity owner.
- Backfills entities that were already loaded before Libreforge enabled.
- Uses location/entity-owned schedulers for affected particle and potion operations.
- Cleans owner-bound providers, refresh functions, placeholders, caches and nested hit state.
- Makes point mutations concurrency-safe and avoids unchanged inventory slot writes.
- Coalesces pickup refreshes and avoids duplicate player/entity polling.
- Stops retaining empty
previousStatesentries and short-circuits empty effect polls without skipping holder discovery.
📊 Verified results
- Real ArmorStand effect lifecycle: 6/6 scenarios passed.
- 14-plugin Shiroha 26.2 stack loaded and stopped cleanly.
- Concurrent points test: 80,000/80,000 operations, 0 failures.
- Entity lifecycle test: 100 created / 100 removed / 0 remaining.
- Libreforge reload test: 20/20 successful.
- Scoped Libreforge/Folia ownership errors: 0.
- Empty-state stress: 50,000 retained entries → 0.
- Cached empty-effect polling median: 56.120 → 32.532 ns/op (-42.03%).
- Cached empty-effect allocation median: 56 → 32 B/op (-42.86%).
The performance figures are controlled microbenchmarks of the real updateEffects() implementation. They do not mean whole-server CPU or heap will fall by the same percentage.
📦 Artifact
- Plugin:
libreforge-standalone-2026.27-memoryfix-3.jar - SHA-256:
B59AE849B422CBC32523DB7FCE3E12B7EB7D4365A1ECD29955B042BCBBCB14AD - Java bytecode target: 21
- Runtime tested on: Java 25 + Shiroha/Folia 26.2
🚀 Installation
- Stop the server.
- Back up the current Libreforge JAR.
- Replace it with the attached JAR.
- Start the server and verify item, enchantment, reforge and permanent-effect behavior.
Do not hot-swap this build with a plugin manager.
⚠️ Validation boundary
No real Minecraft client was connected during the automated suite. Production acceptance should still include a controlled canary, an equivalent before/after Spark allocation profile, live multi-region activity and packet counters for particle-heavy effects.
libreforge 2026.27 memoryfix-2
修复已确认的运行时生命周期与内存保留路径。
- 已合并到 master:178c9120f45a1b876490dff357ed216ab711001a
- 已测试源码提交:e229cc85c38bbd23639c835d5c1636d36d7e1d6b
- JAR SHA-256:9BE778E6211525AD1B222175C0D344F6A103F3991C5A10F455FF9674A6D4E342
- JDK 21:clean check :core:buildStandalone 成功;项目 test 为 NO-SOURCE(0 个单元测试)
- Shiroha 26.2:真实玩家称号流程与五轮同服压力验证通过
- Bukkit Metadata 生命周期:PASS;三叉戟大对象快照已移出 Bukkit Metadata,重复创建和销毁后计数回到 0
部署要求:完整停服后替换;不要热加载。PLTLibreforge 必须与本次 libreforge 配套使用。