Repository navigation
0.2.1
0.2.1
MedievalCookery adds craftable foods to a survival server. Each food is defined in recipes.yml, crafted at a crafting table, and shows up as a textured head. Players eat it by right-clicking. Eating takes a short moment, restores hunger, and can leave an item behind afterwards. It suits medieval, roleplay or survival servers that want more food variety without client mods. The plugin has no commands or permissions, so players use it purely through crafting and eating.
What it adds
-
Commands: none. Permissions: none.
-
Custom food recipes, read from
recipes.ymlin the plugin's data folder. Recipes with problems are skipped and logged, and the remaining recipes still load. This applies to a recipe whose id is not a valid Bukkit recipe key, one that uses a block-only material in its ingredients orafterEatItem, and one with a non-positive or non-numerichungerDecrease. In the last case the default is used. -
usage-reporting.enabled(defaulttrue) inconfig.yml. When on, the plugin sends one small event on startup tohttps://trace.danielstephenson.dev. The event holds the plugin name, the event name, the plugin version and a random server ID. Nothing about players, accounts or IP addresses is included. It is sent off the main thread and dropped silently if the server can't be reached. You can turn it off in three ways, and the last two override this setting:- set
enabled: falsehere - set
enabled: falseinplugins/trace/config.ymlto turn it off for every plugin that reports to trace - set the environment variable
TRACE_USAGE_REPORTING=offorDO_NOT_TRACK=1
The console says on every startup whether reporting is on.
- set
-
usage-reporting.endpointandusage-reporting.key: where reports go and which plugin they are attributed to. The key is not a secret. Leaving it empty turns reporting off.
What it writes
plugins/MedievalCookery/config.yml: written on first start if it is missing.plugins/MedievalCookery/recipes.yml: the food recipes, read from the data folder.plugins/trace/config.yml: a server-wide usage-reporting file holding the randomserver-idand anenabledswitch. Whichever plugin that reports to trace starts first writes it.- No database and no player data on disk. Whether a player is in the middle of eating is tracked in memory only.
Requirements
- A Bukkit/Spigot-compatible server with
api-version: 1.18or newer. Minecraft 26.3 is supported. - No hard or soft plugin dependencies.
Since the last prerelease
- Placing a crafted food as a block is now refused, so foods can no longer be put down as player heads (#49).
- If a player quits while eating, the meal is abandoned instead of finishing later (#47).
- If the player's inventory is full, the after-eat item is now dropped at their feet instead of being lost (#44).
- The plugin's recipes are now removed from the server when it is disabled or reloaded (#42).
- Messages now say "an" before food names that start with a vowel (#40).
- A non-numeric
hungerDecreaseis now reported in the console instead of quietly using the default (#37), and a zero or negative value is replaced with the default (#35). - Recipes whose id is not a valid Bukkit recipe key are skipped instead of breaking recipe loading (#33).
- Block-only materials are rejected in recipe ingredients and
afterEatItem(#31). - Minecraft 26.3 is now supported (#27).
- Usage events now carry a random server ID and the plugin version, and the startup notice says so (#24, #26, #20).
- Crafted foods are now identified by a hidden recipe tag instead of their display name. Renaming an item on an anvil no longer turns it into a food, and foods crafted before this change still work (#23).
- Food heads now show their textures on current servers, and the
beet_saladrecipe loads again (#17). - Usage reporting was added, with a notice on every startup, a server-wide opt-out and the environment-variable opt-outs (#12, #14).
recipes.ymlis now read from the data folder the server assigns (#11).- Players can now eat the foods they craft (#10).
- A malformed recipe or an unusual world name no longer stops the plugin from starting (#9).
- Fixed the main class in
plugin.yml, which had stopped the plugin from loading (#3).
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson