diff --git a/patches/server/0246-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0246-Persistent-BlockEntity-Lore-and-DisplayName.patch index 8d3b30fcf..50f1b581f 100644 --- a/patches/server/0246-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0246-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> -Date: Tue, 30 Nov 2021 07:05:46 -0500 +Date: Wed, 30 Sep 2020 14:32:46 -0700 Subject: [PATCH] Persistent BlockEntity Lore and DisplayName Makes it so that when a BlockEntity is placed in the world and then broken, diff --git a/patches/unapplied/server/0045-Signs-allow-color-codes.patch b/patches/server/0247-Signs-allow-color-codes.patch similarity index 81% rename from patches/unapplied/server/0045-Signs-allow-color-codes.patch rename to patches/server/0247-Signs-allow-color-codes.patch index 80283d921..ac99731c5 100644 --- a/patches/unapplied/server/0045-Signs-allow-color-codes.patch +++ b/patches/server/0247-Signs-allow-color-codes.patch @@ -3,13 +3,12 @@ From: William Blake Galbreath Date: Thu, 6 Jun 2019 17:40:30 -0500 Subject: [PATCH] Signs allow color codes -removed save function ugh diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 52fd2d08783bbba4c262bb297a31b373b3bcfacc..45084be6e8ebced2029dbca57f288b0e01b07311 100644 +index d2cbc3ec9cfebc7576caf25606f4dbf30698310c..c416d5257d3bff7ad76466525f3cecf6491f6af8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1478,6 +1478,7 @@ public class ServerPlayer extends Player { +@@ -1496,6 +1496,7 @@ public class ServerPlayer extends Player { @Override public void openTextEdit(SignBlockEntity sign) { @@ -18,10 +17,10 @@ index 52fd2d08783bbba4c262bb297a31b373b3bcfacc..45084be6e8ebced2029dbca57f288b0e this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index bb0f8dbc0746283ff7670dee24dd932254aeec0d..7047a77b6f6b9b15145dd8c54e978d81b1f4e998 100644 +index 28e90810f2d9fa1894b45c070731d815cd28cdea..6f7a7b988d0e548bd6521c71f6dff98ac67eeb65 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3040,11 +3040,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3073,11 +3073,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } // Paper end @@ -30,7 +29,6 @@ index bb0f8dbc0746283ff7670dee24dd932254aeec0d..7047a77b6f6b9b15145dd8c54e978d81 - } else { - lines.add(net.kyori.adventure.text.Component.text(SharedConstants.filterText(currentLine.getRaw()))); - } -+ // Purpur start + String line = SharedConstants.filterText(this.player.isTextFilteringEnabled() ? currentLine.getFiltered() : currentLine.getRaw()); + if (worldserver.purpurConfig.signAllowColors) { + if (player.hasPermission("purpur.sign.color")) line = line.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1"); @@ -44,18 +42,19 @@ index bb0f8dbc0746283ff7670dee24dd932254aeec0d..7047a77b6f6b9b15145dd8c54e978d81 SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.player.getBukkitEntity(), lines); this.cserver.getPluginManager().callEvent(event); 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 6371176fba41218a209ea59b4cafe5b2d4a685fd..f7ab1782c67754a6211c4a67ab8d60573146411d 100644 +index 6371176fba41218a209ea59b4cafe5b2d4a685fd..7666bca74f4f68bb4e902ec2eb7c4895adbb9373 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 -@@ -179,6 +179,22 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C - return filtered ? this.filteredMessages : this.messages; +@@ -184,6 +184,23 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C + return ClientboundBlockEntityDataPacket.create(this); } + // Purpur start + public ClientboundBlockEntityDataPacket getTranslatedUpdatePacket(boolean filtered) { -+ final CompoundTag nbt = save(new CompoundTag()); ++ final CompoundTag nbt = new CompoundTag(); ++ this.saveAdditional(nbt); + final Component[] lines = getMessages(filtered); -+ for (int i = 0; i < 4; ++i) { ++ for (int i = 0; i < 4; i++) { + final var component = io.papermc.paper.adventure.PaperAdventure.asAdventure(lines[i]); + final String line = io.papermc.paper.adventure.PaperAdventure.LEGACY_AMPERSAND.serialize(component); + final var text = net.kyori.adventure.text.Component.text(line); @@ -63,25 +62,25 @@ index 6371176fba41218a209ea59b4cafe5b2d4a685fd..f7ab1782c67754a6211c4a67ab8d6057 + nbt.putString("Text" + (i + 1), json); + } + nbt.putString("PurpurEditor", "true"); -+ return new ClientboundBlockEntityDataPacket(worldPosition, 9, nbt); ++ return ClientboundBlockEntityDataPacket.create(this, entity -> nbt); + } + // Purpur end + @Override - public ClientboundBlockEntityDataPacket getUpdatePacket() { - return ClientboundBlockEntityDataPacket.create(this); + public CompoundTag getUpdateTag() { + return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5cfccc5a7ee50b24151d6886a1f336c6b217c24e..ea387b513f86249a6ceaa67cb6358dc56ed4b16d 100644 +index 64b1bedb055d5aa905ef1703b60097120b030d95..d376a3dd429c4f26a7b0eba8daaa97fa9c089e7f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -153,8 +153,10 @@ public class PurpurWorldConfig { - }); +@@ -938,8 +938,10 @@ public class PurpurWorldConfig { } -+ public boolean signAllowColors = false; public boolean signRightClickEdit = false; ++ public boolean signAllowColors = false; private void signSettings() { -+ signAllowColors = getBoolean("blocks.sign.allow-colors", signAllowColors); signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); ++ signAllowColors = getBoolean("blocks.sign.allow-colors", signAllowColors); } + public boolean slabHalfBreak = false;