Commit Graph

2183 Commits

Author SHA1 Message Date
Andrew Steinborn
3c23ee7576 Fix typo for musl crypto 2024-09-07 13:14:04 -04:00
Andrew Steinborn
525ac2712e Also provide musl libc builds of Velocity natives
Reference: PaperMC/Paper#11367
2024-09-07 12:56:38 -04:00
Andrew Steinborn
784806848d
Do more speculative VarInt reading optimizations (#1418) 2024-09-05 00:00:34 -04:00
Andrew Steinborn
46f29480bd Delete now-unused MinecraftVarintLengthCompositeEncoder 2024-09-03 00:40:31 -04:00
Andrew Steinborn
f034c0277d Have one MinecraftVarintLengthEncoder, not two
Applies more to the margins (such as login phase and server list ping), but every bit does help.
2024-09-03 00:33:57 -04:00
Andrew Steinborn
52ae735ea3 Change LoginInboundConnection queue type to something that is actually thread-safe 2024-09-02 20:47:01 -04:00
Andrew Steinborn
862036d424 Fix a compile error. 2024-09-02 03:00:19 -04:00
Andrew Steinborn
a7654af1a3 Do some minor natives housekeeping. 2024-09-02 02:57:03 -04:00
Andrew Steinborn
55f9509c6e
Add a MinecraftVarintLengthCompositeEncoder for backend connections (#1419)
This is an optimization that has been in BungeeCord for some time, but it's an idea that makes a lot of sense: avoid a memory copy when we don't need to do one. The OS will hopefully be smart enough to use `writev()` or similar for this.
2024-09-02 02:25:04 -04:00
Andrew Steinborn
956fca142c Readd accidentally removed macOS arm64 compression native 2024-08-31 22:26:16 -04:00
Andrew Steinborn
f8c3a1a5cb update the native README with other OS instructions 2024-08-31 20:52:33 -04:00
Andrew Steinborn
f67d85493e update the native README 2024-08-31 20:47:25 -04:00
Andrew Steinborn
af629cf000
Fall 2024 recompile of the natives (#1416)
This time around, instead of the very ad hoc approach I have historically taken, this time we actually have a convenient script that takes care of basically all the hard work necessary, including cross-compilation.

We compile natives for Ubuntu 20.04 LTS (OpenSSL 1.1.x native and libdeflate) and Ubuntu 22.04 LTS (OpenSSL 3.x.x native), for both x86_64 and aarch64.

The macOS natives have also been recompiled on macOS Sonoma.
2024-08-31 20:30:47 -04:00
KoutaChan
67fb3b70a4
Increase readComponent string size limit to 262,143 for 1.13-1.20.2 (#1409) 2024-08-31 17:11:54 -04:00
Shane Freeder
6100e675af
Switch to alt throw path for reading login message IDs (Fixes #1370)
There is little expectation that we should get a -ve number in here, but
it is sadly seen in the wild. We will use an alternative exception path rather
than returing a magic number to indicate an invalid value.

once primative classes arrive, this should probably be written to use those
for passing up the result.
2024-08-21 17:06:11 +01:00
Max Lee
00ed2284ec
Use the default Minecraft port instead of custom one (#1277) 2024-08-10 15:12:19 -04:00
Timon
dd7b8b4d8f
Update 1.21 protocol to include 1.21.1 release (#1402) 2024-08-08 15:47:18 +01:00
powercas_gamer
51468530a9
[ci skip] add adventure-key and text-minimessage javadoc links (#1394) 2024-07-25 23:53:22 -05:00
powercas_gamer
f6a47ae8b0
[ci skip] update docs url (#1393) 2024-07-24 18:25:41 -05:00
Patryk Twardosz
09f687e5d5
feat: Add server registered/unregistered events (#1386)
* feat: Add server registered/unregistered events

* Annotate new API with `@Beta`

* Migrate from classes to records

* Add null checks

* Fix code style indent

* Add links in documentation

* Fix docs indent

---------

Co-authored-by: powercas_gamer <cas@mizule.dev>
2024-07-24 18:13:21 -05:00
Shane Freeder
44b1e0c6f9
Print correct exception when hotspot dump fails 2024-07-22 15:42:42 +01:00
Jaime Costas
a4476253ab
End bundle session on server switch (#1385) 2024-07-19 20:34:46 +02:00
Gero
d999ee2058 Fix PlayerConfigurationEvent only being called for initial configuration on 1.20.5+ 2024-07-14 16:29:30 +02:00
Andrew Steinborn
ebc418f6cc Do not use classes from io.netty.util.internal
In this case, we don't even need a concurrency-friendly MPSC queue, since this code only ever gets run in the event loop associated to the channel, so a simple `ArrayDeque` is enough for our needs.
2024-07-13 21:50:27 -04:00
Rubén
d5e7fa5b84
Add ServerResourcePackRemoveEvent (#1379)
* Add ServerResourcePackRemoveEvent

* Add nonnull check

* Fix indentation

* Fix import code style
2024-07-12 05:02:00 -05:00
Gero
6073f698e2
Add PlayerConfigurationEvent and PlayerEnteredConfigurationEvent (#1371)
* Configuring the player (i.e. sending resource packs) should now be done in the new PlayerConfigurationEvent.

* The new PlayerEnteredConfigurationEvent is called when a player acknowledged the switch to configuration state.

* The PlayerEnterConfigurationEvent is no longer called twice. It is now called when the backed wants to reconfigure the player.

* The PlayerFinishConfigurationEvent should no longer be used to configure the player (i.e. sending resource packs). This is because since 1.20.5 the backend server can't send keep alive packets between switching state anymore and the connection will thus time out.
2024-07-12 11:16:42 +02:00
Jason Penilla
e0f74a8493
Bump Adventure to 4.17 (#1376) 2024-07-10 23:15:28 -05:00
Shane Freeder
79a5634dfe
[ci skip] fix some trivial javadoc warns 2024-07-10 23:05:24 +01:00
Shane Freeder
82e81909d8
Add handling for KickPlayerRaw 2024-07-10 23:00:20 +01:00
Andrew Steinborn
5154f02910 Improved fix for #1372
Realized that the precondition that gets violated happens way too early, in `Maps.uniqueIndex()`.
2024-07-05 22:07:15 -04:00
Andrew Steinborn
6224adf70a Don't try to load a candidate plugin with the same ID more than once
Fixes #1372. Honestly, this was an oversight that I'm somewhat surprised that nobody caught until recently.
2024-07-05 22:01:31 -04:00
Gegy
4eae510fb7 Don't forward chat acknowledgement if the client didn't acknowledge any chat 2024-07-04 21:34:47 -07:00
Gegy
c6bb15c69b Fix: only treat command as signed if it has signatures
The Vanilla client will send 'last seen' even if the message is not signed, so this is much stricter than it needs to be. This should allow commands without any signed arguments to be modified/consumed by the proxy.
2024-07-04 21:34:47 -07:00
Gegy
077968089e Fix: pass through last seen update in a few missing places
This is hardly useful in the case of signed player chat messages, as these fundamentally cannot be spoofed or modified - however, for any unsigned input (particularly commands without any signed arguments), 'last seen' updates are still required and should be passed through in a consistent state.
2024-07-04 21:34:47 -07:00
Gegy
b5ee9dd20a Capture a consistent and reusable 'last seen' state for use in command packets 2024-07-04 21:34:47 -07:00
Gegy
ec9745769f Explicitly reject consuming signed command when denied by event
This would fail down the line anyway due to inconsistent chat state (if holding a 'last seen' update)
2024-07-04 21:34:47 -07:00
Gegy
3b7ffa837e Don't require command to be signed to pass it through as-is 2024-07-04 21:34:47 -07:00
Gegy
92c48507eb Extract common command handler paths 2024-07-04 21:34:47 -07:00
Gegy
be73131d5d Remove unneeded check
SessionCommandHandler is only constructed for >= 1.19.3.
2024-07-04 21:34:47 -07:00
Gegy
6b03b28a61 Refactor ChatQueue to track and expose general chat state 2024-07-04 21:34:47 -07:00
wallenjos01
aa4e8780bd
Assign ServerConnection to Player before enabling auto read (#1309) 2024-07-04 10:57:30 +02:00
Oliwier Miodun
410636a305
[ci skip] Add Issue Forms (#1364)
* copy issue contact links from Paper

* bug report template

* bug report template fixes

* why no code block

* feature request issue template and fixes to bug report template

* make fields required
2024-06-23 11:57:40 -05:00
William
9d25d309d3
feat: Add basic API for server links (#1353)
* feat: add basic server links API

* refactor: more precondition checking on links

* refactor: remove whitespace

* refactor: adjust method order, JDs in ServerLink

* refactor: remove "throws" from constructors

* refactor: add @NotNull annotations

* refactor: requested changes

* refactor: just use `List#copyOf`
2024-06-18 09:29:58 -05:00
Adrian
e60e2063a8
Add Configuration State API (#1261)
* Implement Configuration State events

* Implement PlayerFinishedConfigurationEvent

* Fixed PlayerFinishConfigurationEvent execution

* Apply suggestions

* Fix keep alive when blocking PlayerFinishConfigurationEvent

* Add ServerConnection to configuration events

* Separate PlayPacketQueueHandler to fix AutoReadHolderHandler

---------

Co-authored-by: Gero <gecam59@gmail.com>
2024-06-16 10:56:09 -05:00
Gero
350ea7f31e
1.21 support (#1338) 2024-06-12 20:33:01 +02:00
Adrian
2d015cdf5c
Add support for canceling ProxyPingEvent (#1264)
* Added support for canceling ProxyPingEvent
2024-06-08 14:28:33 -05:00
Luccboy
46cf9be297
[ci skip] Fix Javadocs of CookieRequestEvent (#1339) 2024-05-30 17:21:26 +01:00
Luccboy
07f1f9e7bd
Add Cookie API (#1313) 2024-05-30 16:52:30 +01:00
Gero
deacdb6228
Fix StackOverflowError in CommandGraphInjector when using redirects (#1335) 2024-05-30 13:40:07 +02:00
R00tB33rMan
1c36b66dcb
Fix null or empty has handling in LegacyResourcepackHandler (#1331) 2024-05-28 14:53:20 +01:00