Commit graph

542 commits

Author SHA1 Message Date
chris
86dafbc108
Ensure we load mod resources correctly on Geyser-NeoForge (#4651)
* correctly load jar resource files on neoforge

* also add support for neoforge-floodgate
2024-05-12 10:49:08 +02:00
basaigh
a39cd65537
Fix velocity ping passthrough (#4626) 2024-05-03 13:53:47 +02:00
Camotoy
6a214f235c
Remove duplicate method 2024-05-02 13:07:18 -04:00
Camotoy
efda13421f
Merge branch 'master' into feature/1.20.5 2024-05-02 12:58:46 -04:00
chris
1291b89e64
Ensure proper Geyser starting/disabling when Geyser is used on a client (#4621)
* Ensure proper Geyser starting/disabling when Geyser is used on a client

* also set correct remote port

* only use direct connection on server, not client, actually override remote port
2024-05-02 00:29:33 +02:00
onebeastchris
255835438d viaversion 4.10.0 compat, indicate 1.20.6 support on modrinth 2024-04-30 21:59:38 +02:00
onebeastchris
dd745b901f move to paper-adapters 2024-04-30 20:48:10 +02:00
onebeastchris
5d3630cf23 ominous banners - this really isn't ideal 2024-04-29 23:19:18 +02:00
onebeastchris
8b7b8cdffd Properly shutdown LocalSession's, ensure transferring works properly regardless if we're injected or not 2024-04-29 16:08:14 +02:00
onebeastchris
82123aecf1 Fix: Modded platform injector not being used 2024-04-28 23:52:23 +02:00
onebeastchris
9b1e45007a Fix injectors, should work with Spigot/Paper 1.20.5 now 2024-04-28 23:41:13 +02:00
RK_01
42a9ba617b
Update ViaProxy platform (#4607)
* Update ViaProxy API usage

* Don't reference ViaProxy API in dummy application
2024-04-26 20:06:37 +02:00
chris
a57e7b54dc
Update ViaVersion api usage to be compatible with ViaVersion 4.10 (#4606) 2024-04-26 16:36:47 +02:00
onebeastchris
91a74603c7 idea: deal with cookies and transfer 2024-04-26 14:50:48 +02:00
onebeastchris
16cb76f523 neoforge 1.20.5 boots 2024-04-25 17:38:03 +02:00
Camotoy
b29e0d9d10
Move MCProtocolLib to dev - package ID change 2024-04-24 16:39:35 -04:00
onebeastchris
687d299ff5
target 1.20.5 release, build neoforge again 2024-04-24 16:26:59 -04:00
onebeastchris
c48428daf0
init: pick item component change 2024-04-24 16:26:58 -04:00
onebeastchris
6a5efa3c9d
Start on 1.20.5 mod platform support - NeoForge (temporarily) excluded
Also fixes lecterns, and block break speed calculations
2024-04-24 16:26:58 -04:00
chris
94f664ad8d
Fix: Properly check whether the so_reuseport socket option is available (#4579)
* Try to properly check if so_reuseport is available

* io_uring "support"

* comment out io_uring, for now

* Make IO_uring opt-in via `-DGeyser.io_uring=true` flag

* dont include io_uring

* oops - bungee 

editing on mobile is hard

* oops - spigot

* oops - velocity

* properly exclude all io_uring on all platforms except standalone

---------

Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
2024-04-19 11:50:40 +02:00
chris
a24f684123
Update to Gradle 8.7, bump loom to 1.6 (#4565)
* Update to Gradle 8.6, bump loom to 1.6

* update to gradle 8.7
2024-04-14 00:16:26 +02:00
Sage
fa441f1c7b
Add ConnectionRequestEvent (#4533)
* 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>
2024-04-01 14:33:12 -07:00
chris
d24a4766b4
Shade the Geyser api on modded platforms (#4520) 2024-03-24 16:12:40 +00:00
chris
4fa0bcd01b
Update Jackson (#4512)
* Update jackson

* relocate yaml on velocity
2024-03-21 19:05:41 +01:00
chris
867cf6da05
Feature: JiJ dependencies on modded platforms (#4502)
* 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
2024-03-19 23:05:30 +01:00
chris
123990a795
Update ViaVersion api usage 2024-03-02 20:03:18 +01:00
Redned
97fc2de42f
NeoForge Platform Support (#3781)
* 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>
2024-02-23 17:58:39 +01:00
RK_01
aca368e332
Implemented ViaProxy bootstrap (#4201)
* 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
2024-02-19 22:25:49 +01:00
chris
6a51d8298f
Feature: Rework startup logic (#4377)
* 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.
2024-02-14 12:50:50 +01:00
chris
509e00c138
Fix: Geyser on Velocity after they renamed packet class names :/ (#4399) 2024-01-19 00:19:07 +01:00
chris
3288f422b1
Update ViaVersion api usage (#4386)
- Switch to fluent accessor, since the getter was removed after being deprecated for 3 years
2024-01-12 15:39:53 +01:00
chris
592a58a0c8
Use uuid for bukkit api permission checks (#4363)
* lookup players by uuid instead of name

* Fix: look up Players by UUID for permissions, dont throw if a player can't be found (e.g. disconnected)

* use api method
2023-12-25 20:43:13 +01:00
chris
32a8573651
Fix broken netty util class check (#4357) 2023-12-20 17:59:51 +01:00
chris
f3e56d282e
Gracefully fail on older spigot builds due to outdated netty (#4355)
* Test for outdated netty to avoid https://github.com/GeyserMC/Geyser/issues/3814

* capitalization

* bad spigot, go paper
2023-12-20 16:35:48 +01:00
Kas-tle
aaf38f46fb Target Java 17 2023-12-14 21:31:14 -05:00
Konicai
a13492e0ed Final 1.20.4 cleanup 2023-12-14 21:31:14 -05:00
Konicai
4294982310 fabric: require 1.20.4 as ViaFabric doesn't support 1.20.2 2023-12-14 21:31:14 -05:00
Hasan
184a14d026 Update versions in README and modrinth task (#4303)
* Change fabric version

* Update java version

* Update Bedrock version also
2023-12-14 21:31:14 -05:00
chris
3d05181a13
Fix: Show the correct port that Geyser started on when using Geyser-Fabric on a client. (#4335) 2023-12-12 22:44:13 +01:00
chris
c0f6a2b926
Add more info to Fabric's geyser dumps (#4175)
* Added onlineMode, platformName, and Minecraft version to dump - renames platformVersion to loaderVersion since that is more fitting to modded structure

* rename loaderVersion back to platformVersion

* address review by @Konicai

* Fix geyser dump creation (regression from the syntax/annotation PR)
2023-12-06 08:26:20 +01:00
chris
95d65350e4
Project wide syntax/annotation cleanup (#4238)
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-12-05 18:54:42 -05:00
Konicai
bb6a1ec40a
Simply pingpassthrough logic, add fabric ping passthrough (#3930)
* Check if PingPassthrough is null
* Remove QueryPacketHandler
* Fabric ping passthrough
2023-11-13 18:17:40 -05:00
Camotoy
4e0cc92e93
Address #4281 2023-11-11 13:26:28 -05:00
chris
06663bcafd
Fix: Don't mistakingly assume that Geyser-Velocity initialized (#4276)
* 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.
2023-11-06 16:17:41 +01:00
chris
644082ae84
Fix /geyser reload on Velocity (#4258)
* 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
2023-11-03 17:16:09 +01:00
chris
51236f7a59
Let the fabric module really use Java 17 (#4231)
* Let the fabric module really use java 17

* Remove unnecessary target/source compat; handled by indra instead
2023-10-20 22:17:43 +02:00
chris
b17f4a46f4
Update outdated proxy message to check for 1.20.2, remove floodgate 1.0 checks (#4204) 2023-10-09 18:20:18 +02:00
chris
82541a5b37
Show only 1.20.2 as supported on Fabric (#4190) 2023-10-06 06:50:01 -07:00
chris
3547fab228
Fix: Bedrock clients timing out due to present Java resource packs (#4176)
* fix: auto deny Java edition resource packs

* 1.20.2 bump on Fabric

* bump mcpl

* Bump required min version in the fabric.mod.json file
2023-10-03 17:15:30 +02:00
chris
34ff8c1217
Allow extensions to load other extension's classes, and store extensions by IDs instead of name (#3946)
- the extensionmanagers `extension` method now takes in a extension id instead of name
- extension folders are now created using extension id's
- Extensions can load classes from other extensions now
- Added warning about external class loading
- Wherever applicable: store extensions internally by id instead of name
2023-10-01 07:17:53 +02:00