aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--patches/api/0478-Added-API-to-get-player-ha-proxy-address.patch27
-rw-r--r--patches/server/1046-Added-API-to-get-player-ha-proxy-address.patch56
2 files changed, 83 insertions, 0 deletions
diff --git a/patches/api/0478-Added-API-to-get-player-ha-proxy-address.patch b/patches/api/0478-Added-API-to-get-player-ha-proxy-address.patch
new file mode 100644
index 0000000000..66f3365768
--- /dev/null
+++ b/patches/api/0478-Added-API-to-get-player-ha-proxy-address.patch
@@ -0,0 +1,27 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: nostalfinals <[email protected]>
+Date: Mon, 8 Apr 2024 23:24:38 +0800
+Subject: [PATCH] Added API to get player ha proxy address
+
+
+diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
+index 8a1e39474af88188f2e1765731b57d349f0ee645..6c327a07bf8a6aa11a2d7dad12b2830acc539484 100644
+--- a/src/main/java/org/bukkit/entity/Player.java
++++ b/src/main/java/org/bukkit/entity/Player.java
+@@ -250,6 +250,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ @Nullable
+ public InetSocketAddress getAddress();
+
++ // Paper start - Add API to get player's proxy address
++ /**
++ * Gets the socket address of this player's proxy
++ *
++ * @return the player's proxy address, null if the server doesn't have Proxy Protocol enabled, or the player didn't connect to an HAProxy instance
++ */
++ @Nullable
++ public InetSocketAddress getHAProxyAddress();
++ // Paper end - Add API to get player's proxy address
++
+ /**
+ * Gets if this connection has been transferred from another server.
+ *
diff --git a/patches/server/1046-Added-API-to-get-player-ha-proxy-address.patch b/patches/server/1046-Added-API-to-get-player-ha-proxy-address.patch
new file mode 100644
index 0000000000..f14e9bae13
--- /dev/null
+++ b/patches/server/1046-Added-API-to-get-player-ha-proxy-address.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: nostalfinals <[email protected]>
+Date: Mon, 8 Apr 2024 23:24:38 +0800
+Subject: [PATCH] Added API to get player ha proxy address
+
+
+diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
+index 58d28b6c1cc7da7d786f78308db971f7502ad844..02833deaa2bb7e5abc655bc1bdbe15c4b3ac7119 100644
+--- a/src/main/java/net/minecraft/network/Connection.java
++++ b/src/main/java/net/minecraft/network/Connection.java
+@@ -157,6 +157,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
+ this.stopReadingPackets = true;
+ }
+ // Paper end - packet limiter
++ @Nullable public SocketAddress haProxyAddress; // Paper - Add API to get player's proxy address
+
+ public Connection(PacketFlow side) {
+ this.receiving = side;
+diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
+index 52f537b7bfbdeaad9d17c0e88a1ed1c8925a833f..8aff5129f85ab5729b3da2e465871be62d15bdf2 100644
+--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
++++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
+@@ -146,6 +146,13 @@ public class ServerConnectionListener {
+
+ Connection connection = (Connection) channel.pipeline().get("packet_handler");
+ connection.address = socketaddr;
++
++ // Paper start - Add API to get player's proxy address
++ final String proxyAddress = message.destinationAddress();
++ final int proxyPort = message.destinationPort();
++
++ connection.haProxyAddress = new java.net.InetSocketAddress(proxyAddress, proxyPort);
++ // Paper end - Add API to get player's proxy address
+ }
+ } else {
+ super.channelRead(ctx, msg);
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+index 0ff9bb5f5d312503ec4b3cf3bf8c532b09a8f08b..5f896948d158651cd9837364759dbfbcce6b7d21 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -273,6 +273,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ }
+ }
+
++ // Paper start - Add API to get player's proxy address
++ @Override
++ public @Nullable InetSocketAddress getHAProxyAddress() {
++ if (this.getHandle().connection == null) return null;
++
++ return this.getHandle().connection.connection.haProxyAddress instanceof final InetSocketAddress inetSocketAddress ? inetSocketAddress : null;
++ }
++ // Paper end - Add API to get player's proxy address
++
+ public interface TransferCookieConnection {
+
+ boolean isTransferred();