From 7134b606d881dc376139cfe88f0e71b128057d2d Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Wed, 15 Apr 2020 06:20:27 -0400 Subject: [PATCH] Add ActionBar message type check back --- .../chat/command/chat/Venturechat.java | 20 +++++++++++ .../chat/listeners/PacketListener.java | 33 ++++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java index b8fda37..2d26763 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java @@ -7,9 +7,12 @@ import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; +//import net.minecraft.server.v1_15_R1.IChatBaseComponent; +//import net.minecraft.server.v1_15_R1.PacketPlayOutChat; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; +//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.Player; public class Venturechat extends MineverseCommand { @@ -35,6 +38,23 @@ public class Venturechat extends MineverseCommand { message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/rules 1")); tcSpaces.addExtra(message); player.spigot().sendMessage(tcSpaces); + + //sendActionBar(player, "NMS message"); } } + +// public static void sendActionBar(Player player, String message) { +// message= message.replaceAll("%player%", player.getDisplayName()); +// message = ChatColor.translateAlternateColorCodes('&', message); +// CraftPlayer p = (CraftPlayer) player; +// IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); +// PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc); +// try { +// MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]); +// } +// catch (Exception e) { +// e.printStackTrace(); +// } +// p.getHandle().playerConnection.sendPacket(ppoc); +// } } \ No newline at end of file diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java index d90d432..a592da0 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java @@ -5,10 +5,12 @@ import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.utilities.Format; +import mineverse.Aust1n46.chat.versions.VersionHandler; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.events.ListenerPriority; import com.comphenix.protocol.events.PacketAdapter; +import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedChatComponent; @@ -25,14 +27,43 @@ public class PacketListener extends PacketAdapter { if(event.isCancelled() || event.getPacketType() != PacketType.Play.Server.CHAT) { return; } + MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer()); if(mcp == null) { return; } - WrappedChatComponent chat = event.getPacket().getChatComponents().read(0); + + PacketContainer packet = event.getPacket(); + WrappedChatComponent chat = packet.getChatComponents().read(0); if(chat == null) { return; } + + if(MineverseChat.posField == null) { + return; + } + + try { + if(VersionHandler.is1_7_2() || VersionHandler.is1_7_10() || VersionHandler.is1_7_9()) { + if(!(((boolean) MineverseChat.posField.get(packet.getHandle())))) { + return; + } + } + else if(VersionHandler.is1_8() || VersionHandler.is1_9() || VersionHandler.is1_10() || VersionHandler.is1_11()){ + if(((Byte) MineverseChat.posField.get(packet.getHandle())).intValue() > 1) { + return; + } + } + else { + if(((Object) MineverseChat.posField.get(packet.getHandle())) == MineverseChat.chatMessageType.getEnumConstants()[2]) { + return; + } + } + } + catch(Exception e) { + e.printStackTrace(); + } + String message = Format.toPlainText(chat.getHandle(), chat.getHandleType()); if(message == null) { return;