跳到正文

InventoryAdvancementAccelerator

作者:vicuna

invadvopt 是一款适用于 Minecraft 1.21.1 的 NeoForge 专用服务器模组,可加快频繁触发的 inventory_changed 进度触发器,同时保留 Minecraft 原有的条件判断和奖励逻辑。客户端无需安装。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

🚀 物品栏进度加速器

当服务器中有大量进度、数据包或在线玩家时,原版 Minecraft 经常需要遍历相关的进度条件。此模组会为每位玩家建立物品索引,并筛选出可能与当前物品栏变化匹配的条件,最终仍使用 Minecraft 原版谓词和奖励逻辑进行判定。

简单来说:减少不必要的检查,同时保留原版行为。⚡

🚀 大幅减少候选检查

根据玩家物品栏中实际发生变化的物品定位相关进度条件,避免每次都完整扫描所有监听器。

🎯 精准执行原版判定

最终匹配仍由 Minecraft 原版的TriggerInstance、ItemPredicate和上下文谓词完成,不会替换原版奖励逻辑。

🧩 支持复杂物品条件

正确处理物品数量、标签、数据组件、空槽变化、物品移除,以及多个条件的组合。

🖥️ 仅需在服务端安装

客户端无需安装此模组。原版客户端可直接连接服务器。

🛡️ 安全回退机制

遇到未知条件、异步调用、资源重载、Mixin 注入失败或内部异常时,模组会保留或回退至原版处理流程。

🔍 影子验证与断路器保护

默认情况下,模组会抽样将优化后的结果与完整判定结果进行比较。如果检测到不一致,则采用完整判定结果;模组还可以自动禁用受影响的索引,或切换回原版模式。

📊 内置运行时指标

查看触发次数、候选项缩减比例、完整扫描次数、回退原因、延迟分布,以及最活跃的玩家和物品。

💾 不修改世界数据

此模组不会添加玩家附加数据、能力、存档格式变更或网络通道。移除模组后无需迁移存档。

项目包含一个确定性的候选层微基准测试,测试条件如下:

  • 5,000 个物品条件监听器
  • 1,000 个不同的物品 ID
  • 50 名模拟玩家
  • 每次操作中,每名玩家仅有一种物品发生变化

测试结果:

  • 每次操作平均生成约 5.014 个候选条件
  • 候选数量减少约 99.9%
  • 候选层测试速度提升约 4.04 倍

⚠️ 这些结果来自候选筛选层的微基准测试,并不意味着每个服务器都能获得相同幅度的 MSPT 改善。实际性能取决于数据包、进度数量、在线玩家数量和整合包环境。

首次启动后,NeoForge 会生成:

config/invadvopt-common.toml

默认启用安全EXACT模式:

mode = "EXACT"
enabled = true
shadowVerifyRate = 0.01
periodicFullScanTicks = 200
fallbackOnUnknownPredicate = true
fallbackOnOffThreadCall = true
disableOnMismatch = true
metricsEnabled = true
debugLogging = false

如需立即禁用优化,请将模式切换为VANILLA。无需卸载模组或重启服务器。

以下命令需要服务器管理员权限等级 4:

/invadvopt status
/invadvopt stats
/invadvopt verify
/invadvopt mode vanilla
/invadvopt mode exact
/invadvopt reset-stats

🎮 Minecraft 1.21.1

🔧 NeoForge 21.1.x

☕ Java 21

🖥️ 专用服务器

👤 客户端无需安装

将模组 JAR 放入服务器的mods文件夹,然后启动服务器。

这款模组专为 NeoForge/Bukkit/Paper 混合服务器环境设计,也适用于 Youer 等服务器:

  • 不使用 @Overwrite
  • 不依赖 Bukkit 内部实现
  • 不使用 Unsafe 或 ClassLoader 技巧
  • Mixin 目标发生变化时,自动保留原版逻辑
  • 提供抽样验证和断路器保护,以应对可能的运行时差异

以下类似的进度优化模组与本模组不兼容:

  • achiopt
  • cerulean
  • icterine

检测到冲突时,本模组会记录错误,并保留原版的触发器处理流程。

本模组尤其适用于:

📚 使用大量数据包的服务器

🏆 拥有大量自定义进度的整合包

👥 多人联机生存服务器

🧱 经常修改玩家物品栏的模组服务器

📉 希望降低进度评估开销的服务器

你可以随时通过以下方式恢复:

  • 使用 /invadvopt mode vanilla 切换回原版模式
  • 在配置文件中设置 mode = "VANILLA"
  • 停止服务器并直接移除模组 JAR

在一台安装了 380 个模组的服务器上的真实测试结果:

in-game test
spark

常见问题

InventoryAdvancementAccelerator 支持哪些 Minecraft 版本?

InventoryAdvancementAccelerator 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。

InventoryAdvancementAccelerator 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。

评论

登录后评论和评分

vicuna 的其他作品

查看全部 →