Spice of Life: Classic Edition [1.20.1]СкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (58)
release
SoL:Classic_v2.13 (Fabric)
2.137 сент. 2026 г.198Minecraft: 1.20.1fabric
Что нового
### Added
- Added Chinese (zh_cn) localization. Thanks to [@pyf6trb](https://github.com/pyf6trb) (#53).
- Added a `basketBlacklist` config 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 from `foodBlacklist`, which excludes items from decay tracking. Requested in #52.
### Changed
- Food history now caches per-item consumption counts in a `Map<Item, Integer>` alongside the `ItemStack` queue, so `countFoodEaten()` (used by the long-term decay calculation) is O(1) instead of scanning the whole history. Thanks to [@DaPlumer](https://github.com/DaPlumer) (#55).
### Fixed
- Cake now loses hunger recovery like any other food. `CakeBlock.eat()` calls `FoodData.eat(int, float)` directly instead of going through `Player.eat(Level, ItemStack)`, so the `PlayerMixin` redirect never fired and eating cake was neither decayed nor recorded in the food history. Added `CakeBlockMixin` on both platforms. Cake is the only vanilla food block that takes this path — candle cakes go through the same `CakeBlock.eat()`. Reported in #3.
- Fixed a `NullPointerException` in `FoodEventHandlerForge.countFoodEatenRecent()` that dereferenced `.consumedItems` before the null check. Running `/resetfoodhistory` removes 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, calling `setFood()` with the component's own history would `clear()` it and wipe the player's food history.
- `FoodHistory` no longer throws `IllegalStateException` when the queue and the count cache disagree. It now logs the inconsistency and rebuilds the cache instead of crashing inside `Player.eat()`.
- Fixed `FoodHistory.toString()` using the `%b` format specifier, which printed `true` instead of the actual contents in diagnostic logs.
- Fixed a `NullPointerException` in the Fabric config loader when an array key is missing from an existing `solclassic-server.toml`. `TomlTable#getArray` returns `null` for 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.
---
release
SoL:Classic_v2.13 (Forge)
2.137 сент. 2026 г.973Minecraft: 1.20.1forge, neoforge
Что нового
### Added
- Added Chinese (zh_cn) localization. Thanks to [@pyf6trb](https://github.com/pyf6trb) (#53).
- Added a `basketBlacklist` config 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 from `foodBlacklist`, which excludes items from decay tracking. Requested in #52.
### Changed
- Food history now caches per-item consumption counts in a `Map<Item, Integer>` alongside the `ItemStack` queue, so `countFoodEaten()` (used by the long-term decay calculation) is O(1) instead of scanning the whole history. Thanks to [@DaPlumer](https://github.com/DaPlumer) (#55).
### Fixed
- Cake now loses hunger recovery like any other food. `CakeBlock.eat()` calls `FoodData.eat(int, float)` directly instead of going through `Player.eat(Level, ItemStack)`, so the `PlayerMixin` redirect never fired and eating cake was neither decayed nor recorded in the food history. Added `CakeBlockMixin` on both platforms. Cake is the only vanilla food block that takes this path — candle cakes go through the same `CakeBlock.eat()`. Reported in #3.
- Fixed a `NullPointerException` in `FoodEventHandlerForge.countFoodEatenRecent()` that dereferenced `.consumedItems` before the null check. Running `/resetfoodhistory` removes 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, calling `setFood()` with the component's own history would `clear()` it and wipe the player's food history.
- `FoodHistory` no longer throws `IllegalStateException` when the queue and the count cache disagree. It now logs the inconsistency and rebuilds the cache instead of crashing inside `Player.eat()`.
- Fixed `FoodHistory.toString()` using the `%b` format specifier, which printed `true` instead of the actual contents in diagnostic logs.
- Fixed a `NullPointerException` in the Fabric config loader when an array key is missing from an existing `solclassic-server.toml`. `TomlTable#getArray` returns `null` for 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.
---
release
SoL:Classic_v2.15+1.21.1 (Fabric)
2.15+1.21.17 сент. 2026 г.163Minecraft: 1.21.1fabric
Что нового
### Added
- Ported the `basketBlacklist` setting from the 1.20.1 branch. Food items listed here cannot be put into the Basket or the Wicker Basket, and are skipped by the Wicker Basket's automatic food selection. This is a separate setting from `foodBlacklist`, which excludes items from decay tracking. The check is only applied on the paths that put *new* items in (`FoodSlot.mayPlace()`, `FoodContainer.canPlaceItem()`/`addItem()`/`canAddItem()`), never on `FoodContainer.setItem()`, so items already inside a basket can still be taken out after an item is added to the blacklist. On NeoForge the value is declared with `defineListAllowEmpty` rather than `defineList`, because `defineList` binds a `NON_EMPTY` (>= 1) size range that does not fit a setting whose default is an empty list. Requested in #52.
- Ported the Chinese (`zh_cn`) localization from the 1.20.1 branch.
### Fixed
- Fixed cake not being subject to food decay and not being recorded in the food history. `CakeBlock.eat()` does not go through `Player.eat(Level, ItemStack, FoodProperties)`; it calls `FoodData.eat(int, float)` directly, so `PlayerMixin`'s `@Redirect` never fired. Added `CakeBlockMixin` on both platforms with the shared logic in `CakeEatHandler`. Candle cakes go through the same `CakeBlock.eat()` and are covered as well. Reported in #3.
- Fixed items disappearing from a Basket after roughly three stacks were inserted. The menu was opened with the vanilla `MenuType.GENERIC_9x1`, so the client built a vanilla `ChestMenu` + `SimpleContainer` with no food validation while the server used `FoodChestMenu` + `FoodContainer` + `FoodSlot`. The mismatch desynced slot contents. Registered a custom `MenuType` (`solclassic:food_chest`) via Architectury's `MenuRegistry.ofExtended()` so both sides build the same menu, and added the missing `FoodContainer.canPlaceItem()` override. Reported in #51.
### Changed
- Ported the consumption-count cache from the 1.20.1 branch. Food history is now held in a `FoodHistory` object that keeps a `Map<Item, Integer>` counter alongside the queue, making the total-count lookup used by long-term decay O(1) instead of a linear scan of up to 300 entries. `IFoodEventHandler` now passes `FoodHistory` instead of `LinkedList<ItemStack>`.
---
release
SoL:Classic_v2.15+1.21.1 (NeoForge)
2.15+1.21.17 сент. 2026 г.1,8 тыс.Minecraft: 1.21.1neoforge
Что нового
### Added
- Ported the `basketBlacklist` setting from the 1.20.1 branch. Food items listed here cannot be put into the Basket or the Wicker Basket, and are skipped by the Wicker Basket's automatic food selection. This is a separate setting from `foodBlacklist`, which excludes items from decay tracking. The check is only applied on the paths that put *new* items in (`FoodSlot.mayPlace()`, `FoodContainer.canPlaceItem()`/`addItem()`/`canAddItem()`), never on `FoodContainer.setItem()`, so items already inside a basket can still be taken out after an item is added to the blacklist. On NeoForge the value is declared with `defineListAllowEmpty` rather than `defineList`, because `defineList` binds a `NON_EMPTY` (>= 1) size range that does not fit a setting whose default is an empty list. Requested in #52.
- Ported the Chinese (`zh_cn`) localization from the 1.20.1 branch.
### Fixed
- Fixed cake not being subject to food decay and not being recorded in the food history. `CakeBlock.eat()` does not go through `Player.eat(Level, ItemStack, FoodProperties)`; it calls `FoodData.eat(int, float)` directly, so `PlayerMixin`'s `@Redirect` never fired. Added `CakeBlockMixin` on both platforms with the shared logic in `CakeEatHandler`. Candle cakes go through the same `CakeBlock.eat()` and are covered as well. Reported in #3.
- Fixed items disappearing from a Basket after roughly three stacks were inserted. The menu was opened with the vanilla `MenuType.GENERIC_9x1`, so the client built a vanilla `ChestMenu` + `SimpleContainer` with no food validation while the server used `FoodChestMenu` + `FoodContainer` + `FoodSlot`. The mismatch desynced slot contents. Registered a custom `MenuType` (`solclassic:food_chest`) via Architectury's `MenuRegistry.ofExtended()` so both sides build the same menu, and added the missing `FoodContainer.canPlaceItem()` override. Reported in #51.
### Changed
- Ported the consumption-count cache from the 1.20.1 branch. Food history is now held in a `FoodHistory` object that keeps a `Map<Item, Integer>` counter alongside the queue, making the total-count lookup used by long-term decay O(1) instead of a linear scan of up to 300 entries. `IFoodEventHandler` now passes `FoodHistory` instead of `LinkedList<ItemStack>`.
---
release
SoL:Classic_v2.12+1.21.1 (Fabric)
2.12+1.21.130 апр. 2026 г.500Minecraft: 1.21.1fabric
Что нового
### Fixed
- Fixed Fabric server config not taking effect on dedicated servers. The config path was resolved as a relative path, which could point to a different location depending on the working directory of the startup script. Now resolved to an absolute path via `toAbsolutePath()`. Config file location remains `<world>/serverconfig/solclassic-server.toml`.
- Fixed potential NullPointerException in config array parsing (`shortFoodDecayModifiers`, `foodBlacklist`) that could silently prevent all config values from being applied.
- Config values are now applied in the correct order: scalar values are written before array values, so scalar settings are always applied even if array parsing fails.
---
release
SoL:Classic_v2.12+1.21.1 (NeoForge)
2.12+1.21.130 апр. 2026 г.3,8 тыс.Minecraft: 1.21.1neoforge
Что нового
### Fixed
- Fixed Fabric server config not taking effect on dedicated servers. The config path was resolved as a relative path, which could point to a different location depending on the working directory of the startup script. Now resolved to an absolute path via `toAbsolutePath()`. Config file location remains `<world>/serverconfig/solclassic-server.toml`.
- Fixed potential NullPointerException in config array parsing (`shortFoodDecayModifiers`, `foodBlacklist`) that could silently prevent all config values from being applied.
- Config values are now applied in the correct order: scalar values are written before array values, so scalar settings are always applied even if array parsing fails.
---
release
SoL:Classic_v2.11+1.21.1 (Fabric)
2.11+1.21.130 апр. 2026 г.42Minecraft: 1.21.1fabric
Что нового
### Fixed
- Fixed a crash on dedicated Fabric servers caused by `NetworkManager.registerS2C()` being annotated `@Environment(EnvType.CLIENT)`. Following Architectury 13.0.8's documented pattern: server-side init now calls `registerS2CPayloadType` (type registration only), while client-side init continues to call `registerReceiver` with the packet handler.
---
release
SoL:Classic_v2.11+1.21.1 (NeoForge)
2.11+1.21.130 апр. 2026 г.118Minecraft: 1.21.1neoforge
Что нового
### Fixed
- Fixed a crash on dedicated Fabric servers caused by `NetworkManager.registerS2C()` being annotated `@Environment(EnvType.CLIENT)`. Following Architectury 13.0.8's documented pattern: server-side init now calls `registerS2CPayloadType` (type registration only), while client-side init continues to call `registerReceiver` with the packet handler.
---
release
SoL:Classic_v2.11 (Fabric)
2.1119 мар. 2026 г.733Minecraft: 1.20.1fabric
Что нового
### Fixed
- Fixed Wicker Basket / Lunch Basket slot desync bug where placing food items would cause other items to be displaced or lost after approximately 3 items. The root cause was using vanilla `MenuType.GENERIC_9x1`, which caused the client to create a vanilla `ChestMenu` + `SimpleContainer` (no food validation) while the server used `FoodChestMenu` + `FoodContainer` + `FoodSlot` (with food validation). This client-server mismatch led to slot synchronization failures during item placement. Registered a custom `MenuType` via Architectury's `MenuRegistry.ofExtended()` so both client and server use `FoodChestMenu` with consistent `FoodSlot` + `FoodContainer` validation.
- Added `canPlaceItem()` override to `FoodContainer` as an additional safety net for food-only validation at the container level (defense-in-depth alongside `FoodSlot.mayPlace()`).
---
release
SoL:Classic_v2.11 (Forge)
2.1119 мар. 2026 г.3,9 тыс.Minecraft: 1.20.1forge, neoforge
Что нового
### Fixed
- Fixed Wicker Basket / Lunch Basket slot desync bug where placing food items would cause other items to be displaced or lost after approximately 3 items. The root cause was using vanilla `MenuType.GENERIC_9x1`, which caused the client to create a vanilla `ChestMenu` + `SimpleContainer` (no food validation) while the server used `FoodChestMenu` + `FoodContainer` + `FoodSlot` (with food validation). This client-server mismatch led to slot synchronization failures during item placement. Registered a custom `MenuType` via Architectury's `MenuRegistry.ofExtended()` so both client and server use `FoodChestMenu` with consistent `FoodSlot` + `FoodContainer` validation.
- Added `canPlaceItem()` override to `FoodContainer` as an additional safety net for food-only validation at the container level (defense-in-depth alongside `FoodSlot.mayPlace()`).
---
release
SoL:Classic_v2.10 (Fabric)
2.1014 мар. 2026 г.1,4 тыс.Minecraft: 1.20.1fabric
Что нового
### Added
- Added compatibility with Sophisticated Backpacks' Feeding Upgrade (auto-feeding feature). SoL Classic now directly integrates with SB's FeedingUpgradeWrapper via conditional Mixin.
- Food with 0% recovery rate (fully decayed) is now skipped by SB's auto-feeding, preventing wasteful consumption.
- When a Wicker Basket is in an SB backpack, the Feeding Upgrade will prioritize eating from the Wicker Basket, selecting the most nutritious food inside (with decay considered).
- SB compatibility Mixin is conditionally loaded only when SophisticatedCore is present on the classpath, preventing crashes when SB is not installed.
---
release
SoL:Classic_v2.10 (Forge)
2.1014 мар. 2026 г.124Minecraft: 1.20.1forge, neoforge
Что нового
### Added
- Added compatibility with Sophisticated Backpacks' Feeding Upgrade (auto-feeding feature). SoL Classic now directly integrates with SB's FeedingUpgradeWrapper via conditional Mixin.
- Food with 0% recovery rate (fully decayed) is now skipped by SB's auto-feeding, preventing wasteful consumption.
- When a Wicker Basket is in an SB backpack, the Feeding Upgrade will prioritize eating from the Wicker Basket, selecting the most nutritious food inside (with decay considered).
- SB compatibility Mixin is conditionally loaded only when SophisticatedCore is present on the classpath, preventing crashes when SB is not installed.
---
release
SoL:Classic_v2.10+1.21.1 (Fabric)
2.10+1.21.114 мар. 2026 г.194Minecraft: 1.21.1fabric
Что нового
### Added
- Added Sophisticated Backpacks (SophisticatedCore) Feeding Upgrade compatibility. SoL Classic's food decay is now correctly applied when SB's Feeding Upgrade auto-feeds the player.
- Foods with 0% decay recovery are excluded from Feeding Upgrade's auto-feeding.
- Wicker Basket in SB backpacks now correctly feeds from the basket's inventory instead of being consumed as an item.
- Conditional Mixin loading via `SBCompatMixinPlugin`: SB compatibility mixins are only loaded when SophisticatedCore is present, preventing crashes when SB is not installed.
---
release
SoL:Classic_v2.10+1.21.1 (NeoForge)
2.10+1.21.114 мар. 2026 г.610Minecraft: 1.21.1neoforge
Что нового
### Added
- Added Sophisticated Backpacks (SophisticatedCore) Feeding Upgrade compatibility. SoL Classic's food decay is now correctly applied when SB's Feeding Upgrade auto-feeds the player.
- Foods with 0% decay recovery are excluded from Feeding Upgrade's auto-feeding.
- Wicker Basket in SB backpacks now correctly feeds from the basket's inventory instead of being consumed as an item.
- Conditional Mixin loading via `SBCompatMixinPlugin`: SB compatibility mixins are only loaded when SophisticatedCore is present, preventing crashes when SB is not installed.
---
release
SoL:Classic_v2.09 (Fabric)
2.0913 мар. 2026 г.32Minecraft: 1.20.1fabric
Что нового
### Fixed
- Fixed basket (Lunch Basket) slot bug where placing a 4th item would overwrite the item in the first slot. When replacing Slots with FoodSlot/LockedSlot via `this.slots.set()` in FoodChestMenu, the `slot.index` field (menu slot position ID) was not set, defaulting to 0 for all replaced slots. This caused incorrect slot identification during item placement. Reported on Mohist (Bukkit+Forge hybrid) servers.
---
release
SoL:Classic_v2.09 (Forge)
2.0913 мар. 2026 г.61Minecraft: 1.20.1forge
Что нового
### Fixed
- Fixed basket (Lunch Basket) slot bug where placing a 4th item would overwrite the item in the first slot. When replacing Slots with FoodSlot/LockedSlot via `this.slots.set()` in FoodChestMenu, the `slot.index` field (menu slot position ID) was not set, defaulting to 0 for all replaced slots. This caused incorrect slot identification during item placement. Reported on Mohist (Bukkit+Forge hybrid) servers.
---
release
SoL:Classic_v2.09+1.21.1 (Fabric)
2.09+1.21.113 мар. 2026 г.33Minecraft: 1.21.1fabric
Что нового
### Fixed
- Fixed a bug in FoodChestMenu where replacing slots via `this.slots.set()` did not set `Slot.index` (menu slot position ID), leaving it at the default value of 0. This caused slot identification to break, resulting in items in slot 0 being overwritten when inserting a 4th item into the basket, particularly in Bukkit bridge environments such as Mohist.
---
release
SoL:Classic_v2.09+1.21.1 (NeoForge)
2.09+1.21.113 мар. 2026 г.38Minecraft: 1.21.1neoforge
Что нового
### Fixed
- Fixed a bug in FoodChestMenu where replacing slots via `this.slots.set()` did not set `Slot.index` (menu slot position ID), leaving it at the default value of 0. This caused slot identification to break, resulting in items in slot 0 being overwritten when inserting a 4th item into the basket, particularly in Bukkit bridge environments such as Mohist.
---
release
SoL:Classic_v2.08+1.21.1 (Fabric)
2.08+1.21.112 мар. 2026 г.26Minecraft: 1.21.1fabric
Что нового
### Added
- Added `enableTooltip` config option (default: true): controls whether the food decay tooltip ("Hunger recovery reduced by X%") is shown on food items.
- Added `enableItemDescription` config option (default: true): controls whether description tooltips are shown on mod items (Wicker Basket, Food History Book).
---
release
SoL:Classic_v2.08+1.21.1 (NeoForge)
2.08+1.21.112 мар. 2026 г.26Minecraft: 1.21.1neoforge
Что нового
### Added
- Added `enableTooltip` config option (default: true): controls whether the food decay tooltip ("Hunger recovery reduced by X%") is shown on food items.
- Added `enableItemDescription` config option (default: true): controls whether description tooltips are shown on mod items (Wicker Basket, Food History Book).
---
release
SoL:Classic_v2.08 (Fabric)
2.0811 мар. 2026 г.33Minecraft: 1.20.1fabric
Что нового
### Added
- Added `enableTooltip` config option to toggle the food decay tooltip on food items. When set to false, the decay percentage tooltip will not be displayed. Default is true.
- Added `enableItemDescription` config option to toggle the description tooltip on mod items (Wicker Basket, Food History Book, etc.). When set to false, item descriptions will not be displayed. Default is true.
---
release
SoL:Classic_v2.08 (Forge)
2.0811 мар. 2026 г.73Minecraft: 1.20.1forge
Что нового
### Added
- Added `enableTooltip` config option to toggle the food decay tooltip on food items. When set to false, the decay percentage tooltip will not be displayed. Default is true.
- Added `enableItemDescription` config option to toggle the description tooltip on mod items (Wicker Basket, Food History Book, etc.). When set to false, item descriptions will not be displayed. Default is true.
---
release
SoL:Classic_v2.08+1.21.1 (Fabric)
2.08+1.21.111 мар. 2026 г.22Minecraft: 1.21.1fabric
Что нового
### Added
- Added `enableTooltip` config option (default: true): controls whether the food decay tooltip ("Hunger recovery reduced by X%") is shown on food items.
- Added `enableItemDescription` config option (default: true): controls whether description tooltips are shown on mod items (Wicker Basket, Food History Book).
---
release
SoL:Classic_v2.08+1.21.1 (NeoForge)
2.08+1.21.111 мар. 2026 г.35Minecraft: 1.21.1neoforge
Что нового
### Added
- Added `enableTooltip` config option (default: true): controls whether the food decay tooltip ("Hunger recovery reduced by X%") is shown on food items.
- Added `enableItemDescription` config option (default: true): controls whether description tooltips are shown on mod items (Wicker Basket, Food History Book).
---
release
SoL:Classic_v2.07 (Fabric)
2.079 мар. 2026 г.31Minecraft: 1.20.1fabric
Что нового
### Added
- Added compatibility with Quality Food mod. SoL Classic's food decay now correctly applies to quality-modified nutrition values instead of base values. Food history treats items of different quality as the same food.
### Fixed
- Fixed dedicated server crash caused by FoodHistoryBookItem directly referencing client-only classes (Screen, Minecraft). Replaced client references with a Consumer<Player> callback pattern, registering the screen opener only on the client side via ClientTooltipHandler.init().
---
release
SoL:Classic_v2.07 (Forge)
2.079 мар. 2026 г.52Minecraft: 1.20.1forge
Что нового
### Added
- Added compatibility with Quality Food mod. SoL Classic's food decay now correctly applies to quality-modified nutrition values instead of base values. Food history treats items of different quality as the same food.
### Fixed
- Fixed dedicated server crash caused by FoodHistoryBookItem directly referencing client-only classes (Screen, Minecraft). Replaced client references with a Consumer<Player> callback pattern, registering the screen opener only on the client side via ClientTooltipHandler.init().
---
release
SoL:Classic_v2.07+1.21.1 (Fabric)
2.07+1.21.19 мар. 2026 г.32Minecraft: 1.21.1fabric
Что нового
### Fixed
- Fixed dedicated server crash caused by FoodHistoryBookItem importing client-only classes (FoodHistoryBookScreen, Minecraft). Refactored to use a Consumer<Player> callback pattern, with the screen opener registered from ClientTooltipHandler.init() on the client side only.
---
release
SoL:Classic_v2.07+1.21.1 (NeoForge)
2.07+1.21.19 мар. 2026 г.33Minecraft: 1.21.1neoforge
Что нового
### Fixed
- Fixed dedicated server crash caused by FoodHistoryBookItem importing client-only classes (FoodHistoryBookScreen, Minecraft). Refactored to use a Consumer<Player> callback pattern, with the screen opener registered from ClientTooltipHandler.init() on the client side only.
---
release
SoL:Classic_v2.06 (Fabric)
2.068 мар. 2026 г.30Minecraft: 1.20.1fabric
Что нового
### Added
- Added compatibility with Quality Food mod. SoL Classic's food decay now correctly applies to quality-modified nutrition values instead of base values. Food history treats items of different quality as the same food.
---
release
SoL:Classic_v2.06 (Forge)
2.068 мар. 2026 г.72Minecraft: 1.20.1forge
Что нового
### Added
- Added compatibility with Quality Food mod. SoL Classic's food decay now correctly applies to quality-modified nutrition values instead of base values. Food history treats items of different quality as the same food.
---
release
SoL:Classic_v2.06+1.21.1 (Fabric)
2.06+1.21.18 мар. 2026 г.23Minecraft: 1.21.1fabric
Что нового
### Added
- Added compatibility with Quality Food mod. SoL Classic's food decay now correctly applies to quality-modified nutrition values instead of base values. Food history treats items of different quality as the same food.
---
release
SoL:Classic_v2.06+1.21.1 (NeoForge)
2.06+1.21.18 мар. 2026 г.33Minecraft: 1.21.1neoforge
Что нового
### Added
- Added compatibility with Quality Food mod. SoL Classic's food decay now correctly applies to quality-modified nutrition values instead of base values. Food history treats items of different quality as the same food.
---
release
Spice_of_Life:_Classic_Edition_v2.05+1.21.1 (Fabric)
2.05+1.21.18 мар. 2026 г.21Minecraft: 1.21.1fabric
Что нового
### Added (Fabric)
- Added global default config system for modpack creators (`config/solclassic-defaults.toml`)
- Added `/solclassic generatedefaults [force]` command to export current config as global defaults
- Global defaults are applied to new worlds without requiring a restart
### Changed (NeoForge)
- NeoForge server config is now stored globally in `config/solclassic-server.toml` (shared across all worlds)
- To use per-world settings, copy the config file to `saves/<world_name>/serverconfig/`
- Added descriptive comments to the NeoForge config file explaining per-world override
---
release
Spice_of_Life:_Classic_Edition_v2.05+1.21.1 (NeoForge)
2.05+1.21.18 мар. 2026 г.26Minecraft: 1.21.1neoforge
Что нового
### Added (Fabric)
- Added global default config system for modpack creators (`config/solclassic-defaults.toml`)
- Added `/solclassic generatedefaults [force]` command to export current config as global defaults
- Global defaults are applied to new worlds without requiring a restart
### Changed (NeoForge)
- NeoForge server config is now stored globally in `config/solclassic-server.toml` (shared across all worlds)
- To use per-world settings, copy the config file to `saves/<world_name>/serverconfig/`
- Added descriptive comments to the NeoForge config file explaining per-world override
---
release
SoL:Classic_v2.04 (Fabric)
2.047 мар. 2026 г.27Minecraft: 1.20.1fabric
Что нового
### Added
- Added global default config system for modpack creators. Place `config/solclassic-defaults.toml` to customize default values for new world server configs. Existing world configs are not affected.
- Added `/solclassic generatedefaults` command to export current server config values as a global defaults file. Use `/solclassic generatedefaults force` to overwrite an existing file.
---
release
SoL:Classic_v2.04 (Forge)
2.047 мар. 2026 г.43Minecraft: 1.20.1forge
Что нового
### Added
- Added global default config system for modpack creators. Place `config/solclassic-defaults.toml` to customize default values for new world server configs. Existing world configs are not affected.
- Added `/solclassic generatedefaults` command to export current server config values as a global defaults file. Use `/solclassic generatedefaults force` to overwrite an existing file.
---
release
Spice_of_Life:_Classic_Edition_v2.04+1.21.1 (Fabric)
2.04+1.21.17 мар. 2026 г.40Minecraft: 1.21.1fabric
Что нового
### Added
- Ported to Minecraft 1.21.1 (Fabric + NeoForge)
- NeoForge platform support (replacing Forge)
- Nutritional Balance mod integration for NeoForge 1.21.1
### Changed
- Migrated from Forge to NeoForge (net.minecraftforge → net.neoforged)
- Updated to Architectury API 13.0.8
- Updated to Fabric API 0.116.8+1.21.1
- Updated to Cardinal Components API 6.1.3
- Updated to Java 21
- Migrated NBT data storage to Data Components API (CUSTOM_DATA)
- Migrated Food API (FoodProperties record accessors, DataComponents.FOOD)
- Migrated ItemStack serialization to codec-based format
- Updated Mixin targets for 1.21.1 method signatures
---
release
Spice_of_Life:_Classic_Edition_v2.04+1.21.1 (NeoForge)
2.04+1.21.17 мар. 2026 г.36Minecraft: 1.21.1neoforge
Что нового
### Added
- Ported to Minecraft 1.21.1 (Fabric + NeoForge)
- NeoForge platform support (replacing Forge)
- Nutritional Balance mod integration for NeoForge 1.21.1
### Changed
- Migrated from Forge to NeoForge (net.minecraftforge → net.neoforged)
- Updated to Architectury API 13.0.8
- Updated to Fabric API 0.116.8+1.21.1
- Updated to Cardinal Components API 6.1.3
- Updated to Java 21
- Migrated NBT data storage to Data Components API (CUSTOM_DATA)
- Migrated Food API (FoodProperties record accessors, DataComponents.FOOD)
- Migrated ItemStack serialization to codec-based format
- Updated Mixin targets for 1.21.1 method signatures
---
release
Spice of Life: Classic Edition [1.20.1] 2.04.1
2.04.16 мар. 2026 г.31Minecraft: 1.20.1fabric
release
SoL:Classic_v2.04 (Fabric)
2.046 мар. 2026 г.12Minecraft: 1.20.1fabric
Что нового
### Fixed
- Fixed Wicker Basket being recognized as food by Diet/Nutritional Balance mods, causing incorrect "Carbs" tooltip and nutrient calculations. Removed FoodProperties from Wicker Basket and implemented eat animation via getUseDuration()/getUseAnimation() overrides instead.
- Fixed Wicker Basket tooltip now showing decay rate and nutritional info based on the selected food inside, instead of the basket itself.
- Fixed Diet mod tooltip appearing twice on Wicker Basket.
- Fixed IndexOutOfBoundsException when removing Diet tooltips with blank lines.
- Fixed Wicker Basket only adding Carbs when used with Nutritional Balance mod. Now correctly detects basket usage via player.getUseItem() to properly notify NB of the actual food consumed.
- Fixed race condition between Diet and Nutritional Balance event handlers where Diet's FoodDecayTracker.getAndClear() would consume decay data before NB could read it.
- Fixed Forge config not being applied to SolclassicConfigData. Now syncs on ModConfigEvent.Loading/Reloading.
- Fixed Nutritional Balance tooltip quality values not reflecting SoL Classic's decay modifier.
- Fixed Nutritional Balance tooltip color codes (§) preventing tooltip detection.
---
release
SoL:Classic_v2.04 (Forge)
2.046 мар. 2026 г.74Minecraft: 1.20.1forge
Что нового
### Fixed
- Fixed Wicker Basket being recognized as food by Diet/Nutritional Balance mods, causing incorrect "Carbs" tooltip and nutrient calculations. Removed FoodProperties from Wicker Basket and implemented eat animation via getUseDuration()/getUseAnimation() overrides instead.
- Fixed Wicker Basket tooltip now showing decay rate and nutritional info based on the selected food inside, instead of the basket itself.
- Fixed Diet mod tooltip appearing twice on Wicker Basket.
- Fixed IndexOutOfBoundsException when removing Diet tooltips with blank lines.
- Fixed Wicker Basket only adding Carbs when used with Nutritional Balance mod. Now correctly detects basket usage via player.getUseItem() to properly notify NB of the actual food consumed.
- Fixed race condition between Diet and Nutritional Balance event handlers where Diet's FoodDecayTracker.getAndClear() would consume decay data before NB could read it.
- Fixed Forge config not being applied to SolclassicConfigData. Now syncs on ModConfigEvent.Loading/Reloading.
- Fixed Nutritional Balance tooltip quality values not reflecting SoL Classic's decay modifier.
- Fixed Nutritional Balance tooltip color codes (§) preventing tooltip detection.
---
release
Spice_of_Life:_Classic_Edition_v2.03 (Fabric)
2.035 мар. 2026 г.34Minecraft: 1.20.1fabric
Что нового
### Added
- Added compatibility with Diet mod.
- Added partial compatibility with Nutritional Balance.
- Added a meal record book that allows players to check their meal history.
### Fixed
- Fixed a bug where items with a stack size of 1 were not recorded when eaten.
- Fixed a bug where meal effects did not trigger when food was eaten from a Wicker Basket.
---
release
Spice_of_Life:_Classic_Edition_v2.03 (Forge)
2.035 мар. 2026 г.50Minecraft: 1.20.1forge
Что нового
### Added
- Added compatibility with Diet mod.
- Added partial compatibility with Nutritional Balance.
- Added a meal record book that allows players to check their meal history.
### Fixed
- Fixed a bug where items with a stack size of 1 were not recorded when eaten.
- Fixed a bug where meal effects did not trigger when food was eaten from a Wicker Basket.
---
release
Spice of Life: Classic v2.02 (Fabric)
2.024 мар. 2026 г.24Minecraft: 1.20.1fabric
Что нового
### Added
- Added `guaranteeMinimumNutrition` config option: when set to false (default), food with 0% recovery rate will not restore any hunger. When true, guarantees a minimum of 1 hunger recovery as before.
- Added automatic publishing to CurseForge/Modrinth (mod-publish-plugin)
### Fixed
- Fixed WickerBasket not consuming food items when eating. Forge's `completeUsingItem()` copies the ItemStack before calling `finishUsingItem()`, so NBT changes in the Mixin redirect were applied to the copy instead of the original. Refactored to override `WickerBasketItem.finishUsingItem()` directly.
- Fixed Fabric crash caused by common Mixin config referencing Forge-only class `DisableConflictingMixinPlugin`. Removed from `solclassic.mixins.json` as it is already referenced in `solclassic-forge.mixins.json`.
---
release
Spice of Life: Classic v2.02 (Forge)
2.024 мар. 2026 г.27Minecraft: 1.20.1forge
Что нового
### Added
- Added `guaranteeMinimumNutrition` config option: when set to false (default), food with 0% recovery rate will not restore any hunger. When true, guarantees a minimum of 1 hunger recovery as before.
- Added automatic publishing to CurseForge/Modrinth (mod-publish-plugin)
### Fixed
- Fixed WickerBasket not consuming food items when eating. Forge's `completeUsingItem()` copies the ItemStack before calling `finishUsingItem()`, so NBT changes in the Mixin redirect were applied to the copy instead of the original. Refactored to override `WickerBasketItem.finishUsingItem()` directly.
- Fixed Fabric crash caused by common Mixin config referencing Forge-only class `DisableConflictingMixinPlugin`. Removed from `solclassic.mixins.json` as it is already referenced in `solclassic-forge.mixins.json`.
---
release
Spice of Life: Classic Edition [1.20.1] 2.01
2.0119 мар. 2025 г.17,9 тыс.Minecraft: 1.20.1forge, neoforge
Что нового
Resolved conflict with End's Phantasm.
release
[fabric]Spice of Life: Classic Edition [1.20.1] 2.0
2.017 мар. 2025 г.1,5 тыс.Minecraft: 1.20.1fabric
Что нового
Updated mod: Fabric support and config enhancements (enableWickerbasket and foodBlacklist).
Nutritional Balance is temporarily no longer supported.
KubeJS events are no longer intercepted (maybe).
Some bugs may have reoccurred due to rewritten code. Please let us know in the comments or on github.
release
[Forge]Spice of Life: Classic Edition [1.20.1] 2.0
2.017 мар. 2025 г.226Minecraft: 1.20.1forge, neoforge
Что нового
Updated mod: Fabric support and config enhancements (enableWickerbasket and foodBlacklist).
Nutritional Balance is temporarily no longer supported.
KubeJS events are no longer intercepted (maybe).
Some bugs may have reoccurred due to rewritten code. Please let us know in the comments or on github.
release
Spice of Life: Classic Edition [1.20.1] 1.13
1.136 нояб. 2024 г.2,1 тыс.Minecraft: 1.20.1forge, neoforge
Что нового
Compatible with Nutritional Balance.
release
Spice of Life: Classic Edition [1.20.1] 1.12
1.1224 окт. 2024 г.150Minecraft: 1.20.1forge, neoforge
Что нового
Implemented countermeasure against null point crashes, so that using PizzaDelight does not cause a crash.
release
Spice of Life: Classic Edition [1.20.1] 1.11
1.1116 окт. 2024 г.125Minecraft: 1.20.1forge, neoforge
Что нового
Fixed crash problem when appleskin is not included.
release
Spice of Life: Classic Edition [1.20.1] 1.10
1.1011 окт. 2024 г.125Minecraft: 1.20.1forge, neoforge
Что нового
Fixed a bug that caused items to multiply. Fixed a bug that caused baskets to be placed inside baskets.
release
Spice of Life: Classic Edition [1.20.1] 1.09
1.099 окт. 2024 г.207Minecraft: 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6forge
Что нового
Fixed a mistake in calculating Saturation.
release
Spice of Life: Classic Edition [1.20.1] 1.08
1.086 окт. 2024 г.118Minecraft: 1.20.1forge, neoforge
Что нового
Removed LargeBasket; added WickerBsket. Right click to eat the food inside.
release
Spice of Life: Classic Edition [1.20.1] 1.07
1.075 окт. 2024 г.93Minecraft: 1.20.1forge, neoforge
Что нового
Add items: Basket, Large Basket
This item can hold food items.
release
Spice of Life: Classic Edition [1.20.1] 1.06
1.063 окт. 2024 г.91Minecraft: 1.20.1forge
Что нового
Fixed a serious bug (crash on startup).
Added icons for Catalogue.
Deleted ver1.05 because it had a serious bug.
release
FoodVariations 1.04
1.041 окт. 2024 г.85Minecraft: 1.20.1forge
Что нового
Created command for deleting history. Modified the license.
release
FoodVariations 1.02
1.0228 сент. 2024 г.96Minecraft: 1.20.1forge
Что нового
First version in modrinth.