- Updated entity getter to force-get entities, bypass entity filtering.
- Moved damage logic from `setHealth()` to `hurt()`, and made `setHealth()` just call `hurt()`, meaning some mobs can now dodge/block `setHealth()`.
- The `BossEntity` `hurt()` method now doesn’t call `super.hurt()`, so it doesn’t use any vanilla behaviour.
- Updated access checker to make it more resilient against bypasses, even though I hadn’t seen any bypasses for the original one.
- Updated the name of the mixin-remover-class-visitor.
- Removed a random print statement that I left in the mixin-remover-method-visitor.
- Improved handling of coremod when it fails on JVMs that don’t have the Attach/Tools API (`com.sun.tools.attach`). It now uses reflection to access certain things, instead of a direct reference, so it is catchable and won’t crash the game – instead falling back to events/disabling some features, as intended.
- Fixed some bugs related to Metapotent Flashfur when the coremod failed, or was disabled, like the Meta-Beam not showing up.
- **<font color="red">Coremod config value moved to `omnimobs-common`.</font>** If you disabled the coremod previously, you might need to disable it again. (Except it might not crash anymore, so that might not be required.)
- Fixed incorrect logging in the coremod, saying “Transforming ServerLevel…” when it was actually transforming `MinecraftServer`.
- The coremod (Java agent) temporary file is now set to delete on exit. (So it won’t clutter the OS’s temporary files directory.)
- The agent JAR file is now extracted with a `try-with-resources` statement, meaning if it fails at this step, the file stream will still be closed.
- Fixed stars and light rays rotating with Metapotent Flashfur.
- Updated Metapotent Flashfur’s stars to last twice as long on average.
- Fixed Metapotent Flashfur’s walk animation, making it smooth.
- Updated Metapotent Flashfur’s Meta-Beam to vaporise entities. (They don’t play their death animation.)
- Added Object-Oriented ability/move system and ported Silverlight (and Flashfur’s Invulnerability Detection) to it. This allows for cleaner code, and context-aware moves! (I’ll port the other mobs fully, when they get a big rework, and all new mobs will probably use it!)
- Updated Silverlight a bit, due to the fact I ported him to the new OOP system. He should hopefully feel less “spammy”.
- Updated `UnsafeUtil` to make a new instance of `Unsafe`, instead of getting the existing `theUnsafe` field. This doesn’t matter much (it’s only used to attach the agent), but I prefer doing it this way. It’ll fall back to the other one just in case.
- Updated the music system to use an `IMusicEntity` interface, meaning both Boss entities and Metapotent Flashfur use the same `BossMusic` class. (In other words, there is less duplicated code, as the `BossMusic` class only cares about an `IMusicEntity`, and not a specific implementation!)
- Changed Flashfur’s and Iron Golem’s music, because of potential issues using the original ones. Original music:
- Courage by <a href="https://pixabay.com/users/hot_dope-27442149/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=200156">Hot_Dope</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=200156">Pixabay</a>.
- Aggressive Metal Trailer (Dragon Heart) by <a href="https://pixabay.com/users/alexgrohl-25289918/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=132732">AlexGrohl</a> from <a href="https://pixabay.com/music//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=132732">Pixabay</a>.
- Made it so Boss entities can target entities that can’t normally be targeted. (For example, entities with the `invulnerable` flag set to `true`.)
- Added a spark particle effect when Alarm parries an attack with his sword.
- Made it so the camera shake doesn’t shake when the game is paused.
- Fixed Metapotent Flashfur not saving on Windows (hopefully), by upgrading file management to use `java.nio.file`, meaning it’ll automatically handle `/` vs `\`. (I use Linux, so I can’t be 100% certain it works!)
- Made it so Metapotent Flashfur cannot have a damage overlay or death animation.
- Fixed camera shake becoming intense upon world reloading. (The intensity value persists upon world reloading, instead of resetting.)
- Made Metapotent Flashfur’s lightning brighter.
- Changed force-setHealth and Flashfur’s invulnerability detection to use approximate equals, and not exact equals, to account for floating-point errors.
- Added checks to the `knockback()` method for Boss entities.
- Improved target setting immunity and target cancellation immunity for Boss entities.
- Improved some other things related to Boss entity defence.
- Reworked Entity Remover, adding a GUI with a `die()` toggle, leave-level calls toggle, invulnerability toggle, immovability toggle, and a `/kick` ban toggle. This should help with OP mobs from other mods killing you, teleporting you, or kicking you out of the world.
- Updated defence against `CompoundTag` modification, so when getting the value of an Omni-Mobs tag, it returns `0`. I also changed some other small things.
- Improved Flashfur’s invulnerability detection against players.
- Added some basic tests so it’s less likely that I’ll release a version with broken calculations, in the future. I will probably expand the amount of tests later. JUnit didn’t seem to work, so I had to make my own. They’re off by default, but you can enable them in the config.
- Updated icon, because the mod isn’t just about Flashfur anymore, and made it show in the mod. I might change the icon again at some point.
- 5% of the damage dealt by Boss entities now ignores vanilla defences such as armour and resistance.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }