mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 12:48:53 +01:00
da9d110d5b
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
65 lines
3.5 KiB
Diff
65 lines
3.5 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 c62df32af11636ad408b584fcc590590ce4fb0d0..baed0bb80d44973f9323bbe536551182979caff2 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java
|
|
@@ -144,6 +144,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 46e800a3116a364cc8230b2f84084ade256959c7..bdc5ad40f83590066f8702b2b60868bd56d58596 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -270,7 +270,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
|
|
@Override
|
|
public InetSocketAddress getAddress() {
|
|
- if (this.getHandle().connection.protocol() == null) return null;
|
|
+ if (this.getHandle().connection == null) return null;
|
|
|
|
SocketAddress addr = this.getHandle().connection.getRemoteAddress();
|
|
if (addr instanceof InetSocketAddress) {
|
|
@@ -280,6 +280,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();
|