diff --git a/pom.xml b/pom.xml index e565365..536166a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 mineverse.Aust1n46.chat VentureChat - 3.3.2 + 3.4.1_1.19_patch https://bitbucket.org/Aust1n46/venturechat/src/master https://bitbucket.org/Aust1n46/venturechat/src/master @@ -154,7 +154,7 @@ com.comphenix.protocol ProtocolLib - 4.6.0 + 5.0.0-SNAPSHOT @@ -218,7 +218,7 @@ org.spigotmc spigot-api - 1.13-R0.1-SNAPSHOT + 1.19-R0.1-SNAPSHOT provided diff --git a/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java b/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java index f2b366e..a0b693e 100644 --- a/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/main/java/mineverse/Aust1n46/chat/MineverseChat.java @@ -42,11 +42,12 @@ import mineverse.Aust1n46.chat.json.JsonFormat; import mineverse.Aust1n46.chat.listeners.ChatListener; import mineverse.Aust1n46.chat.listeners.CommandListener; import mineverse.Aust1n46.chat.listeners.LoginListener; -import mineverse.Aust1n46.chat.listeners.PacketListener; +import mineverse.Aust1n46.chat.listeners.PacketListenerLegacyChat; import mineverse.Aust1n46.chat.listeners.SignListener; import mineverse.Aust1n46.chat.localization.Localization; import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.utilities.Format; +import mineverse.Aust1n46.chat.versions.VersionHandler; import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.permission.Permission; @@ -217,7 +218,9 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { pluginManager.registerEvents(new SignListener(), this); pluginManager.registerEvents(new CommandListener(), this); pluginManager.registerEvents(new LoginListener(), this); - ProtocolLibrary.getProtocolManager().addPacketListener(new PacketListener()); + if (VersionHandler.isUnder_1_19()) { + ProtocolLibrary.getProtocolManager().addPacketListener(new PacketListenerLegacyChat()); + } } private boolean setupPermissions() { diff --git a/src/main/java/mineverse/Aust1n46/chat/listeners/PacketListener.java b/src/main/java/mineverse/Aust1n46/chat/listeners/PacketListenerLegacyChat.java similarity index 84% rename from src/main/java/mineverse/Aust1n46/chat/listeners/PacketListener.java rename to src/main/java/mineverse/Aust1n46/chat/listeners/PacketListenerLegacyChat.java index 9a227c6..ec0dab9 100644 --- a/src/main/java/mineverse/Aust1n46/chat/listeners/PacketListener.java +++ b/src/main/java/mineverse/Aust1n46/chat/listeners/PacketListenerLegacyChat.java @@ -14,20 +14,16 @@ import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.WrappedChatComponent; -//This class listens for chat packets and intercepts them before they are sent to the Player. -//The packets are modified to include advanced json formating and the message remover button if the -//player has permission to remove messages. -public class PacketListener extends PacketAdapter { - public PacketListener() { +public class PacketListenerLegacyChat extends PacketAdapter { + public PacketListenerLegacyChat() { super(MineverseChat.getInstance(), ListenerPriority.MONITOR, new PacketType[] { PacketType.Play.Server.CHAT }); } @Override public void onPacketSending(PacketEvent event) { - if(event.isCancelled() || event.getPacketType() != PacketType.Play.Server.CHAT) { + if(event.isCancelled()) { return; } - MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); if(mcp == null) { return; @@ -38,7 +34,6 @@ public class PacketListener extends PacketAdapter { if(chat == null) { return; } - try { if(VersionHandler.is1_7()) { packet.getBooleans().getField(0).setAccessible(true); @@ -57,12 +52,11 @@ public class PacketListener extends PacketAdapter { if(packet.getChatTypes().getField(0).get(packet.getHandle()) == packet.getChatTypes().getField(0).getType().getEnumConstants()[2]) { return; } - } + } } catch(Exception e) { e.printStackTrace(); } - String message = Format.toPlainText(chat.getHandle(), chat.getHandleType()); String coloredMessage = Format.toColoredText(chat.getHandle(), chat.getHandleType()); if(message == null) { diff --git a/src/main/java/mineverse/Aust1n46/chat/utilities/Format.java b/src/main/java/mineverse/Aust1n46/chat/utilities/Format.java index 9e0de0c..099bbda 100644 --- a/src/main/java/mineverse/Aust1n46/chat/utilities/Format.java +++ b/src/main/java/mineverse/Aust1n46/chat/utilities/Format.java @@ -429,17 +429,31 @@ public class Format { } public static PacketContainer createPacketPlayOutChat(String json) { - WrappedChatComponent component = WrappedChatComponent.fromJson(json); - PacketContainer container = new PacketContainer(PacketType.Play.Server.CHAT); - container.getModifier().writeDefaults(); - container.getChatComponents().write(0, component); + final PacketContainer container; + if (VersionHandler.isUnder_1_19()) { + WrappedChatComponent component = WrappedChatComponent.fromJson(json); + container = new PacketContainer(PacketType.Play.Server.CHAT); + container.getModifier().writeDefaults(); + container.getChatComponents().write(0, component); + } else { + container = new PacketContainer(PacketType.Play.Server.SYSTEM_CHAT); + container.getStrings().write(0, json); + container.getIntegers().write(0, 1); + } return container; } public static PacketContainer createPacketPlayOutChat(WrappedChatComponent component) { - PacketContainer container = new PacketContainer(PacketType.Play.Server.CHAT); - container.getModifier().writeDefaults(); - container.getChatComponents().write(0, component); + final PacketContainer container; + if (VersionHandler.isUnder_1_19()) { + container = new PacketContainer(PacketType.Play.Server.CHAT); + container.getModifier().writeDefaults(); + container.getChatComponents().write(0, component); + } else { + container = new PacketContainer(PacketType.Play.Server.SYSTEM_CHAT); + container.getStrings().write(0, component.getJson()); + container.getIntegers().write(0, 1); + } return container; } diff --git a/src/main/java/mineverse/Aust1n46/chat/versions/VersionHandler.java b/src/main/java/mineverse/Aust1n46/chat/versions/VersionHandler.java index 38fdee8..53a2a74 100644 --- a/src/main/java/mineverse/Aust1n46/chat/versions/VersionHandler.java +++ b/src/main/java/mineverse/Aust1n46/chat/versions/VersionHandler.java @@ -52,4 +52,16 @@ public class VersionHandler { public static boolean is1_17() { return Bukkit.getVersion().contains("1.17"); } + + public static boolean is1_18() { + return Bukkit.getVersion().contains("1.18"); + } + + public static boolean is1_19() { + return Bukkit.getVersion().contains("1.19"); + } + + public static boolean isUnder_1_19() { + return is1_7() || is1_8() || is1_9() || is1_10() || is1_11() || is1_12() || is1_13() || is1_14() || is1_15() || is1_16() || is1_17() || is1_18(); + } }