跳到主要内容

Fast Crafting

服务端合成菜单,支持快速合成、专业目录、搜索和可选的 3x3 网格。

私有v0.1.1经济与制作
依赖TypeWriter0.9BasicRPG CoreGUIMMOItems可选

专为 BornToCraft 服务器网络打造。此扩展仅作参考文档,不对外分发。

概览​

Fast Crafting 用一个菜单取代原版工作台,该菜单会列出玩家能制作的配方,并可一键合成。配方读取自服务器的配方目录,玩家能合成什么则根据其自身物品栏在服务器上重新计算。玩家可以选择数量,或按住 Shift 点击来合成最大数量,所需材料会从其物品栏中扣除。

集成菜单使用一个 54 格的单一物品栏,带有两个标签页。Crafting 有一行当前可用配方的快速合成行,以及一个手动 3x3 网格。Recipes 是按 RPG Core 职业(战斗、采矿、农业、制作等)分类的目录,带有可用数和总数计数器、筛选、排序和搜索对话框。在目录中点击某个配方会立即合成它;配方绝不会替你放入网格。

该扩展运行于 TypeWriter 的 BTC 构建版本(BTC Core,Paper/Folia),此处的文档仅供参考。它从 RPG Core 读取配方元数据,并对配方应用其等级锁定。

功能​

  • 一键合成 — 点击配方合成所选数量(默认 1、4、8、16、32、64,或自动),Shift 点击合成最大数量。
  • 快速合成行 — 显示可用的配方,仅对持有某个权限的玩家显示。
  • 职业目录 — 九个分类,带有 available / total 计数器,取自每个配方的 RPG Core 职业。
  • 搜索、排序与筛选 — 基于 Paper 对话框的搜索,可按名称、标识符和职业搜索,支持按字母顺序或按可用性排序,以及全部、可用或缺失的筛选。
  • 手动 3x3 网格 — 一个带有输出槽位的可选网格,玩家手动放入材料;菜单关闭时,剩余的物品会返还给他们。
  • 工作台替换 — 右键点击工作台时可以打开此菜单。
  • 配方来源 — 原版配方、单个命名空间(例如 custom),或 MMOItems 工作站配方。
  • 等级锁定 — 应用 RPG Core 的配方等级门槛,其他插件可以通过事件拒绝一次合成。
  • 安全的结果 — 溢出的物品会掉落在玩家脚下,或阻止合成,可选的冷却用于限制刷屏。

安装​

  1. 安装 RPG Core(RPGBundle 扩展)、TypeWriter 的 Basic 扩展和 GUI 扩展(GuiAndDialogs)。没有它们,Fast Crafting 将无法加载。
  2. 可选:如果你想使用 MMOItems 的工作站配方(useMMOItemsRecipes),请安装 MMOItems。
  3. 将 Fast Crafting 的 JAR 放入 plugins/Typewriter/extensions/ 并重启服务器。
  4. 将权限 fastcrafting.quickcraft 授予可以看到快速合成行的玩家。

快速上手​

通过命令打开集成菜单:

  1. 在 TypeWriter 网页面板中,打开一个**清单(manifest)**页面,添加一个 Fast Crafting 动作。
  2. 设置 inventoryTitle,将 inventoryRows 保持为 6,并开启 integratedMenu.enabled。
  3. 让 categoryIds 保留九个 RPG Core 职业,或只保留你使用的那些。如果你想要手动 3x3 网格,请开启 classicCrafting.enabled。
  4. 如果你只想使用自己的配方,请将 recipeNamespace 设为你的配方的命名空间,例如 custom。
  5. 添加一个自定义命令条目(例如 fastcrafting),并将 Fast Crafting 动作放入其 triggers。NPC、物品和对话也可以触发该动作。
  6. 若要替换原版工作台,请开启 replaceCraftingTable,并在需要时设置 replaceCraftingTablePermission。
  7. 发布,给自己一些材料,然后运行该命令。
两种布局

当 integratedMenu.enabled 关闭(默认)时,该动作会打开由 layoutPool、recipeGrid 和 fastcraft_button: 标记构建的旧版布局。请开启它以使用此处所述的单一物品栏菜单。集成菜单会忽略旧版的打开和关闭按钮以及 SELECTION_INFO 按钮。

在旧版布局中,标记有 OPEN_GRID、REFRESH、PAGE_PREV、PAGE_NEXT、CRAFT_AMOUNT、SELECTION_INFO 和 CLOSE。左键点击配方会制作它,Shift + 左键制作最大数量,右键选中它。SELECTION_INFO 显示通过右键选中的(或最后制作的)配方,文本来自 selectionInfo 字段:名称、产出数量、可制作次数,以及每种材料一行。键名请参见 Fast Crafting。

工作原理​

目录会针对每个条目配置,根据 Bukkit 配方构建一次:仅包含合成配方,并按 recipeNamespace 和 disableVanillaRecipes 过滤。每个配方的职业来自 RPG Core,没有职业的配方会归入 crafting。可合成的内容会根据玩家的物品栏重新计算,在他们移动物品、拾取、丢弃或消耗物品时刷新。

当 RPG Core 有替代品时,属于原版物品的结果会被转换为其对应的 BTC 物品。在没有 recipeNamespace 的情况下,结果为 CraftEngine 或 BTC 物品的配方会从目录中隐藏,因此请设置 recipeNamespace(例如 custom)以列出你的自定义配方。

菜单​

集成菜单有六行:

行Crafting 标签页Recipes 标签页
1Crafting 和 Recipes 标签页。Crafting 和 Recipes 标签页。
2快速合成配方(最多 quickRecipesPerPage 个,没有快速合成权限时隐藏),支持翻页。职业分类及其 available / total 计数器。
3 到 5手动 3x3 网格、输出槽位和数量按钮。所选分类的配方(recipesPerPage,默认 27)。
6菜单控制。搜索、排序、筛选和翻页控制。

左键点击配方会合成所选数量。当 allowShiftCraftAll 开启时,Shift 点击会合成最大数量。数量按钮会在 craftAmountButton.values 之间循环,当 includeAuto 开启时还有一个自动选项。搜索对话框会在配方名称、标识符和职业中查找。默认排序为 defaultSort(AVAILABLE_FIRST 或 ALPHABETICAL),默认筛选为 defaultFilter(ALL、AVAILABLE 或 MISSING)。菜单文本为法语。

手动网格通过 classicCrafting 放置。玩家手动向其中放入物品,并在点击输出槽位时合成结果,Shift 点击可合成最大数量。留在网格中的物品会在菜单关闭时返还到其物品栏。

配置​

一切都在 Fast Crafting 条目中设置。与布局无关的主要设置:

设置用途
fastCraftPermission打开菜单和合成所需的权限(留空表示所有人)。
recipeNamespace只列出此命名空间的配方。
disableVanillaRecipes隐藏 minecraft: 配方。
useMMOItemsRecipes在 MMOItems 已启用时添加 MMOItems 工作站配方,并隐藏原版配方。
dropWhenInventoryFull当物品栏已满时,将结果掉落在玩家脚下。关闭则表示当结果放不下时拒绝合成。
craftCooldownTicks两次合成之间的冷却,单位为 tick(0 表示无冷却)。
autoRefreshTicks每 N 个 tick 刷新已打开的菜单(0 表示不刷新)。
replaceCraftingTable打开此菜单而不是原版工作台。潜行的玩家保留原版工作台。

权限​

权限授予
fastcrafting.quickcraft显示集成菜单的快速合成行。该名称是 integratedMenu.quickCraftPermission 的默认值;将其留空即可向所有人显示该行。
fastCraftPermission 的值由你选择的用于打开菜单和合成的权限。
replaceCraftingTablePermission 的值由你选择的、在使用工作台时获得该菜单的权限。

该扩展没有自己的命令,也没有占位符。菜单点击使用一个内部的 fastcraft: 通道,它与玩家已打开的菜单绑定,无法手动输入。

条目​

1 个条目,由扩展源码生成。

动作1

故障排查​

菜单是旧版布局。 integratedMenu.enabled 是关闭的,这是默认值。请开启它以获得标签页、目录和快速合成行。

目录是空的。 请检查 recipeNamespace:只会列出该命名空间的配方。没有命名空间时,结果为 CraftEngine 或 BTC 物品的配方会被隐藏。使用 disableVanillaRecipes 或 useMMOItemsRecipes 时,minecraft: 配方会被移除。

快速合成行缺失。 玩家缺少快速合成权限(默认为 fastcrafting.quickcraft)。清空该字段即可向所有人显示该行。

某个配方变灰或拒绝合成。 玩家可能缺少材料、低于该配方的 RPG Core 等级(消息会显示在动作栏上),或者其他插件可能取消了合成。在冷却期间,以及在结果放不下且 dropWhenInventoryFull 关闭时,合成同样会被拒绝。

某个配方位于错误的分类。 分类来自在 RPG Core 中为该配方键注册的职业。没有职业的配方会归入 crafting。categoryIds 中 RPG Core 未定义的分类仍会显示,使用通用的名称和图标。

原版工作台没有被替换。 replaceCraftingTable 必须开启,如果设置了 replaceCraftingTablePermission,玩家必须持有它,并且潜行的玩家会保留原版工作台。会使用第一个开启了该选项的条目。

搜索按钮没有任何作用。 integratedMenu.searchEnabled 必须开启。搜索会打开 Paper 对话框,因此需要支持 Paper 对话框的服务器。

相关扩展​

  • RPG Core — 目录所使用的职业和配方等级锁定。
  • GUI — 菜单引擎。
  • MMOItems — 通过 useMMOItemsRecipes 使用的工作站配方。