mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
2f782a6652
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes:17543ecf
SPIGOT-5035: Error Using Virtual Merchant GUI0fc6922b
SPIGOT-5028: Villager#setVillagerExperience() doesn't workbdbdbe44
SPIGOT-5024: Fox error - Unknown target reason
47 lines
2.3 KiB
Diff
47 lines
2.3 KiB
Diff
From 392a0cf06c56cebe30dd3efd748d8d238e70cd98 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 9b895269a5..ec4b693730 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -2567,7 +2567,7 @@ 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 15b3add9ed..caeaca4c7a 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
|
|
@@ -17,6 +17,7 @@ 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() {
|
|
@@ -141,7 +142,10 @@ 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() {
|
|
--
|
|
2.21.0
|
|
|