diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index 88f81ac..4045350 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -11,7 +11,6 @@ import java.io.DataOutputStream; import java.io.File; import java.io.IOException; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.sql.Connection; import java.sql.SQLException; @@ -553,37 +552,47 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { this.protocolManager.addPacketListener(this.packetListener); } - public static String toPlainText(Object o, Class c) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - //System.out.println(o.getClass().getName()); - //System.out.println(c.getName()); - /*for(Method m : c.getDeclaredMethods()) { - System.out.println(m.getName()); - System.out.println(m.getGenericReturnType().toString()); - }*/ - ArrayList list = (ArrayList) c.getMethod("a").invoke(o, new Object[0]); - //System.out.println(list); - //System.out.println(list.get(0).getClass().getName()); - /*for(Method m : list.get(0).getClass().getDeclaredMethods()) { - System.out.println(m.getName()); - System.out.println(m.getGenericReturnType().toString()); - }*/ + public static String toPlainText(Object o, Class c) { + List finalList = new ArrayList<>(); StringBuilder stringbuilder = new StringBuilder(); - for(Object component : list) { - if(VersionHandler.is1_7_10()) { - stringbuilder.append((String) component.getClass().getMethod("e").invoke(component)); - } - else { - stringbuilder.append((String) component.getClass().getMethod("getText").invoke(component)); + try { + splitComponents(finalList, o, c); + + for(Object component : finalList) { + if(VersionHandler.is1_7_10()) { + stringbuilder.append((String) component.getClass().getMethod("e").invoke(component)); + } + else { + stringbuilder.append((String) component.getClass().getMethod("getText").invoke(component)); + } } } - //System.out.println("my string"); - //System.out.println("my string"); - //System.out.println("my string"); - //System.out.println("my string"); - //System.out.println("my string"); - //System.out.println(stringbuilder.toString()); + catch(Exception e) { + e.printStackTrace(); + } + if(plugin.getConfig().getString("loglevel", "info").equals("debug")) { + System.out.println("my string"); + System.out.println("my string"); + System.out.println("my string"); + System.out.println("my string"); + System.out.println("my string"); + System.out.println(stringbuilder.toString()); + } return stringbuilder.toString(); } + + private static void splitComponents(List finalList, Object o, Class c) throws Exception { + ArrayList list = (ArrayList) c.getMethod("a").invoke(o, new Object[0]); + for(Object component : list) { + ArrayList innerList = (ArrayList) c.getMethod("a").invoke(component, new Object[0]); + if(innerList.size() > 0) { + splitComponents(finalList, component, c); + } + else { + finalList.add(component); + } + } + } private void loadNMS() { try { diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Removemessage.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Removemessage.java index 270edd8..74b31ba 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Removemessage.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Removemessage.java @@ -142,6 +142,7 @@ public class Removemessage extends MineverseCommand { }*/ //System.out.println(message.getComponent().getJson()); playerPackets.add(Removemessage.this.createPacketPlayOutChat(message.getComponent())); + } if(resend) { packets.put(p.getPlayer(), playerPackets); diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java index af24fec..bf064cf 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java @@ -13,7 +13,6 @@ import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.versions.VersionHandler; import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.chat.ComponentSerializer; import com.comphenix.protocol.PacketType; @@ -98,22 +97,15 @@ public class PacketListener extends PacketAdapter { WrappedChatComponent originalChat = (WrappedChatComponent) event.getPacket().getChatComponents().read(0); String message = null; int hash = -1; - try { - //System.out.println(chat.getJson()); - //message = TextComponent.toPlainText(new TextComponent(chat.getJson())); - //message = (String) MineverseChat.messageMethod.invoke(chat.getHandle(), new Object[0]); - //System.out.println(MineverseChat.lastChatMessage.getMessage()); - - message = MineverseChat.toPlainText(chat.getHandle(), chat.getHandleType()); - //System.out.println(chat.getJson()); - //System.out.println(message + " message"); - hash = message != null ? message.hashCode() : -1; - } - catch(Exception ex) { - message = TextComponent.toPlainText(new TextComponent(chat.getJson())); - //System.out.println(message); - //ex.printStackTrace(); - } + //System.out.println(chat.getJson()); + //message = TextComponent.toPlainText(new TextComponent(chat.getJson())); + //message = (String) MineverseChat.messageMethod.invoke(chat.getHandle(), new Object[0]); + //System.out.println(MineverseChat.lastChatMessage.getMessage()); + message = MineverseChat.toPlainText(chat.getHandle(), chat.getHandleType()); + //System.out.println(chat.getJson()); + //System.out.println(message + " message"); + hash = message != null ? message.hashCode() : -1; + //System.out.println("remover goes in here?"); ChatMessage lastChatMessage = MineverseChat.lastChatMessage; MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer()); if(lastChatMessage != null && lastChatMessage.getHash() == hash) {