FreeMinecraftModels 命令
config.yml 中的 registerCraftingRecipes 默认为 true。如需仅允许购买,请设为 false 并重启:有效且启用的条目仍保留在商店目录中,但会从 Bukkit 合成和玩家的 /fmm 可制作物品菜单中移除。本页的合成步骤要求该设置为 true。
使用 /freeminecraftmodels 或 /fmm。
设置与内容管理
| 命令 | 用途 |
|---|---|
/fmm | 为玩家打开可制作物品菜单(参见下方的 可制作物品菜单) |
/fmm admin | 打开管理员内容浏览器 —— 浏览已安装的包、文件夹、模型和自定义物品(权限:freeminecraftmodels.admin) |
/fmm setup | 打开仅玩家可用的内容管理 / 首次设置菜单(首次启动时玩家被引导去使用的命令) |
/fmm recommendedplugins | 显示与 FreeMinecraftModels 搭配良好的配套插件(为玩家打开一个目录菜单,在控制台则打印列表) |
/fmm downloadall | 下载最新的插件更新以及所有可用的官方内容。如果内容发生了变化,FMM 会重载以应用它。已下载的插件 jar 会在重启后、执行 /fmm applypluginupdate 后,或按照 nightbreak.applyPluginUpdatesWithoutRestart 的设置生效。如果插件更新这一步因缺少 Nightbreak 令牌或身份验证失败而失败,内容那一步会被完全跳过 |
/fmm downloadallcontent | 下载所有可用的官方内容(仅内容,不更新插件 jar),并在至少有一个包发生变化时重载 |
/fmm updatecontent | 下载已过期官方内容的更新,并在至少有一个包发生变化时重载(别名:/fmm updateallcontent) |
/fmm downloadpluginupdate | 仅下载最新的插件 jar 更新。它会在下次重启后生效,除非你执行 /fmm applypluginupdate 或设置 nightbreak.applyPluginUpdatesWithoutRestart |
/fmm applypluginupdate | 无需重启服务器即可应用已下载的插件更新。FMM 以及所有依赖或软依赖它的已启用 MagmaGuy 插件会被禁用,jar 被替换,然后重新加载并启用。没有更新的待应用版本,或有其他作者的插件依赖 FMM 时,该命令会被拒绝。如果新 jar 启用失败,会重新加载之前的 jar,更新保持暂存状态,留待下次重启。玩家和控制台均可执行(权限:freeminecraftmodels.*) |
/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.io 链接供你批准;带令牌时,则保存该令牌(权限:nightbreak.login,默认:op)。每台服务器只注册一次 —— 哪个 Nightbreak 插件先加载,就由它拥有 |
/nightbreaklogout | 从本服务器清除已保存的 Nightbreak 账户令牌(权限:nightbreak.login,默认:op)。同时接受玩家与控制台 |
/nightbreak plugins | 显示 Nightbreak 插件目录:玩家看到的是菜单,控制台看到的是聊天列表(权限:nightbreak.plugins,默认:op)。与 /nightbreaklogin 一样,每台服务器只注册一次。参见 Nightbreak 设置与内容管理 |
/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> | 通过最远 300 格的方块射线检测,在瞄准的方块上方生成静态模型 |
/fmm spawn dynamic <id> | 使用相同的 300 格射线检测,在瞄准的方块上方生成由隐藏的猪承载的模型 |
/fmm spawn prop <id> | 在玩家当前位置生成持久化道具。如果该方块上已经加载了同一模型的道具,则以 A prop of that model already exists on this block. 拒绝 |
/fmm itemify <id> <material> | 使用指定的 Bukkit 材质创建放置物品。请使用大写枚举名称,例如 PAPER。如果模型的道具 .yml 设置了 name 和 lore,物品会使用它们。这不会创建定义好的手持物品 |
/fmm mount <id> [scale] | 生成实验性可乘骑坐骑:一匹穿着该模型、已驯服并装有马鞍的马,你可以骑乘并操控它。可选的缩放值须大于 0 且不超过 16,用于调整马及其模型的大小;Tab 补全提供 1.0、2.0 和 3.0。参见可骑乘的自定义模型 |
/fmm giveitem <item> | 向玩家给予已注册的自定义 FMM 物品;物品 ID 不区分大小写(权限:freeminecraftmodels.admin) |
/fmm craftify <id> | 打开交互式配方编辑器 —— 在 3×3 格子中放置材料,然后点击产物即可保存该道具的合成配方 |
直接生成命令不会执行放置物品的保护和空余空间检查。使用 itemify 和 giveitem 时请预留背包空位:这些命令会忽略装不下的物品,不会将其掉落到地上。
玩家伪装
| 命令 | 用途 |
|---|---|
/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 pets | 打开你的宠物菜单,你可以在其中带宠物同行或让它们回家(权限:freeminecraftmodels.pets) |
/fmm petadmin mode [creatures|cosmetic] | 显示宠物模式,或切换模式并保存到 pets.yml(权限:freeminecraftmodels.pets.admin) |
/fmm petadmin list | 列出已加载的宠物物种及其文件、模型、身体、驯服食物和繁殖食物(权限:freeminecraftmodels.pets.admin) |
/fmm petadmin spawn <species> | 在你注视的方块上方(最远 12 格)生成该物种的野生宠物。仅在 CREATURES 模式下有效(权限:freeminecraftmodels.pets.admin) |
/fmm petadmin give <species> | 把该物种的一只成年宠物加入你自己的宠物收藏(权限:freeminecraftmodels.pets.admin) |
/fmm petmigrate [species] | 立即让一群夜间迁徙的宠物从你头顶飞过,无论时间和天空如何(权限:freeminecraftmodels.pets.admin) |
物种文件、pets.yml 以及两种宠物模式,参见宠物。
家具商店
| 命令 | 用途 |
|---|---|
/fmm shop | 打开可选的、基于 Vault 的家具商店,玩家可以用游戏内货币购买可合成的道具(权限:freeminecraftmodels.shop,默认:true) |
商店默认禁用,仅在以下条件都满足时才会注册:
shop_config.yml中enabled: true- 已安装 Vault
- 已注册兼容 Vault 的经济提供方
只要缺少其中任何一项,/fmm shop 就不会注册。启用商店但缺少 Vault 或经济支持时会记录警告。已注册的处理器在商店配置或缓存的连接状态显示禁用时,可以返回配置的禁用消息;它不会持续检测经济提供方是否被移除。商店配置键和每条配方的 shopEnabled / shopPrice 字段请参阅配置。
实用工具
| 命令 | 用途 |
|---|---|
/fmm hitbox visualize [duration] | 显示同一世界中距离小于 10 格的模型碰撞箱,并显示其底层实体。时间以刻为单位,默认为 100(五秒);非正数或非数字的值使用 100,大于 1200 的值使用 1200 |
/fmm location | 报告已注册的地下城探测器和保护提供方,并查询当前位置的 is_in_dungeon / is_protected。这些位置判定并不是考虑玩家身份的道具放置权限检查(权限:freeminecraftmodels.*) |
/fmm debug <bedrock|props> [on|off] | 切换 [FMM-BedrockDebug] 日志,或在清理扫描中检测相距 0.1 格以内的道具对并报告 STACKED PROPS DETECTED。不指定状态时,报告该开关当前是否开启。也接受 true/enable/enabled 和 false/disable/disabled。玩家和控制台均可执行(权限:freeminecraftmodels.*) |
/fmm packetdebug [ticks] | 按指定的模型时钟刻数采样模型化实体的数据包流量,默认为 1,数值限制为 1–200,无效整数使用 1。报告每刻逻辑与实际投递数据包数、按观察者扩散的数量、负载最高的玩家/刻、数据包类型和负载最重的观察者。Tab 补全提供 1、5、20、60。请在受影响区域运行。受监测流量的计数是精确的,字节数是估算值。同一时间只能运行一次采样。400 个服务器刻内没有新样本时会警告。玩家和控制台均可执行(权限:freeminecraftmodels.*) |
/fmm filmic [on|off] | 临时开启或关闭电影模式,用于通过 ReplayMod 录制视频。开启后,每位玩家都会收到其已加载区块中的所有已加载模型,即使不在视线内也一样,并且这些模型会持续播放动画。**不建议在录制以外的场合使用:**它会消耗大量带宽和服务器性能。它从不修改 config.yml;该设置会持续到服务器重启,或直到 config.yml 中的 filmicMode 被修改且 FMM 重载为止。不带参数时,报告当前状态以及该状态来自命令还是 config.yml。玩家和控制台均可执行(权限:freeminecraftmodels.*) |
/fmm boneglide [ticks] | 临时设置 riddenBoneInterpolationTicks,即 Java 版客户端让骑乘中的模型骨骼滑行到下一个姿势所用的 tick 数。0 表示直接跳到位。接受 0 到 59,Tab 补全提供 0 到 3。不带参数时,报告当前值。它从不修改 config.yml;FMM 重载时会恢复 config.yml 中的值。玩家和控制台均可执行(权限:freeminecraftmodels.*) |
/fmm deleteall [radius] | 移除所有世界中当前已加载的模型化实体,并永久移除已加载的道具。不扫描未加载的道具。正整数半径仅供玩家使用,将移除范围限制为该玩家所在世界及指定距离内 |
调试开关不会保存到磁盘,但 /fmm reload 也不会重置它们。收集完证据后请明确关闭日志;重新启动服务器时,两个开关才会初始化为关闭。
道具放置行为
玩家右键使用通过 itemify、合成或商店获得的模型放置物品时,适用以下规则。定义好的手持物品不由这个处理器处理。
- 物品消耗: 成功放置后消耗一个物品,创造模式除外。
- 目标: 点击方块时使用交互事件中的方块与面;点击空气时进行最远五格的射线检测。自由放置道具使用面的中心,体素化道具使用相邻方块及对齐网格的占用范围。
- 旋转: 道具从放置点朝向玩家的位置,而不只是跟随玩家视角的水平角度。自由放置按 10 度对齐,体素化放置按 90 度对齐。
- 每个方块每个模型只允许一个道具: 当该方块上已经加载了同一模型的道具时,放置会被拒绝并提示
A prop of that model already exists on this block.。被拒绝的放置不会消耗物品。 - 主手与冷却: 只有主手交互可以放置道具。每次尝试都有 500 毫秒冷却,包括随后未通过验证的尝试。
- 保护与空间: 配置的保护查询会检查相邻格。体素化道具还会检查旋转后整个占用范围内的空余空间与保护。绕过权限会跳过保护查询。有关集成和碰撞覆盖范围的限制,请参阅配置。
- 重复清理: 启动时、实体加载事件发生时以及直接生成道具前,FMM 会扫描同一模型、同一方块的道具盔甲架,保留一个并移除其余的。移除记录为
[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 合成格和预先填充好的产物物品。
- 按你想要的样式从背包中将材料放入合成格。
- 点击产物物品(道具的纸质物品)保存配方。
- 保存成功后会播放粒子、音效并显示成功消息。保存或注册失败时,菜单保持打开,材料留在格中,并向玩家显示错误。FMM 会尝试恢复先前注册的配方;若恢复也失败,请检查控制台。
- 配方保存到
plugins/FreeMinecraftModels/recipes/<model_id>.yml;是否向 Bukkit 注册取决于registerCraftingRecipes。 - 注册成功且启用了合成时,玩家可以在工作台合成纸质道具物品。
- 保存前按 Escape 可取消并归还格中的材料,装不下的部分掉落在脚下。保存则会清空格中整组材料;配方只记录材质种类和排列,不记录堆叠数量或物品元数据。
- 对同一模型再次执行 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 |
shape | 是 | 最多三行,每行最多三个字符。空格表示「空槽位」 |
ingredients | 是 | 单个形状字符到 Bukkit 材质名称的映射。无法识别的材质会被静默丢弃 |
shopEnabled | 否(默认 true) | 该配方是否在 /fmm shop 中列出 |
shopPrice | 否(默认取 shop_config.yml 中的 defaultPrice) | 商店中的 Vault 货币售价 |
Bukkit 配方键为 freeminecraftmodels:prop_recipe_<model_id>,产物始终是模型的纸质放置物品,不是具有指定材质和附魔的自定义手持物品。重新执行 /fmm craftify 会替换文件,并在启用合成时尝试以相同键注册。
FMM 会读取 recipes/ 下的每个 .yml(包括子文件夹),并将它们作为一个目录加载。每个 model_id 只能有一个启用的配方文件。同一 model_id 存在第二个启用的文件,或某个文件有 YAML 语法错误时,/fmm reload 会被拒绝并保留当前配方,同时提示发送者查看控制台。在启动时,同样的问题只会拒绝配方目录:FMM 仍会完成启动,但在你修复该文件并运行 /fmm reload 之前,不会有任何道具配方或家具商店条目。请在控制台中查找 Prop recipe catalog rejected、Duplicate recipe model 或 Cannot prepare prop recipes。
权限
在 plugin.yml 中注册
| 权限 | 默认 | 描述 |
|---|---|---|
freeminecraftmodels.* | OP | 通配符,授予 freeminecraftmodels.admin、freeminecraftmodels.deleteall、freeminecraftmodels.disguise.self、freeminecraftmodels.disguise.others、freeminecraftmodels.bypassregionprotection 和 freeminecraftmodels.pets.admin。这个通配符字符串同时也是 /fmm reload、/fmm stats、/fmm spawn、/fmm itemify、/fmm craftify、/fmm mount、/fmm hitbox visualize、/fmm debug、/fmm packetdebug、/fmm filmic、/fmm boneglide、/fmm location、/fmm setup、/fmm initialize、/fmm recommendedplugins、/fmm downloadall、/fmm downloadallcontent、/fmm updatecontent、/fmm downloadpluginupdate、/fmm applypluginupdate 和 /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 | 跳过 FMM 的道具放置与交互保护查询,包括 preventPropPlacementInProtectedRegions。空闲空间检查仍然有效 |
freeminecraftmodels.menu | true | 可访问 /fmm 可制作物品菜单(所有玩家可用) |
freeminecraftmodels.shop | true | 可访问 /fmm shop(商店启用时所有玩家可用) |
指定目标玩家的 disguise 和 undisguise 命令同时需要 freeminecraftmodels.disguise.self 和 freeminecraftmodels.disguise.others。disguiselist 只需要 .others。
宠物权限
| 权限 | 默认 | 描述 |
|---|---|---|
freeminecraftmodels.pets | true | 可访问 /fmm pets(所有玩家均可使用) |
freeminecraftmodels.pets.admin | OP | 通配符的子权限;可访问 /fmm petadmin 和 /fmm petmigrate |
由 MagmaCore 注册
| 权限 | 默认 | 描述 |
|---|---|---|
nightbreak.login | OP | 共享的 /nightbreaklogin 与 /nightbreaklogout 命令需要它。每台服务器由最先加载的那个 Nightbreak 插件注册一次 |
nightbreak.plugins | OP | 共享的 /nightbreak plugins 命令需要它。每台服务器由最先加载的那个 Nightbreak 插件注册一次 |
执行者说明
initialize、setup、spawn、itemify、mount、giveitem、craftify、hitbox visualize、location、admin、shop、pets、petadmin和petmigrate仅限玩家执行。/freeminecraftmodelschangelog同样仅限玩家。reload、stats、recommendedplugins、downloadall、downloadallcontent、updatecontent、downloadpluginupdate、applypluginupdate、forcereinstallcontent、packetdebug、debug、filmic、boneglide、deleteall、/nightbreaklogin、/nightbreaklogout和/nightbreak plugins同时接受玩家与控制台执行(deleteall的半径参数仅玩家可用)。disguise与undisguise接受目标玩家参数,只要提供目标即可从控制台执行。version无任何权限限制,任何人(玩家或控制台)都可执行。/fmm initialize为拥有freeminecraftmodels.*权限的玩家打开首次设置菜单。日常内容管理使用/fmm setup。