FreeMinecraftModels 命令
config.yml 中的 registerCraftingRecipes 默认为 true。如需仅允许购买,请设为 false 并重启:配方仍显示在菜单和商店中,但 Bukkit 合成配方会被移除。本页的合成步骤要求该设置为 true。
使用 /freeminecraftmodels 或 /fmm。
设置与内容管理
| 命令 | 用途 |
|---|---|
/fmm | 为玩家打开可制作物品菜单(参见下方的 可制作物品菜单) |
/fmm admin | 打开管理员内容浏览器 —— 浏览已安装的包、文件夹、模型和自定义物品(权限:freeminecraftmodels.admin) |
/fmm setup | 打开仅玩家可用的内容管理 / 首次设置菜单(首次启动时玩家被引导去使用的命令) |
/fmm recommendedplugins | 显示与 FreeMinecraftModels 搭配良好的配套插件(为玩家打开一个目录菜单,在控制台则打印列表) |
/fmm downloadall | 下载最新的插件更新以及所有可用的官方内容。如果内容发生了变化,FMM 会重载以应用它;已下载的插件 jar 仍需重启服务器。如果插件更新这一步因缺少 Nightbreak 令牌或身份验证失败而失败,内容那一步会被完全跳过 |
/fmm downloadallcontent | 下载所有可用的官方内容(仅内容,不更新插件 jar),并在至少有一个包发生变化时重载 |
/fmm updatecontent | 下载已过期官方内容的更新,并在至少有一个包发生变化时重载(别名:/fmm updateallcontent) |
/fmm downloadpluginupdate | 仅下载最新的插件 jar 更新(在下次服务器重启后生效) |
/fmm forcereinstallcontent <package|all> | 修复命令 —— 即使版本号显示已是最新,也重新下载你已经拥有的内容。Tab 补全提供 all 以及每个 Nightbreak 包的 slug。all 覆盖所有被检测为已下载的包;如果某个包的文件完全缺失,请直接指定它的 slug。完成后会重载(权限:freeminecraftmodels.*) |
/fmm reload | 重新导入内容并重新生成资源包输出 |
/fmm version | 显示插件版本(无需任何权限 —— 所有人都可执行) |
/fmm stats | 显示已加载模型的统计信息 |
共享的 Nightbreak 命令
这些命令由 MagmaCore 注册,而不是由 FreeMinecraftModels 自身注册,因此它们是顶级命令,不是 /fmm 的子命令。
| 命令 | 用途 |
|---|---|
/nightbreaklogin <token> | 为本服务器保存共享的 Nightbreak 账户令牌,从而解锁官方内容下载和插件更新(权限:nightbreak.login,默认:op)。每台服务器只注册一次 —— 哪个 Nightbreak 插件先加载,就由它拥有 |
/nightbreaklogout | 从本服务器清除已保存的 Nightbreak 账户令牌(权限:nightbreak.login,默认:op)。同时接受玩家与控制台 |
/freeminecraftmodelschangelog [dismiss|disable] | 显示未读的 FreeMinecraftModels 更新说明(插件版本和被跟踪的内容包)。dismiss 会把当前显示的说明标记为已读;disable 会为你永久隐藏更新日志提醒。仅限玩家、仅限管理员 —— 玩家需要 freeminecraftmodels.*、某个 setup/admin 权限,或者 OP。如果 /freeminecraftmodelschangelog 这个标签已被其他插件占用,该命令会以带命名空间的备用形式注册,例如 /freeminecraftmodels:freeminecraftmodelschangelog |
有未读更新说明的管理员在加入时会在聊天栏收到一条带可点击 [VIEW CHANGELOG] 提示的提醒;摘要视图中提供 Dismiss These Updates 和 Never Show Changelogs 两个按钮,其作用与上述两个子命令相同。每位玩家的已读状态保存在 plugins/FreeMinecraftModels/nightbreak-changelogs.yml 中。
模型生成与放置
| 命令 | 用途 |
|---|---|
/fmm spawn static <id> | 生成静态模型 |
/fmm spawn dynamic <id> | 生成动态模型 |
/fmm spawn prop <id> | 创建持久化道具条目并生成它。如果该方块上已经加载了同一模型的道具,则以 A prop of that model already exists on this block. 拒绝 |
/fmm itemify <id> <material> | 创建一个可放置物品,使用时将所选模型作为道具生成 |
/fmm mount <id> | 使用伪装的马生成实验性可乘骑坐骑 |
/fmm giveitem <item> | 向玩家给予自定义 FMM 物品(权限:freeminecraftmodels.admin) |
/fmm craftify <id> | 打开交互式配方编辑器 —— 在 3×3 格子中放置材料,然后点击产物即可保存该道具的合成配方 |
玩家伪装
| 命令 | 用途 |
|---|---|
/fmm disguise <modelID> [player] | 将玩家伪装为已加载的模型。不带目标参数时,伪装发送者。带目标时,需要 freeminecraftmodels.disguise.self + freeminecraftmodels.disguise.others 权限,可从控制台执行 |
/fmm undisguise [player] | 解除伪装。不带目标时解除发送者的伪装。带目标时需要 freeminecraftmodels.disguise.self + freeminecraftmodels.disguise.others 权限,可从控制台执行 |
/fmm disguiselist | 列出当前所有处于伪装中的玩家及其对应的模型(权限:freeminecraftmodels.disguise.others) |
伪装行为:
- 对已伪装的玩家再次执行伪装时,会干净地替换之前的伪装。
- 伪装的玩家对其他玩家保持不可见,因此只能看到模型。此不可见效果在喝牛奶以及其他清除药水效果的交互后仍会持续。
- 第三方插件可以通过公共的
DisguiseAPI来驱动伪装(参见 API 与开发者指南)。
家具商店
| 命令 | 用途 |
|---|---|
/fmm shop | 打开可选的、基于 Vault 的家具商店,玩家可以用游戏内货币购买可合成的道具(权限:freeminecraftmodels.shop,默认:true) |
商店默认禁用,仅在以下条件都满足时才会注册:
shop_config.yml中enabled: true- 已安装 Vault
- 已注册兼容 Vault 的经济提供方
只要缺少其中任何一项,/fmm shop 就不会注册(如果在运行时被强制禁用,则会显示可配置的"商店已禁用"消息)。商店配置键和每条配方的 shopEnabled / shopPrice 字段请参阅 配置。
实用工具
| 命令 | 用途 |
|---|---|
/fmm hitbox visualize [duration] | 可视化碰撞箱,便于调试 |
/fmm location | 诊断命令 —— 报告已通过 LocationAPI 注册的地下城探测器和保护区提供者数量,并针对你当前的位置测试两个谓词(权限:freeminecraftmodels.*) |
/fmm debug <bedrock|props> [on|off] | FMM 各条诊断日志流的运行时开关。bedrock 切换用于诊断 Bedrock 显示管线的 [FMM-BedrockDebug] 日志流;props 切换堆叠道具扫描,开启后每次区块加载都会把任意两个相距 0.1 格以内的道具报告为 STACKED PROPS DETECTED。省略状态参数时只报告当前状态而不作更改。on/true/enable/enabled 和 off/false/disable/disabled 都会被接受。两个开关在插件重载时都始终重置为 OFF —— 故意不做成配置项,避免被遗忘开启。同时接受玩家与控制台执行(权限:freeminecraftmodels.*) |
/fmm packetdebug [ticks] | 一次性的数据包负载诊断。采样接下来 [ticks] 个模型时钟刻内模型化实体的数据包流量(默认 1,上限 200),并报告每刻逻辑数据包数、含按观察者扩散在内的每刻实际投递数据包数、最糟糕的单个玩家每刻数值、数据包类型分解,以及负载最重的观察者。Tab 补全提供 1、5、20、60。请站在卡顿的区域运行它。数据包计数是精确的;字节数值是估算值。如果没有采到样本(未加载任何模型化实体,或 NMS 被禁用),会超时并给出警告。同时接受玩家与控制台执行(权限:freeminecraftmodels.*) |
/fmm deleteall [radius] | 移除所有已加载的模型化实体和持久化道具。不带参数时清除一切;可选的 [radius](仅玩家可用)将移除范围限定在玩家周围若干方块以内的实体 |
道具放置行为
当玩家右键点击纸质道具物品(由 /fmm itemify 创建或通过 /fmm craftify 配方合成)时:
- 物品消耗: 道具放置后纸质物品会被消耗,除非玩家处于创造模式。
- 旋转: 道具会朝向玩家的视线方向放置,旋转角度按 10 度为单位对齐。这让玩家只需调整放置前的视线方向,就能精细控制道具朝向。
- 每个方块每个模型只允许一个道具: 当该方块上已经加载了同一模型的道具时,放置会被拒绝并提示
A prop of that model already exists on this block.。被拒绝的放置不会消耗物品。 - 仅主手: 只有交互事件的主手那一半会放置道具,因此单次右键不会再产生两个道具。
- 重复清理: 在服务器启动时以及每次区块加载时,FreeMinecraftModels 会扫描共享同一模型和同一方块的道具盔甲架,保留其中一个并移除其余的。移除会被记录为
[FMM Props] Removed N duplicate prop armor stand(s) ...。
可制作物品菜单
不带参数地运行 /fmm 会为玩家打开一个物品栏菜单,展示所有已配置配方的可合成物品。
- 菜单中的每个物品都代表一个可合成的 FMM 物品。
- 点击物品会打开详情子菜单,显示 3×3 合成格、箭头和产物 —— 直观地告诉玩家如何在工作台中合成它。
- 需要
freeminecraftmodels.menu权限(默认:true,所有玩家可用)。
管理员内容浏览器
运行 /fmm admin 会为服务器管理员打开一个物品栏菜单,可用于浏览:
- 已安装的内容包
- 文件夹与单个模型
- 自定义物品(设置了
material:的模型)
需要 freeminecraftmodels.admin 权限(默认:op)。
配方编辑器
/fmm craftify 命令可以为任意道具模型创建原版工作台配方。
- 运行
/fmm craftify <model_id>打开配方编辑器界面。 - 一个自定义物品栏会打开,内含 3×3 合成格和预先填充好的产物物品。
- 按你想要的样式从背包中将材料放入合成格。
- 点击产物物品(道具的纸质物品)保存配方。
- 粒子与音效会确认保存成功。
- 配方将保存到
plugins/FreeMinecraftModels/recipes/<model_id>.yml并立即注册。 - 玩家现在可以在任意工作台中合成该道具物品。
- 按 Esc 取消保存 —— 材料会归还到背包。
- 对同一模型再次执行 craftify 会覆盖之前的配方。
- 配方在服务器重启和重载后仍会保留。
配方文件格式
isEnabled: true
model_id: "wooden_chair"
shape:
- "L L"
- "LLL"
- "L L"
ingredients:
L: OAK_LOG
shopEnabled: true
shopPrice: 250.0
| 字段 | 必需 | 说明 |
|---|---|---|
isEnabled | 是(默认 true) | 设为 false 可以在不删除文件的情况下取消注册该配方 |
model_id | 是 | 合成出来的纸质物品所放置的模型。带有弓/弩状态后缀的模型 ID 会被自动改写为基础模型 ID |
shape | 是 | 最多三行,每行最多三个字符。空格表示「空槽位」 |
ingredients | 是 | 单个形状字符到 Bukkit 材质名称的映射。无法识别的材质会被静默丢弃 |
shopEnabled | 否(默认 true) | 该配方是否在 /fmm shop 中列出 |
shopPrice | 否(默认取 shop_config.yml 中的 defaultPrice) | 商店中的 Vault 货币售价 |
注册的 Bukkit 配方键是 freeminecraftmodels:prop_recipe_<model_id>,产物始终是该模型的纸质放置物品。对同一模型重新执行 /fmm craftify 会覆盖该文件并以同一个键重新注册。
权限
在 plugin.yml 中注册
| 权限 | 默认 | 描述 |
|---|---|---|
freeminecraftmodels.* | OP | 通配符,授予 freeminecraftmodels.admin、freeminecraftmodels.deleteall、freeminecraftmodels.disguise.self、freeminecraftmodels.disguise.others 和 freeminecraftmodels.bypassregionprotection。这个通配符字符串同时也是 /fmm reload、/fmm stats、/fmm spawn、/fmm itemify、/fmm craftify、/fmm mount、/fmm hitbox visualize、/fmm debug、/fmm packetdebug、/fmm location、/fmm setup, /fmm initialize、/fmm recommendedplugins、/fmm downloadall、/fmm downloadallcontent、/fmm updatecontent、/fmm downloadpluginupdate 和 /fmm forcereinstallcontent 字面意义上所要求的权限 |
freeminecraftmodels.admin | OP | 可访问 /fmm admin(管理员内容浏览器)与 /fmm giveitem |
freeminecraftmodels.deleteall | OP | 通配符的子权限;可访问 /fmm deleteall |
freeminecraftmodels.disguise.self | OP | 允许 /fmm disguise 与 /fmm undisguise,但只能针对发送者本人 |
freeminecraftmodels.disguise.others | OP | 允许 /fmm disguise <model> <player>、/fmm undisguise <player> 与 /fmm disguiselist |
freeminecraftmodels.bypassregionprotection | OP | 即使启用了 preventPropPlacementInProtectedRegions,仍允许在任何其他插件会阻止普通方块放置的地方放置道具并与之交互 |
freeminecraftmodels.menu | true | 可访问 /fmm 可制作物品菜单(所有玩家可用) |
freeminecraftmodels.shop | true | 可访问 /fmm shop(商店启用时所有玩家可用) |
指定目标玩家的 disguise 和 undisguise 命令同时需要 freeminecraftmodels.disguise.self 和 freeminecraftmodels.disguise.others。disguiselist 只需要 .others。
由 MagmaCore 注册
| 权限 | 默认 | 描述 |
|---|---|---|
nightbreak.login | OP | 共享的 /nightbreaklogin 与 /nightbreaklogout 命令需要它。每台服务器由最先加载的那个 Nightbreak 插件注册一次 |
执行者说明
setup、spawn、itemify、mount、giveitem、craftify、hitbox visualize、location、admin和shop仅限玩家执行。/freeminecraftmodelschangelog同样仅限玩家。recommendedplugins、downloadall、downloadallcontent、updatecontent、downloadpluginupdate、forcereinstallcontent、packetdebug、debug、deleteall、/nightbreaklogin和/nightbreaklogout同时接受玩家与控制台执行(deleteall的半径参数仅玩家可用)。disguise与undisguise接受目标玩家参数,只要提供目标即可从控制台执行。version无任何权限限制,任何人(玩家或控制台)都可执行。/fmm initialize为拥有freeminecraftmodels.*权限的玩家打开首次设置菜单。日常内容管理使用/fmm setup。