Second 1.19 patch.

Should be backwards compatible.
Message remover packet listener completely removed for 1.19.
This commit is contained in:
Aust1n46 2022-06-20 15:50:22 -05:00
parent 6e16505451
commit d913a10ea2
5 changed files with 45 additions and 22 deletions

View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>mineverse.Aust1n46.chat</groupId>
<artifactId>VentureChat</artifactId>
<version>3.3.2</version>
<version>3.4.1_1.19_patch</version>
<url>https://bitbucket.org/Aust1n46/venturechat/src/master</url>
<scm>
<url>https://bitbucket.org/Aust1n46/venturechat/src/master</url>
@ -154,7 +154,7 @@
<dependency>
<groupId>com.comphenix.protocol</groupId>
<artifactId>ProtocolLib</artifactId>
<version>4.6.0</version>
<version>5.0.0-SNAPSHOT</version>
</dependency>
<!--These are long depreciated. I would've removed them, but that is outside the scope of what I want to do here.
I am using the latest builds of these plugins to be published to SpigotMC.-->
@ -218,7 +218,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.13-R0.1-SNAPSHOT</version>
<version>1.19-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>

View File

@ -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() {

View File

@ -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);
@ -62,7 +57,6 @@ public class PacketListener extends PacketAdapter {
catch(Exception e) {
e.printStackTrace();
}
String message = Format.toPlainText(chat.getHandle(), chat.getHandleType());
String coloredMessage = Format.toColoredText(chat.getHandle(), chat.getHandleType());
if(message == null) {

View File

@ -429,17 +429,31 @@ public class Format {
}
public static PacketContainer createPacketPlayOutChat(String json) {
final PacketContainer container;
if (VersionHandler.isUnder_1_19()) {
WrappedChatComponent component = WrappedChatComponent.fromJson(json);
PacketContainer container = new PacketContainer(PacketType.Play.Server.CHAT);
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);
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;
}

View File

@ -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();
}
}