实用核心

实用核心

一个提供配方冲突解决方案和共享工具函数库的NeoForge模组。

⚙️ Utility Core

一个面向 NeoForge 整合包的多功能库模组。包含合成冲突解决、伤害安全防护、末影龙重生、自动区块预生成以及模组兼容性修复。


✨ 概述

Utility Core 是模组 Minecraft 服务器的瑞士军刀。它最初只是一个简单的合成冲突解决器,后来发展成一个每个整合包都需要的必备工具集合。所有功能均可在配置文件中开关。


🎯 功能

🔗 合成冲突解决

当多个合成配方匹配相同输入时,合成台和物品栏 2x2 网格中会出现一个选择控件。点击任意替代配方即可即时更改输出。

  • 通过附加组件在服务端检测匹配的配方
  • 在客户端渲染一个带实时更新的选择器网格
  • 可配置最大显示配方数量

🕊️ 伤害安全防护

将模组交互(例如 Apothic Attributes + Tombstone)产生的负伤害值钳制为零,防止因 IllegalArgumentException: Damage cannot be negative 导致服务器崩溃。

👻 末影龙自动重生

在服务器启动时自动重生已被击杀的末影龙。与 YUNG's Better End Island 完全兼容——在正确位置放置水晶,并使用 YUNG 的原生重生系统。

🌐 自动区块预生成(ChunkGen)

在服务器空置时以螺旋模式预生成区块,消除玩家探索时因世界生成造成的卡顿。支持多个维度(主世界、下界、末地)。

  • 自动暂停:玩家加入时停止,玩家离开时恢复
  • 多维度:同时生成主世界、下界和末地
  • 可配置速度:每 tick 1 至 300 个区块
  • 进度持久化:服务器重启和崩溃后依然保留
  • 保持活跃:在生成期间阻止原版服务器空闲暂停
  • 命令:/utilitycore chunkgen status、start、pause、stop、reset

☢️ Corail Tombstone 兼容性

  • 压制来自 Tombstone 9.x 的不兼容 mixin 错误
  • 在打开 Tombstone 界面后恢复 GUI 缩放比例
  • 修复通过 /give 获得的 Tombstone 物品的 NBT 初始化

🧣 其他修复

  • OutpostZero 伤害上限:将感染伤害限制在 10000 以内,防止即死
  • 末影龙兼容性:适用于 YUNG's Better End Island 4.x

⚙️ 完全可配置

每项功能均可通过 config/utility_core-common.toml 单独启用/禁用:

配置项 默认值 关联模组 原因
enableCraftingRecipeSelector true 任何有合成冲突的模组 当多个合成配方匹配相同材料时显示选择器 UI。与 Fast Workbench (fastbench) 不兼容。
enableNegativeDamageFix true Apothic Attributes + Tombstone Apothic 暴击 + Tombstone Decrepitude 可能产生负伤害值,导致服务器因 IllegalArgumentException: Damage cannot be negative 崩溃。此项将伤害钳制为 0。
enableEndDragonRespawn false YUNG's Better End Island / 原版 在服务器启动时自动重生末影龙。可有或无 YUNG's BEI:
有 YUNG:检测 Y=63 处的传送门,在 dist=7 (BEI 半径) 放置水晶
无 YUNG:假设传送门在 (0,60,0),在 dist=2 (原版半径) 放置水晶
最后手段:在 YUNG 检查的确切位置强制放置基岩 + 水晶。
enableTombstoneGuiScaleFix true Corail Tombstone Tombstone 在打开其界面时强制将 GUI 缩放设为 4。此项在关闭时恢复原始缩放。
enableTombstoneItemInitFix true Corail Tombstone 通过 /give 获得的 Tombstone 物品(lollipop、magic_scroll)缺少正确的 NBT 数据。此项可正确初始化它们。
enableTombstoneErrorHandler true Corail Tombstone Tombstone 9.x 有一个 mixin(ItemInputMixin)在某些 NeoForge 版本中无法应用。此项可优雅地压制该错误,而不是导致崩溃。
enableOutpostZeroDamageCap true OutpostZero OutpostZero 感染伤害可能绕过死亡事件,在玩家死亡前摧毁护甲。将伤害上限设为 10000 以允许死亡事件先触发。
chunkGen.enabled false 原版 / 全部 自动区块预生成器。无依赖。
chunkGen.chunksPerTick 1 原版 / 全部 每个服务器 tick 生成的区块数(1-300)。越高越快,但 CPU 占用也越高。
chunkGen.dimensionOverworld true 原版 / 全部 在主世界生成区块。
chunkGen.dimensionNether false 原版 / 全部 在下界生成区块。
chunkGen.dimensionEnd false 原版 / 全部 在末地生成区块。
chunkGen.runWithPlayers false 原版 / 全部 如果为 true,即使有玩家在线也会继续生成。如果为 false,玩家加入时暂停。
chunkGen.keepAlive true 原版 / 全部 防止专用服务器在区块生成期间进入空闲状态(60 秒超时)。

📦 要求

Minecraft 26.1.2
NeoForge 26.1.2.78+

🎮 使用方法

  1. 在客户端和服务端均安装此模组。
  2. 通过 config/utility_core-common.toml 或模组菜单进行配置。
  3. 对于 ChunkGen:设置 chunkGen.enabled=true,生成器将在服务器空置时自动启动。
  4. 对于末影龙:设置 enableEndDragonRespawn=true,龙将在下一次服务器启动时重生。
  5. 使用 /utilitycore chunkgen status 监控生成进度。

已知不兼容

Fast Workbench (fastbench):与合成选择系统冲突。移除它才能使用此功能。


🔧 面向开发者

// 访问配方选择 API
PolymorphApi api = PolymorphApi.getInstance();
List<RecipeHolder<CraftingRecipe>> recipes = api.getRecipesFor(
    recipeManager, RecipeType.CRAFTING, craftingInput, level
);
PlayerRecipeData data = api.getPlayerRecipeData(player);
api.clearPlayerRecipeData(player);

🙏 鸣谢

由 Stalking Dragons 开发。



Codex Stalking Dragons
https://codex.skdragons.com/
Codex Stalking Dragons — Minecraft Modding