#PacketEvents packet data interception and modify
1 messages · Page 1 of 1 (latest)
Can you give an example? This class, which is loosely based on their examples, does not work, the players still get normal chat messages (at first I'd assume that a message wouldn't appear because of signatures and etc, but it doesn't work for system messages either)```java
public class PacketEventsPacketListener extends PacketListenerAbstract {
public PacketEventsPacketListener() {
super(PacketListenerPriority.HIGHEST);
}
@Override
public void onPacketSend(PacketSendEvent event) {
User user = event.getUser();
switch (event.getPacketType()) {
case PacketType.Play.Server.CHAT_MESSAGE -> {
WrapperPlayServerChatMessage packet = new WrapperPlayServerChatMessage(event);
((ChatMessage_v1_19_3 )packet.getMessage()).setPlainContent("intercepted chat message!");
Bukkit.getLogger().info(user.getName() + " received message: " + packet.getMessage().getChatContent().toString());
}
case PacketType.Play.Server.DISGUISED_CHAT -> {
WrapperPlayServerDisguisedChat packet = new WrapperPlayServerDisguisedChat(event);
packet.setMessage(Component.text("intercepted disguised chat!"));
Bukkit.getLogger().info(user.getName() + " received disguised message: " + packet.getMessage().toString());
}
case PacketType.Play.Server.SYSTEM_CHAT_MESSAGE -> {
WrapperPlayServerSystemChatMessage packet = new WrapperPlayServerSystemChatMessage(event);
packet.setMessage(Component.text("intercepted system chat message!"));
Bukkit.getLogger().info(user.getName() + " received system message: " + packet.getMessage().toString());
}
default -> {}
}
}
}```
Well you don't cancel it
Right?
event.setCancelled(true);
And it won't be sent
Ah
Wait
I see
event.reEncode
Or something like that
markForReEncode
I'll try in a few minutes