Andrew Steinborn and GitHub
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 and GitHub
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
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
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
Andrew Steinborn
c3583e182c
Stop shipping the OpenSSL 1.0.x native
...
CentOS 7 is end of life in June 2024. Let's cut this loose.
I'll also recompiling all the natives soon.
2024-01-21 20:48:15 -05:00
Andrew Steinborn and GitHub
953ab6d8e7
Implement click callback provider ( #1029 )
2024-01-20 16:58:00 -05:00
Andrew Steinborn
8dcc7ee37e
Fix
2023-10-29 15:29:43 -04:00
Andrew Steinborn
2ec830f874
Apply some changes from 5.0.0
2023-10-29 14:54:50 -04:00
Andrew Steinborn
67d5e77b1f
Revert bad bug fix
2023-10-29 00:56:30 -04:00
Andrew Steinborn
7f8edf8c77
Fix typo in VelocityRegisteredServer#ping()
2023-10-28 19:53:49 -04:00
Andrew Steinborn
74033addbe
Fix bug in VelocityRegisteredServer#ping()
2023-10-28 19:53:29 -04:00
Andrew Steinborn
ae63da6836
Merge branch 'dev/3.0.0' of github.com:PaperMC/Velocity into dev/3.0.0
2023-10-27 21:57:44 -04:00
Andrew Steinborn
c6cc6098a6
Make EventTypeTracker actually thread-safe
...
Although I don't think anyone has actually triggered this bug in practice, we should still fix this.
2023-10-27 21:57:34 -04:00
Andrew Steinborn
277be8f9a7
Bump SnakeYAML to the last 1.x version
...
Fixes #1047 . We can't go any higher since that's an API-breaking change. In any event, this will likely disappear in 5.0.0 anyway, because Configurate 4.x now shades SnakeYAML internally.
2023-10-27 16:58:43 -04:00
Andrew Steinborn
bbdeb3ec58
Revert "Modify MinecraftCompressorAndLengthEncoder to handle 8MiB outgoing packets like vanilla supports now"
...
This reverts commit 7e932eaad4 .
Yikes, I broke something. Need to rethink this approach.
2023-10-27 16:10:39 -04:00
Andrew Steinborn
7e932eaad4
Modify MinecraftCompressorAndLengthEncoder to handle 8MiB outgoing packets like vanilla supports now
2023-10-27 15:35:04 -04:00
Andrew Steinborn
0b07456c89
Bump HARD_MAXIMUM_UNCOMPRESSED_SIZE to 128MiB
2023-10-27 15:17:32 -04:00
Andrew Steinborn
4b7950658b
Remove legacy repository cruft
...
This dates from the dark days when I dared to operate my own Jenkins instance. Never again.
2023-10-27 01:50:27 -04:00
Andrew Steinborn
19abb9094e
fix #1062
2023-08-20 02:13:55 -04:00
Andrew Steinborn and GitHub
f62d759896
Do not track plugin channels registered per-player on the proxy ( #591 )
...
We don't need to track this information since Velocity uses the JoinGame packet, which is about as good of a server rejoin mechanism we're likely to get in vanilla Minecraft.
2023-08-17 23:51:34 -04:00
Andrew Steinborn
40b76c6332
Fix flaky obtainTasksFromPlugin() test
2023-05-15 01:21:30 -04:00
Andrew Steinborn
92ae25b8ac
Also make sure to use the latest ping serializer as well
2023-05-15 01:20:45 -04:00
Andrew Steinborn
12a05f6d75
When pinging the server with protocol version -1, return the latest version supported by the proxy
...
This matches BungeeCord's behavior and is in line with what clients specifying this meta-version would expect.
2023-05-15 01:15:49 -04:00
Andrew Steinborn
673af65078
fix
2023-05-14 03:18:20 -04:00
Andrew Steinborn and GitHub
a29c753e39
Give each plugin its own executor service ( #1010 )
...
This is part of preparatory work for Velocity 5.0.0's revamped event system, but this change is safe to bring into the 3.x.x series. This affects the scheduler for now, but command execution will also be moved into the per-plugin thread pool, along with invocations of `EventTask.async()`.
2023-05-14 02:51:25 -04:00
Andrew Steinborn
7f776abf55
Upgrade Adventure
2023-04-19 23:22:20 -04:00
Andrew Steinborn
d438422d52
Get a bit more spotless
2023-04-09 12:19:50 -04:00
Andrew Steinborn
2fa9f37481
Delete copying temporary version of config.toml into temporary files
...
Fixes #999
2023-04-09 12:18:02 -04:00
Andrew Steinborn and GitHub
15cce53adf
Revert "Handle exceptions in ConnectionRequestBuilderImpl#fireAndForget ( #875 )" ( #978 )
...
This reverts commit b4e04204a9 .
2023-03-16 02:14:22 -04:00
Andrew Steinborn
7e9a25209c
Update various dependencies
2023-03-15 22:52:12 -04:00
Andrew Steinborn
b0988bc50a
Add a hard cap of 200 threads to VelocityScheduler
...
This is a more realistic (generalized) solution for #943 . Fundamentally, a plugin should not be spawning an unbounded number of asynchronous task execution units on demand from the user - an invariant Velocity itself enforces. However, since this practice is so commonplace, it makes sense that we would need to have some upper cap to at least make the practice safer than it currently is.
2023-02-18 16:20:12 -05:00
Andrew Steinborn
f744b37ad5
Merge remote-tracking branch 'origin/dev/3.0.0' into dev/3.0.0
2023-01-21 18:22:04 -05:00
Andrew Steinborn
d9ee34feac
Ignore the locally-generated lang directory
2023-01-08 13:37:01 -05:00
Andrew Steinborn
586cd56c05
Fire PluginMessageEvent correctly if it's sent when a connection is established
...
Fixes #774
2023-01-08 13:34:44 -05:00
Andrew Steinborn
022ae0fc00
Instead of re-encoding the client-server registry, pass through the original
2023-01-08 13:18:14 -05:00
Andrew Steinborn
7ed422b4ed
Switch all Guava Cache uses to Caffeine
2023-01-01 19:05:13 -05:00
Andrew Steinborn
aaa24752ac
Update various other dependencies
2023-01-01 18:58:27 -05:00
Andrew Steinborn
3768e66e86
Also use Spotless to remove unused imports
2023-01-01 18:52:11 -05:00
Andrew Steinborn
b0862d2d16
Use Spotless for license formatting
2023-01-01 18:46:33 -05:00
Andrew Steinborn
d715e17acb
Bump copyright date to 2023
2023-01-01 17:56:00 -05:00
Andrew Steinborn and GitHub
d72d707b1c
Convert Velocity buildscripts to Kotlin DSL ( #918 )
...
Spiritually indebted to #518 and @alexstaeding.
There's a minor break - we're going up to 3.2.0-SNAPSHOT as the API now compiles against Java 11. But this is more academic in practice.
2023-01-01 17:53:37 -05:00
Andrew Steinborn
ffa4c95435
Fix GS4 query reloading logic
...
Closes #915 . This isn't a fatal error, but it's a clear papercut.
2023-01-01 13:07:31 -05:00
Andrew Steinborn
f62768be9a
Fix native compile as libdeflate moved to CMake
...
Fixes #890 correctly. Also rebuild the compression/encryption natives on macOS and Linux ARM64.
2023-01-01 11:45:47 -05:00
Andrew Steinborn
ef7ad150c2
Add plugin logger name to file logger configuration
...
Closes #903
2023-01-01 11:33:37 -05:00
Andrew Steinborn
edadaab948
Update Netty
2023-01-01 11:31:34 -05:00
Andrew Steinborn
4ef9a33f4c
Add native info to dump
2023-01-01 11:30:39 -05:00
Andrew Steinborn
118c4b451c
Save /velocity dump output into a local file instead.
...
dump.velocitypowered.com is going to go offline on January 15th.
2023-01-01 11:26:45 -05:00
Andrew Steinborn
1ec77eb123
Fix #887
...
Velocity always handled ALL as an alias of ONLINE, so handle ONLINE the same way.
2022-12-11 23:29:57 -05:00
Andrew Steinborn and GitHub
2d0721516f
Netty 4.1.85.Final
2022-11-09 22:13:22 -08:00
Andrew Steinborn
7d77bfb53c
Update select dependencies
2022-09-21 00:48:21 -04:00
Andrew Steinborn
57ca66de2e
readd local linux aarch64 cipher def
2022-09-12 00:34:04 -04:00
Andrew Steinborn
ece90dedfb
Update natives to latest libdeflate and add OpenSSL 3 native compiled on Fedora 36 for ARM64
2022-09-11 23:54:33 -04:00
Andrew Steinborn
6496983ca3
Fix cancelling commands on <1.19 clients ( #827 )
2022-08-08 00:42:31 -04:00
Andrew Steinborn and GitHub
662fbc4e3c
Implement the ServerData packet by firing ProxyPingEvent ( #771 )
...
* Implement the ServerData packet by firing ProxyPingEvent
Mojang introduced the enable-status server property with Minecraft 1.19, which if enabled causes servers to close the connection when a client tries to ping them. Mojang wants to show the MOTD and favicon on the server select screen for those who manage to log in, so we need to implement this packet as well.
The good news is that we can send this packet as many times as needed on the same connection
This matches the behavior of pinging the server. This is a minor, but completely backwards-compatible, API breakage: Player inherits from InboundConnection so we do not have to change ProxyPingEvent, however plugins not expecting a Player might get confused.
* typo
2022-06-23 23:59:13 -04:00
Andrew Steinborn
93df65fdfb
Update Gson
...
Resolves #763
2022-06-22 22:25:30 -04:00
Andrew Steinborn
13b13eb351
fix typo
2022-06-08 09:58:15 -04:00
Andrew Steinborn
4b1cdbcb31
I have sinned but it feels good
2022-06-08 01:18:19 -04:00
Andrew Steinborn
01c6777948
Fix several issues with JNI compression
...
The libraries will require a recompile.
2022-06-08 00:53:15 -04:00
Andrew Steinborn
c2b237f196
DRY - one function to create respawn packets from JoinGame packets
2022-06-07 23:35:43 -04:00
Andrew Steinborn
aa38d3e561
Implement a proper login state machine for logins
...
Fixes #688 and probably a host of other potential problems.
2022-04-23 18:07:34 -04:00
Andrew Steinborn
d59d4505cb
Add stop command alias for ShutdownCommand
...
Fixes #678
2022-04-08 23:00:03 -04:00
Andrew Steinborn
95a32ad421
fix
2022-03-31 22:13:05 -04:00
Andrew Steinborn
05d1938476
Netty 4.1.75.Final
2022-03-19 19:04:29 -04:00
Andrew Steinborn
b5dcaa2315
Provide a more descriptive error message if Velocity isn't able to authenticate with Mojang servers
...
Fixes #636
2022-03-09 02:23:22 -05:00
Andrew Steinborn
35a1456c5f
Update Linux natives for latest libdeflate
...
x86_64 libdeflate was compiled with Fedora Linux 35. aarch64 binaries were compiled with Ubuntu 18.04.
2022-03-09 02:12:15 -05:00
Andrew Steinborn
b2800087d8
Ensure Forward doesn't broadcast to the current server
...
Fixes #641
2022-02-07 23:43:40 -05:00
Andrew Steinborn
058014aa75
Better document how to use the login plugin message API
2021-12-23 15:44:19 -05:00
Andrew Steinborn
8c39d9a1e4
Document every event Velocity will await on.
2021-12-23 02:52:56 -05:00
Andrew Steinborn
ea3341d710
Another day, another Log4j CVE
...
Happy holidays, y'all.
2021-12-18 16:15:32 -05:00
Andrew Steinborn
d7195060f5
Too many people are complaining about this
2021-12-16 22:08:39 -05:00
Andrew Steinborn
fd842c4364
Exclude org/apache/logging/log4j/core/lookup/JndiLookup.class entirely
...
It's the one sure-fire way to prevent further exploits using JNDI through Log4j.
2021-12-14 19:37:37 -05:00
Andrew Steinborn
f3d0b75797
Drop SpotBugs for now
2021-12-10 21:40:30 -05:00
Andrew Steinborn
d3b3ef231b
Update forwarding documentation link(!)
2021-11-07 13:00:58 -05:00
Andrew Steinborn
7c858424b5
Fix shading issues introduced with cb8781b3
2021-11-01 09:47:57 -04:00
Andrew Steinborn
c89fff34c1
We're past the point where this is a bug-fix release. Bump to Velocity 3.1.0.
2021-10-31 23:24:57 -04:00
Andrew Steinborn
6b2b28796b
Clean up and clarify plugin loader logic.
2021-10-31 23:24:39 -04:00
Andrew Steinborn
0b0c36dcfc
Correct command meta alias removal behavior and add appropriate unit tests.
...
Apparently @hugmanrique caught the issue but suggested the wrong fix. This is the correct fix, and respects the Javadoc.
2021-10-31 19:05:21 -04:00
Andrew Steinborn
895eb1a424
Clean up and comment PluginDependencyUtils#sortCandidates
2021-10-31 18:56:13 -04:00
Andrew Steinborn and GitHub
cb8781b3c9
Add support for sending and receiving login plugin messages from players and servers ( #587 )
2021-10-31 16:27:03 -04:00
Andrew Steinborn
ac4b4a34ca
Adventure 4.9.3
2021-10-31 08:58:37 -04:00
Andrew Steinborn
64b7769edb
Netty 4.1.69.Final
2021-10-27 09:15:13 -04:00
Andrew Steinborn
41f66c7c04
Also guard sendTitlePart behind a protocol version check.
2021-10-15 10:16:34 -04:00
Andrew Steinborn
d5047b6665
Fix copy-paste error
2021-10-15 08:30:11 -04:00
Andrew Steinborn
3f647e4eb2
Implement sendTitlePart for Players
2021-10-15 08:28:05 -04:00
Andrew Steinborn
20914ca134
Bump Adventure
2021-10-15 08:18:11 -04:00
Andrew Steinborn
0b088590a0
Fix license text
2021-10-10 16:39:59 -04:00
Andrew Steinborn
1aaecfff08
Add tests for EventTask#resumeWhenComplete and clarify Javadoc.
2021-10-10 16:37:22 -04:00
Andrew Steinborn
340e1b23d6
Fix none vhost forwarding with legacy Forge.
2021-09-27 00:37:58 -04:00
Andrew Steinborn
effca0da82
Preserve virtual host the player connected to for modern/none forwarding
...
This makes these modes in-line with legacy forwarding
2021-09-25 17:51:58 -04:00
Andrew Steinborn
d1135bd190
Allow the BungeeCord plugin messaging channel to be used by the server at transition time
2021-09-07 07:38:30 -04:00
Andrew Steinborn
4ca1798994
Update to Adventure 4.9.1
2021-09-07 07:33:43 -04:00
Andrew Steinborn
1b390c3eff
Velocity 3.0.2-SNAPSHOT
2021-09-01 07:21:38 -04:00
Andrew Steinborn
c8f7d6c632
Velocity 3.0.1
2021-09-01 07:18:09 -04:00
Andrew Steinborn
849e416c8d
Fix IPv6 scope issue in legacy forwarding too
2021-09-01 07:14:38 -04:00
Andrew Steinborn
955f6b87e2
Assorted dependency updates
2021-09-01 06:36:00 -04:00
Andrew Steinborn
9a15c7e170
Fix Brigadier command node redirect serialization ( #565 )
2021-08-24 13:58:13 -04:00