- Fixed server crashes.
- Fixed REI compatibility.
Changes
- Updated to 1.21.5.
- Wandering Traders will now trade 12 of each of their seed/rice items.
- Wandering Traders no longer trade Onions.
- None of the root vegetables are traded by Wandering Traders.
- Added Pale Oak Cabinet.
- Texture is a placeholder made by MerchantCalico, the texture will be replaced as soon as vectorwing updates to a version with the wood type.
Changes
- Updated for parity with Farmer's Delight 1.2.8.
- Updated inventory code to be more similar to NeoForge's code. Fixing many potential duplication bugs in the process.
Bugfixes
- Fixed error log when starting server due to a missing client class. #174
- Fixed Comparators not updating when taking items from or cutting with a Cutting Board.
- Added missing item tag translations.
- Updated for parity with Farmer's Delight 1.2.8.
Bugfixes
- Fixed packet decode failure upon attempting to join servers without Farmer's Delight Refabricated. #56
- Fixed a classloading issue preventing the ItemLike (Mojmap) interface from having mixins applied. #77
- Fixed Torchflower cutting recipe incorrectly using a
forge
tag rather than ac
tag. #160 - Fixed error log when starting server due to a missing client class. #174
fixed another quirk with inventories improved farmland detection for crops
- fixed an issue in which inventories that wanted to drop items were not clearing their content properly
- fixed the food duplication miracle
- fixed an issue with inventories
- fixed an inventory duplication bug
- fixed some loot tables
- Fixed Apple Pie, Candle Cake, Chocolate Pie and Sweet Berry Cheesecake not dropping slices when broken with a knife.
- Fixed leather droppers not dropping more leather when killed with a knife.
- Fixed Cutting Board's Hopper interactions not updating the displayed item.
- Fixed a dupe bug involving the Cutting Board's Hopper interactions,
- Fixed Cutting Boards allowing more than 1 item at a time.
Major Changes
- Removed Porting Lib as a dependency.
- Parts of the mod have been rewritten because of this.
- The mod can now run on base 1.21, for all the retrogrades out there. Now please stop asking.
Datapack Changes
- Due to Porting Lib's removal,
portinglib:can_item_perform_ability
no longer exists, and has been replaced withfarmersdelight:can_item_perform_ability
.- The options are also more limited for this. Feel free to PR more options if you need them.
- Added a new entity tag for Leather Dropping mobs.
farmersdelight:drops_leather
. Used with knives to make sure that leather dropping entities will drop an extra leather upon death. - Added new mob effect tags for whether a mob effect is ignored by Milk Bottles and Hot Cocoa. These tags are:
farmersdelight:ignored/hot_cocoa
farmersdelight:ignored/milk_bottle
- Hot Cocoa still follows the harmful effect ruling, Beneficial/Neutral effect clearing cannot be enabled for Hot Cocoa through these tags.
Bugfixes
- Fixed packet decode failure upon attempting to join servers without Farmer's Delight Refabricated. #56
- Fixed a classloading issue preventing the ItemLike (Mojmap) interface from having mixins applied. #77
- Fixed Pumpkins being cut into slices when the Knife used to break the block has Silk Touch. #141
- Fixed recipes sometimes being incorrect due to the game not accounting for individual stacks in the recipe check. #150
- Fixed the inability to cut cake when using a knife on a cake.
- Fixed event based block and entity interactions being processed whilst the player is in spectator.
Addon Migration Primer (2.x.x -> 3.x.x)
If you have an addon, you will need to update if you utilise any Porting Lib systems in your mod.
I'd suggest launching your game with Farmer's Delight 3.0.0, and seeing if your mod crashes or has inconsistent behaviour if you're unsure about whether you've used Porting Lib content or not.
Packages
A few classes have had their packages changed around to separate our custom additions from the base Farmer's Delight where we can.
These classes can be found inside vectorwing.farmersdelight.refabricated
.
Configs
Referenced config values should remain the same, as Jukaar's config format is very close to the Porting Lib/Forge syntax. If you were using Porting Lib as a config, you're best to go out and find a new config solution. There's like a million of them, write your own like I did (this post was made by Pug) if you're feeling cautious.
Registration
Registration has been refactored a little bit, but types are the same as before. Some class definitions may have moved around to suit classloading needs, but that's a case by case scenario.
Item Abilities
Porting Lib's Item Abilities have been replaced with an enum that references specific Minecraft or Conventional item tags. You should probably use tag checks for loot conditions and recipes if you aren't us, simply because we hardcode our Item Abilities to only be what we personally need.
Loot Modifications
Porting Lib's Forge inspired Loot Modification system has been replaced with native Fabric API loot modifications.
The main difference being that Fabric's system directly modifies the loot table on load, rather than applying to the returned items from a loot table each time.
https://docs.fabricmc.net/develop/events#listening-to-loot-table-loading
Inventories
We have made our own inventory that hooks into Fabric's Transfer API to replace Porting Lib's inventory code.
Some of the classes and renames made to be closer to NeoForge's naming for parity are...
SlottedStackStorage
->ItemHandler
. A basic interface for item inventories, extends Fabric's SlottedStorage.SlotItemHandler
->ItemHandlerSlot
. ASlot
(Mojmap) implementation for a singleItemHandler
slot.ItemStackHandlerContainer
->ItemStackHandler
. - An item inventory implementation.ItemStackHandlerSlot
->ItemStackStorage
. - An single item inside anItemStackHandler
.RecipeWrapper
- A wrapper forItemStackHandler
. for recipe checks. Moved fromcommon.utility
to therefabricated
package.
All of these classes are contained inside the vectorwing.farmersdelight.refabricated.inventory
package.
Due to how Fabric's Transfer API works, you are unable to directly modify an obtained ItemStack from ItemHandler#getStackInSlot
without running ItemHandler#commitModifiedStacks
after you have made your changes.
Closing Notes
If you're an addon dev and are struggling to update your mod, please reach out to me through the Greenhouse Modding Discord - Pug