给 铁砧工艺(AnvilCraft 1.6 / MC 1.21.1 / NeoForge) 的 本地终端 / 潜影终端 / 超维终端 做一套「插件(升级模块)」体系的附属模组 —— 形态参照精妙背包的升级插件。
An English summary is available at the bottom of this page. (英文说明见页面末尾。)
- 模组 ID:
anvilcraft_terminal_plugins - 许可:LGPL-3.0-or-later(与铁砧工艺一致,见
LICENSE;第三方声明见NOTICE) - 依赖:AnvilCraft
1.6.0+(Cjsah Maven)、AnvilLib(随 AnvilCraft 一起提供) - 下载:Releases —— 直接下
anvilcraft_terminal_plugins-neoforge-1.21.1-x.y.z.jar放进mods/即可(另附 sources jar) - 开源:欢迎 Issue / PR
- 详细说明:百科式说明 docs/WIKI.md(物品一览 / 机制 / 配方 / 配置 / 常见问题 / 版本历史)
用铁砧工艺的方式把插件"装"到终端上:
- 通过冲压做出 插件安装台(4 铁块 + 1 铁砧,见「四、本模组物品的铁砧工艺化配方」);
- 右键打开界面:左边 1 格放终端,下面 3×3 是暂存槽,右边是操作按钮;
- 暂存槽只是暂存:放进去不会自动安装,点 「安装全部」 才装到终端上; 终端右侧一排绿色槽位实时显示已安装的插件(最多 6 个图标);
- 点 「全部拆卸」 把终端上已装的插件全部拆回暂存槽;点 「调节插件」 直接打开插件调节面板;
- 把终端拿走即可携带插件,插件的配置保存在插件物品自身(拆下时配置一起带走)。
界面形态对齐精妙背包的升级标签页 —— 在铁砧工艺的终端界面里操作:
- 打开方式:终端界面(存储界面)里的 「≡ 插件 N」按钮,或按 K;安装台界面点「调节插件」;
- 位置默认贴屏幕左侧(JEI 的素材列表默认在右侧,避免重叠);按住「≡」按钮可以把整个面板拖到任意位置,
拖动后的位置会记在
config/anvilcraft_terminal_plugins_panel.txt,下次进游戏仍然生效; - 面板分三页:第一级是插件列表,行上有 「设置」(配置项)和 「执行」(会执行配方的插件才有)两个入口,进入后左上角「<」返回; 设置与执行分开放:加工方式 / 批量 / 输入槽 / 输出槽 / 「开始加工」都在执行页,设置页只放配置;
- 交互方式对齐精妙背包的升级设置:每个设置就是一个按钮,按钮上直接写着当前值(如「半径 5」「配方 熔炼」「阈值 6」「模式 磁吸 + 拾取」), 点一下循环切换,鼠标悬停会显示说明 tooltip;
- 面板里可以:
- 查看终端上已安装的插件列表(图标 + 名称 + 开关状态;最多显示 5 个,更多会显示「+N」);
- 设置按钮:直接显示并切换该插件的两个主设置(不同插件的含义见下表);
- 执行页(锻造 / 充能 / 压缩 / 铁砧加工):输入槽左键放入光标物品、右键清空;输出槽只读,显示上次产物;
- ↑ / ↓:调整插件顺序;
- 启用 / 停用:单独关掉某个插件而不拆下它;
- 拆下:把插件退回玩家背包;
- 选中炼金插件时,设置子页里有 炼金条目配置:4 行,每行是「药水槽(左键放入光标上的药水 / 右键清空)+ 触发条件按钮(点击循环)+ 阈值 −/+」,下方还有作用半径;
- 过滤插件的设置子页里有 18 格过滤表(6×3):左键放入光标上的物品、右键清空;
- 操作失败(终端不在身上、插件已被移除)会在快捷栏上方给出提示。
| 插件 | 设置按钮 1(主) | 设置按钮 2(副) |
|---|---|---|
| 过滤 | 白名单 / 黑名单 | 比对组件 开 / 关 |
| 磁吸 · 拾取 | 半径 3 / 5 / 8 / 12 / 16 | 模式:磁吸 + 拾取 / 仅磁吸 / 仅拾取 |
| 自动熔炼 · 烹饪 | 配方:熔炼 / 高炉 / 烟熏 / 营火 | 燃料 开 / 关 |
| 自动喂食 | 阈值 2 / 4 / 6 / 8 / 12 / 16 | 负面食物 开 / 关 |
| 炼金 | 作用范围:仅自己 / 玩家 / 生物 / 全部 | 等级匹配 开 / 关 |
| 流体接口 | 工作模式:关闭 / 抽进缓冲 / 灌进容器 | (子页里还有批数与容量 −/+) |
| 工具切换 | 耐久阈值 5% / 10% / 25% / 50% | 作用槽位:仅主手 / 整个快捷栏 |
| 生物捕捉 | 搜索半径 4 / 8 / 12 / 16 | 敌对 · 中立生物 开 / 关 |
| 经验泵 | 工作模式:关闭 / 存入 / 取出 | (子页里还有两级等级与每周期宝石数 −/+) |
| 锻造 | 设置页只有过滤表 | 批次 / 输入输出槽 / 「开始锻造」都在执行页 |
| 销毁 | 保留组数 0 / 1 / 2 / 4 / 8 / 16 / 64 | —— |
| 压缩 | 每周期处理组数 1 / 2 / 4 / 8 / 16 | —— |
| 充能 | 申请功率:4 / 16 / 64 / 256 kW | 是否执行充能配方 / 是否给 FE 物品充电(进度在执行页) |
| 铁砧加工 | 设置页只有过滤表 | 加工方式 / 批量 / 「开始加工」都在执行页 |
也可以手持插件 右键切换主档位,潜行 + 右键切换副档位(聊天栏即时提示当前值):
| 插件 | 右键(主) | 潜行右键(副) |
|---|---|---|
| 过滤 | 白名单 ↔ 黑名单 | 是否比对组件 |
| 磁吸 / 拾取 | 半径 3 → 5 → 8 → 12 → 16 | 磁吸/拾取 两者 → 仅磁吸 → 仅拾取 |
| 自动熔炼 · 烹饪 | 熔炼 → 高炉 → 烟熏 → 营火 | 是否需要燃料 |
| 自动喂食 | 饥饿阈值 2 → 4 → 6 → 8 → 12 → 16 | 是否允许负面效果食物 |
| 炼金 | 作用范围 仅自己 → 玩家 → 生物 → 全部 | 是否要求匹配效果等级 |
| 流体接口 | 工作模式:关闭 → 抽进缓冲 → 灌进容器 | 每周期批数 1 → 2 → 4 → 8 → 16 |
| 工具切换 | 耐久阈值 5% → 10% → 25% → 50% | 作用槽位:仅主手 ↔ 整个快捷栏 |
| 销毁 | 保留组数 0 → 1 → 2 → 4 → 8 → 16 → 64 | —— |
| 压缩 | 每周期处理组数 1 → 2 → 4 → 8 → 16 | —— |
| 充能 | 申请功率 4 → 16 → 64 → 256 kW | 是否执行充能配方 |
| 铁砧加工 | 加工方式:冲压 → 粉碎 → 压缩 → 分解 → 过筛 → 超加热 → 时移 → 中子辐照 | 本次加工次数 1 → 8 → 64 |
| 生物捕捉 | 搜索半径 4 → 8 → 12 → 16 | 是否连敌对 / 中立生物一起抓 |
| 经验泵 | 模式 关闭 → 存入 → 取出 | 每周期宝石数 1 → 2 → 4 → 8 |
| 锻造 | 每周期锻造次数 1 → 2 → 4 → 8 → 16 | —— |
| 插件 | 作用 | 默认行为 |
|---|---|---|
| 过滤插件 | 决定哪些物品允许进入终端连接的存储 | 复用铁砧工艺自身的过滤组件:支持白名单/黑名单、是否比对组件、命名牌写 #tag 做标签过滤 |
| 磁吸 / 拾取插件 | 把附近的掉落物收进存储 | 半径 5 格内自动拾取;可配置半径与是否启用磁吸(拉向玩家) |
| 自动熔炼 · 烹饪插件 | 在存储里自动加工原料 | 默认熔炼(可切高炉/烟熏/营火),每 40 tick 处理一批,可选消耗燃料 |
| 自动喂食插件 | 饥饿时自动进食 | 饥饿值 ≤ 6 时从存储取食物;默认拒绝负面效果食物;碗一类容器会放回存储 |
| 炼金插件 | 按条件自动使用药水(语义对齐精妙背包炼金升级) | 4 个条目,每条 = 过滤药水 + 触发条件(从不/总是/水下/着火/下落/疾跑/受伤低于 X/有负面效果)+ 阈值;满足条件就从存储取一瓶匹配药水:普通药水直接饮用、喷溅/滞留药水就地投掷、不祥之瓶照常使用;空瓶放回存储 |
| 流体接口插件 | 让终端能和存储里的桶 / 瓶互换流体 | 插件物品自带储液缓冲(1~64 桶,默认 8 桶);抽进缓冲 = 把存储里容器(桶、玻璃瓶、蜜瓶…)中的流体吸进缓冲并把空容器放回存储;灌进容器 = 把缓冲灌进存储里的空容器;过滤表决定允许哪些容器参与;每周期处理 1/2/4/8/16 个 |
| 工具切换插件 | 手持工具快坏掉时自动换成存储里更好的同种工具 | 每 10 tick 检查一次;剩余耐久低于阈值(5/10/25/50%)就从存储取一把剩余耐久严格更多的同种工具换到同一个槽位,旧工具默认放回存储;过滤表留空 = 所有可损坏物品都生效 |
| 生物捕捉插件 | 把存储里的空树脂块变成「装着生物的树脂块」 | 每 20 tick 一次;捕捉半径内最近的生物,规则与手动捕捉一致(体积太大抓不了、敌对 / 中立要先施加虚弱);默认只抓被动生物;抓成功才消耗树脂块 |
| 经验泵插件 | 玩家经验 ↔ 存储里的经验宝石(anvilcraft:exp_gem,1 颗 = 50 点经验) |
存入:等级高于阈值(默认 30)时扣 50 点经验、把一颗宝石放进存储;取出:等级低于阈值(默认 5)时取一颗宝石换回经验。如果宝石被过滤插件拦下,扣掉的经验会原样退回 |
| 锻造插件 | 用存储里的工具 / 金属 / 模板完成锻造台配方(下界合金升级、盔甲纹饰) | 模板不消耗,只消耗工具与金属;执行页三个槽分别指定工具 / 金属 / 模板(留空则自动从存储里找),产物写进输出槽;过滤表列出允许当基底的物品,留空则什么都不做 |
| 销毁插件 | 存储里匹配过滤的物品只保留指定组数,多余部分销毁(对应精妙背包的虚空升级) | 每 40 tick 扫描一次;保留组数 0/1/2/4/8/16/64 |
| 压缩插件 | 把存储里 9 个同类物品自动压成 1 个(铁块、钻石块这类) | 用原版 3×3 合成配方查询,只处理过滤表里的物品;每周期最多 1/2/4/8/16 组 |
| 充能插件 | 接入铁砧工艺的电网,做两件事:跑本体的充能配方、给身上的 FE 物品充电 | 站在电网里才能工作,电网过载时自动停机;电转 FE 的比例读游戏配置;充能配方进度存在插件物品里,拆下来也不会丢 |
| 铁砧加工插件 | 把本体的铁砧加工(冲压 / 粉碎 / 压缩 / 分解 / 过筛 / 超加热 / 时移 / 中子辐照)搬进界面里手动批量执行 | 只在按下「开始加工」时执行,不会自动加工;按本体配方产出,概率产出照常掷;只跳过需要炼药锅流水的配方;过滤表可选(留空 = 不限制),输入槽可以指定「只加工这一种」 |
过滤表:销毁 / 压缩 / 锻造留空时什么都不做(必须显式列出要处理的物品);流体接口 / 工具切换留空时对全部目标生效;铁砧加工由按钮触发,留空表示不限制。
所有插件都作用于终端当前连接的存储(本地终端=32 格内最近的大型板条箱;潜影终端=身上的潜影集装箱;超维终端=绑定的全局存储)。
- 右键打开界面:左边 0 号槽放终端,下面 3×3 是暂存槽,右边三个按钮 ——「安装全部」「全部取下」「调节插件」。
- 暂存槽不会自动安装:放进去只是暂存,点「安装全部」才装到终端上。
- 已安装插件在界面上按图标逐条显示,装上/取下都有明确反馈。
- 台面上的终端不会工作(插件只驱动玩家身上的终端),装完记得把终端拿回背包。
所有物品都只有铁砧工艺路线(普通工作台配方已经在 1.6.1 里全部删除),数据包文件在 data/anvilcraft_terminal_plugins/recipe/ 下。
每条配方的材料都不一样:
| 物品 | 配方 | 材料 |
|---|---|---|
| 过滤插件 | 冲压 | 电路板 + 2 铁锭 |
| 磁吸 / 拾取插件 | 冲压 | 电路板 + 2 磁铁锭 |
| 自动熔炼 · 烹饪插件 | 冲压 | 电路板 + 加热器 |
| 自动喂食插件 | 冲压 | 电路板 + 2 金胡萝卜 |
| 炼金插件 | 冲压 | 电路板 + 酿造台 |
| 销毁插件 | 冲压 | 电路板 + 虚空物质 |
| 压缩插件 | 冲压 | 电路板 + 2 活塞 |
| 流体接口插件 | 冲压 | 电路板 + 2 玻璃 |
| 工具切换插件 | 冲压 | 电路板 + 钻石镐 |
| 生物捕捉插件 | 冲压 | 电路板 + 树脂块 |
| 经验泵插件 | 冲压 | 电路板 + 2 经验宝石 |
| 锻造插件 | 冲压 | 电路板 + 皇家钢锭 |
| 插件安装台 | 冲压 | 4 铁块 + 1 铁砧 |
| 铁砧加工插件 | 时移 | 1 个铁砧 |
| 充能插件 | 充电器的充能配方 | 1 个过滤插件,充 16 kW × 200 tick(顺便演示充能插件自己的功能) |
这些配方都带 neoforge:conditions 条件 anvilcraft_terminal_plugins:recipes_enabled,
也就是配置文件 anvilcraft_terminal_plugins-common.toml 里的 enableAnvilCraftRecipes:关掉它,这些配方就不会被载入。
终端物品
└── DataComponent: anvilcraft_terminal_plugins:installed_plugins ← 已安装插件(每项是一枚插件物品堆栈)
└── 插件物品自己的组件:magnet_settings / cooking_settings / feeding_settings / alchemy_settings
(过滤插件复用 AnvilCraft 的 filter_content 组件)
- 行为派发:
TerminalPluginEvents监听PlayerTickEvent.Post,每pluginTickInterval(默认 10)tick 扫描玩家身上的终端,按每个插件的intervalTicks()调用onPlayerTick。 - 存储接入:
TerminalStorageResolver复用铁砧工艺的TerminalBlockRegistry/Storages/StorageServerStub.terminalTargetId解析目标存储,得到BaseStorage#getItems()(UnlimitedItemStacksResourceHandler,按类型计数、数量无限),再通过它的insertItem/extractUnlimited读写。 - 过滤统一入口:所有自动入库都走
PluginContext#insertIntoStorage,在那里先过过滤插件。 - 无 mixin:完全不改动铁砧工艺本体;插件面板以叠加层形式画在终端界面上。
把配置 config/anvilcraft_terminal_plugins-common.toml 里的 debug_logging 改成 true,
日志(logs/latest.log)里会打印每次派发:
plugin-dispatch tick=120 terminal=本地终端 plugins=2 storage=reachable(1)
plugin-run 终端自动喂食插件 tick=120
- 没有
plugin-dispatch⇒ 终端不在物品栏/双手中,或没装插件; storage=UNREACHABLE⇒ 存储连不上(本地终端要 32 格内有大型板条箱;潜影终端要有潜影集装箱;超维终端要绑定存储);- 有
plugin-run但没反应 ⇒ 多半是插件自身条件没满足(存储里没有对应物品、饥饿值还够、药水不匹配等)。
- 过滤插件只约束本附属的自动入库(磁吸拾取、烹饪产物、炼金产物);玩家手动存进终端的物品不受它限制。
- 自动烹饪使用原版烹饪配方(熔炉/高炉/烟熏/营火)。 铁砧工艺的"超级加热 / 烹饪"是 InWorld(世界里多方块)配方,不适合在存储内直接套用。
- 炼金插件按条件使用存储里现成的药水(与精妙背包一致);喷溅药水是就地投掷生效,不做弹道瞄准。
- 插件配置通过叠加面板调整:在终端界面里点「插件」按钮或按 K。
# 需要 JDK 21
set JAVA_HOME=C:\Program Files\Java\jdk-21.0.11
gradlew.bat compileJava # 编译(已验证通过)
gradlew.bat runData # 重新生成 blockstate/item model/lang/loot_table
gradlew.bat build # 打包 build/libs/*.jar(已验证通过)
gradlew.bat runServer # 专用服务器实测(已验证通过)
gradlew.bat runClient # 起客户端物品/方块的模型、方块状态、掉落表、英文语言文件由 数据生成器产出(
src/generated/resources), 不要手写同名文件;中文语言、配方、贴图是手写资源(src/main/resources)。 详细验证记录与沙箱绕行见VERIFICATION.md。
依赖(gradle/libs.versions.toml):
dev.dubhe:anvilcraft-neoforge-1.21.1:1.6.0+snapshot.2270(Cjsah Mavenhttps://server.cjsah.net:1002/maven/)dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0+snapshot.521
主要目录:
src/main/java/dev/anvilcraft/addon/terminalplugins/
├── plugin/ 插件 API:TerminalPlugin / PluginContext / TerminalPluginRegistry / TerminalStorage(Resolver)
│ └── impl/ 各插件的行为实现(过滤 / 磁吸 / 烹饪 / 喂食 / 炼金 / 销毁 / 压缩 / 流体 / 工具切换 / 生物捕捉 / 经验泵 / 锻造 / 充能 / 铁砧加工)
├── component/ 数据组件(已安装插件列表 + 各插件配置)
├── item/ 插件物品
├── block/(entity)/ 插件安装台方块与方块实体
├── inventory/ 安装台 Menu
├── client/ 插件面板(列表 / 设置 / 执行三页,叠加在终端界面上)、按键、客户端事件
│ └── gui/ 各插件的设置视图 PluginViews 与执行视图 PluginExecViews
├── client/screen/ 安装台界面
├── event/ 服务端 tick 派发
├── network/ 网络包(插件动作 / 安装台操作 / 失败反馈)
└── init/ 注册入口(物品/方块/方块实体/菜单/数据组件/网络/创造标签页)
- 插件调节面板(终端界面内打开,可开关 / 排序 / 改配置 / 拆下)
- 过滤表的图形化编辑(设置页里的 18 格过滤表,左键放入 / 右键清空)
- 销毁(Void)、压缩、流体接口、工具切换、生物捕捉、经验泵、锻造、充能、铁砧加工
- 面板分「设置 / 执行」两页,会执行配方的插件带输入槽 / 输出槽
- 后续可考虑:插件级面板搜索 / 排序、输出槽显示配方预览(当前显示上次产出)、更多本体的机器接口
- 让过滤插件也约束玩家手动存入的物品
这个附属能写出来,靠的是别人的肩膀,在此郑重致谢:
- 铁砧工艺(AnvilCraft)开发团队 / Anvil-Dev(Gugle 及各位贡献者) —— 本体模组、附属开发文档、官方附属模板与构建脚手架。
终端的存储网络、
IStorageType、StoredItem系列 API 都由它提供;没有它就没有这个附属。 - AnvilLib —— 提供了 Registrum 注册框架、配置系统与数据生成能力。
- 精妙背包 / Sophisticated Backpacks 与 Sophisticated Core(作者 P3pp3rF1y) —— 「插件(升级)」这一交互形态, 以及炼金插件「按条件自动用药」的语义设计,都是参考它而来的。本项目只参考行为设计,未复制任何代码、资源或数据文件。
- NeoForge / MinecraftForge 团队 —— 模组加载器与 API。
- Mojang Studios / Microsoft —— Minecraft 本身(本项目不含任何官方资源)。
- 所有提交问题、反馈与测试的玩家 —— 你们的 bug 报告(比如创造模式页签那个崩溃)让这个模组真的能用起来。
This addon stands on the shoulders of others. Sincere thanks to:
- The AnvilCraft team / Anvil-Dev (Gugle and contributors) — the base mod, the official addon documentation,
and the addon template whose build scaffolding this repository is based on. The terminal storage network,
IStorageTypeand theStoredItemAPIs all come from AnvilCraft; without it this addon would not exist. - AnvilLib — for the Registrum registration framework, the configuration system and data generation.
- Sophisticated Backpacks / Sophisticated Core by P3pp3rF1y — the "upgrade module" interaction model and the semantics of the alchemy upgrade (condition-based automatic potion use) were used as design references only. No source code, assets or data files from those projects are copied into or redistributed by this project.
- The NeoForge / MinecraftForge teams — for the mod loader and APIs.
- Mojang Studios / Microsoft — for Minecraft itself (this project ships no official assets).
- Everyone who reported issues, gave feedback and tested — your crash reports (such as the creative-tab crash) are what made this mod actually usable.
Also thanks to the authors of the many open-source projects whose tools made development possible.
-
本项目以 GNU Lesser General Public License v3.0 or later(LGPL-3.0-or-later) 发布,与铁砧工艺保持一致。 完整文本见
LICENSE,第三方组件与设计参考的声明见NOTICE。 -
你可以自由地使用、修改、再分发本模组,包括放进整合包;再分发修改版时请保留同样的许可与版权声明。
-
源码文件均带
SPDX-License-Identifier: LGPL-3.0-or-later头。 -
本模组不打包 AnvilCraft、AnvilLib、NeoForge 或 Minecraft 的任何代码与资源,它们各自遵循自己的许可。
-
本项目与 AnvilCraft、Sophisticated Backpacks、NeoForge、Mojang 均无隶属或赞助关系。
-
Released under the GNU Lesser General Public License v3.0 or later (LGPL-3.0-or-later), matching AnvilCraft. See
LICENSEfor the full text andNOTICEfor third-party notices. -
You are free to use, modify and redistribute this mod, including in modpacks; redistributed forks must keep the same license and copyright notices.
-
Every source file carries an
SPDX-License-Identifier: LGPL-3.0-or-laterheader. -
No code or assets from AnvilCraft, AnvilLib, NeoForge or Minecraft are bundled; they keep their own licenses.
-
This project is not affiliated with, endorsed by or sponsored by AnvilCraft, Sophisticated Backpacks, NeoForge or Mojang.
AnvilCraft-TerminalPlugins is an addon for AnvilCraft (Minecraft 1.21.1 / NeoForge) that adds an upgrade-module ("plugin") system for the terminals — Local Terminal, Shulker Terminal and Hyperdimension Terminal — inspired by the upgrade model of Sophisticated Backpacks.
What it adds
- Terminal Plugin Station — put a terminal in the slot on the left, stage plugins in the 3x3 slots, then press "Install all"; the installed plugins are shown as live icons and one button takes them all back out again.
- In-terminal plugin panel — open it from the "Plugins" button in the terminal screen (or press K). It is drawn as an overlay, so your open terminal GUI stays open. Each plugin has a settings page and, for the ones that run recipes, a run page with input/output slots.
- 14 plugins
- Filter — decides which items may enter the bound storage (reuses AnvilCraft's own filter component:
whitelist/blacklist, component matching,
#tagfilters). - Magnet / Pickup — pulls nearby drops in and stores them directly (configurable radius and mode).
- Auto Cooking — smelts/cooks ingredients inside the storage (furnace, blast furnace, smoker, campfire; optional fuel).
- Feeding — feeds you from the storage when you get hungry (harmful food blocked by default).
- Alchemy — uses stored potions automatically when a condition is met (underwater, on fire, falling, sprinting, hurt below X%, having a debuff, ...), matching the semantics of the Sophisticated Backpacks alchemy upgrade: drink normal potions, throw splash/lingering ones, and put the empty bottles back.
- Void / Compacting / Fluid / Tool Swap / Mob Catcher / XP Pump / Smithing / Charging / Anvil Process — destroy surplus items, run vanilla 3x3 recipes, move fluids through buckets and bottles, swap a worn tool for a better one, catch mobs into resin blocks, convert experience to and from exp gems, forge like the royal forging table (the template is kept), draw power from an AnvilCraft grid to run charging recipes and charge FE items, and run the mod's anvil processing methods by hand from the panel.
- Filter — decides which items may enter the bound storage (reuses AnvilCraft's own filter component:
whitelist/blacklist, component matching,
Item recipes are AnvilCraft-style only (stamping / time warp / the charger's charging recipe), each with different
materials; they can be switched off with enableAnvilCraftRecipes in the config.
All plugins act on the storage the terminal is currently connected to (nearest large crate within 32 blocks, the shulker container you carry, or the hyperdimension storage the terminal is bound to).
Building — JDK 21, then gradlew.bat build (or ./gradlew build); gradlew.bat runData regenerates models,
blockstates and language files; gradlew.bat runServer / runClient start a dev server / client.
License — LGPL-3.0-or-later. See LICENSE and NOTICE.
Credits — see the bilingual acknowledgements above.
