beanutils-2.1.63.jar
Curse Maven Snippet
What's new
BeanUtilities - Upcoming changes and current.
### DivineRPG materials for Tinkers Antique (2.1.64)
- Optional integration for DivineRPG 1.7.1 and Tinkers Antique 2.13.0.209. Adds 22 materials: Realmite, Arlemite, Rupee, Netherite, Aquatic, Hellstone, Bloodgem, Jungle Stone, Molten Stone, Ice Stone, Corrupted Stone, Divine Stone, Ender Stone, Terran Stone, Shadow Stone, Bedrock, Bluefire Stone, Eden, Wildwood, Apalachia, Skythern and Mortum. IDs use `beanutils_drpg_<short ID>` to avoid replacing existing mod materials.
- Registers materials and fluids in pre-init through Tinkers' public `MaterialIntegration` API, material inputs/casting in init, and furnace-equivalent melting in post-init after DivineRPG, Tinkers and CraftTweaker. Native integration handles tool-part casts and recycling. Head/handle/extra/bow/shaft statistics are configured directly; Tinkers Antique automatically supplies projectile statistics. No armour, bowstring or fletching integration is added.
- Each processed ingot, gem, stone or Bedrock Chunk is one 144 mB material unit. Verified metal/gem storage blocks use nine units; nuggets and nine-to-one shards use 16 mB; Twilight fragments/souls use 48 mB; Shadow Bars use 36 mB. Only verified storage blocks can be cast in the basin. Portal blocks, Twilight chunks and arbitrary ore-dictionary aliases are excluded. Ores/pellets become smeltery inputs only when an installed furnace recipe produces a supported material input, using exactly that output's value/count; existing melting recipes are preserved. No ore doubling or gem-tier bypass is introduced.
- Themed intrinsic traits include deep mining, capped armour-based damage, Rupee/Bedrock durability saving, fire, underwater air recovery, capped life-steal with a shared one-second cooldown, poison/slowness/weakness, bonuses against DivineRPG creatures, End/Overworld mining and damage, low-light damage, and home-realm Twilight resonance. Combat, healing, durability saving and air changes run on the server. Mining-speed callbacks support prediction on both sides. Effects do not grant flight, teleportation or unconditional invulnerability. Bedrock/Divine tool durability is finite.*
*ABOVE IS COMING IN THE NEXT BEANUTILS UPDATE AND MAY BE SUBJECT TO CHANGE. BELOW IS THE CHANGES:
### Pylon item rendering and portable Polymorph crafting (2.1.63)
- Registers Botaniverse's existing item renderer for `botaniverse:morepylon` after client loading. Its four models use `builtin/entity`, but Botaniverse 1.1-1 never registers its forwarding renderer. Also binds Botania's existing renderer directly to its pylon item when needed. Each renderer stays scoped to its item; placed pylons and the global item renderer keep their existing behavior.
- Adds Polymorph+ support for Actually Additions r152's Crafting Table on a Stick. Its server container is `CompatUtil$1`, an anonymous vanilla workbench subclass excluded by Polymorph's exact-class check. The adapter recognizes only that class and preserves its live crafting grid and native crafting/consumption code. FastBench's alternative container is outside this integration; FastBench is absent from the tested pack.
- Adds adapters for AE2WTLib 1.0.35 with Wireless Crafting Terminal 3.12.97 and Wireless Pattern Terminal 1.0.3, including their crafting tabs in the universal terminal. Uses Polymorph's existing selector, validation and packets. The selected recipe controls the preview, extraction checks and recipe remainders; crafting transactions keep that recipe locked while consuming ingredients. Wireless crafting patterns store the same recipe tag as BeanUtils' existing AE2 pattern integration. Processing mode does not offer crafting choices. Wireless Fluid Terminal has no crafting grid and needs no recipe selector.
### Advancement screen blank-line crash (2.1.62)
- Fixes the vanilla `GuiAdvancement.findOptimalLines` crash (`func_192995_a`, SourceFile:82) when the second wrapped description line consists only of ASCII spaces. Java's `split(" ")` returns an empty array for that input, and vanilla unconditionally reads element zero.
- Keeps the existing wrapped lines for that case instead of entering the first-word width heuristic. Normal words, leading spaces, genuinely empty lines, formatting codes and other whitespace retain the original layout path. The affected advancement ID is logged once per client session through `BeanUtilsAdvancements` so its source text can be found.
- Changes only the client tooltip method. Advancement definitions, criteria, rewards, progress and save files are preserved. The early transformer supports SRG and development method names, avoids loading GUI classes while computing frames, is idempotent, and leaves a changed upstream layout untouched if the expected split/get structure is absent.
- Includes the 2.1.61 quest-edit optimization and removes the old Sophisticated Storage workaround.
### FTB Quests editing and storage compatibility (2.1.61)
- Removes the Sophisticated Storage model transformer and lazy model event listener introduced in 2.1.59. Sophisticated Storage Legacy 1.0.1 now selects its own registered barrel states rather than enumerating the entire model registry. Its native handler is left unchanged.
- Fixes unnecessary JEI/HEI recipe rebuilding after creating or confirming an ordinary quest, task or reward. FTB Quests 1202.9.0.15 previously removed and reconstructed every quest recipe on each such refresh, including when creating an empty quest that has no recipe. BeanUtils now updates only the affected quest's recipe; unchanged quests retain their wrappers and expanded filter inputs.
- Preserves FTB's existing JEI-presence/refresh flags, disabled-quest defaults and overrides, invisible-reward and null-ingredient filtering. File-wide changes and unsupported object types retain the original full refresh; the separate loot-crate refresh path is unchanged. No quest packets, IDs, dependency/progress caches, editing permissions or save operations are modified.
### FFD raw ore source detection (2.1.60)
- Fixes built-in raw materials being skipped when their provider registers ore-dictionary tags after the block/item registry events. FFD 1.4.7's source-mod table omits HBM; raw beryllium, thorium and lithium can therefore be absent even when enabled in the configuration.
- Preserves every original positive detection and adds a fallback only to false returns in `FFDRawOreOreDictionaryCompat.hasSourceOre`. The fallback recognizes actual registered external ore blocks by conventional registry paths, spelling aliases, and HBM's special lithium/plutonium paths. It does not force materials without a source ore or bypass FFD's feature/material switches.
- Keeps the previous storage model fix and all other BeanUtils features. The instance's ore catalog is supplied separately as native FFD JSON configuration, so generation choices can be reviewed and edited without rebuilding BeanUtils.
- Validation: 49 checks against the installed FFD 1.4.7 detector reproduce the HBM omission, verify both transformer dispatch names and idempotence, preserve native true paths and unrelated methods, reject false source names, and exercise the fallback against an actual standalone Forge block registry. Full `build`/`check` also passes. Restart and in-game harvest validation remain required.
## Sophisticated Storage model loading (2.1.59)
# REMOVED
### Feral Flare Lanterns and universal AE2 press (2.1.58)
- Fixes Torchmaster 1.8.5.0 Feral Flare Lanterns redirecting underground light positions to Y=3. The early transformer changes only the lantern's two floor-clamp constants to FFD's resolved world minimum plus the original three-block margin. Extended Overworld lights can appear below zero; legacy worlds and other dimensions retain their Y=3 floor. FFD presence is checked before adding the hook, so Torchmaster without FFD is untouched.
- Keeps the native placement radius, random calls, cadence, light threshold, loaded-chunk/air checks, line-of-sight option, hard cap, placement flags, relative child-light NBT and cleanup. Existing lanterns use the corrected floor after restarting; re-placing them is unnecessary. Lights already misplaced by the old code remain tracked and use normal lantern cleanup.
- Adds `beanutils:universal_press`, named **Universal Inscriber Press**, when AE2 is installed. Craft it shapelessly from one each of AE2's calculation, engineering, logic and silicon presses. All four ingredients are consumed. The universal press is reusable and can occupy either press slot for each normal printing recipe, producing the original printed circuit or printed silicon from its original material. Finished processors still require their normal printed parts and redstone.
- Adds native AE2 registry recipes after AE2, CrazyAE, Lazy AE2 and CraftTweaker post-initialization. Reusable addon press recipes in the same registry are included when their material/output is unambiguous. Original recipes remain available, including processor assembly, CrazyAE's consumed-component assembly, press duplication and naming. The universal item does not choose among ambiguous press-copying recipes. Native registry optionals expose the item to inscriber insertion filters and recipe viewers. New texture/model, English item name and crafting recipe are included; item/model registration stays separated by logical side.
### Oversized backpack/item links in chat (2.1.57)
- Fixes chat broadcasts disconnecting recipients with `EncoderException: String too big (was 35572 bytes encoded, max 32767)` after sharing an inventory-rich backpack. Quark's item linking uses the item's complete serialized NBT as SHOW_ITEM hover data; the installed Universal Tweaks translation wrapper also retains the full NBT. That can exceed the native chat packet JSON string limit for every recipient. The separate `setFlySpeed` / `setPlayerWalkSpeed` lookup warnings are not the encoder failure and are not changed by this release.
- Bounds JSON when an outgoing `SPacketChat` writes its text component. Within-limit messages use exactly the original JSON. Oversized messages replace the largest SHOW_ITEM previews as needed with a small SHOW_TEXT omission notice, retaining visible names, translations, text, formatting and smaller item previews when they fit. If other hover types are still too large, their hover details are omitted. If visible text alone is too large, it is shortened at a Unicode code-point boundary with an explicit suffix. The native 32,767-byte string limit, client decoder and chat type byte are unchanged.
- Only a separately parsed serialization tree is modified. No ItemStack, inventory, saved backpack contents, capability data or source text component is changed. This applies to oversized chat item links from other producers too, without requiring Quark or the backpack mod. Oversized item links lose their detailed hover preview/item icon; their text remains visible. All normal-sized links retain their full original hover behavior.
### Dedicated-server snow tracing and First Fractal requests (2.1.56)
- NEEDS WORK!!!!!
- Fixes snow tracing disabling itself with `NoSuchMethodError: EntityItem.func_174872_o()`. That getter (`getAge`) is annotated client-only in Minecraft 1.12.2 and removed from dedicated servers. The diagnostic now reads the common backing age field through a cached MCP/SRG-compatible accessor. It still observes without changing age, NBT, damage, physics, pickup or removal. The previous test used a combined client/server jar and missed this side-stripping failure.
- ExtraBotany r1.1-61 DarkestJourney2's First Fractal sends a client-to-server packet from its block left-click event on the dedicated server, causing `FMLServerHandler.getClientToServerNetworkManager: RuntimeException: Missing`. Both left-click request handlers now run only on a client world. The original client request, server packet handler, phantom sword spawning, normal entity attacks, mana/durability/cooldown behavior and item checks remain native. No network errors are globally suppressed and ExtraBotany's jar is unchanged.
### Animal growth with Lucraft size-changing hitboxes (2.1.55)
- Fixes bred cows and sheep keeping baby-sized attack/collision boxes after growing into adults. LucraftCore 2.5.16 caches their initial `origWidth`/`origHeight` while young and reapplies those values every tick, overriding the dimensions set by vanilla growth. Animals first encountered as adults cache adult dimensions and do not exhibit this particular failure.
- Refreshes Lucraft's unpowered base dimensions from EntityAgeable's actual adult dimensions and current baby/adult state immediately before its existing hitbox update. Applies to ageable entities using vanilla's standard age-scaling method. Subclasses overriding age scaling, including custom mod growth profiles, retain their existing behavior; players and non-ageable mobs are unchanged. Does not alter breeding, age timers, attributes or rendering scale.
- Preserves Lucraft/Pym-style shrinking/enlargement multipliers, interpolation, size-change events, attributes and networking. No per-tick sync packet is added. Existing grown animals with stale baby dimensions recover on their next capability hitbox update, on server and client, and corrected base dimensions are saved through Lucraft's original NBT format. Lucraft remains optional and its jar is not edited or bundled.
### Paradox Machine snapshots of non-container blocks (2.1.54)
- REDACTED
### Lucraft and addon extractor energy cap (2.1.53)
- Caps extractor recipe energy requirements above **100,000 FE** to **100,000 FE**, matching LucraftCore 2.5.16's extractor capacity. Recipes at or below the limit retain their existing costs. Applies at Lucraft's shared recipe registration entry point, covering native recipes, JSON addon packs and custom Java implementations of `IExtractorRecipe`, including addons installed later.
- The registry stores a delegating view for expensive recipes, so matching, machine consumption, saved recipe lookup and JEI/HEI see the same capped cost. Inputs, containers, fluids, output stacks and probabilities retain their original values. Affordable recipe objects are retained as-is; addon-owned expensive objects are not mutated. Processing time and extractor capacity are unchanged. Lucraft remains optional and no dependency jars or addon JSON files are edited or bundled.
### Snow item disappearance diagnostics (2.1.52)
- Adds opt-in server diagnostics for the report that dropped items disappear on snow layers/full snow blocks, sometimes immediately. The actual cause is **not yet established**. ItemPhysic's configured lifespan is 6000 ticks and Universal Tweaks does not override it; those settings alone do not explain fresh drops disappearing. Unrecoverable drops also require checking server movement/removal rather than assuming a rendering issue.
- An operator runs `/beansnowtrace start` in-game at the affected spot. For up to two minutes, new tracked item entities within 16 blocks of that fixed position and near snow are observed. Limits: 64 tracked items, 256 log entries. `/beansnowtrace status` reports state and `/beansnowtrace stop` ends the session. It is dormant after startup and stops at the event/time limit or server shutdown.
- Records `[SNOW-TRACE]` entries in the **server's** `logs/latest.log`: item identity/count (including the last nonempty stack), ID, age/lifespan, position, previous position, current/underfoot block states, first nearby snow, most recent damage, join cancellation state, and removal/damage call stacks. Samples live tracked items once per second and continues following a tracked item after it moves away from the original spot. Standard item `setDead`, World entity-removal callbacks, and native/ItemPhysic damage paths are covered. World removal can also mean ordinary chunk unloading; its dead flag and call stack must be interpreted together. A canceled join records the outcome, not necessarily the listener that canceled it. Mods bypassing all ordinary item/world callbacks may need additional targeted tracing.
### Persistent radioactive spiders and deepslate Deviant conversions (2.1.51)
- Heroes Expansion's `heroesexpansion:radioactive_spider` no longer despawns through distance, random/idle despawn, or the vanilla hostile-mob Peaceful removal check. Server-side world joining also sets vanilla persistence, including existing spiders loaded from saved chunks. Persistence is written to entity NBT. Ordinary spiders and other hostile mobs retain their original despawn behavior. The exemption does not make spiders invulnerable or keep their chunks loaded; they can still die from damage or be deliberately removed.
- Lost Infinity's Skull Shot now converts deepslate emerald ore into one Cursed Emerald, and Deviant Ghast fireballs convert deepslate iron ore into one Superheated Ingot. The native projectile impact code still consumes the ore and produces its original item, location, motion/invulnerability and explosion behavior. Vanilla emerald/iron conversion and entity damage are unchanged. Conversions remain server-side.
- Recognizes standard `deepslate_emerald_ore` / `deepslate_iron_ore` registry paths across backports, including Farmer's Future Delight, plus FFD compatibility deepslate blocks whose public `sourceState()` is vanilla emerald/iron ore. Unrelated ores, ordinary deepslate and building blocks are not added as conversion substrates. Neither Heroes Expansion, Lost Infinity nor FFD becomes a hard dependency; their jars are not edited or bundled.
### HBM railway spikes and Black Panther kinetic blast (2.1.50)
- Restores direct damage for HBM NTM-CE 2.6.1.0 Railway Spike Shot (`g12_equestrian_bj` and `g12_equestrian_tkr`). Both shipped with an explicit zero damage multiplier. They now use 1x receiver damage, like a basic single projectile: 64 base damage from Sexy, 32 from the broken Mare's Leg, before native headshots, resistance, armor and damage events. Other ammo and gun receiver values are unchanged. This is an intentional pack balance override of HBM's special-ammo behavior.
- Sexy's railway-spike special callback removed its bullet before HBM's normal entity-hit callback could run. That callback now runs first, followed by the existing boat effect. Block impacts retain the special effect without dealing an extra entity hit. Uses HBM's normal damage handler, including its cancellation/PvP/armor checks.
- Repairs the existing HBM/FFD ray-trace guard to use FFD's actual `sectionCount(World)` API. `isExtended(World)` only recognizes the named FFD world type, missing other expanded layouts. Cave Biomes API shifts entity section indices even above ground; Depths/default/BOP layouts can also expose 24 sections. Older FFD builds fall back to the previous API. HBM's ordinary damage values are unchanged by this height fix.
- Heroes Expansion's kinetic-energy blast, used by Black Panther and addon abilities using the same class, deals **10x its previous damage**. The `combat` setting `kineticBlastDamageMultiplier=10.0` in `config/beanutils.cfg` controls this multiplier; 1.0 restores its original damage. Only the two player/mob damage coefficients change. Charge consumption, radius, distance falloff, knockback, visual packets and energy absorption retain the original behavior. Restart after changing the setting.
### Better Builder's Wands with HBM grates (2.1.49)
- Fixes the client preview crash in Better Builder's Wands 0.13.2 with HBM NTM-CE 2.6.1.0 steel grates (`height=48868`, allowed values 0..9). The highlight handler supplies absolute X/X/Z coordinates to the placement callback, and the shared worker uses the player's horizontal facing as the clicked face. BeanUtils routes that single callback through a common helper using the worker's existing ray trace for block-relative XYZ and the actual clicked face. Malformed fallback coordinates are bounded to 0..1.
- The wand replicates an HBM grate's complete existing block state, preserving all ten height/offset values during expansion. The same worker feeds the client preview and server placement, so raised grates stay aligned and no invalid height is calculated. Covers the HBM `BlockGrate` class and subclasses without loading HBM as a hard dependency.
- Changes only the placement-state callback in `WandWorker.getProperItemStack`. Custom mappings, blacklists, candidate selection, limits, existing Forge placement events, inventory consumption/rollback, durability, callbacks and undo bookkeeping remain on their original code paths. Ordinary hand placement and HBM's original jar are unchanged. The existing hand argument is retained. Includes all 2.1.48 fixes, including moss spread onto deepslate, tuff and gravel.
### Moss spreading onto deepslate, tuff and gravel (2.1.48)
- Bonemealing Farmer's Future Delight moss now lets its existing spread replace natural `farmers_future_delight:deepslate`, `farmers_future_delight:tuff` and `minecraft:gravel` with moss. Use bonemeal on a moss block next to an exposed surface of these blocks, including below Y=0. This adds substrates to the existing spread; bonemealing bare deepslate/tuff/gravel directly does not start moss growth.
- Retains FFD's moss-enabled setting, air-above requirement, solid-surface check, spread radius, edge randomness and vegetation generation. Uses exact natural block IDs; deepslate ores and cobbled/polished/bricked/tiled building variants are not added. No world migration or terrain regeneration is needed.
- Applies through the existing BeanUtils class transformer when FFD's optional `BlockMoss` class loads. Only its `isMossReplaceable` predicate changes; dependency jars are not edited and no FFD classes are bundled. Includes all 2.1.47 fixes.
### Norse villages and village searches (2.1.47)
- Fixes Heroes Expansion 1.3.5 Norse villages in Farmer's Future Delight 1.4.6 `ffd_cac` worlds. FFD builds its terrain directly and calls the vanilla structure-recreation stage, but does not emit `ReplaceBiomeBlocks`. Heroes Expansion prepares its Norse village starts only in that missing event; its later population handler therefore has nothing to place. BeanUtils prepares the original Norse generator at highest priority immediately before the existing population handler, only for FFD's extended generator, the Overworld, and enabled structure/Norse generation.
- Applies to newly populated terrain. Frontier preparation discards newly discovered starts in already populated old neighbor chunks, preserves existing village records, and does not load chunks. It does not regenerate old terrain or add buildings to explored chunks.
- Routes Heroes Expansion's `/locate NorseVillage` through valid-layout checks. The original command can report a biome/grid candidate even when no village exists in an already explored chunk, or when the layout is too small to generate. Existing valid records are accepted; explored chunks without a record are skipped. New candidates use the original 40-chunk spacing, salt, generation-biome check, layout seed and component generator. The command retains its 100-region search extent.
- Adds **Norse Village** (`heroesexpansion:norse_village`) to Simple Structure Scanner 1.4.0, with dimension and biome metadata, search, result cycling and location filtering. This procedural village entry has no schematic preview. Search is performed on the server; matching BeanUtils on clients supplies the entry and UI integration.
- Repairs the scanner's ordinary village search: uses the installed village generator's spacing/size, Forge's expanded village biome list, the actual generation-biome viability test, valid component layouts and saved records. Respects disabled villages/structures, skips explored chunks with no village, sorts candidates before limiting results and bypasses the scanner's stale village position cache. Other structure searches keep their existing implementation.
- `villages` in `config/beanutils.cfg` adds `prepareNorseVillagesInFfd=true` and `allowModdedNorseBiomes=true`. The latter extends Norse villages to Forge-enabled village biomes tagged Plains or Coniferous, excluding hot/sandy/snowy additions; vanilla Plains/Taiga remain allowed. Set it to false before starting to retain the original Norse biome restriction. Heroes Expansion and the scanner remain optional; no dependency classes are bundled or dependency jars edited.
### Dank Storage pickup and controls (2.1.46)
- Fixes Dank Storage 1.12.2 1.4-pre11's server toggle path calling the client-only Minecraft singleton before updating the item. Pickup, void and construction settings now change on the server, and the requesting player receives the existing translated enabled/disabled action-bar message. The normal inventory container is synchronized after control changes.
- Fixes `Utils.getTagSafely` returning a detached new compound for a fresh item: the new tag is now attached to nonempty stacks. Pickup flags and selected-slot writes therefore persist before anything has been stored. Existing compound identity, item contents and unrelated/custom NBT are preserved by these control changes; the shared empty stack is not modified.
- Adds mouse-input dispatch to Dank's existing key handler, so mouse-bound controls use the same packet path as keyboard-bound controls. Sneak-wheel construction selection now handles an offhand Dank and safely ignores missing players/worlds and open GUI screens. Existing keybind assignments and packet formats are unchanged.
- Portable container and screen ownership comes from the handler's actual Dank item rather than blindly reading the main hand. Offhand containers no longer lock an unrelated selected hotbar slot. Toggle, slot-cycle and pick-block requests retain the original main-hand-first fallback to an offhand Dank. If both hands hold Danks, the main hand takes priority, as before.
- Removes the server pick-block handler's read of the client's crosshair. It ray-traces from the requesting player's eyes/look within their server block reach and selects a stored item only when item, metadata and NBT agree with the picked block. Empty/missed rays leave selection alone. Slot cycling retains the original wrap behavior and requires construction mode.
- This installed Dank build exposes pickup/void/construction controls as keybinds; this release repairs those controls and mouse bindings, without adding a new settings-button interface. Stored inventory insertion/extraction, capacity, crafting recipes and placement algorithms remain unchanged. Dank is an optional compile-only dependency; no Dank classes or dependency jar are bundled.
### HBM explosions respect FTB Utilities claims (2.1.45)
- Makes volatile creepers' VNT blasts and HBM's NT, legacy nuclear, batched nuclear, parallel nuclear, balefire, thermobaric, FLEIJA and other covered blast engines respect each affected FTB Utilities claim's explosion setting. A blast outside a protected claim cannot remove blocks inside it. Negative coordinates, all block heights and separate dimensions use the destination chunk's claim.
- Filters VNT/NT affected blocks before destruction, drops, chain reactions or slag/fire conversion. Guards direct block writes in the explosion package and balefire's spreading code. Ordinary HBM machine operation, player block placement and world generation are not intercepted. Unclaimed chunks and claims with explosions enabled retain normal blast behavior.
- When enabled with FTB Utilities, HBM's parallel nuclear engine uses its existing safe-commit mode: ray calculation and section preparation stay parallel, while the actual section replacement checks current claims on the server thread. Rejected jobs free their native bit masks without removing blocks or tile entities. This can change nuclear explosion commit performance compared with HBM's unsafe fast mode.
- Enabled by default via `B:protectClaims=true` in the `hbm explosions` category of `config/beanutils.cfg`. On the claim owner's team, keep **Enable Explosions in Claims** disabled to protect that team's claims. Setting it to enabled deliberately permits blast damage. FTB Utilities and HBM remain optional compile-only dependencies; no dependency jars are bundled or edited.
- Protects terrain from the covered blast engines, not entity/player damage, radiation, fallout contamination, EMP energy loss, every projectile impact, or every unrelated HBM hazard. This is not a blanket claim-protection patch for all HBM behavior.
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

