mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 20:50:41 +01:00
dc684c60d1
The new behavior of disconnect to block the current thread until the disconnect succeeded is better than throwing it off to happen at some point
56 lines
3.1 KiB
Diff
56 lines
3.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: nostalfinals <yuu8583@proton.me>
|
|
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 ea16dfa718b526d6520d7fcfc21d28f972f1f2bf..4b9da6e2140b14f1e56056f5e9e94b2169d85501 100644
|
|
--- a/src/main/java/net/minecraft/network/Connection.java
|
|
+++ b/src/main/java/net/minecraft/network/Connection.java
|
|
@@ -153,6 +153,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 96355e1da8feb6687ea0069dda4a82fcd7e25e8a..1f696644b958538e9f5d568a2e4bba69d74a191e 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
|
|
@@ -138,6 +138,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 8d697782fae536377ac29acf967c764ee8a7951a..e41b7191d0cebeb77b8d07a1b5bddc1b695cb922 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -275,6 +275,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();
|