BetterFood Compatibility
Runtime Targets
The current repo targets:
- Plugin version:
1.5.0 - Bukkit
api-version:1.21.4 - Spigot API build target:
26.2-R0.1-SNAPSHOT - Java:
21
Commands
The plugin uses:
/betterfood/bf
Player-facing subcommands focus on toggling:
- automatic eating (
toggleEating, or just/betterfoodwith no arguments) - consumption feedback messages on the action bar (
toggleMessage)
Admin subcommands (require betterfood.admin) expose the shared Nightbreak tooling:
setup— opens the in-game setup menurecommendedplugins— shows plugins that pair well with BetterFood. BetterFood currently has no entries in the shared recommendation catalog, so this opens an empty menu and tells you there are no extra recommendations right now (console senders get the same note in chat form)downloadpluginupdate/downloadall— downloads a plugin update if one is availabledownloadallcontent— reports that BetterFood has no content packs
Tab completion is filtered by permission and by what has been typed so far: toggleEating and toggleMessage are only suggested to senders with betterfood.user, and downloadpluginupdate, downloadallcontent, setup, and recommendedplugins only to senders with betterfood.admin. The accepted downloadall alias is intentionally not suggested. The two player toggles are player-only — the explicit toggleEating / toggleMessage subcommands refuse non-player senders with "BetterFood settings can only be changed in-game.", while the bare /betterfood command points console senders to the update command instead. A player without betterfood.user is told they do not have permission to change BetterFood settings. An unrecognised subcommand, or more than one argument, prints the usage line, and that usage line itself is permission-aware: admins see the full list, everyone else only sees the two toggles.
Shared MagmaCore Commands
Because the shared MagmaCore tooling is bundled in, BetterFood also registers these commands at load time — but only if nothing else has claimed them yet, so on a server that already runs another MagmaGuy plugin the first plugin to load owns them and BetterFood logs that it is skipping registration:
/nightbreak plugins— browses the plugin catalog, as a menu in-game and as a chat list from console (nightbreak.plugins, defaultop). The bare/nightbreakonly prints the usage line./nightbreaklogin <token>and/nightbreaklogout— connect and disconnect the shared Nightbreak account token (nightbreak.login, defaultop)/logify— uploads the current server log to mclo.gs (logify.*, defaultop)/betterfoodchangelog [dismiss|disable]— shows unread BetterFood release notes. This one is namespaced per plugin, so it does not collide; if/betterfoodchangelogis somehow taken it falls back to abetterfood:betterfoodchangelogstyle label.
The changelog command is admin- and player-only: it answers senders without an admin permission (or console) with "This command is only available to plugin administrators in-game." It counts a player as an admin if they are op or hold betterfood.admin or betterfood.*. Admins are also nudged about unread release notes shortly after joining, unless they ran /betterfoodchangelog disable. Read/dismissed state is stored per player in plugins/BetterFood/nightbreak-changelogs.yml.
See Nightbreak Tokens, Nightbreak Setup, and Changelog Notifications for the shared flow.
Permissions
betterfood.user(defaulttrue) — gates the auto-eat listener and the player toggles.betterfood.admin(defaultop) — gates the plugin update download, setup menu, and recommended-plugins commands. It also counts as an admin permission for the changelog command.nightbreak.plugins,nightbreak.login, andlogify.*(all defaultop) — registered by the bundled MagmaCore tooling for the shared commands above, not declared in BetterFood'splugin.yml.
Other Integrations
- bStats metrics are enabled (plugin id
4557) — disable globally via the bStats configuration if you want to opt out. - BetterFood now ships the shared MagmaCore tooling. It generates a
config.ymlwith thenightbreak.autoDownloadPluginUpdatestoggle (defaultfalse) — that is the only key BetterFood itself puts inconfig.yml— and checksnightbreak.iofor a newer release a few minutes after boot (the delay is staggered per plugin so several MagmaGuy plugins do not all call out at once), then about once an hour. Results are only logged when they change, so the console is not re-spammed every hour. BetterFood passes no SpigotMC resource ID and its catalog entry has none either, so there is no SpigotMC version fallback. - Operators who join while an update is pending get a chat notice with the download page link, a few seconds after logging in. It is sent on every join for as long as the installed version is behind.
- The account token lives outside the plugin folder, in the shared
plugins/MagmaCore/nightbreak.yml, so linking once covers every MagmaGuy plugin on the server. - No external plugin dependencies; the food logic listens only to vanilla
FoodLevelChangeEvent.