SoL:Classic_v2.13 (Forge)
Curse Maven Snippet
What's new
Added
- Added Chinese (zh_cn) localization. Thanks to @pyf6trb (#53).
- Added a
basketBlacklistconfig option listing food items that cannot be put into the Basket or the Wicker Basket. Items already inside a basket are never deleted — they can still be taken out, and the Wicker Basket simply skips them when picking the most nutritious food to eat. This is separate fromfoodBlacklist, which excludes items from decay tracking. Requested in #52.
Changed
- Food history now caches per-item consumption counts in a
Map<Item, Integer>alongside theItemStackqueue, socountFoodEaten()(used by the long-term decay calculation) is O(1) instead of scanning the whole history. Thanks to @DaPlumer (#55).
Fixed
- Cake now loses hunger recovery like any other food.
CakeBlock.eat()callsFoodData.eat(int, float)directly instead of going throughPlayer.eat(Level, ItemStack), so thePlayerMixinredirect never fired and eating cake was neither decayed nor recorded in the food history. AddedCakeBlockMixinon both platforms. Cake is the only vanilla food block that takes this path — candle cakes go through the sameCakeBlock.eat(). Reported in #3. - Fixed a
NullPointerExceptioninFoodEventHandlerForge.countFoodEatenRecent()that dereferenced.consumedItemsbefore the null check. Running/resetfoodhistoryremoves the map entry without re-syncing, so the next meal crashed on Forge. - Restored the defensive copy in
FoodHistoryComponentFabric.setFood()and added a self-assignment guard. Without it, callingsetFood()with the component's own history wouldclear()it and wipe the player's food history. FoodHistoryno longer throwsIllegalStateExceptionwhen the queue and the count cache disagree. It now logs the inconsistency and rebuilds the cache instead of crashing insidePlayer.eat().- Fixed
FoodHistory.toString()using the%bformat specifier, which printedtrueinstead of the actual contents in diagnostic logs. - Fixed a
NullPointerExceptionin the Fabric config loader when an array key is missing from an existingsolclassic-server.toml.TomlTable#getArrayreturnsnullfor an absent key, and the previous code called.toList()on it before the null check, so adding any new array key would have broken every existing config file on load.
This mod has no additional files

