mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-04 02:01:44 +01:00
a73ed9572e
Upstream has released updates that appear 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: b76ceb4f5 PR-1235: Move EntityType return to base Entity class e795d7490 SPIGOT-7458: Exception when Entity CommandSender executes Vanilla command 46c7fc3b1 SPIGOT-7452: Player#openSign cannot edit d91e5aa0b SPIGOT-7447: Rewrite --forceUpgrade to minimise diff and properly handle CraftBukkit world layout 921ae06d6 Revert "SPIGOT-7447: Fix --forceUpgrade" Spigot Changes: 94e187b5 Rebuild patches 3bce7935 SPIGOT-7091: Update bungeecord-chat
63 lines
3.6 KiB
Diff
63 lines
3.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
|
Date: Wed, 12 Jul 2023 17:38:26 -0400
|
|
Subject: [PATCH] Don't tick signs
|
|
|
|
Minecraft now ticks signs in order to validate the playerWhoMayEdit field. This is a horrible idea, as this means that even waxed signs are ticked for essentially no reason. This moves the logic lazily onto the getter.
|
|
|
|
== AT ==
|
|
private net.minecraft.world.level.block.entity.SignBlockEntity playerWhoMayEdit
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java b/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java
|
|
index 6c9d163b9f857806461dc72e54713f1a4f3a5c31..0bd8ea3143b2e9755d492af4596622d1dca1afaf 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/CeilingHangingSignBlock.java
|
|
@@ -144,6 +144,6 @@ public class CeilingHangingSignBlock extends SignBlock {
|
|
@Nullable
|
|
@Override
|
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) {
|
|
- return createTickerHelper(type, BlockEntityType.HANGING_SIGN, SignBlockEntity::tick);
|
|
+ return null; // Paper
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/SignBlock.java b/src/main/java/net/minecraft/world/level/block/SignBlock.java
|
|
index b01cdfe3c62c609e953aa5007e6557cfec0d5a5f..1122090792e9ee98bf8498e8907c5abbbcbcd6d6 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/SignBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/SignBlock.java
|
|
@@ -203,6 +203,6 @@ public abstract class SignBlock extends BaseEntityBlock implements SimpleWaterlo
|
|
@Nullable
|
|
@Override
|
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) {
|
|
- return createTickerHelper(type, BlockEntityType.SIGN, SignBlockEntity::tick);
|
|
+ return null; // Paper
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java b/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java
|
|
index d818d3ea6d28aa6ffb62127d4efd585d6f2935d1..ae232311f12c72ff62d3d18f25e3ebf46ce1ace2 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/WallHangingSignBlock.java
|
|
@@ -167,6 +167,6 @@ public class WallHangingSignBlock extends SignBlock {
|
|
@Nullable
|
|
@Override
|
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level world, BlockState state, BlockEntityType<T> type) {
|
|
- return createTickerHelper(type, BlockEntityType.HANGING_SIGN, SignBlockEntity::tick);
|
|
+ return null; // Paper
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
|
|
index 9eea2982e92e9bc7a53962dc6b21de60f9e5a4c7..38cde466714e5663cd416b6afd5d2558e139ec09 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java
|
|
@@ -367,6 +367,12 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C
|
|
|
|
@Nullable
|
|
public UUID getPlayerWhoMayEdit() {
|
|
+ // Paper start
|
|
+ if (this.hasLevel() && this.playerWhoMayEdit != null) {
|
|
+ // Manually invalidate the value lazily.
|
|
+ this.clearInvalidPlayerWhoMayEdit(this, this.getLevel(), this.playerWhoMayEdit);
|
|
+ }
|
|
+ // Paper end
|
|
return this.playerWhoMayEdit;
|
|
}
|
|
|