Files
Purpur/patches/server/0111-Allow-anvil-colors.patch
BillyGalbreath 5796ff9f94 Updated Upstream (Paper)
Upstream has released updates that appears to apply and compile correctly

Paper Changes:
73fc9666 Fix per-world settings not reloading (#4756)
94c99a8d Fix NPE thrown when converting MerchantRecipe from Bukkit to NMS (#4755)
072faf2a Fix minor issue with JavaDoc breaking doc deploys
2020-11-11 23:27:30 -06:00

53 lines
2.8 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 4 Aug 2020 22:08:23 -0500
Subject: [PATCH] Allow anvil colors
diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java
index 4aa6b035a..5e4e59e5c 100644
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
@@ -251,6 +251,25 @@ public class ContainerAnvil extends ContainerAnvilAbstract {
} else if (!this.renameText.equals(itemstack.getName().getString())) {
b1 = 1;
i += b1;
+ // Purpur start
+ if (player != null && player.world.purpurConfig.anvilAllowColors && player.getBukkitEntity().hasPermission("purpur.anvil.color")) {
+ String json = "";
+ try {
+ String coloredText = net.md_5.bungee.api.ChatColor.translateAlternateColorCodes('&', this.renameText);
+ net.md_5.bungee.api.chat.BaseComponent[] bungeeComp = net.md_5.bungee.api.chat.TextComponent.fromLegacyText(coloredText);
+ json = net.md_5.bungee.chat.ComponentSerializer.toString(bungeeComp);
+ IChatBaseComponent nmsComp = IChatBaseComponent.ChatSerializer.jsonToComponent(json);
+ itemstack1.a(nmsComp);
+ } catch (Exception e) {
+ MinecraftServer.LOGGER.warn("There was a problem processing item name json component on anvil!");
+ MinecraftServer.LOGGER.warn("We have fallen back to legacy colorless item name to prevent real errors");
+ MinecraftServer.LOGGER.warn("Please report this to Purpur!");
+ MinecraftServer.LOGGER.warn("JSON: " + json);
+ MinecraftServer.LOGGER.warn("The following error describes what went wrong:");
+ e.printStackTrace();
+ }
+ } else
+ // Purpur end
itemstack1.a((IChatBaseComponent) (new ChatComponentText(this.renameText)));
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 5fa74566f..21b8e004c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -220,6 +220,11 @@ public class PurpurWorldConfig {
});
}
+ public boolean anvilAllowColors = false;
+ private void anvilSettings() {
+ anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors);
+ }
+
public int bambooMaxHeight = 16;
public int bambooSmallHeight = 10;
private void bambooSettings() {