mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2025-02-20 05:32:26 +01:00
Add DebugHandler#logPrePacketTransform/setLogPacketTransform (#4386)
This commit is contained in:
parent
764861e29b
commit
a764cec4a9
@ -22,7 +22,6 @@
|
||||
*/
|
||||
package com.viaversion.viaversion.api.debug;
|
||||
|
||||
import com.google.common.annotations.Beta;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.protocol.packet.Direction;
|
||||
import com.viaversion.viaversion.api.protocol.packet.PacketType;
|
||||
@ -50,7 +49,6 @@ public interface DebugHandler {
|
||||
*
|
||||
* @param packetTypeName packet type name
|
||||
*/
|
||||
@Beta
|
||||
void addPacketTypeNameToLog(String packetTypeName);
|
||||
|
||||
/**
|
||||
@ -59,7 +57,6 @@ public interface DebugHandler {
|
||||
*
|
||||
* @param packetType packet type
|
||||
*/
|
||||
@Beta
|
||||
void addPacketTypeToLog(PacketType packetType);
|
||||
|
||||
/**
|
||||
@ -67,22 +64,44 @@ public interface DebugHandler {
|
||||
*
|
||||
* @param packetTypeName packet type name
|
||||
*/
|
||||
@Beta
|
||||
boolean removePacketTypeNameToLog(String packetTypeName);
|
||||
|
||||
/**
|
||||
* Resets packet type filters.
|
||||
*/
|
||||
@Beta
|
||||
void clearPacketTypesToLog();
|
||||
|
||||
/**
|
||||
* Sets whether packets should be logged before and after being transformed.
|
||||
*
|
||||
* @param logPacketTransform whether packets should be logged
|
||||
*/
|
||||
default void setLogPacketTransform(boolean logPacketTransform) {
|
||||
setLogPrePacketTransform(logPacketTransform);
|
||||
setLogPostPacketTransform(logPacketTransform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether packets should be logged before being transformed.
|
||||
* Set to true by default.
|
||||
*
|
||||
* @return whether packets should be logged before being transformed
|
||||
*/
|
||||
boolean logPrePacketTransform();
|
||||
|
||||
/**
|
||||
* Sets whether packets should be logged before being transformed.
|
||||
*
|
||||
* @param logPrePacketTransform whether packets should be logged before being transformed
|
||||
*/
|
||||
void setLogPrePacketTransform(boolean logPrePacketTransform);
|
||||
|
||||
/**
|
||||
* Returns whether packets should be logged after being transformed.
|
||||
* Set to false by default.
|
||||
*
|
||||
* @return whether packets should be logged after being transformed
|
||||
*/
|
||||
@Beta
|
||||
boolean logPostPacketTransform();
|
||||
|
||||
/**
|
||||
@ -90,7 +109,6 @@ public interface DebugHandler {
|
||||
*
|
||||
* @param logPostPacketTransform whether packets should be logged after being transformed
|
||||
*/
|
||||
@Beta
|
||||
void setLogPostPacketTransform(boolean logPostPacketTransform);
|
||||
|
||||
/**
|
||||
@ -103,7 +121,6 @@ public interface DebugHandler {
|
||||
*/
|
||||
boolean shouldLog(PacketWrapper wrapper, Direction direction);
|
||||
|
||||
@Beta
|
||||
default void enableAndLogIds(final PacketType... packetTypes) {
|
||||
setEnabled(true);
|
||||
for (final PacketType packetType : packetTypes) {
|
||||
|
@ -49,6 +49,10 @@ public class DebugSubCmd implements ViaSubCommand {
|
||||
debug.clearPacketTypesToLog();
|
||||
sendMessage(sender, "&6Cleared packet types to log");
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("logpretransform")) {
|
||||
debug.setLogPrePacketTransform(!debug.logPrePacketTransform());
|
||||
sendMessage(sender, "&6Pre transform packet logging is now %s", (debug.logPrePacketTransform() ? "&aenabled" : "&cdisabled"));
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("logposttransform")) {
|
||||
debug.setLogPostPacketTransform(!debug.logPostPacketTransform());
|
||||
sendMessage(sender, "&6Post transform packet logging is now %s", (debug.logPostPacketTransform() ? "&aenabled" : "&cdisabled"));
|
||||
|
@ -31,6 +31,7 @@ public final class DebugHandlerImpl implements DebugHandler {
|
||||
private final Set<String> packetTypesToLog = new HashSet<>();
|
||||
private final IntSet clientboundPacketIdsToLog = new IntOpenHashSet();
|
||||
private final IntSet serverboundPacketIdsToLog = new IntOpenHashSet();
|
||||
private boolean logPrePacketTransform = true;
|
||||
private boolean logPostPacketTransform;
|
||||
private boolean enabled;
|
||||
|
||||
@ -64,6 +65,16 @@ public final class DebugHandlerImpl implements DebugHandler {
|
||||
packetTypesToLog.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean logPrePacketTransform() {
|
||||
return logPrePacketTransform;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLogPrePacketTransform(final boolean logPrePacketTransform) {
|
||||
this.logPrePacketTransform = logPrePacketTransform;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean logPostPacketTransform() {
|
||||
return logPostPacketTransform;
|
||||
|
@ -114,8 +114,8 @@ public class ProtocolPipelineImpl extends AbstractSimpleProtocol implements Prot
|
||||
|
||||
DebugHandler debugHandler = Via.getManager().debugHandler();
|
||||
boolean debug = debugHandler.enabled();
|
||||
if (debug && !debugHandler.logPostPacketTransform() && debugHandler.shouldLog(packetWrapper, direction)) {
|
||||
logPacket(direction, state, packetWrapper, originalID);
|
||||
if (debug && debugHandler.logPrePacketTransform() && debugHandler.shouldLog(packetWrapper, direction)) {
|
||||
logPacket(direction, state, packetWrapper, originalID, false);
|
||||
}
|
||||
|
||||
// Apply protocols
|
||||
@ -123,7 +123,7 @@ public class ProtocolPipelineImpl extends AbstractSimpleProtocol implements Prot
|
||||
super.transform(direction, state, packetWrapper);
|
||||
|
||||
if (debug && debugHandler.logPostPacketTransform() && debugHandler.shouldLog(packetWrapper, direction)) {
|
||||
logPacket(direction, state, packetWrapper, originalID);
|
||||
logPacket(direction, state, packetWrapper, originalID, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,12 +131,13 @@ public class ProtocolPipelineImpl extends AbstractSimpleProtocol implements Prot
|
||||
return direction == Direction.SERVERBOUND ? protocolList : reversedProtocolList;
|
||||
}
|
||||
|
||||
private void logPacket(Direction direction, State state, PacketWrapper packetWrapper, int originalID) {
|
||||
private void logPacket(Direction direction, State state, PacketWrapper packetWrapper, int originalID, boolean post) {
|
||||
ProtocolInfo protocolInfo = userConnection.getProtocolInfo();
|
||||
String actualUsername = protocolInfo.getUsername();
|
||||
String username = actualUsername != null ? actualUsername + " " : "";
|
||||
Via.getPlatform().getLogger().log(Level.INFO, "{0}{1} {2}: {3} ({4}) -> {5} ({6}) [{7}] {8}",
|
||||
Via.getPlatform().getLogger().log(Level.INFO, "{0}: {1}{2} {3}: {4} ({5}) -> {6} ({7}) [{8}] {9}",
|
||||
new Object[]{
|
||||
post ? "Post" : "Pre",
|
||||
username,
|
||||
direction,
|
||||
state,
|
||||
|
@ -24,13 +24,11 @@ import com.viaversion.viaversion.util.ReflectionUtil;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class VelocityStorage implements StorableObject {
|
||||
private final Player player;
|
||||
private String currentServer;
|
||||
private List<UUID> cachedBossbar;
|
||||
private static Method getServerBossBars;
|
||||
private static Class<?> clientPlaySessionHandler;
|
||||
@ -50,7 +48,6 @@ public class VelocityStorage implements StorableObject {
|
||||
|
||||
public VelocityStorage(Player player) {
|
||||
this.player = player;
|
||||
this.currentServer = "";
|
||||
}
|
||||
|
||||
public List<UUID> getBossbar() {
|
||||
@ -71,38 +68,4 @@ public class VelocityStorage implements StorableObject {
|
||||
}
|
||||
return cachedBossbar;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public String getCurrentServer() {
|
||||
return currentServer;
|
||||
}
|
||||
|
||||
public void setCurrentServer(final String currentServer) {
|
||||
this.currentServer = currentServer;
|
||||
}
|
||||
|
||||
public List<UUID> getCachedBossbar() {
|
||||
return cachedBossbar;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
VelocityStorage that = (VelocityStorage) o;
|
||||
if (!Objects.equals(player, that.player)) return false;
|
||||
if (!Objects.equals(currentServer, that.currentServer)) return false;
|
||||
return Objects.equals(cachedBossbar, that.cachedBossbar);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = player != null ? player.hashCode() : 0;
|
||||
result = 31 * result + (currentServer != null ? currentServer.hashCode() : 0);
|
||||
result = 31 * result + (cachedBossbar != null ? cachedBossbar.hashCode() : 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user