* More proper workaround for direct connection using Netty 4.2
* Add check for outdated Velocity
* BungeeCord support for Netty 4.2
* Use pooled allocator
* Small cleanup: only one allocator system property check, pin comment to static commit
* Set allocator type on Standalone using netty system property
* Don't mess with allocator, both BungeeCord and Velocity set it globally
* Temporarily remove io_uring support
In order to support io_uring transport after the 4.2 update, we'd need to separately handle 4.1 and 4.2 event loop group creation
* Add compileOnly netty io_uring dependency for Geyser-BungeeCord
* Exclude old incubator io_uring dependency on geyser-standalone
---------
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
* Inventory translators are now part of inventories, try fixing inventory reusing, use NetworkStackLatency hack
* Add debug, re-add force open hack
* don't log to info
* fix debug npe
* Don't set setPending when opening pending inventories, add more delay to re-opening rejected inventories
* Use inventory#getTranslator to hopefully avoid translator/inventory desync
* Minor cleanup
* Update core/src/main/java/org/geysermc/geyser/GeyserLogger.java
* Reuse inventories whenever possible, prevent bedrock inventory id conflicts
* Fix debug logging with arguments, don't attempt to re-use inventory that's currently closing
* Some documentation, include pending inventories in re-use check
* "bad html entity"
* add wayyyy more debugging to container reusing checks
* yeet java id check
* Fixes related to hacky plugins that spam open screen packets
* no clue how this slipped by
* Don't reuse real blocks, yeet Inventory#isDelayed
* Initial work on Forge platform
* Rework modded platforms to use a common module
* Add support for integrated worlds on modded platforms
* Fix classload errors and move mixins to shared module
* Fix Fabric mixins and check min height in mod world manager
* Add Forge command support
* Add back modrinth publishing
* Don't apply application plugin to shared mod sources
* Fix docs
* Delete unused class
* Clean up repositories
* - Update to 1.20.2
- set custom refmap name
- fixed console commands crashing the server (hasPermission now accepts CommandSourceStack instead of Player)
- Forge wants fastutil relocated, so be it
Current issues:
- ClassNotFound exceptions with classes that are clearly present
* - Fix ClassNotFound errors on Forge due to weird Classloader
- Dont relocate gson
* merge upstream
* oh no
* Bump lombok, architectury-loom
* init: neoforge 1.20.4 support
* NeoForge builds
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
* Archive neoforge artifacts
* transformForge -> transformNeoForge
* Neoforge boots!
* Fix mixins on neoforge
* Update build/pr file names
* Update mods.toml to new neoforge standard
* Fix refmap naming
* more fixes
- no need to include gson
- cleanup nullable/nonnull annotations
- add more info to geyser dumps on neoforge
* yeet platform executor
* yet another temp branch to figure out the runServer task
* yeet transitive dependency, that cant be right
* Attempt at getting the runServer task to work, part two
* Revert the changes for the runServer task, try and shut down the injector
* Remove spigot weird bug workaround, shut down properly
Also add a compileOnly dependency for the mod module to get rid of spammy false warnings
* Update to latest restart changes
- fix duplicate nodes crashing neoforge
- connector -> geyser in GeyserModCommandExecutor
- create command manager early to fix issues with permission gather event
* Consistent NeoForge spelling, move some dependencies to the version toml
* Add lombok to version catalogue
* Add plugins to version catalogue
* revert move to buildSrc
* Create `assets/geyser/icon.png` to reference icon from a single file on standalone/neoforge/fabric
* add fabric permissions api to libs.versions.toml
---------
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
Co-authored-by: onebeastchris <github@onechris.mozmail.com>
Co-authored-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
* 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.
* 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.
* only tabcomplete for commands the sender has permission for
* set permission defaults for spigot
* Make velocity autocomplete on arg length 0 and 1
* fix advancements perm in spigot plugin.yml and add settings perm
(whoops)
* don't show bedrock commands to java players
* modify spigot perm defaults
* censor help menu, abstract tab complete code
* Bedrock players don't get cmd argument suggestions
* update spigot plugin.yml
Mostly checked with IntelliJ, but manually performed. The only issue I possibly anticipate is item name/lore issues, but the new method should be technically better.
With this commit, debug messages in Netty and Protocol will now show if debug mode is enabled in the Geyser standalone config.
There is also some small tuning to the PacketTranslatorRegistry for cleanliness and maybe some minor performance.
* Send message to Java if command is Bedrock-only
If a Java player attempts to use a Bedrock-only command, such as `geyser statistics`, they will get an error message stating that this command is only for Bedrock players.
This commit also cleans up Velocity Adventure dependency usage. Issues were caused because of the way relocation works and because Velocity also uses Adventure.
* Only look for a session if we have to
* Update languages submodule