Fix paper's deserializer removing italics on anvils

This commit is contained in:
BillyGalbreath
2022-11-26 18:33:36 -06:00
parent 9814efc35b
commit a8b26671d1
3 changed files with 19 additions and 9 deletions

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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) {