Andrew Steinborn
cb261c6513
Better handle not failing over on a read timeout
...
The existing Velocity logic was pretty optimistic, hoping the player connection would stay alive long enough to accept a connection to another server. Now, if we notice a read timeout on the server end, we'll treat the disconnect as "unsafe" and disconnect the player immediately.
I've added a configuration option to solve the issue in the way BungeeCord does it. This could cause issues with servers that extensively modify the server pipeline and could degrade the user experience, though. Let's try this more conservative and see if it helps,
2020-07-20 21:55:33 -04:00
Andrew Steinborn
2296a9d8dd
Fix compile error caused by adventure changes
2020-07-16 11:50:48 -04:00
Andrew Steinborn
bcab3be2e2
Fix Checkstyle error
2020-07-14 21:31:16 -04:00
Mariell Hoversholm
9c8c851d12
Add async command suggestions
2020-07-15 00:28:22 +02:00
Andrew Steinborn
4c3d9de5fe
Add ServerPostConnectEvent as a less confusing (and non-blocking) alternative to ServerConnectedEvent
2020-07-12 16:13:04 -04:00
Andrew Steinborn
d47462c606
Fix accidential deprecation
2020-07-12 11:42:44 -04:00
Andrew Steinborn
6e84261166
Merge branch 'dev/1.1.0' into adventure-api
2020-07-12 01:49:08 -04:00
Andrew Steinborn
86259f788f
Adjust for recent adventure API changes.
2020-07-11 12:00:54 -04:00
Andrew Steinborn
81aed2cd1d
Get the Nexus credentials from the environment
2020-07-04 03:36:39 -04:00
Andrew Steinborn
4469a89aaa
Point all new Maven artifact deploys to Nexus
2020-07-04 03:19:57 -04:00
Andrew Steinborn
079b352c97
Add a new loginstatus for CANCELLED_BY_USER_BEFORE_COMPLETE
2020-07-03 17:48:20 -04:00
Andrew Steinborn
801ae4f33d
Add one more case to disconnectedDuringLogin()
2020-07-03 17:26:11 -04:00
Andrew Steinborn
5285a3c155
Remove AdventureCompact in favor of the text 3.x serializer added in KyoriPowered/adventure-platform#23
2020-06-29 23:34:59 -04:00
Andrew Steinborn
1938013ab2
Make DisconnectEvent more sane
...
This is a step towards fixing #289 and removing some less-than-optimal behavior in plugins I maintain internally.
2020-06-29 11:17:08 -04:00
Andrew Steinborn
5b9dbb74c9
Fix up some annotations
2020-06-29 10:42:01 -04:00
Andrew Steinborn
22afd1cf41
Since we're deprecating stuff, mark toml4j as deprecated
2020-06-28 23:25:09 -04:00
Andrew Steinborn
70698246bf
Get everything compiling and Checkstyle clean
2020-06-28 23:20:46 -04:00
Andrew Steinborn
5c02d6b007
RegisteredServer and ProxyServer now implement MultiAudience
2020-06-28 22:01:45 -04:00
Andrew Steinborn
8ef2835a47
Fix API breaking change, deprecate ProxyAudience
2020-06-28 21:44:44 -04:00
Andrew Steinborn
70a989e955
Minor cleanup and add some missing Deprecated tags
2020-06-28 21:29:25 -04:00
Andrew Steinborn
2e7a598916
Initial commit of adventure-adapted Velocity API.
2020-06-28 21:23:01 -04:00
Andrew Steinborn
7e1f01f13a
Bump Guice version to support Java 14 plugins
2020-06-26 23:44:08 -04:00
Andrew Steinborn
2f11c22003
Add Minecraft 1.16.1 compatibility
2020-06-24 10:07:24 -04:00
Andrew Steinborn
780e1c8be5
Handle duplicates from server pings gracefully
2020-06-23 23:03:19 -04:00
Andrew Steinborn
6ec2ad3c7a
Anticipatory bump to final Minecraft 1.16 version
2020-06-22 20:25:38 -04:00
Andrew Steinborn
ada35ff286
Merge branch 'Xernium-future/1.16' into future/1.16-velocity-1.1.0
...
# Conflicts:
# .travis.yml
# api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java
# build.gradle
# proxy/build.gradle
# proxy/src/main/java/com/velocitypowered/proxy/VelocityServer.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/backend/VelocityServerConnection.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/connection/client/ConnectedPlayer.java
# proxy/src/main/java/com/velocitypowered/proxy/network/netty/DiscardHandler.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/StateRegistry.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftDecoder.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/JoinGame.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Respawn.java
# proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLoginSuccess.java
# proxy/src/test/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtilsTest.java
2020-06-20 23:24:32 -04:00
FivePB (Xer)
83ba7d6051
Changes 1.16-rc1
2020-06-18 18:24:39 +02:00
Five (Xer)
ee64b97b8e
Changes 1.16-pre7
2020-06-16 18:39:51 +02:00
Five (Xer)
a1ab29186b
Changes 1.16-pre6
2020-06-16 17:56:56 +02:00
Five (Xer)
6577b08bdd
Changes 1.16-pre5
2020-06-13 11:26:51 +02:00
Five (Xer)
78b442a852
Changes 1.16-pre4 and Logic fixes
2020-06-11 23:39:16 +02:00
Five (Xer)
101a6a58dd
Changes 1.16-pre3
2020-06-10 21:00:18 +02:00
Lechner Markus
368d50b455
Rework Dimension Registry
2020-06-05 15:22:55 +02:00
Five (Xer)
009f207883
More progress
2020-06-04 21:21:54 +02:00
Andrew Steinborn
b028d9ca8f
Use standard Guava annotation
2020-05-28 10:44:42 -04:00
Andrew Steinborn
cb99b184ed
Allow plugins to mutate available commands sent to the client.
...
This is the first unstable API being introduced and is primarily to get feedback on the system.
2020-05-28 07:14:49 -04:00
Andrew Steinborn
305949487e
Add @UnstableApi annotation. Resolves #313
2020-05-28 07:05:19 -04:00
Five (Xer)
d37b6a361c
Snapshot 20w21a
2020-05-23 00:18:36 +02:00
Mark Vainomaa
21f03d5d50
Add prevent-proxy-connections option to make sending client IP to Mojang toggleable
2020-05-08 21:16:12 +03:00
Leymooo
4b4ed02e8d
fix build
2020-04-30 01:00:12 +03:00
Leymooo
d096eb3429
update class javadoc
2020-04-29 22:15:33 +03:00
Leymooo
9d6689f64a
forgot annotation
2020-04-27 13:12:03 +03:00
Leymooo
26bf94f08f
fix typos, update javadocs
2020-04-27 13:09:04 +03:00
Leymooo
c0b8e9d646
add async methods, also add separate methods which will call event and which will not call event
2020-04-27 01:05:57 +03:00
Leymooo
6555e0e337
Add CommandExecuteEvent
2020-04-27 00:04:12 +03:00
Andrew Steinborn
957c0dd307
Implement brigadier:long argument type, fixes #295
2020-04-23 16:21:22 -04:00
Andrew Steinborn
88641662d8
Implement brigadier:long argument type, fixes #295
2020-04-23 16:19:49 -04:00
Andrew Steinborn
24c9fc0ef1
Relax GameProfileRequestEvent#setGameProfile to allow faking even in online-mode
2020-04-19 09:20:03 -04:00
Andrew Steinborn
a5350c6822
Deal with potentially nullable player sample entries
2020-02-13 13:32:47 -05:00
Andrew Steinborn
7d1770d37e
Deal with potentially nullable player sample entries
2020-02-13 13:32:22 -05:00
Andrew Steinborn
a1577dd8a5
Minecraft 1.15.2
2020-01-21 13:28:37 -05:00
Andrew Steinborn
6e41ce7f15
Minecraft 1.15.2
2020-01-21 13:28:27 -05:00
Andrew Steinborn
fb0446f4fc
Add DisconnectEvent#disconnectedDuringLogin()
2019-12-24 23:56:39 -05:00
Andrew Steinborn
1e50615993
Minecraft 1.15.1
2019-12-17 13:58:44 -05:00
Andrew Steinborn
4c09024952
Minecraft 1.15.1
2019-12-17 13:57:23 -05:00
Andrew Steinborn
b56302b17e
Minecraft 1.15 (backport from 1.1.0)
2019-12-10 12:22:24 -05:00
Andrew Steinborn
07c2024307
Minecraft 1.15
2019-12-10 11:47:10 -05:00
Andrew Steinborn
b5aeeab2a8
Minecraft 1.15-pre7
2019-12-09 18:00:08 -05:00
Andrew Steinborn
0b6fc06e67
Initial 1.15-pre2 support
2019-11-26 15:10:22 -05:00
Andrew Steinborn
d2b8271eb4
Allow running Velocity without any servers.
...
This is a niche setup, however if your network is 100% dynamically configured, this is a handy feature to have available.
To support this functionality, a new PlayerChooseInitialServerEvent event was added to allow the initial server to connect to be changed as desired.
2019-11-16 23:17:09 -05:00
Andrew Steinborn
09d33de03e
Merge pull request #256 from Gabik21/previous-server-in-event
...
Add previous server to ServerConnectedEvent
2019-10-31 19:51:32 -04:00
Gabik21
bc8756f715
Readd old constructor
2019-10-31 19:31:47 +01:00
Gabik21
9498376bfa
Add missing info to constructor doc
2019-10-28 21:23:28 +01:00
Gabik21
ad291803ea
Add missing JavaDoc
2019-10-28 21:18:53 +01:00
Gabik21
802251d273
Add previous server to toString method
2019-10-28 20:49:11 +01:00
Gabik21
7c0a402cca
Add previous server to ServerConnectedEvent
2019-10-28 14:45:13 +01:00
james58899
bd35c6835e
Allow set redirect message
2019-10-17 08:32:50 +08:00
Andrew Steinborn
b18f65fe0a
Allow building on Java 11 (and set Travis to build on OpenJDK 11)
2019-10-04 17:09:41 -04:00
Andrew Steinborn
47ada83700
Add modified FastUUID
2019-09-26 22:27:08 -04:00
Andrew Steinborn
260f7f575a
ServerInfo is now comparable
2019-09-07 17:06:06 -04:00
Leymooo
fd367c6efd
Add method to determine if player is in OnlineMode
2019-09-04 01:44:40 +03:00
Gabik21
18a56d8b1d
Merge remote-tracking branch 'upstream/dev/1.1.0'
2019-08-29 19:47:04 +02:00
Andrew Steinborn
661ec3103a
Bump to Guice 4.2.2 for Java 11 plugin support
2019-08-09 15:39:46 -04:00
Andrew Steinborn
e3e7b726e0
Bump to Guice 4.2.2 for Java 11 plugin support
2019-08-09 15:38:36 -04:00
Andrew Steinborn
ca9a4492c4
Add support for ping pass-through
...
By default, ping pass-through is not enabled. However, you can use
ping passthrough to pass through just mods (great for modded servers)
or everything.
2019-08-06 02:06:53 -04:00
Andrew Steinborn
2d9227ccf0
Fix Checkstyle
2019-08-05 10:51:45 -04:00
Andrew Steinborn
b4e62443c9
Add arbitrary chat tab complete event. Fixes #236
2019-08-05 10:30:55 -04:00
Jamie Campbell
5d37a7f96e
1.14.4 support
2019-07-26 01:34:02 -04:00
Jamie Campbell
950104850e
1.14.4 support
2019-07-19 17:50:15 +01:00
Gabik21
5c314c9068
Add 1.7 Protocol Support
2019-07-01 08:56:22 +02:00
Andrew Steinborn
f0ba7e1eea
Add method to check if an entry already exists in the tab list.
2019-07-01 00:07:20 -04:00
Andrew Steinborn
275685f45f
Merge branch 'master' into dev/1.1.0
...
# Conflicts:
# build.gradle
2019-06-30 23:52:22 -04:00
Leymooo
de4f5e32dd
1.14.3
2019-06-24 19:37:17 +03:00
Andrew Steinborn
81840abc86
Enforce at least one parameter in CommandManager#register()
...
The old register method has been deprecated.
2019-06-22 21:13:20 -04:00
Andrew Steinborn
ed8209cfd1
Merge branch 'master' into dev/1.1.0
2019-06-22 21:01:46 -04:00
Leymooo
d0745acde1
1.14.3-pre4
2019-06-22 14:11:47 +03:00
Andrew Steinborn
c55ab2c908
Make sure to include the right repo
2019-06-18 07:48:03 -04:00
Andrew Steinborn
8a45074eb2
Include Configurate
2019-06-18 07:45:45 -04:00
Andrew Steinborn
04a23e3622
Introduce raw String-based command API
2019-06-18 00:13:49 -04:00
Andrew Steinborn
8d61e7ffd0
Removed redundant (non-)nullable annotations from boss bar.
2019-06-02 17:57:31 -04:00
kashike
0a53343547
Rename some bossbar-related fields and methods
2019-06-02 14:47:41 -07:00
MrIvanPlays
20b34447f8
Add BossBar API ( #213 )
2019-06-02 15:02:43 -04:00
Leymooo
85c6238d68
1.14.2 support
2019-05-27 17:20:42 +03:00
Andrew Steinborn
b0b445c044
Fix Javadoc link for text API
2019-05-15 19:20:51 -04:00
Andrew Steinborn
fc9e2d576d
Update for Minecraft 1.14.1
2019-05-13 12:12:08 -04:00
Andrew Steinborn
37999ed32e
Support 1.14-pre2
2019-05-10 02:51:00 -04:00
kashike
3800610f66
Bump text to 3.0.0
2019-05-06 19:34:53 -07: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
545966a4e7
Minecraft 1.14
2019-04-23 13:46:49 -04:00
Andrew Steinborn
21368f542c
Merge pull request #189 from Leymooo/1.14
...
Support for 1.14 protocol
2019-04-23 02:21:46 -04:00
Andrew Steinborn
edcd13b532
Fix Checkstyle issues
2019-04-21 02:56:29 -04:00
Andrew Steinborn
dea7c215d7
Allow empty channel names (but not namespaces).
2019-04-21 02:52:52 -04:00
Leymooo
ac192c281c
1.14-pre5
2019-04-18 22:45:17 +03:00
Andrew Steinborn
564cb99861
Add Player#getGameProfile() to make tab list plugins easier to make.
2019-03-29 15:01:52 -04:00
Andrew Steinborn
118574e535
Updated log4j and Checker Framework
...
Updating Checker Framework flagged numerous warnings, which have been
corrected. These probably involve type declarations lacking a nullness
annotation that appeared elsewhere.
2019-03-28 22:27:51 -04:00
Andrew Steinborn
611a31b7bb
Attempt to allow Eclipse to import the Gradle project.
2019-03-28 21:46:45 -04:00
Andrew Steinborn
e2fa06fa17
Merge pull request #176 from Crypnotic/master
...
Add matchPlayer and matchServer
2019-03-09 00:15:07 -05:00
Andrew Steinborn
c7a379ebb8
Include server that we attempted to connect to in the result.
2019-03-08 23:51:47 -05:00
Crypnotic
b35fd05d2e
Add matchPlayer and matchServer
2019-03-03 09:57:19 -06:00
Andrew Steinborn
12f5bdfc48
Properly implement fallback support.
2019-02-15 15:07:38 -05:00
kashike
6d080db48e
Bump text dependency to 1.12-1.6.5 to fix a deserialisation issue
2019-01-21 09:12:27 -08:00
Andrew Steinborn
89bcc9a100
Grab most of the low-hanging fruit.
2018-12-29 17:22:36 -05:00
Andrew Steinborn
c8f73ea0ab
Add Javadoc to resource pack API
2018-12-29 15:37:56 -05:00
Andrew Steinborn
0ca0c2a297
Resource pack API
2018-12-29 15:21:47 -05:00
Andrew Steinborn
280563ffa0
Clarifications around plugin message API.
2018-12-29 14:25:06 -05:00
Andrew Steinborn
a2d9a9f1d8
Clarifications, same for QueryResponse.
2018-12-29 14:21:20 -05:00
Andrew Steinborn
5cf96aabdd
Ensure that getting a builder from the ping will produce the same ping.
2018-12-29 14:09:30 -05:00
Andrew Steinborn
256978fc15
Solve a bunch of Checkstyle warnings.
2018-12-29 10:57:55 -05:00
Andrew Steinborn
898353640e
Moving to new Jenkins setup
2018-12-24 08:23:56 -05:00
Andrew Steinborn
e979db7778
Fix some unfriendly behavior in Favicon#create(Path)
2018-12-13 19:44:59 -05:00
Andrew Steinborn
1856fb6aad
ProtocolVersion#SUPPORTED_VERSIONS
2018-12-13 05:24:37 -05:00
Andrew Steinborn
853fd2226d
Fix formatting in ProtocolVersion
2018-12-07 17:24:56 -05:00
Andrew Steinborn
a3bfa292c6
Merge pull request #139 from VelocityPowered/reload-command
...
Reload command
2018-12-01 18:04:09 -05:00
Andrew Steinborn
a9ae53e527
Introduce ConsoleCommandSource. See #155
2018-12-01 17:08:34 -05:00
Andrew Steinborn
edfdcf3d53
Document ServerPreConnectEvent more carefully.
2018-11-25 14:54:03 -05:00
Crypnotic
6b4c809c39
Rework and expose ProtocolVersion to the API
2018-11-20 17:15:48 -06:00
Andrew Steinborn
99960e5dd9
Forgot this
2018-11-20 00:50:16 -05:00
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
3023a90295
[BREAKING] Rename withUuid()->withId() and withId()->withUndashedId()
2018-11-17 16:40:09 -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
Yeregorix
3cba196ba7
Remove Identifiable
2018-11-15 17:02:26 +01: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
8a7ba25097
Fix Forge server ping mod serialization. Closes #131
2018-11-08 16:57:14 -05:00
Andrew Steinborn
f423169449
Fix issues with server connections.
2018-10-29 19:25:51 -04: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
6467335f74
Fixed most Checkstyle warnings in the API.
2018-10-28 00:41:21 -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
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
3bd48dec99
Add convenience connectWithIndication() method.
2018-10-21 17:49:51 -04:00
kashike
78abba56af
Change player info action enum to int
...
Read & write server id
Fix javadocs
2018-10-13 00:18:21 -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
d59c8874b7
Fix issues with UUIDs with leading zeroes. Fixes #109
2018-10-05 02:39:11 -04:00