diff --git a/pom.xml b/pom.xml
index 3c015f62..e799d6c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.loohp
InteractiveChat
- 3.2.9.16
+ 3.2.9.17
src/main/java
diff --git a/src/main/java/com/loohp/interactivechat/Bungee/InteractiveChatBungee.java b/src/main/java/com/loohp/interactivechat/Bungee/InteractiveChatBungee.java
index 20852991..5250d27e 100644
--- a/src/main/java/com/loohp/interactivechat/Bungee/InteractiveChatBungee.java
+++ b/src/main/java/com/loohp/interactivechat/Bungee/InteractiveChatBungee.java
@@ -486,7 +486,7 @@ public void write(ChannelHandlerContext channelHandlerContext, Object obj, Chann
Chat packet = (Chat) obj;
forwardedMessages.get(player.getUniqueId()).add(packet.getMessage());
}
- super.write(channelHandlerContext, obj, channelPromise); // send it to client
+ super.write(channelHandlerContext, obj, channelPromise);
}
});
}
@@ -524,7 +524,7 @@ public void write(ChannelHandlerContext channelHandlerContext, Object obj, Chann
Chat packet = (Chat) obj;
if (packet.getMessage().contains("")) {
packet.setMessage(packet.getMessage().replace("", ""));
- } else if (player.getServer() != null) {
+ } else if (hasInteractiveChat(player.getServer())) {
UUID messageId = UUID.randomUUID();
messageQueue.add(messageId);
//ProxyServer.getInstance().getConsole().sendMessage(new TextComponent(messageId.toString() + " -> " + packet.getMessage()));
@@ -541,7 +541,7 @@ public void run() {
return;
}
}
- super.write(channelHandlerContext, obj, channelPromise); // send it to client
+ super.write(channelHandlerContext, obj, channelPromise);
}
});
}
@@ -595,4 +595,15 @@ public void run() {
}, 1000);
}
+ private boolean hasInteractiveChat(Server server) {
+ if (server == null || server.getInfo() == null) {
+ return false;
+ }
+ BackendInteractiveChatData data = serverInteractiveChatInfo.get(server.getInfo().getName());
+ if (data == null) {
+ return false;
+ }
+ return data.hasInteractiveChat();
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/com/loohp/interactivechat/Modules/PlayernameDisplay.java b/src/main/java/com/loohp/interactivechat/Modules/PlayernameDisplay.java
index 680f5174..cfb61022 100644
--- a/src/main/java/com/loohp/interactivechat/Modules/PlayernameDisplay.java
+++ b/src/main/java/com/loohp/interactivechat/Modules/PlayernameDisplay.java
@@ -113,6 +113,7 @@ public static BaseComponent processPlayer(String placeholder, ICPlayer player, S
}
String lastColor = "";
+
StringBuilder sb = new StringBuilder();
for (int i = 0; i < trim.size(); i++) {
diff --git a/src/main/java/com/loohp/interactivechat/Modules/ProcessBungeeRequestedMessage.java b/src/main/java/com/loohp/interactivechat/Modules/ProcessBungeeRequestedMessage.java
index 033918e7..e1ab3d63 100644
--- a/src/main/java/com/loohp/interactivechat/Modules/ProcessBungeeRequestedMessage.java
+++ b/src/main/java/com/loohp/interactivechat/Modules/ProcessBungeeRequestedMessage.java
@@ -5,6 +5,7 @@
import java.util.Optional;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.text.StringEscapeUtils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -18,13 +19,14 @@
import com.loohp.interactivechat.Utils.MCVersion;
import com.loohp.interactivechat.Utils.PlayerUtils;
+import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
public class ProcessBungeeRequestedMessage {
public static String processAndRespond(Player reciever, String component) throws Exception {
- BaseComponent basecomponent = ChatComponentUtils.join(ComponentSerializer.parse(ChatColorUtils.filterIllegalColorCodes(component)));
+ BaseComponent basecomponent = ChatComponentUtils.join(ComponentSerializer.parse(ChatColorUtils.filterIllegalColorCodes(StringEscapeUtils.unescapeJava(component))));
BaseComponent originalComponent = ChatComponentUtils.clone(basecomponent);
try {
@@ -89,6 +91,8 @@ public static String processAndRespond(Player reciever, String component) throws
basecomponent = PlayernameDisplay.process(basecomponent, rawMessageKey, sender, unix);
}
+ System.out.println(ComponentSerializer.toString(basecomponent).replace(ChatColor.COLOR_CHAR, '&'));
+
if (InteractiveChat.AllowMention && sender.isPresent()) {
basecomponent = MentionDisplay.process(basecomponent, reciever, sender.get(), rawMessageKey, unix, !Bukkit.isPrimaryThread());
}
diff --git a/src/main/java/com/loohp/interactivechat/Utils/ChatColorUtils.java b/src/main/java/com/loohp/interactivechat/Utils/ChatColorUtils.java
index 7125ae21..9cb41c5c 100644
--- a/src/main/java/com/loohp/interactivechat/Utils/ChatColorUtils.java
+++ b/src/main/java/com/loohp/interactivechat/Utils/ChatColorUtils.java
@@ -130,7 +130,7 @@ public static boolean isLegal(String color) {
if (color.matches("§[0-9a-fk-or]")) {
return true;
}
- if (color.matches("§x§[0-9A-F]§[0-9A-F]§[0-9A-F]§[0-9A-F]§[0-9A-F]§[0-9A-F]")) {
+ if (color.matches("§x(§[0-9a-fA-F]){6}")) {
return true;
}
return false;
diff --git a/src/main/java/com/loohp/interactivechat/Utils/ChatComponentUtils.java b/src/main/java/com/loohp/interactivechat/Utils/ChatComponentUtils.java
index db484278..b269efe0 100644
--- a/src/main/java/com/loohp/interactivechat/Utils/ChatComponentUtils.java
+++ b/src/main/java/com/loohp/interactivechat/Utils/ChatComponentUtils.java
@@ -25,6 +25,7 @@
import net.md_5.bungee.api.chat.hover.content.Entity;
import net.md_5.bungee.api.chat.hover.content.Item;
import net.md_5.bungee.api.chat.hover.content.Text;
+import net.md_5.bungee.chat.ComponentSerializer;
public class ChatComponentUtils {
@@ -306,7 +307,7 @@ public static BaseComponent cleanUpLegacyText(BaseComponent basecomponent, Playe
}
BaseComponent current = null;
- for (BaseComponent base : CustomStringUtils.loadExtras(basecomponent)) {
+ for (BaseComponent base : list) {
List thislist = new LinkedList();
if (base instanceof TextComponent) {
List texts = Stream.of(TextComponent.fromLegacyText(base.toLegacyText())).map(each -> (TextComponent) each).collect(Collectors.toList());