- [1.18.2-1.20.1 Forge] The 1.20.4+ mod loading format is no longer assumed for Java 21
- [1.20.1] Fixed a bad advancement wrapper cast
commit history since 0.4.5 because I forgot to keep track of everything
- Lots of backend rewrites and refactoring:
- Java 25 (and Java 24 with -XX:+UseCompactObjectHeaders) should be able to load now
- All internal BurningWave calls are now routed through
Hacks - Consolidated and removed code smells from all
Wrappedimplementations - [Forge & Neoforge] Rewrote and standardized mod loading (this also fixes 1.20.4 & 1.20.6 Forge not being able to load)
- [Forge & Neoforge] Reorganized module layer hacks for proper (WIP) dev environment support
- [1.16.5+] Consolidated & standardized network implementations (this also fixes serverside triggers for Music Triggers not working in 1.20.4+ Forge & NeoForge)
- [1.20.6+ Neoforge] Replaced poorly implemented string-based early loading file path scanning that caused a crash with Linux
- Fixed the TOML parser ignoring leading '-' when parsing numbers (leading to negative numbers being parsed as positive)
- Partially (or maybe fully?) fixed a JVM shutdown crash caused by the BurningWave resource releaser
- Fixed mouse hover calculations for radial & scrollable GUI widgets
- [1.12.2] Fixed rendering compatibility issues with nothirium
- [1.16.5+] Implemented dimension-specific respawn position checks for players (Music Triggers home trigger)
- [1.19.2 - 1.20.1 Forge] Fixed CustomSuggester not being properly registered for the WrappedCommand implementations (Music Triggers decoder exception)
- [1.21.1 Forge] Added a fallback for the Minecraft version not being parsed on servers
- Updated the bundled version of BurningWave for Java 24 support
- Fixed block pos offset issues for negative coordinates
- Relocated the parameter API from music triggers to mods.thecomputerizer.theimpossiblelibrary.api.parameter
- Fixed Renderable implementations not handling parameters properly (music triggers image & title card issue)
- Fixed references to forge class/methods being present in common version code
- Fixed some null checking issues when retrieving registry names for biomes & dimensions
- Consolidated & refactored item registration implementations
- Fixed MineraftAPI#isPaused always returning false when connected to a server
- [1.12.2] Fixed packets not being able to get decoded on dedicated servers
- [1.16.5+] Fixed registry names for dimensions not being retrieved properly
- [1.16.5 - 1.18.2] Fixed the custom argument type for wrapped commands not being registered
- [1.16.5 - 1.20.1 Forge] Fixed network direction issues causing a disconnect when trying to join a server
- [1.16.5 - 1.20.1 Forge] Fixed the 'Unknown custom packet identifier' warnings when receiving packets on the client side
- [1.20.1 Forge] Updated the supported Enhanced Celestials version to 5.0.3.1
- [1.21.1] Added support for Enhanced Celestials 6.0.2.0 to all mod loaders
- Added sources and javadoc jars as additional files
- Fixed a startup crash with unexpected file names and/or content from mod jars
- 1.12.2 is now fully compatible with cleanroom
- Fixed a startup crash during the coremod phase when sinytra connector is present
- Fixed most of the entrypoint stuff not being called in NeoForge 1.20.6/1.21.1 (causing crashes & weird behavior)
- Fixed an offset issue with EntityAPI#getRoundedPos
- Add a bunch more Toml helper methods mainly pertaining to value retrieval
- Fix item model properties trying to get registered on dedicated servers
- Add MinecraftAPI#getCurrentScreen & ClientHelper#getCurrentScreen
- Add EntityAPI#isHostile
- Fixed RandomHelper not handling negative numbers properly
- The entire mod has been rewritten from scratch
- It is now both a multiversion API & multiversion modloader
- Refactored most of the important core stuff into an api package
- Most classes that ended in Util now end in Helper and have been organized into packages that make more sense
- Reformatted and improved upon most Helper classes
- Ported, abstracted, and improved upon the Wrapperable system from Scriptify, the geometry render system from SleepLess, as well as various utility functions from some of my other projects
- Added a layering system for screens and widgets along with a number of new helper methods due to the many abstractions needed
- Fixed some broken mixin stuff
- Fixed some broken network stuff
- Fixed packets not getting registered on dedicated servers
- Updated to Gradle 8.1.1, Fabric 0.76.0, and Loom 1.2.+
- Refactored a bunch of registration stuff
- Replaced all Point4i, implementations with Vector4f implementations for consistency
- Added a SpriteSheet extension for the PNG renderable object for animation support via single column sprite sheet pngs
- Fixed Text renderable opacity values under 0.0314 being rendered at 1 often leading to flashes when fading in
- Implementing reading from and writing Tables and Variables parsed from TOML files to NBT data
- Added a system for easy and centralized packet registration
- Added some additional GenericUtils and DataUtil methods
- Logging done via the LogUtil class can now properly handle null levels, messages, and parameters.
- The LogUtil$ModLogger class now keeps track of how many lines it has written
- Added TextUtil$TextCasing and some related TextUtil methods for manipulating kebab-casing, PascalCasing, snake_casing, and camelCasing
- Fixed some inconsistencies and weird logic various GuiUtil methods.
- Changed GuiUtil#howManyLinesWillThisBe which returned an integer with the number of lines into GuiUtil#splitLines which just returns a list of the lines from the split
- Fixed some duplicate code in the NetworkUtil class
- NetworkUtil#writeString now forces input strings to be encoded in UTF-8 to avoid network crashes related to character encoding
- Moved GuiUtil#convertChatFormatting to FontUtil#convertChatFormatting
- Moved CustomTick from the util package to a new events package
- Added events for a SoundInstance playing, an entity being added to a ServerLevel, a player logging in on the server side, resources finishing being loaded on the client, and an advancement being granted
- Fixed the DataUtil class to make it an actual alternative to the Forge capability system
- Updated to Gradle 8.1.1 & FG 6.0.+
- Refactored a bunch of registration stuff
- Replaced all Point4i, implementations with Vector4f implementations for consistency
- Added a SpriteSheet extension for the PNG renderable object for animation support via single column sprite sheet pngs
- Fixed Text renderable opacity values under 0.0314 being rendered at 1 often leading to flashes when fading in
- Implementing reading from and writing Tables and Variables parsed from TOML files to NBT data
- Added a system for easy and centralized packet registration
- Added some additional GenericUtils and DataUtil methods
- Logging done via the LogUtil class can now properly handle null levels, messages, and parameters.
- The LogUtil$ModLogger class now keeps track of how many lines it has written
- Added TextUtil$TextCasing and some related TextUtil methods for manipulating kebab-casing, PascalCasing, snake_casing, and camelCasing
- Fixed some inconsistencies and weird logic various GuiUtil methods.
- Changed GuiUtil#howManyLinesWillThisBe which returned an integer with the number of lines into GuiUtil#splitLines which just returns a list of the lines from the split
- Fixed some duplicate code in the NetworkUtil class
- NetworkUtil#writeString now forces input strings to be encoded in UTF-8 to avoid network crashes related to character encoding
- Moved GuiUtil#convertChatFormatting to FontUtil#convertChatFormatting
- Fixed Text renderable opacity and fade values not getting applied correctly
- Updated to Gradle 8.1.1, & FG 6.0.+
- Refactored a bunch of registration stuff
- Replaced all Point4i, implementations with Vector4f implementations for consistency
- Added a SpriteSheet extension for the PNG renderable object for animation support via single column sprite sheet pngs
- Fixed Text renderable opacity values under 0.0314 being rendered at 1 often leading to flashes when fading in
- Implementing reading from and writing Tables and Variables parsed from TOML files to NBT data
- Added a system for easy and centralized packet registration
- Added some additional GenericUtils and DataUtil methods
- Logging done via the LogUtil class can now properly handle null levels, messages, and parameters.
- The LogUtil$ModLogger class now keeps track of how many lines it has written
- Added TextUtil$TextCasing and some related TextUtil methods for manipulating kebab-casing, PascalCasing, snake_casing, and camelCasing
- Fixed some inconsistencies and weird logic various GuiUtil methods.
- Changed GuiUtil#howManyLinesWillThisBe which returned an integer with the number of lines into GuiUtil#splitLines which just returns a list of the lines from the split
- Fixed some duplicate code in the NetworkUtil class
- NetworkUtil#writeString now forces input strings to be encoded in UTF-8 to avoid network crashes related to character encoding
- Moved GuiUtil#convertChatFormatting to FontUtil#convertChatFormatting
- Updated to Gradle 8.1.1, & FG 6.0.+
- Refactored a bunch of registration stuff
- Replaced all Point4i, implementations with Vector4f implementations for consistency
- Added a SpriteSheet extension for the PNG renderable object for animation support via single column sprite sheet pngs
- Fixed Text renderable opacity values under 0.0314 being rendered at 1 often leading to flashes when fading in
- Implementing reading from and writing Tables and Variables parsed from TOML files to NBT data
- Added a system for easy and centralized packet registration
- Added some additional GenericUtils and DataUtil methods
- Logging done via the LogUtil class can now properly handle null levels, messages, and parameters.
- The LogUtil$ModLogger class now keeps track of how many lines it has written
- Added TextUtil$TextCasing and some related TextUtil methods for manipulating kebab-casing, PascalCasing, snake_casing, and camelCasing
- Fixed some inconsistencies and weird logic various GuiUtil methods.
- Changed GuiUtil#howManyLinesWillThisBe which returned an integer with the number of lines into GuiUtil#splitLines which just returns a list of the lines from the split
- Fixed some duplicate code in the NetworkUtil class
- NetworkUtil#writeString now forces input strings to be encoded in UTF-8 to avoid network crashes related to character encoding
- Moved GuiUtil#convertTextFormatting to FontUtil#convertTextFormatting


