Commit Graph

53 Commits

Author SHA1 Message Date
Andrew Steinborn
523b61e0c7 Make sure unit tests actually run(!) and fix command hints 2020-12-14 14:39:39 -05:00
Andrew Steinborn
511165415d Switch to our internal Brigadier fork 2020-11-15 23:33:16 -05:00
Andrew Steinborn
5d287306c2 Small code cleanups 2020-09-01 03:25:15 -04:00
Andrew Steinborn
c47d25c88a Upgrade to Gradle 6.6 and use SpotBugs.
As a result, at least one real bug was fixed! Nice.
2020-08-21 19:09:04 -04:00
Hugo Manrique
6cc6e0f641 New command API (#330) 2020-07-29 03:43:16 -04:00
Andrew Steinborn
f9f60e1489 Small code cleanups and switch more stuff to adventure 2020-07-19 18:23:47 -04:00
Andrew Steinborn
209291e702 Improve the test a little 2020-07-01 00:36:12 -04:00
Andrew Steinborn
07da606abd Add OnceTest 2020-06-30 22:54:49 -04:00
Andrew Steinborn
47560442ca Remove SyncMap for now, use more obvious and correct MapMaker 2020-06-30 22:46:21 -04:00
Andrew Steinborn
1b8955a76b Add initial adventure boss bar support 2020-06-30 22:33:07 -04:00
Andrew Steinborn
37994449d7 Fix regressions with plugin dependency loading from #272
This is a quick and dirty fix because it's late. I'll need to
commit a better fix later.
2020-02-16 03:19:13 -05:00
Andrew Steinborn
3b6f8e2421 Use more obvious/broken-down test cases for topological sort tests 2020-02-16 00:29:35 -05:00
Vjatšeslav Maspanov
f64b44ec21 Remove protocol linking (#212) 2019-06-02 19:44:23 -04:00
Andrew Steinborn
552f02ed60 Fix Checkstyle 2019-05-15 17:10:07 -04:00
Andrew Steinborn
6d42a3c37c Explicitly rewrite legacy plugin message channels for 1.13+ clients. 2019-05-15 17:04:45 -04:00
Andrew Steinborn
5bd9f0a96f CappedSet.newCappedSet() -> CappedSet.create() 2019-05-14 04:11:49 -04:00
Andrew Steinborn
16d557a109 Fix checkstyle 2019-05-12 10:46:11 -04:00
Andrew Steinborn
5f0470fb0b Checkstyle, CappedCollection -> CappedSet 2019-05-10 07:42:47 -04:00
Andrew Steinborn
74afcee9ba Suspect this is the fix to #203, but I'm unsure 2019-05-10 04:53:57 -04:00
Andrew Steinborn
c26dc75c44 More robust check 2019-05-10 04:44:01 -04:00
Andrew Steinborn
01be943c3f Initial work on cleaning up plugin message handling in Velocity 2019-05-10 04:32:29 -04:00
Andrew Steinborn
1661cece2d An Easter basket bearing gifts! (#191)
* Delay switch to new server until after JoinGame is sent.

Unfortunately, in some cases (especially vanilla Minecraft) some login
disconnects are sent after ServerLoginSuccess but before JoinGame.
We've been using ServerLoginSuccess but it has caused too many problems.
Now Velocity will switch to a stripped-down version of the play session
handler until JoinGame is received. This handler does very little by
itself: it simply forwards plugin messages (for Forge) and waits for the
JoinGame packet from the server.

This is an initial version: only vanilla Minecraft 1.12.2 was tested.
However this is the way Waterfall without entity rewriting does server
switches (which, in turn, is inherited from BungeeCord).

* Move to Gradle 5 and Error Prone.
2019-04-24 14:36:49 -04:00
Andrew Steinborn
7d4d81fff1 Improve HandshakeSessionHandler#cleanVhost() 2019-01-28 00:34:51 -05:00
Andrew Steinborn
977d29ffa0 Fix Checkstyle errors 2018-12-30 03:58:50 -05:00
Andrew Steinborn
5bf936d1b9 Add unit tests 2018-12-30 03:57:05 -05:00
Andrew Steinborn
20c3966f6f Make PluginDependencyUtils test more consistent. 2018-12-30 03:05:26 -05:00
Andrew Steinborn
256978fc15 Solve a bunch of Checkstyle warnings. 2018-12-29 10:57:55 -05:00
Andrew Steinborn
cc5a7dba9b Clean up PluginDependencyUtilsTest 2018-12-14 01:47:43 -05:00
Andrew Steinborn
fc76a027de Rewrite dependency plugin resolving.
Velocity now resolves plugin dependencies using a depth-first search
(DFS), instead of using Kahn's algorithm like before. This properly handles duplicate indirect dependencies.

Thanks to @creeper123123321 for noticing this issue!
2018-12-13 04:06:43 -05:00
Crypnotic
6b4c809c39 Rework and expose ProtocolVersion to the API 2018-11-20 17:15:48 -06: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
9806d57a13 More Checkstyle. 2018-10-28 02:36:03 -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
32829c5637 Checker Framework integration (#126) 2018-10-27 21:45:42 -04: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
732caa2d40 Remove RecordingThreadFactory since it's actually a terrible idea 2018-09-30 00:05:48 -04:00
Andrew Steinborn
403fec13d8 Move UuidUtils test to api module 2018-09-27 02:33:47 -04:00
Andrew Steinborn
d639e47fbf Fix a number of issues with dependency resolution and add unit tests 2018-09-27 00:51:33 -04:00
Andrew Steinborn
50c27066e2 Import cleanup 2018-09-19 14:56:49 -04:00
Andrew Steinborn
e1b2dc0d43 Introduce RegisteredServer API
This interface roughly maps the BungeeCord ServerInfo API. Accordingly,
this is a breaking API change, as many of the server-related events and
methods working with server info instances now provide/expect the
RegisteredServer interface instead.
2018-09-16 02:26:29 -04:00
Andrew Steinborn
c30cc66461 Test logic when exception is thrown in thread 2018-09-03 23:30:18 -04:00
Andrew Steinborn
ef556afbf3 Rewrote scheduler to use ScheduledExecutorService for delay/repeat tasks 2018-08-26 17:56:43 -04:00
Andrew Steinborn
7ee56d9f5f Massively improved Javadoc coverage to prepare for Javadoc site. 2018-08-25 00:29:22 -04:00
Andrew Steinborn
7b84da2fa7 Cleaning up some stuff in the proxy implementation. 2018-08-21 22:29:01 -04:00
Minecrell
830b1d4798 Various improvements to plugin metadata
- Add plugin (display) name and plugin URL
 - Make everything except plugin ID optional (instead of empty string)
 - Exclude empty properties from generated velocity-plugin.json
 - Make plugin author list immutable
 - Other (minor) cleanup and refactoring
2018-08-21 20:37:10 +02:00
kashike
c4fdac9591 allow more than one author 2018-08-21 09:09:48 -07:00
Andrew Steinborn
a028467e66 Plugin API (#34)
The Velocity API has had a lot of community input (special thanks to @hugmanrique who started the work, @lucko who contributed permissions support, and @Minecrell for providing initial feedback and an initial version of ServerListPlus).

While the API is far from complete, there is enough available for people to start doing useful stuff with Velocity.
2018-08-20 19:30:32 -04:00
Leymooo
381b2033d5 Rename packetDecoding field to onlyEncode 2018-08-17 02:02:22 +03:00
Leymooo
6a2b945ed6 Do not handle scoreboards from backend
Changes in StateRegistry will allow to us skip packets decode which we don't want handle in BackendPlaySessionHandler for a specific versions
Also do not handle respawn packet
2018-08-12 13:35:13 +03:00
MatrixTunnel
6e4f90dfae Add ratelimit tests 2018-08-10 18:57:10 -07:00