mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 3db3aaf39 [Auto] Updated Upstream (CraftBukkit) c953e51dd [Auto] Updated Upstream (CraftBukkit/Spigot) dc529c7a9 Fix PlayerEditBookEvent (#5463) 3fea87edb [Auto] Updated Upstream (CraftBukkit) a111b1365 Send post ChatEvent messages as MessageType.CHAT d15161114 [Auto] Updated Upstream (Spigot) e8889e96a [Auto] Updated Upstream (CraftBukkit) 3bc888ba6 [Auto] Updated Upstream (CraftBukkit) 211f8e041 Prevent light queue overfill when no players are online Airplane Changes: 3ed988c05 Use AIR library for configuration parsing
55 lines
3.1 KiB
Diff
55 lines
3.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
Date: Tue, 3 Nov 2020 01:25:06 -0600
|
|
Subject: [PATCH] Allow color codes in books
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
|
index ac7618caf6845bd35a5ea5980d1e2f889fb8301f..ac170c62b053e6a56ce6792d243722447565f333 100644
|
|
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
|
|
@@ -1203,7 +1203,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
if (itemstack.getItem() == Items.WRITABLE_BOOK) {
|
|
NBTTagList nbttaglist = new NBTTagList();
|
|
|
|
- list.stream().map(NBTTagString::a).forEach(nbttaglist::add);
|
|
+ boolean hasPerm = getPlayer().hasPermission("purpur.book.color.edit"); // Purpur - edit book
|
|
+ list.stream().map(s -> s = color(s, hasPerm, false)).map(NBTTagString::a).forEach(nbttaglist::add); // Purpur - edit book
|
|
ItemStack old = itemstack.cloneItemStack(); // CraftBukkit
|
|
itemstack.a("pages", (NBTBase) nbttaglist);
|
|
this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
|
|
@@ -1221,13 +1222,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
itemstack1.setTag(nbttagcompound.clone());
|
|
}
|
|
|
|
+ boolean hasPerm = getPlayer().hasPermission("purpur.book.color.edit") || getPlayer().hasPermission("purpur.book.color.sign"); // Purpur
|
|
itemstack1.a("author", (NBTBase) NBTTagString.a(this.player.getDisplayName().getString()));
|
|
- itemstack1.a("title", (NBTBase) NBTTagString.a(s));
|
|
+ itemstack1.a("title", (NBTBase) NBTTagString.a(color(s, hasPerm))); // Purpur - sign book
|
|
NBTTagList nbttaglist = new NBTTagList();
|
|
Iterator iterator = list.iterator();
|
|
|
|
while (iterator.hasNext()) {
|
|
- String s1 = (String) iterator.next();
|
|
+ String s1 = color((String) iterator.next(), hasPerm);// Purpur - sign book
|
|
ChatComponentText chatcomponenttext = new ChatComponentText(s1);
|
|
String s2 = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext);
|
|
|
|
@@ -1239,6 +1241,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
}
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ private String color(String str, boolean hasPerm) {
|
|
+ return color(str, hasPerm, true);
|
|
+ }
|
|
+
|
|
+ private String color(String str, boolean hasPerm, boolean parseHex) {
|
|
+ return hasPerm ? org.bukkit.ChatColor.color(str, parseHex) : str;
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
@Override
|
|
public void a(PacketPlayInEntityNBTQuery packetplayinentitynbtquery) {
|
|
PlayerConnectionUtils.ensureMainThread(packetplayinentitynbtquery, this, this.player.getWorldServer());
|