packet logging with field info
This commit is contained in:
parent
38fa6b52de
commit
21eca17e31
|
@ -29,7 +29,13 @@ public class MCPHTConfig implements ConfigData {
|
|||
}
|
||||
|
||||
private Pattern compileFilter() {
|
||||
return Pattern.compile(this.networkLogging.regex);
|
||||
try {
|
||||
return Pattern.compile(this.networkLogging.regex);
|
||||
}
|
||||
catch (Exception e) {
|
||||
MCPHTClient.LOGGER.warn(String.format("Invalid regex: %s", this.networkLogging.regex));
|
||||
return Pattern.compile(".*"); // just accept all on error
|
||||
}
|
||||
}
|
||||
|
||||
public void logSettings() {
|
||||
|
|
|
@ -3,6 +3,7 @@ package de.cscherr.mcpht.mixin.client;
|
|||
import de.cscherr.mcpht.MCPHTClient;
|
||||
import de.cscherr.mcpht.config.MCPHTConfig;
|
||||
import net.minecraft.network.ClientConnection;
|
||||
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
|
||||
import org.slf4j.Logger;
|
||||
import net.minecraft.network.PacketCallbacks;
|
||||
import net.minecraft.network.listener.PacketListener;
|
||||
|
@ -21,6 +22,36 @@ public class NetworkPacketLogMixin {
|
|||
private static boolean filterPacket(Packet<?> packet) {
|
||||
return MCPHTClient.networkPacketFilter.matcher(packet.getClass().getSimpleName()).find();
|
||||
}
|
||||
private static String getPacketInfo(Packet<?> packet) {
|
||||
String information = null;
|
||||
switch (MCPHTClient.CONFIG.networkLogging.verbosity) {
|
||||
case NAME -> {
|
||||
information = packet.getClass().getSimpleName();
|
||||
break;
|
||||
}
|
||||
case ALL -> {
|
||||
information = String.format("%s:\n%s", packet.getClass().getSimpleName(), getPacketFields(packet));
|
||||
break;
|
||||
}
|
||||
default ->
|
||||
throw new IllegalStateException("Unexpected value: " + MCPHTClient.CONFIG.networkLogging.verbosity);
|
||||
}
|
||||
return information;
|
||||
}
|
||||
private static String getPacketFields(Packet<?> packet) {
|
||||
String fieldInfo = "";
|
||||
switch (packet.getClass().getSimpleName()) {
|
||||
case "PositionAndOnGround" -> {
|
||||
PlayerMoveC2SPacket ppacket = (PlayerMoveC2SPacket)packet;
|
||||
fieldInfo = String.format("X: %f | Y: %f | Z: %f\n" +
|
||||
"Ground: %b", ppacket.getX(0), ppacket.getY(0), ppacket.getZ(0), ppacket.isOnGround());
|
||||
}
|
||||
default -> {
|
||||
fieldInfo = "<None>";
|
||||
}
|
||||
}
|
||||
return fieldInfo;
|
||||
}
|
||||
|
||||
@Unique
|
||||
private static final Logger LOGGER = MCPHTClient.LOGGER;
|
||||
|
@ -35,18 +66,7 @@ public class NetworkPacketLogMixin {
|
|||
@Inject(method = "sendImmediately", at = @At("HEAD"))
|
||||
public void logTXPacket(Packet<?> packet, @Nullable PacketCallbacks callbacks, CallbackInfo ci) {
|
||||
if (MCPHTClient.CONFIG.networkLogging.TX && filterPacket(packet)) {
|
||||
String information = null;
|
||||
switch (MCPHTClient.CONFIG.networkLogging.verbosity) {
|
||||
case NAME -> {
|
||||
information = packet.getClass().getSimpleName();
|
||||
break;
|
||||
}
|
||||
case ALL -> {
|
||||
information = String.format("%s:\n" + " %s\n", packet.getClass().getSimpleName(), packet.toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
LOGGER.info(String.format("TX Package: %s", information));
|
||||
LOGGER.info(String.format("TX Package: %s", getPacketInfo(packet)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,18 +81,7 @@ public class NetworkPacketLogMixin {
|
|||
@Inject(method = "handlePacket", at = @At("HEAD"))
|
||||
private static void logRXPacket(Packet<?> packet, PacketListener listener, CallbackInfo ci) {
|
||||
if (MCPHTClient.CONFIG.networkLogging.RX && filterPacket(packet)) {
|
||||
String information = null;
|
||||
switch (MCPHTClient.CONFIG.networkLogging.verbosity) {
|
||||
case NAME -> {
|
||||
information = packet.getClass().getSimpleName();
|
||||
break;
|
||||
}
|
||||
case ALL -> {
|
||||
information = String.format("%s:\n" + " %s\n", packet.getClass().getSimpleName(), packet.toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
LOGGER.info(String.format("RX Package: %s", information));
|
||||
LOGGER.info(String.format("RX Package: %s", getPacketInfo(packet)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue