[{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"hOfDHA4g","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] v8.1.36","version_number":"8.1.36","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.36-1.20.1] - 2026-10-11\n### Changed\n- Cache method handles in `FabricEventFactory` to reduce event listener invocation overhead\n\n## [v8.1.35-1.20.1] - 2026-10-08\n### Fixed\n- Fix the Mixin refmap being missing from built Forge JARs by disabling Gradle's build cache\n\n## [v8.1.34-1.20.1] - 2026-09-29\n### Fixed\n- Always rebind mutable capability components on retrieval to fix desync issues\n\n## [v8.1.33-1.20.1] - 2025-08-03\n### Fixed\n- Fix a start-up crash on Forge caused by `java.lang.NoSuchMethodException: fuzs.puzzleslib.impl.event.LootTableModifyEvent.<init>()`\n\n## [v8.1.32-1.20.1] - 2025-04-05\n### Changed\n- Add a bunch of safety checks for casting in event invokers\n\n## [v8.1.31-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash from invoking `ContainerMenuHelper::createListBackedContainer`\n\n## [v8.1.30-1.20.1] - 2025-03-09\n### Added\n- Backport `MenuScreensContext`\n- Backport `ContainerMenuHelper`, `ContainerSerializationHelper`, `ListBackedContainer`, `QuickMoveRuleSet`\n\n## [v8.1.29-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash when breaking blocks with some Tinkers' Construct tools\n\n## [v8.1.28-1.20.1] - 2025-03-08\n### Changed\n- Update bundled Puzzles Access Api mod to v20.1.1\n\n## [v8.1.27-1.20.1] - 2025-03-08\n### Added\n- Backport Capability System v3 from 1.20.4 version so that the Cardinal Components mod is no longer required\n### Changed\n- Update Fabric Loom to v1.9\n- Update bundled Puzzles Access Api mod\n- Update a bunch of data providers\n\n## [v8.1.26-1.20.1] - 2025-03-04\n### Changed\n- Include [Mixin Extras](https://github.com/LlamaLad7/MixinExtras) library\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2026-10-11T14:11:03.164145Z","downloads":238381,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"LmyQBHs6","hashes":{"sha512":"232c7c052c32d07bbb9daa02e16eab3ff45d41cf91488dca79e099965cb33983b09554c758c7e0df0516c33a9327880068ceb167ed3f0df60d590588aad55d99","sha1":"d2e79bc84f0f2e75e3212ab236af08528117b213"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/hOfDHA4g/PuzzlesLib-v8.1.36-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.36-1.20.1-Forge.jar","primary":true,"size":1790007,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"lLgT9vDO","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] v8.1.35","version_number":"8.1.35","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.35-1.20.1] - 2026-10-08\n### Fixed\n- Fix the Mixin refmap being missing from built Forge JARs by disabling Gradle's build cache\n\n## [v8.1.34-1.20.1] - 2026-09-29\n### Fixed\n- Always rebind mutable capability components on retrieval to fix desync issues\n\n## [v8.1.33-1.20.1] - 2025-08-03\n### Fixed\n- Fix a start-up crash on Forge caused by `java.lang.NoSuchMethodException: fuzs.puzzleslib.impl.event.LootTableModifyEvent.<init>()`\n\n## [v8.1.32-1.20.1] - 2025-04-05\n### Changed\n- Add a bunch of safety checks for casting in event invokers\n\n## [v8.1.31-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash from invoking `ContainerMenuHelper::createListBackedContainer`\n\n## [v8.1.30-1.20.1] - 2025-03-09\n### Added\n- Backport `MenuScreensContext`\n- Backport `ContainerMenuHelper`, `ContainerSerializationHelper`, `ListBackedContainer`, `QuickMoveRuleSet`\n\n## [v8.1.29-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash when breaking blocks with some Tinkers' Construct tools\n\n## [v8.1.28-1.20.1] - 2025-03-08\n### Changed\n- Update bundled Puzzles Access Api mod to v20.1.1\n\n## [v8.1.27-1.20.1] - 2025-03-08\n### Added\n- Backport Capability System v3 from 1.20.4 version so that the Cardinal Components mod is no longer required\n### Changed\n- Update Fabric Loom to v1.9\n- Update bundled Puzzles Access Api mod\n- Update a bunch of data providers\n\n## [v8.1.26-1.20.1] - 2025-03-04\n### Changed\n- Include [Mixin Extras](https://github.com/LlamaLad7/MixinExtras) library\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2026-10-08T21:17:17.377483Z","downloads":41981,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"hjjOZ36M","hashes":{"sha512":"790b6fbaa8d73eb21bfbd65333969edf32eb6f13cb5d0bfdbf629c4df743f492679c9273616d8369a2726b12afee5d07085c8d942a333d3d9c8fb70018208c76","sha1":"b36eaa4369cb8aadda09156d5d2c9efbec81266d"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/lLgT9vDO/PuzzlesLib-v8.1.35-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.35-1.20.1-Forge.jar","primary":true,"size":1789960,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"mIyVGf3d","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.33","version_number":"v8.1.33-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.33-1.20.1] - 2025-08-03\n### Fixed\n- Fix a start-up crash on Forge caused by `java.lang.NoSuchMethodException: fuzs.puzzleslib.impl.event.LootTableModifyEvent.<init>()`\n\n## [v8.1.32-1.20.1] - 2025-04-05\n### Changed\n- Add a bunch of safety checks for casting in event invokers\n\n## [v8.1.31-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash from invoking `ContainerMenuHelper::createListBackedContainer`\n\n## [v8.1.30-1.20.1] - 2025-03-09\n### Added\n- Backport `MenuScreensContext`\n- Backport `ContainerMenuHelper`, `ContainerSerializationHelper`, `ListBackedContainer`, `QuickMoveRuleSet`\n\n## [v8.1.29-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash when breaking blocks with some Tinkers' Construct tools\n\n## [v8.1.28-1.20.1] - 2025-03-08\n### Changed\n- Update bundled Puzzles Access Api mod to v20.1.1\n\n## [v8.1.27-1.20.1] - 2025-03-08\n### Added\n- Backport Capability System v3 from 1.20.4 version so that the Cardinal Components mod is no longer required\n### Changed\n- Update Fabric Loom to v1.9\n- Update bundled Puzzles Access Api mod\n- Update a bunch of data providers\n\n## [v8.1.26-1.20.1] - 2025-03-04\n### Changed\n- Include [Mixin Extras](https://github.com/LlamaLad7/MixinExtras) library\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2025-08-23T12:27:37.945208Z","downloads":11531276,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"PDUDuwUC","hashes":{"sha1":"285b7c7616971338ccbe0022c9ea0f8ad3036aaf","sha512":"4e0a6243f70a7f99bb631940bfeca49f31b13ec34f338d994fe129f0445e738ffd925e5c440f4e6bf822f9013bb8c2156de6dfcd62741d85c3ca3e8221d86a19"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/mIyVGf3d/PuzzlesLib-v8.1.33-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.33-1.20.1-Forge.jar","primary":true,"size":1342987,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"YFZdsqXl","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.32","version_number":"v8.1.32-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.32-1.20.1] - 2025-04-05\n### Changed\n- Add a bunch of safety checks for casting in event invokers\n\n## [v8.1.31-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash from invoking `ContainerMenuHelper::createListBackedContainer`\n\n## [v8.1.30-1.20.1] - 2025-03-09\n### Added\n- Backport `MenuScreensContext`\n- Backport `ContainerMenuHelper`, `ContainerSerializationHelper`, `ListBackedContainer`, `QuickMoveRuleSet`\n\n## [v8.1.29-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash when breaking blocks with some Tinkers' Construct tools\n\n## [v8.1.28-1.20.1] - 2025-03-08\n### Changed\n- Update bundled Puzzles Access Api mod to v20.1.1\n\n## [v8.1.27-1.20.1] - 2025-03-08\n### Added\n- Backport Capability System v3 from 1.20.4 version so that the Cardinal Components mod is no longer required\n### Changed\n- Update Fabric Loom to v1.9\n- Update bundled Puzzles Access Api mod\n- Update a bunch of data providers\n\n## [v8.1.26-1.20.1] - 2025-03-04\n### Changed\n- Include [Mixin Extras](https://github.com/LlamaLad7/MixinExtras) library\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2025-04-05T11:23:08.540092Z","downloads":5397645,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"smCOLzoX","hashes":{"sha1":"1f24a25582fa6bb2569e32401a232ee90d34cc1a","sha512":"f6420b4884583727ee66d7410ce5ad3ce2a5fd9aed49700ea4bba1fd944a4b63d2d3f15a3d0d64afa2ec1aa261f8ef52b6277712c7d19e6dd31ff9d9360f05ae"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/YFZdsqXl/PuzzlesLib-v8.1.32-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.32-1.20.1-Forge.jar","primary":true,"size":1342204,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"pbMkjqgd","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.29","version_number":"v8.1.29-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.29-1.20.1] - 2025-03-09\n### Fixed\n- Fix crash when breaking blocks with some Tinkers' Construct tools\n\n## [v8.1.28-1.20.1] - 2025-03-08\n### Changed\n- Update bundled Puzzles Access Api mod to v20.1.1\n\n## [v8.1.27-1.20.1] - 2025-03-08\n### Added\n- Backport Capability System v3 from 1.20.4 version so that the Cardinal Components mod is no longer required\n### Changed\n- Update Fabric Loom to v1.9\n- Update bundled Puzzles Access Api mod\n- Update a bunch of data providers\n\n## [v8.1.26-1.20.1] - 2025-03-04\n### Changed\n- Include [Mixin Extras](https://github.com/LlamaLad7/MixinExtras) library\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2025-03-09T12:14:34.855400Z","downloads":412424,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"eSlhczsp","hashes":{"sha1":"6d26b564e8fcc2757e63a735530ed22c345f6279","sha512":"75f2d77e61027b0ea2bd60ca2d5f1b6f7d3e860baad1d8f3955c4d33da7715ece5d028d086e9e34f1faa7c402f1159b9c9285a14e43a29565dea916cda983c53"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/pbMkjqgd/PuzzlesLib-v8.1.29-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.29-1.20.1-Forge.jar","primary":true,"size":1321050,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"L2iYITL0","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.28","version_number":"v8.1.28-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.28-1.20.1] - 2025-03-08\n### Changed\n- Update bundled Puzzles Access Api mod to v20.1.1\n\n## [v8.1.27-1.20.1] - 2025-03-08\n### Added\n- Backport Capability System v3 from 1.20.4 version so that the Cardinal Components mod is no longer required\n### Changed\n- Update Fabric Loom to v1.9\n- Update bundled Puzzles Access Api mod\n- Update a bunch of data providers\n\n## [v8.1.26-1.20.1] - 2025-03-04\n### Changed\n- Include [Mixin Extras](https://github.com/LlamaLad7/MixinExtras) library\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2025-03-08T13:53:37.991738Z","downloads":50164,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"eEC9vtTh","hashes":{"sha1":"480d769fd253ba68d2631e61880392333620384a","sha512":"c7c52670f7084d309876cd0b0a150c386e4636ea3e0f964bb00c35e78bfb6a380d593fb7b89f6b8410084929705421a024f34a3c80888115acdceacfe9029998"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/L2iYITL0/PuzzlesLib-v8.1.28-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.28-1.20.1-Forge.jar","primary":true,"size":1321062,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"2qznQtPr","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.25","version_number":"v8.1.25-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.25-1.20.1] - 2024-11-15\n### Fixed\n- Fix crash due to out of bounds index in `TooltipRenderHelper::createClientComponents`\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-11-15T09:48:17.766181Z","downloads":4150953,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"oTjkyaRy","hashes":{"sha1":"89f824435c168d5156cd6aa9e90281bb72dc335c","sha512":"42660cdb51c088a29cbdfb2006d1662b30a2792b626d7f9b0018515e0bfbaa0b333b745d6998fcd1dd462ce71e47e5a3eb88779dc2b9987382ca212246469b41"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/2qznQtPr/PuzzlesLib-v8.1.25-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.25-1.20.1-Forge.jar","primary":true,"size":1002463,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"CRWEHl5m","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.24","version_number":"v8.1.24-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.24-1.20.1] - 2024-10-04\n### Fixed\n- Fix `DynamicPackResources` failing to generate some resources\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-10-04T20:48:47.934586Z","downloads":580258,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"bCV4y9Ee","hashes":{"sha1":"7a3b81fe360b3aafe03a658bfdc23f14f6011933","sha512":"48d1581151efa084527fbdb8f5fe8721a30e6ed8b8acfdb5636b47af88d3e64620a9be7fc308845a4c9060f24468dc971e538dbe57140f01119fb782ffc0ddd3"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/CRWEHl5m/PuzzlesLib-v8.1.24-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.24-1.20.1-Forge.jar","primary":true,"size":1002383,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"UlSkomup","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.23","version_number":"v8.1.23-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.23-1.20.1] - 2024-09-09\n### Fixed\n- Fix `DynamicPackResources` providing an invalid pack when dynamic data generation fails\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-09-09T17:32:00.597255Z","downloads":457027,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"7erib7Ij","hashes":{"sha512":"87e2a8fae68b9861a62cc9385e4e62231a2cac1bfcc26184c75f83f31fada1cbd713ebb9223218175a103d09e50ecaea1620692ec0754602b1cc571138bb6e61","sha1":"dac5d9a8dbb0df2c98d4b71aa1f5ab04761ac34f"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/UlSkomup/PuzzlesLib-v8.1.23-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.23-1.20.1-Forge.jar","primary":true,"size":1002231,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"WHDG4o9c","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.22","version_number":"v8.1.22-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.22-1.20.1] - 2024-08-26\n### Fixed\n- Fix item model display overrides being able to compute before models have been reloaded on Fabric\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-08-26T19:20:30.708842Z","downloads":95844,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"BwVl8e8u","hashes":{"sha1":"4a4b87f46a8f77cc09128a1a88da5f6dce7c35fc","sha512":"f08c0a8d967a6134ea843e725b9613f525110452e2ba141b0707a3ba85075cbcfa941a7bbf6b223f151ba3d0a01f0f41a8493e2ad830b9c2dec2dd1ca0801365"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/WHDG4o9c/PuzzlesLib-v8.1.22-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.22-1.20.1-Forge.jar","primary":true,"size":1001920,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"z0kHAGDv","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.21","version_number":"v8.1.21-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.21-1.20.1] - 2024-06-26\n### Fixed\n- Fix `PlayerInteractEvents$AttackBlock` not firing for creative players on Fabric\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-06-26T06:24:05.054815Z","downloads":298845,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"k01hqZJ2","hashes":{"sha1":"ed83455065193f0630450830c11ecd738ec231f9","sha512":"e26bbdb489196a092976a0acde3e54f3e540db64e3b0fd3f5b9a7d8dcd8f5fedada6f0889cad95af03fbdcd057d833b4f0a1dfb146b1f33544aa3057ee367506"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/z0kHAGDv/PuzzlesLib-v8.1.21-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.21-1.20.1-Forge.jar","primary":true,"size":1000977,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"FWuIR2cX","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.20","version_number":"v8.1.20-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.20-1.20.1] - 2024-05-26\n### Fixed\n- Attempt to improve handling for missing child reload listeners during resource reloading\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-05-26T11:29:44.526610Z","downloads":197653,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"SBBei4bv","hashes":{"sha512":"ef0284faa01d8f1867b9b92b207d85994e3813fdf5888da33c771622c099370a5c3ee6371c3f57948c18408416cbb4fb3029afcb44b7eac94c5871943bb652ef","sha1":"5eee6d7090a0f6112961073ea881d4c6e30f15f1"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/FWuIR2cX/PuzzlesLib-v8.1.20-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.20-1.20.1-Forge.jar","primary":true,"size":1001058,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"G9liaLgv","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.19","version_number":"v8.1.19-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.19-1.20.1] - 2024-05-09\n### Changed\n- Update mod list printing to better reflect child mod relations (backport from 1.20.4)\n### Fixed\n- Fix crash involving `GatherPotentialSpawnsCallback` when the ModernFix mod is installed on Forge\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-05-09T16:13:08.309691Z","downloads":212894,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"44EBApuD","hashes":{"sha512":"822fef6a38995f2fe4407cccb4787de117e5b738e1d308d1033a0c807916c4a0f3dd7061e9ef48379d932acf8862c8726d915895dea5f36fa82a360fdfd8210b","sha1":"0dc0c0a75607da27edbafcce06e0721a473d726e"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/G9liaLgv/PuzzlesLib-v8.1.19-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.19-1.20.1-Forge.jar","primary":true,"size":1001350,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"1radnytC","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.18","version_number":"v8.1.18-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.18-1.20.1] - 2024-03-20\n### Fixed\n- Fix `LivingDeathCallback` not running for players on Fabric\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-03-20T09:55:48.027699Z","downloads":219738,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"QFEdeaVB","hashes":{"sha1":"35e19738abab0051f3b6a5b8a33b5524c06d85ce","sha512":"74132df8ed1f9b5d2e7556aa26238fd06660f922fcf3e8508788fd97db32aa6ea4ec74b205066243f25b2fba5176217376424c23fa795e8f13b614606cfa68a6"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/1radnytC/PuzzlesLib-v8.1.18-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.18-1.20.1-Forge.jar","primary":true,"size":997101,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"iwDQtahk","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.17","version_number":"v8.1.17-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.17-1.20.1] - 2024-02-16\n### Fixed\n- Fix item model overrides not applying on Forge\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmer's Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-02-16T14:08:14.704289Z","downloads":110157,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"WsIOyZ4g","hashes":{"sha512":"3ab1501fe27e3133e6da1d9db4581ddf303e16782af5ba64f94d83cc5554fb68b5a8313e2133f637fe9da792a917c49fb0e9f5ad62cbe1bfd375b859881aa1d9","sha1":"0db112a3dd58891c58c01a853e16cb8ebdf057d6"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/iwDQtahk/PuzzlesLib-v8.1.17-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.17-1.20.1-Forge.jar","primary":true,"size":997081,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"dGKTOxmu","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.16","version_number":"v8.1.16-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.16-1.20.1] - 2024-02-01\n### Fixed\n- Fix crash when breaking crops with Farmers Delight's sickle\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-02-01T20:46:01.125136Z","downloads":57087,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"PzVKZmaD","hashes":{"sha512":"c64666db8ffe897f3af13d0621b2eb72bc181f5a87534fb77962b3b6346f115c6ff351a16ad656523397f2efd071d1f6385f348ac130803495b3e8e4a859c877","sha1":"62c341b9cc7f1c37b2804d8319d9a6f883807945"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/dGKTOxmu/PuzzlesLib-v8.1.16-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.16-1.20.1-Forge.jar","primary":true,"size":996913,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"jkphsaH8","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.15","version_number":"v8.1.15-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.15-1.20.1] - 2024-01-28\n### Fixed\n- Fix `TagsUpdatedCallback` & `ServerLifecycleEvents.Starting` not running on dedicated servers\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-01-28T08:34:00.151941Z","downloads":7055,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"iBhPqu3x","hashes":{"sha512":"c9a38d5b36d27ffddd2a0ff21b2de1274087e86c6b4e87ccfcfc6ab894393a9786a660548acf81d2d0fb4ea64cc6556c01ac5205804d58d09e71fe512dcc0857","sha1":"771af099b856d5403dfd241cf0495eb6a827f9e6"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/jkphsaH8/PuzzlesLib-v8.1.15-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.15-1.20.1-Forge.jar","primary":true,"size":996875,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"DIhm8o76","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.14","version_number":"v8.1.14-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.14-1.20.1] - 2024-01-24\n### Changed\n- Delay event initialization to avoid being blamed for class loading errors\n### Fixed\n- Fix killing entities with custom damage sources not yielding any experience\n- Fix compatibility with Hephaestus by moving problematic code to the relevant mod, so only that one mod is incompatible until the issues is properly resolved on Hephaestus' end\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-01-24T19:55:49.441162Z","downloads":6294,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"58qQo6Wl","hashes":{"sha512":"3f29a1b411eaa8fa4061e57b650d71fb8db6f6b8b42d97441ae19d3fd2ad3627879feb94b70d6824e064f5b6c572c1fe525559581933945ad2dd329fd5791eed","sha1":"52d7346822222f542a19e10fcc5637345db5f10b"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/DIhm8o76/PuzzlesLib-v8.1.14-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.14-1.20.1-Forge.jar","primary":true,"size":996822,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"nBWJys7K","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.13","version_number":"v8.1.13-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.13-1.20.1] - 2024-01-11\n### Fixed\n- Fixed unloading of a server config placed in a world's `serverconfig` directory failing and causing some processes to hang\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-01-11T15:27:45.329847Z","downloads":34285,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"RrRWYdRi","hashes":{"sha1":"7570336a79de0ce480145bba254f7cba296cf3ab","sha512":"76828d80d82c912ff7c1b0917b61f16e54effef722d09d6d52c77d7d2a54ab5dab0134b2348148667356fa783411025fcbd305e7e01a69f3ea11566f5efa2d7c"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/nBWJys7K/PuzzlesLib-v8.1.13-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.13-1.20.1-Forge.jar","primary":true,"size":995950,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"5ADGGlfq","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.12","version_number":"v8.1.12-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.12-1.20.1] - 2024-01-05\n### Fixed\n- Fixed missing `ToolTypeHelper::isTrident` method\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2024-01-05T17:50:14.480597Z","downloads":4297,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"vEUfMOiY","hashes":{"sha1":"27937aa4d3b19de79503f71d14a71f8dbb512cfd","sha512":"32405927a6d67c8f2d06fd69e90bc04d0ec7f0c84d1114aa9e5f05658da6f6b667e76603fb89950c9e7cd71409ca6a3a3131fda691c55a7f104ce7a7303dc3f1"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/5ADGGlfq/PuzzlesLib-v8.1.12-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.12-1.20.1-Forge.jar","primary":true,"size":995806,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"Wb6w0J7U","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.11","version_number":"v8.1.11-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.11-1.20.1] - 2023-12-03\n### Fixed\n- Fixed anonymous network handlers allowing for duplicate ids\n\n## [v8.1.10-1.20.1] - 2023-12-03\n### Changed\n- Use string contexts for network handler ids instead of numeric\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-12-03T21:22:14.162286Z","downloads":97984,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"Ckmvzj29","hashes":{"sha1":"6076aa4e430cd29be122bebb5c1e213dd20ed87f","sha512":"cbc075912ee4652c26474d89096a7a20c47744aba9bb6e476e6c89c90dd1637bf7468e138e67e97c63194d59d281da7e6ca4c6e67f3a294f8ce7ba6329d00261"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/Wb6w0J7U/PuzzlesLib-v8.1.11-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.11-1.20.1-Forge.jar","primary":true,"size":994246,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"OGBBlBRy","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.9","version_number":"v8.1.9-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.9-1.20.1] - 2023-11-19\n### Changed\n- Minor capability related code cleanup\n- Error messages from `BlockConversionHelper` now include more context\n### Fixed\n- Fixed `RegistryEntryAddedCallback` not being synchronized correctly\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-11-19T21:52:41.669721Z","downloads":21467,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"6w65VSBb","hashes":{"sha1":"5afb28969481dd68138d15a0c57bab693b8ee85e","sha512":"ed945699130b5f89185b3acc57f6c54d2352cf9a65c63059cc02e6d1d3707a037841a8846325b004b9527d1e7ba1b24cb0a01b8af9a3344d06b28312a51bf805"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/OGBBlBRy/PuzzlesLib-v8.1.9-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.9-1.20.1-Forge.jar","primary":true,"size":994216,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"V1MfC0Mw","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.8","version_number":"v8.1.8-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.8-1.20.1] - 2023-11-07\n### Fixed\n- Implement a temporary workaround for screens crashing the game when opened with [Controlify](https://www.curseforge.com/minecraft/mc-mods/controlify) installed\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-11-07T09:07:57.205109Z","downloads":19491,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"P0hTF6hs","hashes":{"sha1":"e47a490d97c97d5ba5b57939f160fc6759831c30","sha512":"d8aaf8d0ba3140fad06cc17d2a9d72c3e5762ea3c2caaa2425e986400e15f309c56c35c3e67bfebd8c4a17cd1059f294e1acab37a0f4197bdf6a5cdfb4cda100"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/V1MfC0Mw/PuzzlesLib-v8.1.8-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.8-1.20.1-Forge.jar","primary":true,"size":993443,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"lOhe38BY","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.7","version_number":"v8.1.7-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.7-1.20.1] - 2023-11-07\n### Added\n- Added `ComponentHelper` for converting various text instances back to `Component`\n- Added `LivingEquipmentChangeCallback`\n### Changed\n- Improve parity for `BlockEvents.Break`, `LivingAttackCallback`, and `PlayerInteractEvents.AttackBlock` between different mod loaders\n### Fixed\n- Ensure backwards compatibility of `NetworkHandlerV3`\n\n## [v8.1.6-1.20.1] - 2023-10-29\n### Changed\n- Moved methods for registering block and fluid render types to `ClientAbstractions`\n### Fixed\n- Fixed a crash with Forgified Fabric Api due to a faulty Mixin in `ModelProvider`\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-11-05T11:23:58.214195Z","downloads":1171,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"RTtvWhFM","hashes":{"sha1":"ea7bb3a77fbdc52d7fed922af74f684fafab1f27","sha512":"c2c5ddbcdaa1eea45148fcc0d3ab56b4c3ac84e45c7a93166ea26c4acbb96f45229ebce04dea3f80732e597d342719a82776eb668063d3ae0b0da50783bde431"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/lOhe38BY/PuzzlesLib-v8.1.7-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.7-1.20.1-Forge.jar","primary":true,"size":993675,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"TXMzWrbS","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.5","version_number":"v8.1.5-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.5-1.20.1] - 2023-10-29\n### Changed\n- Adjusted `ModelEvents` to work with ModernFix's dynamic resources\n\n## [v8.1.4-1.20.1] - 2023-10-28\n### Fixed\n- Fixed chunk events chunk type\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-10-29T11:37:02.876743Z","downloads":14955,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"wnIfv3Z5","hashes":{"sha512":"a247450a718feae3795344cdd95094e0228af4e636a2b323eaf168b10c664ee9441ac38df8d577aa962511fb404db4c0165be68a9ea31ffa41f1a0214c67ca24","sha1":"3a92928b4d0b77c0447707dc60b0dfa5c101f6c6"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/TXMzWrbS/PuzzlesLib-v8.1.5-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.5-1.20.1-Forge.jar","primary":true,"size":988496,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"mnz2Hm7Z","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.3","version_number":"v8.1.3-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.3-1.20.1] - 2023-10-28\n### Changed\n- Disabled `LivingEvents$Breathe` and `LivingEvents$Drown` to be able to lower the required Forge version to 47.1.3\n- Added a way in `DataProviderHelper` to support legacy data providers\n- Refactored some parts of `NetworkHandlerV3`\n- Be more careful when firing `RegistryEntryAddedCallback` by introducing a lock and catching possible exceptions to avoid the whole registration process from failing\n- Ensure exceptions thrown during model events are caught and no longer crash the game\n### Fixed\n- Fixed dynamic data generation failing on Windows\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-10-28T09:28:07.240220Z","downloads":1186,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"gRZAXC64","hashes":{"sha1":"39dce578d11a3aad451f8885733f3aae9d54cc22","sha512":"71c53e1a30fd620a22d3fa0a32b3f3a847f40b6cc1dbe4919fa7bed51cf8e153eadf6b703306678f104622e3196388c52cfb6f59e941b1687cce1bb3fd8b4e35"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/mnz2Hm7Z/PuzzlesLib-v8.1.3-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.3-1.20.1-Forge.jar","primary":true,"size":986388,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"ltzRj1Al","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.2","version_number":"v8.1.2-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.2-1.20.1] - 2023-10-27\n### Fixed\n- Set required Forge version so that NeoForge is still supported\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-10-27T07:24:30.096054Z","downloads":786,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"4D3mVcAk","hashes":{"sha512":"bcc6cba7b719c07948e3913f54a78449fad016b4a80c75087568d764a28b30b34dee15cfc060725605d1b63af6491824ccf170342307c8760b962373cd0bd6e4","sha1":"4d0aeb289cd1d441216c531c2ae2ad925292ec7b"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/ltzRj1Al/PuzzlesLib-v8.1.2-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.2-1.20.1-Forge.jar","primary":true,"size":983600,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"WKcrcW20","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.1","version_number":"v8.1.1-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.1-1.20.1] - 2023-10-26\n### Fixed\n- Fixed event classes possibly being loaded too early under some circumstances, resolves crashes on start-up when installed together with e.g. Stylish Effects\n- Fixed required Forge version being incorrectly set (47.2.0 is required now, not 47.1.0)\n- Fixed Puzzles Lib crashing the game on Forge when there are any unmet mod version requirements, preventing the Forge screen informing the user from showing\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-10-26T21:04:17.917013Z","downloads":407,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"Nb4fCvnJ","hashes":{"sha1":"cff146ba0a3e2a060a5d3b3318fbee420a3007fd","sha512":"a4d9daab3689982593ccb480ad4967b877e2101960f1bf86b0f045b47b6abb3867ab241eae26306d41449874beb42333359654a8223962e718536de27e4d073a"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/WKcrcW20/PuzzlesLib-v8.1.1-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.1-1.20.1-Forge.jar","primary":true,"size":983574,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"oPr3RcvY","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.1.0","version_number":"v8.1.0-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.1.0-1.20.1] - 2023-10-26\n- Public release of all versions that have come after v8.0.24\n### Changed\n- Expanded `AbstractModelProvider`\n\n## [v8.0.41-1.20.1] - 2023-10-24\n### Added\n- Added common helper methods for obtaining `RenderType`s\n- Added `BlockConversionHelper` from merging various block related utility methods\n\n## [v8.0.40-1.20.1] - 2023-10-23\n### Changed\n- Refined performance for new model events on Forge\n\n## [v8.0.39-1.20.1] - 2023-10-22\n### Added\n- Added `ModifyUnbakedModel`, `ModifyBakedModel` and `AdditionalBakedModel` for finer control over models based entirely on mod loader specific implementations\n- Added helper methods for setting `BlockItem` blocks\n### Changed\n- Providing the `Minecraft` instance is no longer required in `ClientAbstractions`\n- `RegistryEntryAddedCallback` now includes the current registry\n- Deprecated old model events\n### Fixed\n- Fixed `RegistryEntryAddedCallback` running too early on Forge, leading to problems with implementations relying on content registered during the event\n\n## [v8.0.38-1.20.1] - 2023-10-20\n### Added\n- Added `GatherDebugTextEvents$Left` and `GatherDebugTextEvents$Right`\n- Added `LivingEvents$Breathe` and `LivingEvents$Drown`\n- Added `RegistryEntryAddedCallback`\n- Added `ServerChunkEvents$Watch` and `ServerChunkEvents$Unwatch`\n### Changed\n- Allow for overriding global server configs when a local server config is present per world\n- Allow for creating common events that do not necessarily require a mod loader specific event to be implemented\n### Fixed\n- Fixed an error being logged on Quilt when unsuccessfully trying to access to Fabric internal field required for the biome modifications api\n- Fixed a crash when trying to deserialize invalid `ResourceLocation`s provided by config entries\n\n## [v8.0.37-1.20.1] - 2023-10-04\n### Changed\n- No longer set `ExistingFileHelper` on data providers during Forge data generation\n- A few new `null` checks in `AbstractLanguageProvider`\n\n## [v8.0.36-1.20.1] - 2023-10-01\n### Changed\n- Reverted experimental changes to `AbstractModelProvider`\n\n## [v8.0.35-1.20.1] - 2023-09-29\n### Added\n- Added `ForgeDataProviderContext$Factory` to better support data generation on Forge\n### Changed\n- Some experimental changes to `AbstractModelProvider` to hopefully fix runtime on Forge mods\n- `ConfigDataSet` can now exclude entries by marking them with `!`\n\n## [v8.0.34-1.20.1] - 2023-09-28\n### Added\n- Added `BlockEvents$Break` and `BlockEvents$DropExperience`\n- Added `TickingBlockEntity` and `TickingEntityBlock` helper interfaces for creating ticking block entities without the need to use static ticker methods\n- Added `AddToastCallback` for handling client-side toasts\n- Added `ScreenEvents$BeforeInitV2` and `ScreenEvents$AfterInitV2` using type parameters for the screen instance\n- Added `CommonAbstractions::createPackInfo`\n- Added `ModConstructor::onRegisterBlockInteractions` for registering block conversions such as strippable logs or tillable dirt blocks\n- Added `GrindstoneEvents$Update` and `GrindstoneEvents$Use`\n- Added `TypedTagFactory` and `BoundTagFactory` for creating new `TagKey`s, tag keys have therefore been removed from the new `RegistryManager`\n- Added `CombinedIngredients` for creating more complex instances of `Ingredient`\n- Added `ShapesHelper`, mainly useful for rotating a `VoxelShape` to a given `Direction`\n- Added `DynamicPackResources` for generating resources via data providers at runtime\n- Added `RegistryHelper` for various vanilla registry related helper methods \n### Changed\n- The Puzzles Access Api mod is now bundled with Puzzles Lib\n- Overhauled data generation classes, moving and reworking them for the common project to be usable in the new `DynamicPackResources`\n- Refined `AbstractModPackResources` to better handle mod ids as well as allow for hiding a pack, a Forge exclusive feature\n- A mod providing biome modifications on Forge no longer needs to include its own biome modifier, the file is now automatically generated using a built-in data pack\n- Overhauled internal implementation of `ItemAttributeModifiersCallback`\n### Fixed\n- Fixed a class loading issue related to `ItemModelDisplayOverrides` and `EventInvokerRegistry` implementations\n- Fixed `AbstractParticleDescriptionProvider` not verifying the existence of used textures\n- Fixed an issue where the current game server wouldn't be properly stored on Fabric\n\n## [v8.0.33-1.20.1] - 2023-09-09\n### Changed\n- Reworked reload listener handling introduced in the last version to fix issues with mod loading getting stuck due to reload listeners that have not been properly completed\n- Changed handling of internal ids for multiple network handlers using the same namespace\n\n## [v8.0.32-1.20.1] - 2023-09-08\n### Added\n- Added `ClientParticleTypes` for registering fully client-side particle providers\n### Changed\n- `ContentRegistrationFlags` are now enabled via implementing `BaseModConstructor::getContentRegistrationFlags`\n- Fabric is now more strict in enforcing `ContentRegistrationFlags` even when not strictly required to improve parity with Forge\n- Greatly expanded upon `ParticleProvidersContext` to allow for more kinds of particle types to be registered\n- Overhauled `ForwardingReloadListener` to support forwarding a collection of `PreparableReloadListener` instances instead of just a single one\n- Refactored `FabricReloadListener` into a more general `FabricReloadListenerHelper` class\n\n## [v8.0.31-1.20.1] - 2023-09-07\n### Added\n- Add access widener for `EntityRenderDispatcher#renderers` on Fabric\n\n## [v8.0.30-1.20.1] - 2023-09-05\n### Added\n- Puzzles Lib now prints a list of all installed mods to the log on start-up in an effort to help diagnose issues when no crash-report has been generated or provided\n- This feature is only enabled on Forge, as Fabric Loader already does just that by default\n### Changed\n- Refactored some mod loader specific code related to mod list entries\n### Fixed\n- Fixed `LivingDeathCallback` only running on the server-side on Fabric\n\n## [v8.0.29-1.20.1] - 2023-09-05\n### Added\n- Added `RenderLivingEvents`\n\n## [v8.0.28-1.20.1] - 2023-09-04\n### Changed\n- Deprecated `DistType`, this includes some refactors in `NetworkHandlerV2`\n### Fixed\n- Fixed client-side interaction events potentially running after common interaction events on Fabric\n\n## [v8.0.27-1.20.1] - 2023-09-02\n### Added\n- Added a helper system for checking if a mod is installed on the server-side\n\n## [v8.0.26-1.20.1] - 2023-08-19\n### Added\n- Added a new separate `RegistryManager` that returns instances of `Holder.Reference` instead of our own `RegistryReference` implementation to be more inline with the vanilla registration system\n\n## [v8.0.25-1.20.1] - 2023-08-17\n### Added\n- Added `InteractionInputEvents$AttackV2`, `InteractionInputEvents$Use` and `InteractionInputEvents$Pick`\n- Added `PlayerInteractEvents$AttackBlockV2` and `PlayerInteractEvents$UseItemV2`\n- Added a few new helper methods to `ScreenHelper`\n### Changed\n- Cleaned up small parts to the event system to reduce duplicate code\n- Revised implementation of all `PlayerInteractEvents` to match much more closely between Forge and Fabric\n- `ServerEntityLevelEvents$LoadV2` now fires for all loaded entities, not just when they are loaded from chunk storage, but also when they are freshly spawned in\n### Fixed\n- Fixed brewing recipes not showing in some recipe viewer mods on Forge\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-10-26T13:04:41.801321Z","downloads":613,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"Yb7Ku0RL","hashes":{"sha512":"86add453d0f399bbe4b293f99dc2a92b51a8402c1695b71d4b8360c9bc1d698cd41a6779b26992bc4d0e2102d89debd2d22425fd404aaaf2bda3e1d693b96f3d","sha1":"28f86e1b69d988901abd023c8f11a0bd763d23d7"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/oPr3RcvY/PuzzlesLib-v8.1.0-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.1.0-1.20.1-Forge.jar","primary":true,"size":982861,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"Sk64RP7y","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.24","version_number":"v8.0.24-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.24-1.20.1] - 2023-08-16\n### Changed\n- Reworked implementation of `LivingDropsCallback` on Fabric to make it less likely for loot modifications from other mods to completely break all loot for a mob\n### Fixed\n- Fixed `ServiceProviderHelper` not loading as early as it should\n- Removed debug code related to testing out new key binding features\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-08-16T09:02:06.797662Z","downloads":325350,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"N7IOgSEP","hashes":{"sha512":"8fcdde2cd88f8756298a07b314701e6c66d3af13d5b3a06168d11fcd166adb64ce2412e3c8087332bffa66542589ca3ca7f2c73b2fc281612684172eab8a5f4e","sha1":"69493022734c4e7c4ac6365a2c4fee7baff9affd"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/Sk64RP7y/PuzzlesLib-v8.0.24-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.24-1.20.1-Forge.jar","primary":true,"size":730810,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"ZtDMfIUN","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.23","version_number":"v8.0.23-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.23-1.20.1] - 2023-08-14\n### Added\n- Added `CommonAbstractions::getMobSpawnType`\n- Some refactors to `ServerEntityLevelEvents`, including the addition of `ServerEntityLevelEvents$Spawn`\n### Fixed\n- Fixed `ConfigDataSet` failing to dissolve when duplicate values are present\n\n## [v8.0.22-1.20.1] - 2023-08-14\n### Added\n- Added `GatherPotentialSpawnsCallback`\n- Added `ServerEntityLevelEvents$LoadV2`, `ServerEntityLevelEvents$Load` is now deprecated\n- Added `CheckMobDespawnCallback`\n- Added `EntityRidingEvents$Start` and `EntityRidingEvents$Stop`\n- Added `CoreShadersContext` to `ClientModConstructor` for registering built-in shaders\n- Added `KeyActivationContext` to helper with registering keybinds that only work when a screen is open or while playing (no screen is open)\n### Changed\n- Overhauled `GameRulesFactory` to add many convenient overloads, as well as cleaning up the Forge implementation\n- A few new methods in `AbstractLanguageProvider` for creative tabs and game rules\n- Adjusted `ScreenTooltipFactory` to no longer require a `Font` instance\n- Refactored `KeyMappingsContext` to require a `KeyActivationContext` instance\n- Reworked methods for registering new `PoiType`s in `RegistryManager` to no longer require a custom `PoiTypeBuilder` instance\n- Migrate some internals on Fabric to Fabric Api's new model loading api\n### Fixed\n- Fixed `ScreenTooltipFactory` removing empty lines from tooltips\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-08-15T13:56:23.814993Z","downloads":411,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"AZZLPMYz","hashes":{"sha512":"2f30cc4d02ee99371fc5a37cd43b619f1fbadd43c5e6bb798ebbebd06b7e597362f77d6914c831c91885c657b913ebb08eddf0527ddeb782a0cede607961b2ba","sha1":"b9cb72d145686fb958069c666e2d505b98be5c60"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/ZtDMfIUN/PuzzlesLib-v8.0.23-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.23-1.20.1-Forge.jar","primary":true,"size":732034,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"RYhkOF7A","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.21","version_number":"v8.0.21-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.21-1.20.1] - 2023-08-12\n### Fixed\n- Fixed start-up crash when the [Emojiful](https://www.curseforge.com/minecraft/mc-mods/emojiful) mod is installed\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-08-12T14:07:50.664662Z","downloads":857,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"yCfnWKpO","hashes":{"sha512":"3d37bfb597961b781837a1a678760479bd18db9285c1e5c9971d8da75903b117369a4a41d3d4a7f6e4548e4fdaa5693f1784c447959b97029c352fcccfb15654","sha1":"c71e88614952734aae316b0cfcbbba83800f0ecf"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/RYhkOF7A/PuzzlesLib-v8.0.21-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.21-1.20.1-Forge.jar","primary":true,"size":712482,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"d3flGMAv","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.20","version_number":"v8.0.20-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.20-1.20.1] - 2023-08-12\n### Fixed\n- Fixed implementation errors in `UseItemEvents.Tick` on Fabric which would prevent successfully using items like bows and tridents\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-08-12T13:41:52.941938Z","downloads":303,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"DVhF5kR8","hashes":{"sha1":"7639ec164ec74e3e7469fa0488e7b16eb6ee18f5","sha512":"fc9421849888a779594566e48099ee6882ff8b4fac43da4f3bdc9e9d0b44faa5ff4ff4fc48d8095e242245a926257d2d07d567b256b6f1cd22969fba30b7f762"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/d3flGMAv/PuzzlesLib-v8.0.20-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.20-1.20.1-Forge.jar","primary":true,"size":712442,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"8BIig8L5","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.19","version_number":"v8.0.19-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.19-1.20.1] - 2023-08-11\n### Added\n- Added `TagProviderExtension`\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-08-11T13:50:46.580040Z","downloads":1326,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"ujX8BOzs","hashes":{"sha512":"796604080f61e5fad84a595850b212cf37d138663118c8e464f494e3bfacbfc0de326864a23f69bd4ed655ae72ec8783faa2ade67da3419a7d90ebed8da15416","sha1":"a1de3ffa6cdb8fd5123dffa88769b7103aee9fcb"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/8BIig8L5/PuzzlesLib-v8.0.19-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.19-1.20.1-Forge.jar","primary":true,"size":712374,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"RDV4dG9C","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.18","version_number":"v8.0.18-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.18-1.20.1] - 2023-08-10\n### Added\n- Added `GameRenderEvents.Before` and `GameRenderEvents.After`\n- Added helper methods to `ClientAbstractions` for getting `partialTick` and `SearchRegistry`\n### Changed\n- Deprecated `SearchRegistryContext`\n\n## [v8.0.17-1.20.1] - 2023-08-04\n### Changed\n- Custom smithing upgrade recipes without a smithing template are now automatically turned into crafting recipes with the same items and functionality to be visible in recipe viewers like JEI without having to provide dedicated support\n\n## [v8.0.16-1.20.1] - 2023-08-01\n### Fixed\n- Fixed `LivingHurtCallback` not firing for players on Fabric\n- Fixed `UseItemEvents$Tick` always having a wrong `useDuration` value\n- Fixed `PlayerInteractEvents$UseBlock` and `PlayerInteractEvents$UseItem` not sending packets to the server for successful interactions if a result other than `InteractionResult#SUCCESS` is returned from the callback\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-08-10T21:19:36.355473Z","downloads":366,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"x0dRB10C","hashes":{"sha1":"cc13935591d3df69bf7dea47426ba4e720a6606c","sha512":"93dfdc5a76c249d2a4bf8404a395b72fa6bc0d8c7b22734ca5e3675191d0d975645f6652f360ffe368ae9975eddf85eed1dd02652f2cc4e5867e358c02c54f2d"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/RDV4dG9C/PuzzlesLib-v8.0.18-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.18-1.20.1-Forge.jar","primary":true,"size":708914,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"V4g0yKzo","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.15","version_number":"v8.0.15-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.15-1.20.1] - 2023-07-30\n### Fixed\n- Reworked `ServerEntityLevelEvents$Load` and `ClientEntityLevelEvents$Load` on Fabric to prevent a potential memory leak when trying to prevent an entity from loading in\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-30T18:39:55.080390Z","downloads":425085,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"OTIOWXjI","hashes":{"sha512":"14a6d355123dd098b961af0031ad82d32c6653f37c18c8066b922468a018be481fce282558070af19f36c666346906714d215622ab92192fe40a940b193011f5","sha1":"834b7811b5b41003b03b76ccbf38d2f5aee374af"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/V4g0yKzo/PuzzlesLib-v8.0.15-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.15-1.20.1-Forge.jar","primary":true,"size":690111,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"gAz4ZDBl","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.14","version_number":"v8.0.14-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.14-1.20.1] - 2023-07-30\n### Fixed\n- Fixed an issue with the `Sheets` class accidentally being accessed too early, preventing modded materials such as wood types from registering correctly, which would lead to crashes when e.g. rendering signs\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-30T09:50:07.916997Z","downloads":232,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"usifN7Ec","hashes":{"sha512":"ed6dcc5e7548c785738acf2de259b698e3bda641b93e305aab2d189f6fab990825e9fbcd0c569b252f176988a7f723835360549e88b97a119ed0beaa49d6de7c","sha1":"e35db0f5f5d9344bba16712f97c1e999de26626e"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/gAz4ZDBl/PuzzlesLib-v8.0.14-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.14-1.20.1-Forge.jar","primary":true,"size":689850,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"Y5Kjea08","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.13","version_number":"v8.0.13-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.13-1.20.1] - 2023-07-26\n### Added\n- Added `ScreenTooltipFactory`\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-27T20:31:09.982356Z","downloads":963,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"QhfVCmhv","hashes":{"sha512":"a7e8a2fa8656bb257aa4e9ff8d77ef42e41c7bf12dea2df3714c5c5921a7a774d1d49ff5ffd25e627a69b366d76af730231064a72e2f2d99efb87c77731cf8dc","sha1":"b4e4133b86521c2ed5c324307553a60729759642"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/Y5Kjea08/PuzzlesLib-v8.0.13-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.13-1.20.1-Forge.jar","primary":true,"size":689608,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"hPp2iJwv","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.12","version_number":"v8.0.12-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.12-1.20.1] - 2023-07-23\n### Fixed\n- Fixed a crash when calling `ModelEvents` on Forge\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-23T21:48:54.191867Z","downloads":989,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"YYd6s4X3","hashes":{"sha1":"7e0918347bd39cf90c622c29d9caecde312e30cb","sha512":"6c862e6bf9d1e0be652b0ac0cf2dd4f049ab1b495d066f2f132e6e1b02c37d2279df92e49263041563a7125b2d6402216477f7335d4bfd35ef19a784be61cfa7"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/hPp2iJwv/PuzzlesLib-v8.0.12-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.12-1.20.1-Forge.jar","primary":true,"size":686907,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"5r3BfjAc","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.11","version_number":"v8.0.11-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.11-1.20.1] - 2023-07-23\n### Added\n- Added `RenderHighlightCallback`\n- Added `RenderLevelEvents`\n### Changed\n- Shifted injection points for `InventoryMobEffectsCallback` to be compatible with the [Just Enough Items](https://www.curseforge.com/minecraft/mc-mods/jei) mod on Fabric\n- Slightly changed some injection point shifts related to `AnimalTameCallback`\n\n## [v8.0.10-1.20.1] - 2023-07-15\n### Added\n- Added `ScreenTooltipEvents.Render`\n- Added two helper methods for getting `mouseX` and `mouseY` to `ScreenHelper`\n\n## [v8.0.9-1.20.1] - 2023-07-12\n### Added\n- Added `RenderBlockOverlayCallback`\n- Added `FogEvents$Render` and `FogEvents$ComputeColor`\n### Fixed\n- Fixed `ModelEvents` crashing on Fabric\n\n## [v8.0.8-1.20.1] - 2023-07-06\n### Changed\n- Migrate `ModelEvents` to common event system\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-23T13:07:57.206562Z","downloads":239,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"2cYGYDUC","hashes":{"sha512":"9fd6552e890d46b85c6abc8ca835577123031707478f4c8baf608b0878ff83ae27410b11d909d719a9946ade8f292babcc0f93df300918aedd483d8a7ce509f6","sha1":"4076d1b82f1a2bfdbf7fcd67d674c3eb72dfd590"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/5r3BfjAc/PuzzlesLib-v8.0.11-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.11-1.20.1-Forge.jar","primary":true,"size":686448,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"WjRzXRln","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.7","version_number":"v8.0.7-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.7-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a sound related crash on Fabric\n\n## [v8.0.6-1.20.1] - 2023-07-02\n### Fixed\n- Fixed new mod loading architecture not allowing for multiple config handlers per mod\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-02T14:20:45.294177Z","downloads":10662,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"dIZb7Acc","hashes":{"sha512":"1c5a0847b68889c4e3f5fc954fd49e9c681675c347868a79970b9eae0e18dec393c64ea3b0756963e9bb9091370be95149b7db2b6132e8b38224aa18326c1227","sha1":"89ad61b7347d985c5f5ff1ea3e09622ab5d1411b"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/WjRzXRln/PuzzlesLib-v8.0.7-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.7-1.20.1-Forge.jar","primary":true,"size":670937,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"WyvOkbnG","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.5","version_number":"v8.0.5-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.5-1.20.1] - 2023-07-02\n### Fixed\n- Fixed a crash when rendering items on Fabric\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-02T05:28:44.140441Z","downloads":552,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"ZqBVAD02","hashes":{"sha1":"f0c11607928478e51d0c5a558fa8c1e47aba54fc","sha512":"1f0526384beb63103af0208c9b6f66cd52439fdcb7aba4652a669f6671a1233790664e26adcdbf4bfcd7927f5403d43e6351ec2d81ce48c4710f450422bd1e59"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/WyvOkbnG/PuzzlesLib-v8.0.5-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.5-1.20.1-Forge.jar","primary":true,"size":670832,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"31TqmnJN","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.4","version_number":"v8.0.4-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.4-1.20.1] - 2023-07-01\n### Changed\n- Once again invert `ItemDisplayContext`s when registering item model perspective overrides\n\n## [v8.0.3-1.20.1] - 2023-07-01\n### Added\n- Added `LoadCompleteCallback`\n### Changed\n- Internal changes to allow for more versatile mod loading\n- Separate item model perspective now use built-in features on Forge and longer require a core mod there\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-07-01T20:40:54.899291Z","downloads":223,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"MT25svnN","hashes":{"sha1":"89c379796c4e046be87622aa4289fecf281416ec","sha512":"846d0d45ed1c075ce50f9190b935de0e8a2589665eecadeeb1f43d6cc00d7876de929c047c53c3d185eef018da2f99e60715da53ca23eb62c5cb6ae1caac48c4"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/31TqmnJN/PuzzlesLib-v8.0.4-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.4-1.20.1-Forge.jar","primary":true,"size":670803,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"g8d307PL","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.2","version_number":"v8.0.2-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.2-1.20.1] - 2023-06-29\n### Fixed\n- Re-upload to fix failed reobfuscation on Forge\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-06-29T13:51:30.069428Z","downloads":377,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"vSjzZlq1","hashes":{"sha1":"7881c562c8b86b95fe741308c51e267895d64695","sha512":"33efc7eadda6b0aad0d96d1d3c614883399751ae95a69ca43fddeb3acf75d29aaba340adfbc6abc6fb4d526ccfb45719b242310cad043a4df3ee4facc918e692"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/g8d307PL/PuzzlesLib-v8.0.2-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.2-1.20.1-Forge.jar","primary":true,"size":668840,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"KmQylKLN","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.1","version_number":"v8.0.1-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.1-1.20.1] - 2023-06-29\n### Added\n- Added `DispenseBehaviorsContext`\n### Changed\n- `ModConstructor::onCommonSetup` and `ClientModConstructor::onClientSetup` now always run deferred on Forge, eliminating the previous `ModLifecycleContext` argument\n### Fixed\n- A few possible `java.util.ConcurrentModificationException`s during start-up are now prevented by running setup tasks deferred on Forge\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-06-29T11:43:40.845520Z","downloads":316,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"JFZLEeO9","hashes":{"sha512":"bb2dfc3dcd21f247dc5d4c8c0783363c4e9c32acf5f7f3776dec6af8932ff30c6bc211225400de7e8ed9f354d36e659559b3fdc1a3643173b38c442195155439","sha1":"09c99b1a75f6a2edeaf8900aa49da196aff18294"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/KmQylKLN/PuzzlesLib-v8.0.1-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.1-1.20.1-Forge.jar","primary":true,"size":668797,"file_type":null}],"dependencies":[]},{"game_versions":["1.20.1"],"loaders":["forge"],"environment":"client_or_server_prefers_both","id":"qdNeRisk","project_id":"QAGBst4M","author_id":"rHdGpxOA","featured":false,"name":"[FORGE] [1.20.1] PuzzlesLib-v8.0.0","version_number":"v8.0.0-1.20.1-Forge","changelog":"# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog].\n\n## [v8.0.0-1.20.1] - 2023-06-25\n- Ported to Minecraft 1.20.1\n\n[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/\n","changelog_url":null,"date_published":"2023-06-27T07:25:44.019824Z","downloads":7548,"version_type":"release","status":"listed","requested_status":null,"files":[{"id":"zo6KfLWe","hashes":{"sha1":"54fa3f06f36db617ee7bb0fdf18bebeaee80fa41","sha512":"1d837415b34dba2ed17a07631daf3cce453999701c38f100da6eacd0d1a35cd9b4aea5523217053d70add0535732d6e5715a9bd3c544b08e8788b2a54c168470"},"url":"https://cdn.modrinth.com/data/QAGBst4M/versions/qdNeRisk/PuzzlesLib-v8.0.0-1.20.1-Forge.jar","filename":"PuzzlesLib-v8.0.0-1.20.1-Forge.jar","primary":true,"size":666946,"file_type":null}],"dependencies":[]}]