v0.7.8
Release v0.7.8 - Memory Leak Purge & Performance
Main Features
-
Massive Garbage Collector Leak Purge
Critical performance bottlenecks on both client and server threads have been thoroughly eliminated. Iterative loops that handle real-time rendering, translation keys, and thirst/temperature attributes have been structurally detached from volatile array cloning allocations, resulting in a dramatic reduction in CPU overhead and fluid frame pacing. -
Functional Lambda Translation for Item Properties
Legacy, verbose anonymous inner classes used by Forge’s item property override registries have been completely modernized into efficient functional lambda streams. This prevents the runtime heap from being bloated by micro-instantiations during inventory ticks and visual item updates. -
Deep Code Archeology & Legacy Removal
Continuing the structural cleanup started in v0.7.7, ancient "fossilized" code remnants dating back 7 years to version v0.1.0 and obsolete layers from 4 years ago have been entirely eradicated. The codebase is now a lean, optimized, and fully modernized environment tailored for high-performance 1.12.2 technical modpacks. -
Robust NBT & Boundary Fail-Safes
Enhanced protection layers have been injected into item metadata and compound NBT handlers. The mod now gracefully handles corrupt itemstacks, extreme edge-case sub-types, or unexpected sub-zero metadata indexing without throwing null pointer exceptions or crashing server tickers.
Technical changes & Refactoring of sources
-
ItemCanteen.java&ItemDragonCanteen.java:- Resolved a severe client-side GC leak inside
getTranslationKeyby caching the immutableThirstEnum.values()array into a local static reference (THIRST_VALUES), saving megabytes of redundant heap allocations per minute. - Re-engineered the "contain"
ResourceLocationproperty getter override using an optimized lambda expression. - Secured type safety and cleared raw type compilation warnings by adding explicit diamond types (
<ItemStack>) to theActionResultinstantiations.
- Resolved a severe client-side GC leak inside
-
ItemIronCanteen.java:- Modernized property overrides using functional lambda structures to compress bytecode and speed up rendering calls.
- Fixed a potential heap leak by replacing repetitive enum evaluation loops with cached static value lookups.
-
ItemDrinkBase.java:- Fixed an optimization flaw inside
onItemUseFinishwhere calling.getRegistryName().toString()repeatedly forced redundant string objects into memory; now safely assigned and evaluated via a local variable wrapper. - Optimized JSON configuration lookups by changing the
jctListloop to utilize an explicit null/empty pre-check gate, completely skipping iterator allocations when no custom consumable thirst overrides are present.
- Fixed an optimization flaw inside
-
ItemJuice.java:- Solved a critical real-time performance bottleneck by caching
JuiceEnum.values()locally toJUICE_VALUES, cutting off constant array cloning across rendering, thirst level updates, and dirty saturation checks. - Hardened the
getEnumForStacksubroutine against out-of-bounds corruption by introducing a strict lower-bound array index validation gate (meta < 0).
- Solved a critical real-time performance bottleneck by caching
-
ItemThermometer.java:- Replaced a highly inefficient map auditing system that previously generated massive autoboxing overhead during real-time client texture wobbling (
wobble). - Implemented an advanced high-performance map clearing sequence using Java 8 lambda
removeIfstreams directly on theentrySet(), dropping the redundant tracking list entirely. - Purged old, experimental, and dead commented code sections to restore source sanitization under strict developer guidelines.
- Replaced a highly inefficient map auditing system that previously generated massive autoboxing overhead during real-time client texture wobbling (
Download Guide
- Correct file:
SimpleDifficulty-1.12.2-0.7.8.jar - Developer files: Avoid files ending in
-api.jaror-sources.jar.