* Use JiJ inclusion for Fabric/NeoForge to prevent mod conflicts. Further: Don't publish shadow jars to maven.
* Shade and relocate dependencies that don't conform to SemVer on Fabric
* Shade/Relocate dependencies on Fabric to avoid version warnings
* Use relocate function from the build-logic plugin
* This makes `geyser reload` work the same across all platforms. For example, it ensures that we reload the config to the greatest extent possible (with the exception of compression/injection settings). Additionally, this clears up issues where Extensions were previously disabled during reloading - instead, the new Pre and Post reload events allow extensions to reload whatever necessary on their own.
* Fix: ListenerBoundEvent could set `INITIALIZED` to true, even if we did not initialize yet - move that to postStartup() instead.
* only assign INITIALIZED once, and only after the correct listenertype bound.
* Fix /geyser reload on Velocity
* No need to create/init a new injector on Velocity
* No need to warn about "abnormally long startup" on Bungee when we're reloading. And, as on velocity, no need to re-inject
* System property stuff
* Add geyserUdpPort/Address system properties as overrides for pluginUdpPort/Address
* Fix formatting for if-else statements
---------
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
Geyser installations will now get notified when a new Bedrock release is out and Geyser must be updated. The system works similarly to ViaVersion where OPs get a notification of an update when they join. The permission node for players to see update notifications is `geyser.update` and the backing JSON that controls this can be found at https://github.com/GeyserMC/GeyserSite/blob/gh-pages/versions.json. There is also a config option to disable update checking.
This update also fixes modern Paper installations not being able to see colored text logged from Geyser in the console.
This will allow Geyser-Fabric to work without resource loading issues. This commit also ensures try-with-resources is used anywhere a resource is accessed.