File Details
Iron's Botany 1.4.1 (Forge 1.20.1)
- R
- Apr 20, 2026
- 454.68 KB
- 390
- 1.20.1
- Forge
File Name
ironsbotany-1.4.1.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
[1.4.1] - 2026-04-17
Visual Overhaul — Phase 1
- Block Entity Renderers — Spell Reservoir and Mana Conduit now render a
floating, fill-scaled glow orb above the block. Orb intensity, scale, and
alpha track the block's stored ISS mana in real time.
-
SpellReservoirBER: cyan-green halo + spinning core, subtle bob. -ManaConduitBER: violet-cyan halo + core + three orbital sparks (reuses the color-cycling / orbital trig pattern from SparkSwarmRenderer). - Both useLightTexture.FULL_BRIGHT+RenderType.entityTranslucentto stay bright in dark biomes without a custom shader pipeline. - Gated onClientConfig.enableManaParticles. - Client-synced block entity state —
SpellReservoirBlockEntityandManaConduitBlockEntitynow implementgetUpdatePacket/getUpdateTagand broadcastsendBlockUpdatedon every mana mutation, so BERs (and any future client listeners) see live stored-mana values instead of stale NBT snapshots. - Spell particle signature — Five spells gained Iron's Botany-flavored
particles layered onto their existing vanilla VFX for visual cohesion:
-
ManaBloomSpell— petal bursts at each flower spawn. -LivingRootGraspSpell— botanical burst ring at target feet. -RunicInfusionSpell— mana transfer swirl on caster (scales with rune count). -GaiaWrathSpell— botanical burst on each target + petal storm column rising from caster. -ManaRebirthSpell— petal rebirth burst + rising mana transfer pillar. - Ambient block particles — active
SpellReservoirBlockEntityandManaConduitBlockEntitynow emit low-rate ambient wisps from theirserverTick(~25–30% per second) while they hold mana, giving the blocks atmospheric presence beyond the BER orb. Uses existing particle types — no new assets. - Config gates —
CommonConfig.enableSpellParticlesandCommonConfig.enableBlockAmbientParticlesnow actually govern server-side particle emission.ClientConfig.enableSpellParticleswas dead code (client flag, server broadcast) and has been removed — existing configs with the key will log a warning once and be ignored. - HUD proximity pulse —
ClientEventHandlernow scans a 6-block radius around the player every 20 ticks for active Spell Reservoirs / Mana Conduits and wraps the Botania mana bar in a cyan pulsing border while any are in range. - Block geometry —
SpellReservoirandManaConduitreplaced theircube_allmodels with hand-written multi-element geometry (pedestal + bowl rim, and pedestal + column + top cap, respectively). Reuses the existing block textures; collision stays a full cube.
[1.3.3] - 2026-04-15
Critical Fixes
- Dedicated server crash fixed (second leak) —
SpellCastSyncPacket(a common-side packet class) held aprivate static handleClientmethod that directly referencednet.minecraft.client.Minecraft. WhenPacketHandler.register()ran insideFMLCommonSetupEvent, the JVM loadedSpellCastSyncPacketvia theconsumerMainThread(SpellCastSyncPacket::handle)method reference, and Forge's transforming classloader refused the client type onDEDICATED_SERVERwithBootstrapMethodError: Attempted to load class net/minecraft/client/multiplayer/ClientLevel for invalid dist DEDICATED_SERVER. The existingDistExecutor.unsafeRunWhenOnguard did not prevent class loading because the client reference lived on the same common-side class. - Moved the client-only handler into a new@OnlyIn(Dist.CLIENT)classcom.ironsbotany.client.network.SpellCastClientHandler. - Added publicgetPos()/getSpellId()accessors onSpellCastSyncPacketso the new client class can read packet state without exposing fields. -SpellCastSyncPacket.handle()now dispatches via the canonical Forge() -> () -> SpellCastClientHandler.handleClient(packet)double-lambda pattern, using a fully qualified class name so the client reference never appears in the common class's import table. - Verified:./gradlew compileJavaclean;grepovercom.ironsbotany.commonreturns zeronet.minecraft.client/net.minecraftforge.clientreferences.