Skip to content

About

CraftEngine 配方查询书:开局自动发书、按 CE 附属包自动分类的 GUI 与指令查询,附自制 16x16 资源包

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

RecipeQuery · CraftEngine 配方查询书

一本只查 CraftEngine 自定义物品配方的查询书。首次进服自动发放,右键打开按 CE 附属内容包分类的界面;也支持用指令直接查配方。附带完整的自制资源包(书本外观 + 查询界面图标,16×16 像素风)。

GUI 预览

功能

  • 只收录 CE 配方:数据来自 CraftEngine 自己的 BukkitRecipeManager,既不混入原版工作台配方,也不会漏掉 CE 自定义配方。
  • 开局自动发书:首次进服发放一本,UUID 记录在 plugins/RecipeQuery/received.txt;背包满时掉落在脚边。
  • 三级导航界面:选择附属包 → 分类内物品 → 配方详情,展示 3×3 有序合成摆位、产物数量、多配方翻页、铁砧搜索(跨全部分类)。
  • 自动适配 CE 附属包:分类不写死包名,扫描 plugins/CraftEngine/resources/*/pack.yml 发现内容包。以后新增任何 CE 附属包,只要它有配方产物,执行 /recipequery 就会自动成为新分类,无需改代码、无需重启。
  • 中文名自动提取:兼容 4 种 CE 语言键格式,自动取简中名;常见原版原料也有中文映射。
  • 指令查询:不打开界面也能在聊天栏直接看配方。

环境要求

组件 版本(开发与验证环境)
服务端 Paper 26.1.2 build 74
Java 25(class file version 69)
CraftEngine 26.9.2,load: STARTUP

插件通过反射调用 CE API,编译期不需要 CE 源码,但运行时必须装有 CraftEngine。CE 大版本升级若改了内部类名,可能需要调整 CraftEngineBridge 的反射路径。

安装

  1. 把 dist/RecipeQuery.jar 放到服务端 plugins/(或从源码编译,见「从源码编译」)。

  2. 把 resourcepack/recipequery/ 整个目录复制到 plugins/CraftEngine/resources/recipequery/。

  3. 让 CraftEngine 重新生成资源包并发布:

    ce workflow default
    

    如果你有自定义资源包合并流程,把 assets/recipequery/ 合并进最终 zip 即可。

  4. 确认 server.properties 的 resource-pack 指向新 zip,并同步更新 resource-pack-sha1,然后重启服务器。

  5. 进服应自动获得一本「配方查询书」,右键即可打开。

⚠️ 最终资源包里必须同时包含 CE 自动生成的 assets/recipequery/items/*.json(item 定义)和本仓库的 models/ + textures/。缺了前者书本会显示成原版纸,缺了后者界面图标会变成默认材质。

使用

命令

命令 说明 权限 默认授予
/recipebook 领取一本查询书(背包已有则提示,不会重复刷) recipequery.book 所有人
/recipebook <玩家> 给指定在线玩家发一本 recipequery.book.others OP
/recipelookup <名称或ID> 聊天栏直接输出匹配物品的配方 recipequery.lookup 所有人
/recipequery 重建配方数据库并输出自检 recipequery.reload OP

别名:/getrecipebook、/rqbook、/celookup、/rqfind。

/recipelookup 支持中文物品名或 namespace:id 模糊匹配:

/recipelookup 炼金催化器
/recipelookup botania:alchemy_catalyst

输出示例:

◆ 炼金催化器 [botania:alchemy_catalyst] 有序合成 x1
  原料:活石 x4 / 金锭 x2 / 酿造台 x2 / 魔力珍珠 x1

最多展示前 5 个结果(命中上限 40 个),想完整浏览请用界面或更精确的关键词。

界面操作

  • 右键查询书 → 分类页(全部物品 / 各 CE 附属包)
  • 点击分类 → 物品列表 → 点击物品查看配方详情
  • 底部工具栏:上一页 / 搜索 / 下一页 / 返回上一层
  • 搜索使用铁砧输入名称,跨全部分类查找
  • 同一物品有多种配方时,点「下一个配方」翻页

配置 categories.yml

首次运行会在 plugins/RecipeQuery/categories.yml 自动生成(示例见 config/categories.example.yml)。通常不需要改,只有「改名」或「合并分类」才需要编辑;改完执行 /recipequery 即生效,无需重启服务器。

names:                     # 分类显示名,key 可以是 namespace 或分组名
  senluo: 森罗物语
  botania: 植物魔法

groups:                    # 把多个 namespace 合并成一类
  senluo:
    - kaleidoscopecookery
    - default

exclude:                   # 不纳入查询书的 namespace
  - minecraft
  - recipequery

显示名优先级:names 配置 > 内容包里的 category.<ns>.catalog 中文名 > pack.yml 的 description > namespace 原名。

Pylon / Rebar / Slimefun / Steamwork 等是独立 Bukkit 插件,不是 CE 内容包,既不在 resources/ 下也没有 CE 配方产物,因此不会出现在这里,也不要给它们写分类名。

从源码编译

build.sh 需要本机 JDK 25,以及一台装有 CraftEngine 的 Paper 服务端目录(用来提供编译期 API jar):

SERVER_DIR=/path/to/paper-server JDK=/opt/jdk/jdk-25 ./build.sh
# 产物:build/RecipeQuery.jar

脚本会自动从 SERVER_DIR/libraries 收集 paper-api、adventure-api/key、jetbrains annotations、guava、jspecify、bungeecord-chat 等 jar,并加上 plugins/craft-engine-*.jar。运行时只依赖服务端 + CraftEngine,不需要把这些 jar 打包进插件。

目录结构

src/com/recipequery/            Java 源码与 plugin.yml
  ├── CraftEngineBridge.java    CE API 反射桥接(物品 + 配方管理器)
  ├── RecipeDatabase.java       配方数据库、中文名提取、分类构建
  ├── CategoryResolver.java     自动发现 CE 内容包、分类名/归并/排除
  ├── RecipeInfo.java           单条配方展示信息
  └── RecipeQueryPlugin.java    发书、GUI、搜索、指令
resourcepack/recipequery/       自制 CE 内容包(书本与界面物品)
  ├── pack.yml
  ├── configuration/item/items.yml
  ├── configuration/lang/zh_cn.yml
  └── resourcepack/assets/recipequery/{models,textures}/item/
tools/gen_textures.py           重新生成 8 张 16×16 贴图与模型 JSON
config/categories.example.yml   分类配置示例
docs/                           界面与贴图预览图
dist/RecipeQuery.jar            可直接使用的成品

资源包内容

8 个自定义物品:recipe_book(书本外观)、ui_filler、ui_arrow、ui_prev、ui_next、ui_back、ui_search、ui_title(界面图标)。全部为 16×16 像素画,深蓝石板 + 金色镶边风格,模型使用 minecraft:item/generated。

重新生成(需要 Pillow):

pip install pillow
python3 tools/gen_textures.py                       # 默认写回仓库自带资源包目录,并更新 docs/textures-preview.png
python3 tools/gen_textures.py /path/to/assets/recipequery   # 或指定别的输出目录

也可用环境变量 ASSETS_DIR / PREVIEW_OUT 分别指定贴图目录与预览图输出位置。

贴图预览

已知限制

  • 目前只在 Paper 26.1.2 / CraftEngine 26.9.2 上验证;其它版本的 CE 内部类名可能变化。
  • 服务端 0 人在线时无法实测「真人进服发书 + 右键打开界面」;命令、数据层、物品识别、资源包内容均已通过 RCON 自检。
  • 仓库不包含任何第三方作者的资源包内容,只包含本自制内容包;服务器合并后的完整资源包请自行通过 CraftEngine 工作流生成。

许可证

MIT。自制贴图、模型与代码同样适用。

About

CraftEngine 配方查询书:开局自动发书、按 CE 附属包自动分类的 GUI 与指令查询,附自制 16x16 资源包

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages