跳到主要内容

BetterFood 兼容性

运行时目标

当前仓库目标:

  • 插件版本:1.5.0
  • Bukkit api-version1.21.4
  • Spigot API 构建目标:26.2-R0.1-SNAPSHOT
  • Java:21

命令

插件使用:

  • /betterfood
  • /bf

面向玩家的子命令专注于切换:

  • 自动进食(toggleEating,或不带参数直接执行 /betterfood
  • 操作栏上的食用反馈消息(toggleMessage

管理员子命令(需要 betterfood.admin)提供了共享的 Nightbreak 工具:

  • setup —— 打开游戏内设置菜单
  • recommendedplugins —— 显示与 BetterFood 搭配良好的插件。BetterFood 目前在共享推荐目录中没有任何条目,因此该命令会打开一个空菜单,并告知你当前没有额外的推荐(控制台发送者会以聊天文本收到同样的提示)
  • downloadpluginupdate / downloadall —— 如果有可用更新,则下载插件更新
  • downloadallcontent —— 提示 BetterFood 没有内容包

Tab 补全会按权限以及已输入的内容进行过滤:toggleEatingtoggleMessage 只会提示给拥有 betterfood.user 的发送者,而 downloadpluginupdatedownloadallcontentsetuprecommendedplugins 只会提示给拥有 betterfood.admin 的发送者。虽然 downloadall 别名同样被接受,但有意不作为补全建议。两个玩家开关仅限玩家使用 —— 显式的 toggleEating / toggleMessage 子命令会以 "BetterFood settings can only be changed in-game." 拒绝非玩家发送者,而不带参数的 /betterfood 命令则会引导控制台发送者改用更新命令。没有 betterfood.user 的玩家会被告知其无权更改 BetterFood 设置。无法识别的子命令,或者传入超过一个参数,都会打印用法提示行;而这条用法提示行本身也是按权限区分的:管理员看到完整列表,其他人只看到两个开关。

共享的 MagmaCore 命令

由于内置了共享的 MagmaCore 工具,BetterFood 还会在加载时注册以下命令 —— 但仅限于尚无其他插件占用它们的情况,所以在已经运行了另一个 MagmaGuy 插件的服务器上,最先加载的插件将拥有这些命令,而 BetterFood 会记录它跳过了注册:

  • /nightbreak plugins —— 浏览插件目录,在游戏内以菜单形式呈现,在控制台则以聊天列表形式呈现(nightbreak.plugins,默认 op)。不带参数的 /nightbreak 只会打印用法提示行。
  • /nightbreaklogin <token>/nightbreaklogout —— 连接和断开共享的 Nightbreak 账户令牌(nightbreak.login,默认 op
  • /logify —— 将当前服务器日志上传到 mclo.gs(logify.*,默认 op
  • /betterfoodchangelog [dismiss|disable] —— 显示未读的 BetterFood 版本说明。该命令按插件加上了命名空间,因此不会发生冲突;如果 /betterfoodchangelog 出于某种原因已被占用,它会回退为 betterfood:betterfoodchangelog 之类的标签。

更新日志命令仅限管理员且仅限游戏内使用:对于没有管理员权限的发送者(或控制台),它会回复 "This command is only available to plugin administrators in-game."。如果玩家是 op,或者拥有 betterfood.adminbetterfood.*,就会被视为管理员。管理员在加入服务器后不久也会收到未读版本说明的提醒,除非他们执行过 /betterfoodchangelog disable。已读/已忽略状态会按玩家存储在 plugins/BetterFood/nightbreak-changelogs.yml 中。

共享流程请参阅 Nightbreak 令牌Nightbreak 设置更新日志通知

权限

  • betterfood.user(默认 true)—— 控制自动进食监听器以及玩家开关。
  • betterfood.admin(默认 op)—— 控制插件更新下载、设置菜单和推荐插件命令。它同时也算作更新日志命令的管理员权限。
  • nightbreak.pluginsnightbreak.loginlogify.*(均默认 op)—— 由内置的 MagmaCore 工具为上述共享命令注册,并未在 BetterFood 的 plugin.yml 中声明。

其他集成

  • 已启用 bStats 统计(插件 id 为 4557)—— 如果想退出,可通过 bStats 配置在全局范围内禁用。
  • BetterFood 现已附带共享的 MagmaCore 工具。它会生成一个带有 nightbreak.autoDownloadPluginUpdates 开关(默认 false)的 config.yml —— 这也是 BetterFood 自身写入 config.yml 的唯一键 —— 并在启动数分钟后检查 nightbreak.io 是否有更新版本(该延迟按插件错开,以免多个 MagmaGuy 插件同时对外请求),之后大约每小时检查一次。只有结果发生变化时才会记录日志,因此控制台不会每小时被刷屏。BetterFood 不传递任何 SpigotMC 资源 ID,其目录条目中也没有,因此没有 SpigotMC 版本回退。
  • 在有待处理更新时加入服务器的管理员,会在登录几秒后收到一条带有下载页面链接的聊天提示。只要已安装版本落后,每次加入都会发送。
  • 账户令牌保存在插件文件夹之外的共享文件 plugins/MagmaCore/nightbreak.yml 中,因此只需链接一次即可覆盖服务器上的每个 MagmaGuy 插件。
  • 没有外部插件依赖;食物逻辑仅监听原版的 FoodLevelChangeEvent