Andrew Steinborn
8685b04772
Initial reload command support.
...
What is missing:
- Changing/removing servers "in-flight"
- Query stuff
- A way to preserve existing user connections while closing the old port
2018-11-19 23:46:22 -05:00
Andrew Steinborn
74ee716480
Revert "If we failed to unregister, don't fire the disconnect event"
...
This reverts commit 5822cc31d8
.
2018-11-17 17:25:49 -05:00
Andrew Steinborn
5822cc31d8
If we failed to unregister, don't fire the disconnect event
2018-11-17 17:03:31 -05:00
Andrew Steinborn
d1473ed938
Move registration to be performed earlier.
2018-11-17 00:04:44 -05:00
Andrew Steinborn
866067bbed
Further cleanup.
2018-11-15 20:49:30 -05:00
Andrew Steinborn
480f87a760
API breakage: Revamped some login stuff.
...
I have cleaned up some logic in the client login session handler and
revamped the GameProfile class somewhat. The most notable breaking
change is that Velocity now returns an UUID for getId() instead of an
undashed UUID, which was moved to a getUndashedId() method.
2018-11-15 19:54:55 -05:00
Andrew Steinborn
868976e09c
Add Javadoc and remove all Checkstyle issues from API and natives.
2018-11-15 19:04:39 -05:00
Andrew Steinborn
a4cdc4884a
Merge pull request #132 from Yeregorix/master
...
Optimize GameProfile
2018-11-15 18:34:58 -05:00
Yeregorix
3cba196ba7
Remove Identifiable
2018-11-15 17:02:26 +01:00
Andrew Steinborn
17a5afcc9a
Fix up some checkstyle stuff and include vendor in brand.
2018-11-15 02:36:48 -05:00
Andrew Steinborn
66f47ecff1
Filter out subcommands in /velocity that users can't access.
2018-11-15 02:17:59 -05:00
Andrew Steinborn
2b0daa2122
Explicitly exit the proxy if required.
2018-11-14 01:07:34 -05:00
Andrew Steinborn
5e0b9d09e7
Fix ServerPreConnectEvent not allowing overriding of servers.
2018-11-14 00:55:20 -05:00
Andrew Steinborn
6354f10874
Correct technical typo.
2018-11-14 00:29:51 -05:00
Yeregorix
da259951c7
Change 'set' prefixes to 'with' and add javadoc
2018-11-12 21:34:57 +01:00
Yeregorix
b6bb4ad1a1
Optimize GameProfile and add Identifiable interface
2018-11-12 19:50:52 +01:00
Andrew Steinborn
c94794a845
Properly register client channels.
2018-11-10 23:20:33 -05:00
Andrew Steinborn
762d9a3efb
Fix plugin message forwarding from server to client.
2018-11-07 01:28:24 -05:00
Andrew Steinborn
73e3e1752a
Plural.
2018-11-04 10:45:55 -05:00
Andrew Steinborn
70726bd07b
Add /velocity plugins command.
2018-11-04 03:44:07 -05:00
Andrew Steinborn
a378ccdee0
Refactored rate-limiting.
...
If rate-limiting is disabled, we now use a simple stub implementation
that is simpler to reason with.
2018-11-03 17:36:00 -04:00
Andrew Steinborn
89e51bbcb9
Fix up some more code style issues.
2018-11-03 01:54:26 -04:00
Andrew Steinborn
e2389d96e9
Include implementation in the user-agent.
2018-11-03 01:39:28 -04:00
Andrew Steinborn
f423169449
Fix issues with server connections.
2018-10-29 19:25:51 -04:00
Andrew Steinborn
2b53d14461
Simplify and fix bug in setConnectedServer()
...
Also, while I'm here, fix a typo from a recent PR.
2018-10-29 02:58:29 -04:00
Andrew Steinborn
826eddc754
Disconnect obsolete server connections as quickly as possible.
2018-10-28 23:00:26 -04:00
Mark Vainomaa
e0330e9f27
Move and rename key escaping methods while I'm here
2018-10-28 18:18:44 +02:00
Mark Vainomaa
0c86f02c49
Save configuration after loading to ensure new options being present in file
...
For example if you had `[forced-hosts]` section missing, and `[servers]`
section not having entries similar to default forced hosts ones, then
new configuration would fail at validation and new options wouldn't be
saved to file at all.
2018-10-28 18:15:34 +02:00
Andrew Steinborn
070631902a
Fix some suboptimal behavior in invoking KickedFromServerEvent.
...
Previously, the event would only fire when a player was kicked from the
current server they were on. Now, under certain cases, it can be fired
even if the player was already connected to a server.
To faciliate this, a new result (Notify) was introduced. This result
will "do the right thing" if the player is kicked from the current
server or is trying to connect to a different server than the one they
were on.
2018-10-28 03:32:18 -04:00
Andrew Steinborn
1310cd2c53
Mix of Checkstyle and SonarLint.
2018-10-28 03:18:15 -04:00
Andrew Steinborn
9806d57a13
More Checkstyle.
2018-10-28 02:36:03 -04:00
Andrew Steinborn
64380de497
Fix startup.
2018-10-28 01:45:20 -04:00
Andrew Steinborn
65ff9ebb39
Tiny legacy player info forwarding forwarding micro-optimization.
2018-10-28 01:10:23 -04:00
Andrew Steinborn
8a9d1b1ac9
Fixed even more Checkstyle issues, this time in the proxy components.
2018-10-28 01:02:54 -04:00
Andrew Steinborn
25b5e00125
Reformat with Google code style and enforce Checkstyle.
...
Fixes #125
2018-10-27 23:45:36 -04:00
Andrew Steinborn
53aa92db92
Fix some low-hanging code smells using SonarLint.
2018-10-27 22:18:30 -04:00
Andrew Steinborn
32829c5637
Checker Framework integration ( #126 )
2018-10-27 21:45:42 -04:00
Mark Vainomaa
25f6ca410c
Make servers list option more readable
2018-10-27 22:54:10 +03:00
Mark Vainomaa
2b4b77ef95
Fix missing constructor parameter and not loading show-plugins option from configuration
2018-10-27 22:52:04 +03:00
Mark Vainomaa
b86622b849
Improve comments
2018-10-27 22:50:05 +03:00
Mark Vainomaa
1e0ec8ad66
Better description, make class abstract
2018-10-27 22:49:38 +03:00
Mark Vainomaa
85e43727cf
Improve code style, grammar and other fixes
2018-10-27 22:49:37 +03:00
Mark Vainomaa
fdc83261cb
Add missing constructor parameter
2018-10-27 22:48:18 +03:00
Mark Vainomaa
793477b898
Improve code style
2018-10-27 22:48:18 +03:00
Mark Vainomaa
ff6a6ad40b
Add native forced hosts support
2018-10-27 22:36:52 +03:00
Mark Vainomaa
447e7d1d50
Adapt to upcoming Checker framework related changes
2018-10-27 21:38:20 +03:00
Mark Vainomaa
ea43b8ff60
Add Query event
2018-10-27 19:57:48 +03:00
Andrew Steinborn
a0e24ca247
Remove redundant ternary here.
2018-10-25 02:09:35 -04:00
Andrew Steinborn
3f612fb5c2
Update /velocity version so implementation stuff can be changed.
2018-10-25 01:56:41 -04:00
Andrew Steinborn
c977ddec61
Introduce a "modular" /velocity command.
2018-10-25 01:43:11 -04:00
Andrew Steinborn
a98fcc28fe
Fix up console tab-completion again.
2018-10-25 01:42:57 -04:00
creeper123123321
782a10f36d
Separate protocol version for new proxy <-> server connections
2018-10-23 16:07:42 -03:00
Andrew Steinborn
bcf7761380
Disable auto-read temporarily as well
2018-10-23 13:51:33 -04:00
Andrew Steinborn
174cd4659b
Fire ServerConnectedEvent and delay setting the server.
...
For ViaVersion
2018-10-23 13:49:50 -04:00
Andrew Steinborn
fcef623847
Respect server protocol version when writing packets to the server.
...
Needed for ViaVersion.
2018-10-23 13:06:54 -04:00
Leymooo
35736d7a94
1.13.2
2018-10-22 17:22:28 +03:00
Andrew Steinborn
f6cac0f50a
Relax registration checks for same servers somewhat.
...
If a server with the same ServerInfo is attempting to be re-registered,
we will return the existing registered server, which is less surprising
behavior than before.
2018-10-21 20:03:38 -04:00
Andrew Steinborn
3bd48dec99
Add convenience connectWithIndication() method.
2018-10-21 17:49:51 -04:00
Andrew Steinborn
8d97e98920
Fix forwarding secrets being reset to default
2018-10-20 13:47:37 -04:00
Andrew Steinborn
a6e57f89aa
Fix #117
2018-10-18 21:16:20 -04:00
Andrew Steinborn
19956a2ed7
Include forwarding version in modern forwarding
...
This is currently version 1.
2018-10-18 14:42:10 -04:00
Andrew Steinborn
d3b1bc9e34
Remove debug code that accidentally slipped in.
2018-10-15 21:29:33 -04:00
Andrew Steinborn
8ec273050b
Remove redundant obsolete connection-checking code.
2018-10-15 17:06:37 -04:00
Andrew Steinborn
8eb7ecba83
Actually populate ForgeConstants
2018-10-15 17:02:19 -04:00
Andrew Steinborn
51c402e3d3
Create a specific Forge-related package
2018-10-15 17:01:18 -04:00
Andrew Steinborn
b7d7e3cc89
Switch forwarding mode to none by default
2018-10-15 14:27:50 -04:00
kashike
dcef9e4803
Fix NPE from last commit
2018-10-13 01:17:20 -07:00
kashike
78abba56af
Change player info action enum to int
...
Read & write server id
Fix javadocs
2018-10-13 00:18:21 -07:00
Andrew Steinborn
33f333d8cc
Clean up FML/handshake stuff from virtual host.
2018-10-13 02:34:53 -04:00
Andrew Steinborn
2f0ba42fa0
Also make sure tab list completion doesn't crash the proxy
2018-10-12 22:12:15 -04:00
Alex Thomson
64682027a5
Prevent commands run from console crashing the entire instance
2018-10-13 14:40:00 +13:00
kashike
46a7b52a13
Extract channel initialiser and transport type out
2018-10-12 16:41:12 -07:00
Alex Thomson
245828e337
Make changes based on PR comments
2018-10-11 10:41:40 +13:00
Alex Thomson
c5a27bb135
Add Forge mod list support
2018-10-10 19:52:22 +13:00
Andrew Steinborn
7578aa27a9
More reliably tear down connections and fire DisconnectEvent. Fixes #111
2018-10-09 19:02:15 -04:00
Andrew Steinborn
222e90a9f0
Unbreak Forge logic.
2018-10-05 19:04:10 -04:00
Alex Thomson
6ed772ba14
Add PROXY protocol support ( #108 )
2018-10-04 14:33:26 -04:00
Andrew Steinborn
d6fb3a210e
Shorten connection errors to a more reasonable length. Fixes #58
2018-10-04 10:09:14 -04:00
Crypnotic
aa34977f3e
Added ProxyConfig interface and implemented in VelocityConfiguration
2018-09-30 23:56:53 -05:00
Andrew Steinborn
b6a9299f9f
Do tab list clearing into one packet
2018-09-30 18:27:07 -04:00
Desetude
3e65000ab3
Clear tab list on server connect
2018-09-30 21:40:22 +01:00
Desetude
61bd178591
Initial tablist implementation
2018-09-30 21:01:01 +01:00
Andrew Steinborn
732caa2d40
Remove RecordingThreadFactory since it's actually a terrible idea
2018-09-30 00:05:48 -04:00
Andrew Steinborn
2d2258d667
Misc cleanup
2018-09-29 23:57:40 -04:00
Andrew Steinborn
eddf01fc32
Reduce duplication between annotation processor and proxy.
2018-09-29 23:28:44 -04:00
Andrew Steinborn
5af09f906a
Fix a bug where it would try to register legacy channels(!) on 1.13+
2018-09-29 14:53:04 -04:00
Andrew Steinborn
a44bb3b048
Remove more junk
2018-09-29 14:37:42 -04:00
Andrew Steinborn
75c3bb5ee6
Clean up vestigal stuff
2018-09-29 03:32:44 -04:00
Andrew Steinborn
97d541d146
Warn if someone tries to register the plugin instance as a listener
2018-09-29 03:15:49 -04:00
Andrew Steinborn
79d566bcee
Finished the port to new session handler stuff
2018-09-29 02:55:52 -04:00
Andrew Steinborn
c7bd0d100e
Started refactoring session handlers
2018-09-29 02:16:34 -04:00
Andrew Steinborn
6cd0a6b148
Introduce Channel#eventLoop() shorthand
...
This is such a common call that it makes a lot of sense to go ahead
and expose this.
2018-09-29 01:38:30 -04:00
Andrew Steinborn
5ab346a02b
Don't tediously hardcode the names of channels if we can help it
2018-09-29 01:34:45 -04:00
Andrew Steinborn
f04599ae68
Clean up some plugin message channel code
2018-09-29 01:28:07 -04:00
Andrew Steinborn
f569a07b2e
Move channel registrar to util
2018-09-29 01:25:24 -04:00
Andrew Steinborn
e6c178aae7
Cleaned up Java plugin loader
2018-09-27 15:52:31 -04:00
Andrew Steinborn
8c98395d51
Remove redundant contains check
2018-09-27 15:20:24 -04:00
Andrew Steinborn
731186ca10
Redesigned the /velocity command somewhat
2018-09-27 02:44:45 -04:00
Andrew Steinborn
d4910d9edc
Remove potentially high-frequency usages of streams
2018-09-27 02:37:53 -04:00
Andrew Steinborn
63f22dc2de
Extra clarity for server/MinecraftConnection naming
2018-09-27 02:35:10 -04:00