DeerFoliaPlus · 功能与客户端协议
文档/deerfoliaplus/DeerFoliaPlus · 功能与客户端协议

DeerFoliaPlus · 功能与客户端协议

使用 DeerFoliaPlus 功能、客户端协议、运行数据和自定义配方。

功能总览

功能默认状态需要什么主要风险
FakePlayer关闭服务端开关、权限和假人数据备份假人会消耗实体、区块和网络资源
基岩版风格要塞关闭新世界或经过测试的世界改变要塞生成分布
Syncmatica关闭Syncmatica/Litematica 客户端文件空间、上传和隐私管理
Servux关闭MiniHUD/Litematica 客户端暴露实体或方块实体数据
Recipe Sync开启Fabric/NeoForge 客户端支持ViaVersion 协议兼容性
Custom Recipe关闭config/custom-recipes.yml配方覆盖和经济平衡
Posture关闭权限和姿态设置玩家位置锁定、椅子识别时序
快捷命令命令级默认权限节点管理能力被普通玩家使用

FakePlayer

假人是服务端实体,不需要真实客户端连接。你可以创建假人、执行动作、查看物品栏,然后移除或保存假人。resident-bot 决定假人重启后是否恢复。

假人创建需要名称和可选皮肤名:

/bot create <name>
/bot create <name> <skin_name>
/bot list
/bot tphere <name>
/bot tp <name> <player>
/bot inventory <name>
/bot equipment <name>
/bot backpack <name>
/bot save <name>
/bot load <name>
/bot remove <name>

动作系统使用 bot action 子命令。使用命令补全获取动作名称和参数:

/bot action <name> list
/bot action <name> stop <index>
/bot action <name> stop all
/bot action <name> <action_name> <arguments>

不要用假人替代性能测试。先观察实体数量、区域线程负载、内存和网络,再调整 amount-per-playeralways-send-data 或动作频率。

基岩版风格要塞

开启后,要塞使用随机、无限分布模型。spacing 表示平均区块距离。separation 表示最小区块距离。请在新世界或测试副本中使用。不要在没有测试的已有世界中直接开启。

Syncmatica 与 Servux

Syncmatica 允许服务端和客户端共享 Litematica 投影,并支持上传、下载和修改。服务器会在根目录保存投影文件和临时上传文件。需要限制空间或上传行为时,开启 use-quota 并设置 quota-limit

Servux 分为结构协议和实体协议:

  • structure-protocol 用于 MiniHUD 的结构边界框叠加;
  • entity-protocol 用于查看实体和方块实体 NBT。

只向可信玩家开放这些协议。没有访问控制时,不要在公共服务器开启 entity-protocol。遇到协议兼容问题时,一次关闭一个开关。

Recipe Sync

Recipe Sync 向客户端发送服务器配方,方便 JEI 等模组显示完整配方。服务器不负责安装 Fabric、NeoForge、JEI 或其他客户端模组。Fabric 玩家通过 ViaVersion/ViaBackwards 使用非原生协议时,除非测试证明有问题,否则保持 skip-fabric-on-via-non-native 开启。

自定义配方

自定义配方写在 config/custom-recipes.yml,顶层使用 recipes。支持以下七种 type

  • shaped:使用 pattern 和字符 ingredients
  • shapeless:使用 ingredients 列表或序号对象;
  • smeltingblastingsmokingcampfire_cooking:使用 ingredientresultexperiencecooking-time
  • stonecutting:使用 ingredientresult

一个带结果名称和自定义标识的有序配方示例:

recipes:
  example_tool:
    type: shaped
    pattern:
      - "S"
      - "I"
    ingredients:
      S: minecraft:stick
      I:
        item: minecraft:iron_ingot
        custom-id: example_iron
    result:
      item: minecraft:iron_sword
      amount: 1
      name: "&bExample Tool"
      custom-id: example_tool
      enchantments:
        minecraft:unbreaking: 1
      nbt:
        ExampleTag: enabled

结果支持 itemamountnamecustom-idenchantments 和简单 NBT 值。输入带有 custom-id 时,可以区分同一种 Minecraft 物品中的自定义物品。未填写时按普通物品匹配。物品 ID 必须存在于服务端注册表。

自定义配方排错

配方解析失败时,核心会在日志中指出缺少字段、未知物品、错误类型或无效 pattern。修改后重启。确认日志中的注册数量。再在工作台、熔炉或切石机中测试。

姿态系统

开启 posture.enabled 后,玩家可以坐下、躺下、爬行和起身。chair-interaction 允许空手右键楼梯或下半砖。开启 require-side-signs 时,一排座位的两端必须有告示牌。生产环境启用前,请在测试服确认插件和交互事件兼容。