mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-01 17:01:56 +01:00
f501069d24
Appear to be used more extensively in 1.14. Subject to further review.
45 lines
No EOL
2.2 KiB
Diff
45 lines
No EOL
2.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 28 Feb 2019 00:15:28 -0500
|
|
Subject: [PATCH] Fix sign edit memory leak
|
|
|
|
when a player edits a sign, a reference to their Entity is never cleand up.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
index 98d1138cb..b3f1fb9eb 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
|
|
TileEntitySign tileentitysign = (TileEntitySign) tileentity;
|
|
|
|
- if (!tileentitysign.d() || tileentitysign.f() != this.player) {
|
|
+ if (!tileentitysign.d() || tileentitysign.signEditor == null || !tileentitysign.signEditor.equals(this.player.getUniqueID())) {
|
|
this.minecraftServer.warning("Player " + this.player.getDisplayName().getString() + " just tried to change non-editable sign");
|
|
this.sendPacket(tileentity.getUpdatePacket()); // CraftBukkit
|
|
return;
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
index 15b3add9e..caeaca4c7 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
@@ -0,0 +0,0 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
|
// Paper start - Strip invalid unicode from signs on load
|
|
private static final boolean keepInvalidUnicode = Boolean.getBoolean("Paper.keepInvalidUnicode"); // Allow people to keep their bad unicode if they really want it
|
|
private boolean privateUnicodeRemoved = false;
|
|
+ public java.util.UUID signEditor;
|
|
// Paper end
|
|
|
|
public TileEntitySign() {
|
|
@@ -0,0 +0,0 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
|
}
|
|
|
|
public void a(EntityHuman entityhuman) {
|
|
- this.j = entityhuman;
|
|
+ // Paper start
|
|
+ //this.g = entityhuman;
|
|
+ signEditor = entityhuman != null ? entityhuman.getUniqueID() : null;
|
|
+ // Paper end
|
|
}
|
|
|
|
public EntityHuman f() {
|
|
--
|