Allow anvil colors

This commit is contained in:
William Blake Galbreath
2020-08-04 22:31:15 -05:00
parent 930555c84a
commit c6d7b2bba1
2 changed files with 58 additions and 4 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Default permissions
diff --git a/src/main/java/org/bukkit/util/permissions/CommandPermissions.java b/src/main/java/org/bukkit/util/permissions/CommandPermissions.java
index 7763d610..d5a42707 100644
index 7763d6101..d5a42707d 100644
--- a/src/main/java/org/bukkit/util/permissions/CommandPermissions.java
+++ b/src/main/java/org/bukkit/util/permissions/CommandPermissions.java
@@ -18,6 +18,7 @@ public final class CommandPermissions {
@@ -17,7 +17,7 @@ index 7763d610..d5a42707 100644
commands.recalculatePermissibles();
return commands;
diff --git a/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java b/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java
index e1a4ddf2..8e481e38 100644
index e1a4ddf2c..8e481e381 100644
--- a/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java
+++ b/src/main/java/org/bukkit/util/permissions/DefaultPermissions.java
@@ -89,6 +89,8 @@ public final class DefaultPermissions {
@@ -31,10 +31,10 @@ index e1a4ddf2..8e481e38 100644
}
diff --git a/src/main/java/org/bukkit/util/permissions/PurpurPermissions.java b/src/main/java/org/bukkit/util/permissions/PurpurPermissions.java
new file mode 100644
index 00000000..14cb78e3
index 000000000..3cb7890d9
--- /dev/null
+++ b/src/main/java/org/bukkit/util/permissions/PurpurPermissions.java
@@ -0,0 +1,69 @@
@@ -0,0 +1,71 @@
+package org.bukkit.util.permissions;
+
+import org.bukkit.entity.Entity;
@@ -77,6 +77,8 @@ index 00000000..14cb78e3
+ DefaultPermissions.registerPermission(PREFIX + "drop.spawner", "Allows the user to drop spawner cage when broken with diamond pickaxe with silk touch", PermissionDefault.FALSE, purpur);
+ DefaultPermissions.registerPermission(PREFIX + "place.spawner", "Allows the user to place spawner cage in the world", PermissionDefault.FALSE, purpur);
+
+ DefaultPermissions.registerPermission(PREFIX + "anvil.color", "Allows the user to use color codes on anvils", PermissionDefault.FALSE, purpur);
+
+ Permission sign = DefaultPermissions.registerPermission(PREFIX + "sign", "Allows the user to use all sign abilities", PermissionDefault.FALSE, purpur);
+ DefaultPermissions.registerPermission(PREFIX + "sign.click.opens.editor", "Allows the user to click signs to open sign editor", PermissionDefault.FALSE, sign);
+ DefaultPermissions.registerPermission(PREFIX + "sign.color", "Allows the user to use color codes on signs", PermissionDefault.FALSE, sign);

View File

@@ -0,0 +1,52 @@
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 4aa6b035a6..5e4e59e5c8 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 278b100de9..711858a716 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -206,6 +206,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() {