Add Velocity IP forwarding support (#1557)

While Velocity supports BungeeCord-style IP forwarding, it is not secure. Users
have a lot of problems setting up firewalls or setting up plugins like IPWhitelist.
Further, the BungeeCord IP forwarding protocol still retains essentially its original
form, when there is brand new support for custom login plugin messages in 1.13.

Velocity's modern IP forwarding uses an HMAC-SHA256 code to ensure authenticity
of messages, is packed into a binary format that is smaller than BungeeCord's
forwarding, and is integrated into the Minecraft login process by using the 1.13
login plugin message packet.
This commit is contained in:
Andrew Steinborn
2018-10-18 20:44:59 -04:00
parent 99cd22a793
commit 344d299d69
27 changed files with 450 additions and 148 deletions

View File

@@ -36,7 +36,7 @@ This change will result in some major changes to fishing formulas.
I would love to see this change in Vanilla, so Mojang please pull :)
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 588c626fbd..ba5f21461f 100644
index dc15bfcf8..f69a11ddf 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -0,0 +0,0 @@ public class PaperConfig {
@@ -53,7 +53,7 @@ index 588c626fbd..ba5f21461f 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/LootSelectorEntry.java b/src/main/java/net/minecraft/server/LootSelectorEntry.java
index 8daccdd6e9..c2a4ed6cf0 100644
index 8daccdd6e..c2a4ed6cf 100644
--- a/src/main/java/net/minecraft/server/LootSelectorEntry.java
+++ b/src/main/java/net/minecraft/server/LootSelectorEntry.java
@@ -0,0 +0,0 @@ import java.util.Collection;