Andrew Steinborn
7130942032
Merge pull request #28 from MatrixTunnel/feature/ratelime-config
...
Add login ratelimit configuration
2018-08-10 21:57:58 -04:00
MatrixTunnel
6e4f90dfae
Add ratelimit tests
2018-08-10 18:57:10 -07:00
kashike
e9959f81fb
use fastutil's Object2IntOpenHashMap
2018-08-10 18:35:54 -07:00
Andrew Steinborn
8998bc7c8f
Presize the maps.
...
TODO: Replace that ugly autoboxed primitive without excessively blowing
up the size of the JAR
2018-08-10 20:56:22 -04:00
MatrixTunnel
479592c009
Fix invalid compression values not stopping proxy
2018-08-10 11:13:53 -07:00
MatrixTunnel
d752edc92d
Add login ratelimit configuration
2018-08-10 11:08:55 -07:00
Andrew Steinborn
9af6829688
Fix sending commands to remote server.
2018-08-10 03:05:59 -04:00
Andrew Steinborn
0834bec997
Merge branch 'tab-complete'
2018-08-09 10:15:22 -04:00
Andrew Steinborn
b78ddf7b85
Fix scoreboard teams on Minecraft 1.8.
2018-08-09 10:15:19 -04:00
Andrew Steinborn
2e1de306fb
Complete tab-complete support back to Minecraft 1.8.
2018-08-09 10:14:44 -04:00
Andrew Steinborn
9a36bd6cae
Merge branch 'master' into tab-complete
2018-08-09 09:47:30 -04:00
Andrew Steinborn
1f0a4a8228
Add support for HMACed player forwarding data.
...
This provides a small degree of security but also makes Velocity "secure
by default", especially on shared hosts.
2018-08-09 05:24:47 -04:00
Andrew Steinborn
254508a5cf
Add connection attempt rate-limiting.
2018-08-09 03:23:27 -04:00
Andrew Steinborn
db8b7c807c
Add kqueue transport support
2018-08-08 10:10:11 -04:00
Andrew Steinborn
512b1c2403
Remove erroneously added getter
2018-08-08 09:45:38 -04:00
Andrew Steinborn
a261823302
Add favicon support
2018-08-08 04:44:27 -04:00
Andrew Steinborn
54f9de04dc
Add MC tab complete (incomplete, only 1.12.2 works)
2018-08-07 11:53:13 -04:00
Andrew Steinborn
bb601dca4b
Add console tab complete, shutdown command, gracefully kick players.
2018-08-07 11:02:35 -04:00
Andrew Steinborn
beb947cc3e
Merge pull request #26 from Minecrell/tca
...
Add TerminalConsoleAppender for console prompts
2018-08-07 10:38:00 -04:00
Andrew Steinborn
a88d27af76
Ignore repeated shutdown requests.
2018-08-07 10:37:38 -04:00
Minecrell
a044ed72de
Add TerminalConsoleAppender for console prompts
2018-08-07 16:32:32 +02:00
Andrew Steinborn
a7a227ed05
Add shutdown flag.
2018-08-07 10:14:34 -04:00
Andrew Steinborn
05693425bf
Add a basic command handling framework inspired by Bukkit/BungeeCord.
...
This doesn't yet support tab complete, that will come later. Additionally,
a /server command (using your configuration) and /velocity (shows basic
copyright information about the proxy) have been added.
2018-08-07 09:34:31 -04:00
Andrew Steinborn
09eff5a2fb
GS4 clients generally don't understand MC color codes (or JSON chat).
2018-08-07 07:56:28 -04:00
Andrew Steinborn
b5fcc1b34a
Fix GS4 issues.
2018-08-07 07:51:09 -04:00
Andrew Steinborn
3e0df79c98
Fix GS4 "can't bind to null" error.
2018-08-07 07:34:41 -04:00
Mark Vainomaa
fe79c66171
GS4 Query handler ( #20 )
2018-08-07 07:32:22 -04:00
Andrew Steinborn
b983cdb7b3
Fix some spirous "connection closed" errors.
2018-08-07 07:18:54 -04:00
Andrew Steinborn
a2b4291b36
Use Guava immutable integer arrays.
2018-08-07 07:18:21 -04:00
Andrew Steinborn
abbdf70d5e
[Experimental] Remove PacketWrapper objects
...
In both Velocity and BungeeCord, the most commonly created object is an
object that encapsulates a Minecraft packet and a its associated byte
data.
At first, I considered trying to recycle these objects, but then I
discovered that this object has no reason to exist, and actually somewhat
complicates the implementation. Thus, this commit removes these objects,
making Velocity more more GC-friendly by not allocating frequently-created
objects.
This is still an experimental change, but it's a fairly safe one to make.
2018-08-07 04:28:07 -04:00
Andrew Steinborn
fdf5f27da6
Improve server list ping, especially for legacy MC versions.
2018-08-07 01:02:39 -04:00
MatrixTunnel
ac378a8efa
Update version strings + add constant
2018-08-06 16:06:57 -07:00
Andrew Steinborn
6a5c40ecdf
Merge pull request #16 from Desetude/feature/1.8
...
Add 1.8 support
2018-08-06 18:41:37 -04:00
Mark Vainomaa
9ca1707df3
Fix unregisterConnection using non-lowercase username
...
Fixes #18
2018-08-06 19:06:25 +03:00
Desetude
b4f1d64cb0
Add 1.8 support
2018-08-06 09:21:01 +01:00
Andrew Steinborn
48822fe55c
Better case-insensitivity.
2018-08-05 17:14:39 -04:00
Andrew Steinborn
a778825152
Add server registration API.
2018-08-05 17:10:18 -04:00
Andrew Steinborn
23a6488a39
Add default config again. Closes #12
2018-08-05 16:12:16 -04:00
Andrew Steinborn
4e64b04464
Avoid duplicate logins.
2018-08-05 01:30:40 -04:00
Andrew Steinborn
22d1398f73
Extend the API with a ProxyServer type.
2018-08-05 01:26:07 -04:00
Andrew Steinborn
06a6493605
Cleaned up connection code.
2018-08-04 03:18:57 -04:00
Andrew Steinborn
0ba85fe83f
Introduce a fluent connection request API.
2018-08-04 03:13:17 -04:00
Andrew Steinborn
fbdaae5ac7
Actually, this would be a better name...
2018-08-04 01:45:18 -04:00
Andrew Steinborn
9bcdc413d7
ProxiedPlayer interface
2018-08-04 01:40:37 -04:00
Andrew Steinborn
9438d087e2
Refactor cipher logic.
2018-08-04 00:09:25 -04:00
Andrew Steinborn
6f3397f76f
Adjustments.
2018-08-03 17:49:35 -04:00
Andrew Steinborn
68ded7ca7f
Allow tweaking compression.
2018-08-03 16:56:19 -04:00
Andrew Steinborn
0191b74840
Remove another memory copy with compression.
...
I considered using composite byte buffers but they would have added GC
overhead and would've been incompatible with any native code we added
unless special care was taken.
2018-08-03 05:21:35 -04:00
Andrew Steinborn
44932cfddb
Nuke some debug output.
2018-08-03 02:27:18 -04:00
Andrew Steinborn
7eea1a3ac6
Introduce a connection pool for Mojang's session servers.
...
This has the potential to cut the time that players spend at the
"logging in..." (or "encrypting..." for 1.13+) screen by a fair
amount (gains of 200+ ms were noted for my own home connection).
While this sounds minor, I really do like to aim for all the details
and this is one of them.
2018-08-03 02:25:57 -04:00