From a8b26671d1d4172deea277f5e377871701031fb8 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 26 Nov 2022 18:33:36 -0600 Subject: [PATCH] Fix paper's deserializer removing italics on anvils --- patches/server/0087-Allow-anvil-colors.patch | 18 ++++++++++++++---- ...9-Config-to-allow-for-unsafe-enchants.patch | 6 +++--- ...ke-anvil-cumulative-cost-configurable.patch | 4 ++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/patches/server/0087-Allow-anvil-colors.patch b/patches/server/0087-Allow-anvil-colors.patch index 4a9a75841..72152f061 100644 --- a/patches/server/0087-Allow-anvil-colors.patch +++ b/patches/server/0087-Allow-anvil-colors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow anvil colors diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 0363d2263b2d6bd6166fa21d7849297e95eddd77..2c5a8be7799aef8d39007761bd9e3396ce5d755e 100644 +index 0363d2263b2d6bd6166fa21d7849297e95eddd77..d39b86b90aefab85b92e980f56f690bdfb9da82f 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -@@ -280,6 +280,44 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -280,6 +280,54 @@ public class AnvilMenu extends ItemCombinerMenu { } else if (!this.itemName.equals(itemstack.getHoverName().getString())) { b1 = 1; i += b1; @@ -31,10 +31,20 @@ index 0363d2263b2d6bd6166fa21d7849297e95eddd77..2c5a8be7799aef8d39007761bd9e3396 + } + if (this.player.level.purpurConfig.anvilAllowColors) { + if (player.hasPermission("purpur.anvil.color")) { -+ name = name.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1"); ++ java.util.regex.Matcher matcher = java.util.regex.Pattern.compile("(?i)&([0-9a-fr])").matcher(name); ++ while (matcher.find()) { ++ String match = matcher.group(1); ++ name = name.replace("&" + match, "\u00a7" + match.toLowerCase(java.util.Locale.ROOT)); ++ } ++ //name = name.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1"); + } + if (player.hasPermission("purpur.anvil.format")) { -+ name = name.replaceAll("(?i)&([l-or])", "\u00a7$1"); ++ java.util.regex.Matcher matcher = java.util.regex.Pattern.compile("(?i)&([l-or])").matcher(name); ++ while (matcher.find()) { ++ String match = matcher.group(1); ++ name = name.replace("&" + match, "\u00a7" + match.toLowerCase(java.util.Locale.ROOT)); ++ } ++ //name = name.replaceAll("(?i)&([l-or])", "\u00a7$1"); + } + } + net.kyori.adventure.text.Component component; diff --git a/patches/server/0159-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0159-Config-to-allow-for-unsafe-enchants.patch index f0e291960..d8abd105d 100644 --- a/patches/server/0159-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0159-Config-to-allow-for-unsafe-enchants.patch @@ -27,7 +27,7 @@ index 7c012f1e37b0085c0939797b0dae8996b4953ab8..155b0a1aa58b891e98a55e10f112f611 ++i; } else if (targets.size() == 1) { diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 2c5a8be7799aef8d39007761bd9e3396ce5d755e..277bd715c0c1dc3724718f643a279b36b8cb1ebc 100644 +index d39b86b90aefab85b92e980f56f690bdfb9da82f..eb942aa4cea106f2cd5eaf1e55f96373fe7bea8d 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -209,7 +209,8 @@ public class AnvilMenu extends ItemCombinerMenu { @@ -60,7 +60,7 @@ index 2c5a8be7799aef8d39007761bd9e3396ce5d755e..277bd715c0c1dc3724718f643a279b36 i2 = enchantment.getMaxLevel(); } -@@ -360,7 +361,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -370,7 +371,7 @@ public class AnvilMenu extends ItemCombinerMenu { sendAllDataToRemote(); // CraftBukkit - SPIGOT-6686: Always send completed inventory to stay in sync with client this.broadcastChanges(); // Purpur start @@ -70,7 +70,7 @@ index 2c5a8be7799aef8d39007761bd9e3396ce5d755e..277bd715c0c1dc3724718f643a279b36 ((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get())); } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 2b2115d218a279245f8be5e0c93a2b6200f81241..f7017c330ee2d8e17ab2be294865d7e3fd796456 100644 +index 9e308183917884dcb2f8831324d45c9aeef55051..c124f2f3a3cd5a4abfa07d47a230e1730c19455a 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -1153,6 +1153,12 @@ public final class ItemStack { diff --git a/patches/server/0179-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0179-Make-anvil-cumulative-cost-configurable.patch index 1d1e5747a..2310f7b74 100644 --- a/patches/server/0179-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0179-Make-anvil-cumulative-cost-configurable.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Make anvil cumulative cost configurable diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 277bd715c0c1dc3724718f643a279b36b8cb1ebc..7e518a1382b2bbb5151c8bb3c651c2646b2f2f1b 100644 +index eb942aa4cea106f2cd5eaf1e55f96373fe7bea8d..7c52c048fb9b265d57f57f0c69796668235a26fd 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -@@ -370,7 +370,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -380,7 +380,7 @@ public class AnvilMenu extends ItemCombinerMenu { } public static int calculateIncreasedRepairCost(int cost) {