跳到主要内容

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 命令可以为任意道具模型创建原版工作台配方。

  1. 运行 /fmm craftify <model_id> 打开配方编辑器界面。
  2. 一个自定义物品栏会打开,内含 3×3 合成格和预先填充好的产物物品。
  3. 按你想要的样式从背包中将材料放入合成格。
  4. 点击产物物品(道具的纸质物品)保存配方。
  5. 保存成功后会播放粒子、音效并显示成功消息。保存或注册失败时,菜单保持打开,材料留在格中,并向玩家显示错误。FMM 会尝试恢复先前注册的配方;若恢复也失败,请检查控制台。
  6. 配方保存到 plugins/FreeMinecraftModels/recipes/<model_id>.yml;是否向 Bukkit 注册取决于 registerCraftingRecipes。
  7. 注册成功且启用了合成时,玩家可以在工作台合成纸质道具物品。
  8. 保存前按 Escape 可取消并归还格中的材料,装不下的部分掉落在脚下。保存则会清空格中整组材料;配方只记录材质种类和排列,不记录堆叠数量或物品元数据。
  9. 对同一模型再次执行 craftify 会替换原配方,并将启用状态和商店字段恢复为默认值,包括默认价格。
  10. 配方在服务器重启和重载后仍会保留。

配方文件格式​

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.adminOP可访问 /fmm admin(管理员内容浏览器)与 /fmm giveitem
freeminecraftmodels.deleteallOP通配符的子权限;可访问 /fmm deleteall
freeminecraftmodels.disguise.selfOP允许 /fmm disguise 与 /fmm undisguise,但只能针对发送者本人
freeminecraftmodels.disguise.othersOP允许 /fmm disguise <model> <player>、/fmm undisguise <player> 与 /fmm disguiselist
freeminecraftmodels.bypassregionprotectionOP跳过 FMM 的道具放置与交互保护查询,包括 preventPropPlacementInProtectedRegions。空闲空间检查仍然有效
freeminecraftmodels.menutrue可访问 /fmm 可制作物品菜单(所有玩家可用)
freeminecraftmodels.shoptrue可访问 /fmm shop(商店启用时所有玩家可用)

指定目标玩家的 disguise 和 undisguise 命令同时需要 freeminecraftmodels.disguise.self 和 freeminecraftmodels.disguise.others。disguiselist 只需要 .others。

宠物权限​

权限默认描述
freeminecraftmodels.petstrue可访问 /fmm pets(所有玩家均可使用)
freeminecraftmodels.pets.adminOP通配符的子权限;可访问 /fmm petadmin 和 /fmm petmigrate

由 MagmaCore 注册​

权限默认描述
nightbreak.loginOP共享的 /nightbreaklogin 与 /nightbreaklogout 命令需要它。每台服务器由最先加载的那个 Nightbreak 插件注册一次
nightbreak.pluginsOP共享的 /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。