mirror of
https://github.com/PurpurMC/Purpur.git
synced 2025-02-23 13:09:31 +08:00
Allow color codes on signs
This commit is contained in:
parent
3467a5be84
commit
6030a8aa23
@ -146,3 +146,8 @@ campfire-regen
|
||||
* boost-require-line-of-sight
|
||||
- **default**: false
|
||||
- **description**: Only players within line of sight of the campfire will receive the regen buff when the campfire is in smoke signal mode
|
||||
|
||||
allow-sign-colors
|
||||
~~~~~~~~~~~~~~~~~
|
||||
* **default**: true
|
||||
* **description**: Allow players to use color codes on signs
|
||||
|
78
patches/server/0029-Allow-color-codes-on-signs.patch
Normal file
78
patches/server/0029-Allow-color-codes-on-signs.patch
Normal file
@ -0,0 +1,78 @@
|
||||
From 451f33404de41811024e4c4bfb235a75051f4f8b Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Thu, 6 Jun 2019 17:40:30 -0500
|
||||
Subject: [PATCH] Allow color codes on signs
|
||||
|
||||
---
|
||||
.../java/net/minecraft/server/EntityPlayer.java | 1 +
|
||||
.../net/minecraft/server/PlayerConnection.java | 1 +
|
||||
.../java/net/minecraft/server/TileEntitySign.java | 14 ++++++++++++++
|
||||
.../java/net/pl3x/purpur/PurpurWorldConfig.java | 5 +++++
|
||||
4 files changed, 21 insertions(+)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index 691a2d094..c0a45bae5 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1109,6 +1109,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@Override
|
||||
public void openSign(TileEntitySign tileentitysign) {
|
||||
tileentitysign.a((EntityHuman) this);
|
||||
+ this.playerConnection.sendPacket(tileentitysign.getTranslatedUpdatePacket()); // Purpur
|
||||
this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition()));
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 01c268a58..c2766940c 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -2591,6 +2591,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
+ if (worldserver.purpurConfig.allowSignColors) lines[i] = org.bukkit.ChatColor.translateAlternateColorCodes('&', astring[i]); else // Purpur - allow sign colors
|
||||
lines[i] = SharedConstants.a(astring[i]); //Paper - Replaced with anvil color stripping method to stop exploits that allow colored signs to be created.
|
||||
}
|
||||
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
|
||||
index dd7889a4f..2f9db45a1 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
|
||||
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
|
||||
@@ -122,6 +122,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
|
||||
this.k[i] = null;
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ public PacketPlayOutTileEntityData getTranslatedUpdatePacket() {
|
||||
+ NBTTagCompound nbt = this.b();
|
||||
+ for (int i = 0; i < 4; ++i) {
|
||||
+ String line = lines[i].e().replace("\u00a7", "&");
|
||||
+ if (line.endsWith("&r")) {
|
||||
+ line = line.substring(0, line.length() - 2);
|
||||
+ }
|
||||
+ nbt.setString("Text" + (i + 1), IChatBaseComponent.ChatSerializer.a(new ChatMessage(line)));
|
||||
+ }
|
||||
+ return new PacketPlayOutTileEntityData(position, 9, nbt);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
+
|
||||
@Nullable
|
||||
@Override
|
||||
public PacketPlayOutTileEntityData getUpdatePacket() {
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 7f996591f..490c2ede6 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -91,4 +91,9 @@ public class PurpurWorldConfig {
|
||||
campfireRegenBoostAmp = getInt("campfire-regen.boost-amplifier", campfireRegenBoostAmp);
|
||||
campfireRegenBoostRequireLineOfSight = getBoolean("campfire-regen.boost-require-line-of-sight", campfireRegenBoostRequireLineOfSight);
|
||||
}
|
||||
+
|
||||
+ public boolean allowSignColors = true;
|
||||
+ private void allowSignColors() {
|
||||
+ allowSignColors = getBoolean("allow-sign-colors", allowSignColors);
|
||||
+ }
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
Loading…
Reference in New Issue
Block a user