Skip to content

Botania ​

26 merged pull requests.

New Features ​

  • #146 Modified BlockModFlower.java and BlockModMushroom.java to implement IFlowerPottable interface, and adjusted RenderSpecialFlower.java rendering methods to support scale tweaking and optional random offset disabling. Updated dependencies.gradle. - @FourIsTheNumber
    • Added: IFlowerPottable support for Botania flowers, IFlowerPottable support for Botania mushrooms
  • #144 Extended brew API (Brew.java, IBrewContainer.java, IBrewItem.java) with new methods, added BrewUtilities.java and BrewHelper.java for recipe introspection, and significantly expanded RecipeHandlerBrewery.java logic. Modified TileBrewery.java and PageBrew.java to support the new handler features. - @Nikolay-Sitnikov
    • Added: BrewUtilities utility class, BrewHelper client helper, Brew container/item API methods
    • Removed: Duplicate IMC registration logic
  • #143 Added gtnhlib dependency, created LibColorUtils.java utility class, and refactored hardcoded colors in RecipeHandlerLexicaBotania.java and PageText.java to use the new color utility methods. - @Ranzuu
    • Added: ColorUtils utility class, gtnhlib dependency
  • #131 Refactored NEI handlers (RecipeHandlerBrewery, RecipeHandlerElvenTrade, RecipeHandlerFloatingFlowers, RecipeHandlerLexicaBotania, RecipeHandlerManaPool, RecipeHandlerPetalApothecary, RecipeHandlerPureDaisy, RecipeHandlerRunicAltar) to show lexicon entries for both uses and recipes, fix transfer rectangles, and render machine backgrounds instead of adding them to bookmarked recipes. Added IMCForNEI and NEIHelper enhancements, plus seed/livingrock support with custom tooltips. - @koolkrafter5
    • Added: IMC for NEI integration, NEI helper methods, Seed/livingrock recipe handlers
    • Fixed: Transfer rect handling, Recipe bookmarking logic
  • #124 Updated GuiFlowerBag.java and GuiShroomBag.java to use localized strings, with new lang keys added across all supported languages (en_US, es_ES, fr_FR, ja_JP, ko_KR, nl_NL, pt_BR, ru_RU, zh_CN, zh_TW). - @Ranzuu
    • Added: GUI title localization strings
  • #117 Modified SubTileEntropinnyum to listen to explosion events from TNT minecarts and End Crystals, and added separate IC2 event listener for Industrial TNT compatibility. - @ALongStringOfNumbers
    • Added: TNT minecart explosion support, End Crystal explosion support, IC2 Industrial TNT support
  • #116 Backported Rosa Arcana generating flower behavior from upstream PR #109, updating SubTileArcaneRose.java with 108 new lines of logic and corresponding lang file entries across all languages. - @UltraProdigy
    • Added: Rosa Arcana behavior improvements, Lang strings for updated behavior
  • #109 Updated SubTileArcaneRose to detect and absorb nearby XP orbs and implement disenchanting mechanics that drop XP orbs for consumption. Updated language files to reflect new capabilities. - @koolkrafter5
    • Added: XP orb pickup, Item disenchanting, Disenchant-to-XP conversion
  • #103 Added ITieredManaTooltipDisplay interface and refactored TooltipAdditionDisplayHandler and ItemTerraPick to use the new tiering system. No behavior changes. - @combusterf
    • Added: ITieredManaTooltipDisplay interface

Changes ​

  • #105 Modified ItemRegenIvy logic, merging PR #104 changes to master. - @koolkrafter5

Bug Fixes ​

  • #151 Updated LightningHandler.java and SkyblockSkyRenderer.java to use Minecraft.getMinecraft().renderViewEntity instead of the player entity for client-side rendering calculations. - @Caedis
    • Fixed: Rendering from incorrect perspective in spectator/camera modes
  • #150 Added null check for explosion source in SubTileEntropinnyum.java to handle cases where ghast fireballs cause explosions. - @MLGfruitshoot
    • Fixed: NullPointerException on ghast fireball explosion near Entropinnyum
  • #119 Added null check in SubTileEntropinnyum.java to handle missing IC2 dependency gracefully. - @ALongStringOfNumbers
    • Fixed: Crash on world load without IC2
    • Closes #118
  • #95 Refactored ItemBauble.java bauble handler logic to use a short delay-based system instead of tick-based state management, eliminating unintended re-applications during the unequip-to-equip transition. Removed shared client/server state (toRemoveItems) from CommonProxy.java and ItemBaubleHandler.java. - @DarkShadow44
    • Removed: Tick-based unequip handling, Shared client/server item state management
    • Fixed: Ring of Far Reach reach stacking on re-equip
    • Closes GTNH#20484

Performance ​

  • #152 Added static field caching for slab unlocalized names in ItemBlockModSlab.java to avoid repeated getUnlocalizedName() calls during NEI processing. - @boubou19
  • #149 Reduced object allocations in BossBarHandler, HUDHandler, ItemsRemainingRenderHandler, LightningHandler, FXSparkle, ParticleRenderDispatcher, SkyblockSkyRenderer, CorporeaIndex, EntityDoppleganger, and ItemMonocle by caching temporary objects, reusing collections, and reducing array creation. - @boubou19
  • #147 Added static reflection field caching in ObfuscationHelper.java and ReflectionUtils.java, then updated usage sites across multiple handler and renderer classes (CorporeaAutoCompleteHandler, HUDHandler, TooltipAdditionDisplayHandler, RenderBow, SkyblockSkyRenderer, SubTilePollidisiac, SubTileTigerseye, TileSpawnerClaw, EntityDoppleganger, PageCraftingRecipe). - @boubou19
    • Added: Reflection caching utilities
  • #136 Cleaned up world field references in RenderLens.java, RenderTileAltar.java, RenderTileBrewery.java, RenderTileCorporeaCrystalCube.java, RenderTileEnchanter.java, RenderTilePool.java, and SkyblockSkyRenderer.java to prevent holding onto stale world instances. - @Alexdoru
    • Removed: Leaked world references
    • Fixed: Memory leaks in renderers
  • #133 Modified ItemMiningRing.java to check if the player already has Haste with amplifier >= 1 before applying, preventing redundant effect application each tick. - @guneykabel
    • Fixed: Ring of Mantle excessive effect reapplication
    • Closes GTNH#23501

Internal / Refactor ​

  • #110 Systematically renamed deobfuscated method parameters in client helpers, GUI, and effects classes. Some logic cleanup performed in RenderHelper and FXSparkle. - @Nikolay-Sitnikov
  • #107 Systematically renamed unreadable deobfuscated method parameters in item classes and applied modern Java syntax patterns. - @Nikolay-Sitnikov
  • #106 Systematically renamed unreadable deobfuscated method parameters in block and GUI classes to descriptive names. - @Nikolay-Sitnikov
  • #100 Enabled generic injection in gradle.properties and applied pattern-matching instanceof and modern Java features across multiple Botania API and implementation files. No logical changes to execution. - @Nikolay-Sitnikov

Documentation ​

  • #120 Typo corrections in PageRecipe.java, PageShedding.java, and multiple language files (de_DE, en_US, es_AR, es_ES, fr_FR, ja_JP, ko_KR, nl_NL, pt_BR, ru_RU, zh_CN, zh_TW). - @Yoshy2002
    • Fixed: Typos in code and translations

Chores ​

  • #140 Deleted contributing.md file (40 lines). - @UltraProdigy
    • Removed: contributing.md
  • #126 Bumped dependencies.gradle, Gradle wrapper, and settings.gradle versions. - @UltraProdigy

Contributors ​

Everyone who authored, reviewed or co-authored a change on this page, with how many of them:

@Nikolay-Sitnikov (11), @combusterf (8), @Dream-Master (5), @boubou19 (4), @koolkrafter5 (4), @glowredman (3), @UltraProdigy (3), @ALongStringOfNumbers (2), @Ranzuu (2), @Ruling-0 (2), @ah-OOG-ah (1), @Alexdoru (1), @Caedis (1), @cubefury (1), @danyadev (1), @DarkShadow44 (1), @FourIsTheNumber (1), @GDCloudstrike (1), @guneykabel (1), @MLGfruitshoot (1), @Pxx500 (1), @sisyphussy (1), @Worive (1), @Yoshy2002 (1)