jdte-0.6.0.1.jar
Curse Maven Snippet
What's new
Highlights
Greenhouse JEI performance
BotanyPotsGreenhouseIntegration.getCrops re-resolved every loaded Botany Pots crop on every call, and JEI calls it on every rebuild — each world join, each /reload, and some JEI setting changes. In large modpacks this stalled the loading screen repeatedly. The enumeration is now cached per RecipeManager instance (held through a weak reference) and invalidated on client recipe sync (RecipesUpdatedEvent), server datapack sync, client level unload, and server stop: cross-world and /reload cases always recompute, while unchanged recipes reuse the cached list.
The custom-crop fallback no longer rescans the whole item registry per crop. For each Soil recipe, every registered item the soil accepts is scanned once and memoized in registry order; each crop then only evaluates crop.isGrowthSustained over that list. The soil-order × item-order first-match result is identical to the previous behavior. The memo assumes soil matching never depends on the seed item, which holds for vanilla Botany Pots soils, and it is shared with the greenhouse planting path (find), so inserting custom-crop seeds into a greenhouse also skips the registry-wide scan.
Fixed — Draconic Evolution stabilized spawner interception
Draconic Evolution is a compile-only dependency, and the StabilizedSpawnerLogic tile accessor previously declared Object as the return type. Mixin @Accessor matching is descriptor-exact, so the accessor found no tile candidate, the mixin failed to apply, and placing a Bio Crusher above a stabilized spawner crashed. The accessor now declares the exact TileStabilizedSpawner type, the SpawnerMixin$DraconicSpawnerMixin interception is registered in mixins.jdte.json, reflective tier lookup falls back to the default spawn count on any version mismatch, and a contract test pins the mixin registration.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

