diff --git a/patches/server/0087-Allow-anvil-colors.patch b/patches/server/0087-Allow-anvil-colors.patch index cc5a8f29b..b2220e012 100644 --- a/patches/server/0087-Allow-anvil-colors.patch +++ b/patches/server/0087-Allow-anvil-colors.patch @@ -5,32 +5,42 @@ 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..3dbef489a0bf27fbef95de599970141f4aa783f3 100644 +index 0363d2263b2d6bd6166fa21d7849297e95eddd77..92efc8caf43661b24e95653f7a43bc4cfa0f4110 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -@@ -280,6 +280,26 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -280,6 +280,36 @@ public class AnvilMenu extends ItemCombinerMenu { } else if (!this.itemName.equals(itemstack.getHoverName().getString())) { b1 = 1; i += b1; + // Purpur start -+ if (player != null && player.level.purpurConfig.anvilAllowColors) { -+ org.bukkit.craftbukkit.entity.CraftHumanEntity bukkitPlayer = player.getBukkitEntity(); -+ final net.kyori.adventure.text.Component renameTextComponent; -+ if (player.level.purpurConfig.anvilColorsUseMiniMessage && bukkitPlayer.hasPermission("purpur.anvil.minimessage")) { -+ renameTextComponent = net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(itemName); -+ itemstack1.setHoverName(io.papermc.paper.adventure.PaperAdventure.asVanilla(renameTextComponent)); -+ } else if (itemName.startsWith("&r") && player.getBukkitEntity().hasPermission("purpur.anvil.remove_italics")) { -+ renameTextComponent = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().deserialize(itemName.substring(2)).decoration(net.kyori.adventure.text.format.TextDecoration.ITALIC, false); -+ itemstack1.setHoverName(io.papermc.paper.adventure.PaperAdventure.asVanilla(renameTextComponent)); -+ } else if (bukkitPlayer.hasPermission("purpur.anvil.color")) { -+ renameTextComponent = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacyAmpersand().deserialize(itemName); -+ itemstack1.setHoverName(io.papermc.paper.adventure.PaperAdventure.asVanilla(renameTextComponent)); -+ } else if (player.getBukkitEntity().hasPermission("purpur.anvil.format")){ -+ itemName = itemName.replaceAll("(?i)&([l-or])", "\u00a7$1"); -+ renameTextComponent = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(itemName); -+ itemstack1.setHoverName(io.papermc.paper.adventure.PaperAdventure.asVanilla(renameTextComponent)); ++ if (this.player != null) { ++ org.bukkit.craftbukkit.entity.CraftHumanEntity player = this.player.getBukkitEntity(); ++ String name = this.itemName; ++ boolean removeItalics = false; ++ if (player.hasPermission("purpur.anvil.remove_italics") && (name.startsWith("&r") || name.startsWith("") || name.startsWith(""))) { ++ name = name.substring(2); ++ removeItalics = true; + } -+ } else ++ if (this.player.level.purpurConfig.anvilAllowColors) { ++ if (player.hasPermission("purpur.anvil.color")) { ++ name = name.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1"); ++ } ++ if (player.hasPermission("purpur.anvil.format")) { ++ name = name.replaceAll("(?i)&([l-or])", "\u00a7$1"); ++ } ++ } ++ net.kyori.adventure.text.Component component; ++ if (this.player.level.purpurConfig.anvilColorsUseMiniMessage && player.hasPermission("purpur.anvil.minimessage")) { ++ component = net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(name); ++ } else { ++ component = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(name); ++ } ++ if (removeItalics) { ++ component = component.decoration(net.kyori.adventure.text.format.TextDecoration.ITALIC, false); ++ } ++ itemstack1.setHoverName(io.papermc.paper.adventure.PaperAdventure.asVanilla(component)); ++ } ++ else + // Purpur end itemstack1.setHoverName(Component.literal(this.itemName)); } 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 2007460be..8a49c0c2f 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 3dbef489a0bf27fbef95de599970141f4aa783f3..f62c39b42f449c857a75af6650ad21f9e4c3f423 100644 +index 92efc8caf43661b24e95653f7a43bc4cfa0f4110..ad76e9608c8941fe45469c39e80851d1bef1db54 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 3dbef489a0bf27fbef95de599970141f4aa783f3..f62c39b42f449c857a75af6650ad21f9 i2 = enchantment.getMaxLevel(); } -@@ -342,7 +343,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -352,7 +353,7 @@ public class AnvilMenu extends ItemCombinerMenu { sendAllDataToRemote(); // CraftBukkit - SPIGOT-6686: Always send completed inventory to stay in sync with client this.broadcastChanges(); // Purpur start diff --git a/patches/server/0179-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0179-Make-anvil-cumulative-cost-configurable.patch index 36fc1ac06..c1b28777c 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 f62c39b42f449c857a75af6650ad21f9e4c3f423..9621f139cf6b219cfe2c1d66b13f8de41e0287b6 100644 +index ad76e9608c8941fe45469c39e80851d1bef1db54..99949a3424ca04b570cc23d8df77ef24a450cf2c 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -@@ -352,7 +352,7 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -362,7 +362,7 @@ public class AnvilMenu extends ItemCombinerMenu { } public static int calculateIncreasedRepairCost(int cost) {