* let extensions specify geyser api version instead of base api version
* fix spacing, @link formatting, properly check for compat
* Proper warning, update to API changes to also check patch version
* Bump base-api version
* adapt to new base api changes
* Actually bump to 2.4.1
* Update api/src/main/java/org/geysermc/geyser/api/extension/ExtensionDescription.java
* Address reviews
* Address reviews
* Update to latest base api changes; proper extension *human* version checking
* no need to apply a plugin, that's the default
---------
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
* Init: Add /geyser ping command
* Block just console execution, not everything but console senders
* Use RTT as that seems to vary less wildly compared to getPing()
* Cleanup, use lang strings
* Add ping() method to GeyserConnection in api
* Update to cloud changes
* Proper block entity checks; ignore invalid block entity data sent by Java server
* fix intelliJ warning about potentially null block state
* Use auto-generated block entity types instead of hardcoding them
* undo some diff
* Update BlockRegistryPopulator.java
* Access block entity type of state by getting the block first
* deprecate JavaBlockState#hasBlockEntity
* Simplify check
* Add type check in JavaBlockEntityDataTranslator, ensure deprecated setBlockEntity() method still sets piston behavior
* nullability annotations
* yeet duplicate check
* Remove ears and unoffical skin sources
* Remove supplyEars
* Cleanup and add SkinApplyEvent
* Add failed back to skin
* Accept suggestion on SkinGeometry
Co-authored-by: chris <github@onechris.mozmail.com>
* Add javadoc and update copyright
* Remove old config options
* Make SkinApplyEvent a ConnectionEvent
* Add warning about third-party config options
* Update warning message
* Add javadoc to event
* Fix javadoc
* Ajust for review and bump version to 2.2.4
* Get rid of array and preserve original skin data
* Add originalSkin method to event
* Handle NonNull in SessionSkinApplyEvent
* Revert default copyright change
---------
Co-authored-by: chris <github@onechris.mozmail.com>
* Add ConnectionRequestEvent and implement it
* Add debug message and use InetSocketAddress instead of string
* Provide both proxy and real client ip
And add some minor javadocs
* Make ProxyIp nullable
* Apply changes from pr
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
* Apply changes from pr
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
* Apply changes from pr
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
* Bump API version
* Dont JiJ common on mod platforms
---------
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
* Allow adding custom items to the creative inventory in order for recipes outputting said custom items to work
* yeet includeInCreativeInventory as it would break existing nonvanilla extensions - and is pretty pointless anyways
* rename mappings to `creative_group` and `creative_category`
* delete outdated comment
* 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>
* Implemented ViaProxy bootstrap
* Applied requested changes to code
* Override indra settings to Java 17
* Removed explicit java source/target version
* Added ViaProxy artifact to build.yml
* Added ViaProxy artifact to pullrequest.yml
* Updated ViaProxy API usage
* Implemented floodgate support for ViaProxy
* Depend on stable ViaProxy release
* Initialize command manager and ping passthrough before Geyser#start
* Revert "Initialize command manager and ping passthrough before Geyser#start"
This reverts commit 39356071c4.
* Some ping passthrough improvements
* Merged code properly
* Updated ViaProxy API usage
* Implemented better command handling
* Updated ViaProxy and Geyser API usage
* Combine bootstrap and plugin into one class
* Minor code improvements
* Call Geyser shutdown on plugin disable
* Only call disable if Geyser was enabled once
* Don't send two shutdown done messages
* Use setter for enabled boolean
* 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.