diff --git a/pom.xml b/pom.xml
index e3ef58db07..a860e4b6d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
${java.version}
net.server.Server
- 2.16.0
+ 2.17.0
21.1.0
4.1.67.Final
5.7.2
@@ -139,6 +139,7 @@
+ org.apache.maven.plugins
maven-surefire-plugin
3.0.0-M5
diff --git a/src/main/java/client/Client.java b/src/main/java/client/Client.java
index 00471ca0a6..b8c8b50928 100644
--- a/src/main/java/client/Client.java
+++ b/src/main/java/client/Client.java
@@ -34,7 +34,7 @@ import net.netty.InvalidPacketHeaderException;
import net.packet.InPacket;
import net.packet.Packet;
import net.packet.logging.LoggingUtil;
-import net.packet.logging.MapleLogger;
+import net.packet.logging.MonitoredChrLogger;
import net.server.Server;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
@@ -200,7 +200,7 @@ public class Client extends ChannelInboundHandlerAdapter {
if (handler != null && handler.validateState(this)) {
try {
- MapleLogger.logRecv(this, opcode, packet.getBytes());
+ MonitoredChrLogger.logPacketIfMonitored(this, opcode, packet.getBytes());
handler.handlePacket(packet, this);
} catch (final Throwable t) {
FilePrinter.printError(FilePrinter.PACKET_HANDLER + handler.getClass().getName() + ".txt", t, "Error for " + (getPlayer() == null ? "" : "player ; " + getPlayer() + " on map ; " + getPlayer().getMapId() + " - ") + "account ; " + getAccountName() + "\r\n" + packet);
diff --git a/src/main/java/client/autoban/AutobanFactory.java b/src/main/java/client/autoban/AutobanFactory.java
index 8dd670725b..2033e1d427 100644
--- a/src/main/java/client/autoban/AutobanFactory.java
+++ b/src/main/java/client/autoban/AutobanFactory.java
@@ -24,7 +24,7 @@ package client.autoban;
import client.Character;
import config.YamlConfig;
-import net.packet.logging.MapleLogger;
+import net.packet.logging.MonitoredChrLogger;
import net.server.Server;
import tools.FilePrinter;
import tools.PacketCreator;
@@ -87,7 +87,7 @@ public enum AutobanFactory {
public void alert(Character chr, String reason) {
if (YamlConfig.config.server.USE_AUTOBAN) {
- if (chr != null && MapleLogger.ignored.contains(chr.getId())) {
+ if (chr != null && MonitoredChrLogger.ignored.contains(chr.getId())) {
return;
}
Server.getInstance().broadcastGMMessage((chr != null ? chr.getWorld() : 0), PacketCreator.sendYellowTip((chr != null ? Character.makeMapleReadable(chr.getName()) : "") + " caused " + this.name() + " " + reason));
diff --git a/src/main/java/client/command/commands/gm3/IgnoreCommand.java b/src/main/java/client/command/commands/gm3/IgnoreCommand.java
index ccd141a04a..1c9b338d3f 100644
--- a/src/main/java/client/command/commands/gm3/IgnoreCommand.java
+++ b/src/main/java/client/command/commands/gm3/IgnoreCommand.java
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character;
import client.Client;
import client.command.Command;
-import net.packet.logging.MapleLogger;
+import net.packet.logging.MonitoredChrLogger;
import net.server.Server;
import tools.PacketCreator;
@@ -47,11 +47,11 @@ public class IgnoreCommand extends Command {
player.message("Player '" + params[0] + "' could not be found on this world.");
return;
}
- boolean monitored_ = MapleLogger.ignored.contains(victim.getId());
+ boolean monitored_ = MonitoredChrLogger.ignored.contains(victim.getId());
if (monitored_) {
- MapleLogger.ignored.remove(victim.getId());
+ MonitoredChrLogger.ignored.remove(victim.getId());
} else {
- MapleLogger.ignored.add(victim.getId());
+ MonitoredChrLogger.ignored.add(victim.getId());
}
player.yellowMessage(victim.getName() + " is " + (!monitored_ ? "now being ignored." : "no longer being ignored."));
String message_ = player.getName() + (!monitored_ ? " has started ignoring " : " has stopped ignoring ") + victim.getName() + ".";
diff --git a/src/main/java/client/command/commands/gm3/IgnoredCommand.java b/src/main/java/client/command/commands/gm3/IgnoredCommand.java
index a3849c78df..80dcfa3b90 100644
--- a/src/main/java/client/command/commands/gm3/IgnoredCommand.java
+++ b/src/main/java/client/command/commands/gm3/IgnoredCommand.java
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character;
import client.Client;
import client.command.Command;
-import net.packet.logging.MapleLogger;
+import net.packet.logging.MonitoredChrLogger;
public class IgnoredCommand extends Command {
{
@@ -36,7 +36,7 @@ public class IgnoredCommand extends Command {
@Override
public void execute(Client c, String[] params) {
Character player = c.getPlayer();
- for (Integer cid : MapleLogger.ignored) {
+ for (Integer cid : MonitoredChrLogger.ignored) {
player.yellowMessage(Character.getNameById(cid) + " is being ignored.");
}
}
diff --git a/src/main/java/client/command/commands/gm3/MonitorCommand.java b/src/main/java/client/command/commands/gm3/MonitorCommand.java
index fd026d7894..a641f53bc8 100644
--- a/src/main/java/client/command/commands/gm3/MonitorCommand.java
+++ b/src/main/java/client/command/commands/gm3/MonitorCommand.java
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character;
import client.Client;
import client.command.Command;
-import net.packet.logging.MapleLogger;
+import net.packet.logging.MonitoredChrLogger;
import net.server.Server;
import tools.PacketCreator;
@@ -47,11 +47,11 @@ public class MonitorCommand extends Command {
player.message("Player '" + params[0] + "' could not be found on this world.");
return;
}
- boolean monitored = MapleLogger.monitored.contains(victim.getId());
+ boolean monitored = MonitoredChrLogger.monitored.contains(victim.getId());
if (monitored) {
- MapleLogger.monitored.remove(victim.getId());
+ MonitoredChrLogger.monitored.remove(victim.getId());
} else {
- MapleLogger.monitored.add(victim.getId());
+ MonitoredChrLogger.monitored.add(victim.getId());
}
player.yellowMessage(victim.getId() + " is " + (!monitored ? "now being monitored." : "no longer being monitored."));
String message = player.getName() + (!monitored ? " has started monitoring " : " has stopped monitoring ") + victim.getId() + ".";
diff --git a/src/main/java/client/command/commands/gm3/MonitorsCommand.java b/src/main/java/client/command/commands/gm3/MonitorsCommand.java
index da604fb0ae..de18a281c7 100644
--- a/src/main/java/client/command/commands/gm3/MonitorsCommand.java
+++ b/src/main/java/client/command/commands/gm3/MonitorsCommand.java
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.Character;
import client.Client;
import client.command.Command;
-import net.packet.logging.MapleLogger;
+import net.packet.logging.MonitoredChrLogger;
public class MonitorsCommand extends Command {
{
@@ -36,7 +36,7 @@ public class MonitorsCommand extends Command {
@Override
public void execute(Client c, String[] params) {
Character player = c.getPlayer();
- for (Integer cid : MapleLogger.monitored) {
+ for (Integer cid : MonitoredChrLogger.monitored) {
player.yellowMessage(Character.getNameById(cid) + " is being monitored.");
}
}
diff --git a/src/main/java/net/packet/logging/LoggingUtil.java b/src/main/java/net/packet/logging/LoggingUtil.java
index 29af8bfc34..642da2bc16 100644
--- a/src/main/java/net/packet/logging/LoggingUtil.java
+++ b/src/main/java/net/packet/logging/LoggingUtil.java
@@ -1,11 +1,20 @@
package net.packet.logging;
import io.netty.buffer.Unpooled;
+import net.opcodes.RecvOpcode;
import java.util.Set;
public class LoggingUtil {
- private static final Set ignoredDebugRecvPackets = Set.of((short) 167, (short) 197, (short) 89, (short) 91, (short) 41, (short) 188, (short) 107);
+ private static final Set ignoredDebugRecvPackets = Set.of(
+ (short) RecvOpcode.MOVE_PLAYER.getValue(), // 41
+ (short) RecvOpcode.HEAL_OVER_TIME.getValue(), // 89
+ (short) RecvOpcode.SPECIAL_MOVE.getValue(), // 91
+ (short) RecvOpcode.QUEST_ACTION.getValue(), // 107
+ (short) RecvOpcode.MOVE_PET.getValue(), // 167
+ (short) RecvOpcode.MOVE_LIFE.getValue(), // 188
+ (short) RecvOpcode.NPC_ACTION.getValue() // 197
+ );
public static short readFirstShort(byte[] bytes) {
return Unpooled.wrappedBuffer(bytes).readShortLE();
diff --git a/src/main/java/net/packet/logging/MapleLogger.java b/src/main/java/net/packet/logging/MonitoredChrLogger.java
similarity index 80%
rename from src/main/java/net/packet/logging/MapleLogger.java
rename to src/main/java/net/packet/logging/MonitoredChrLogger.java
index e827740859..52e8e02ca2 100644
--- a/src/main/java/net/packet/logging/MapleLogger.java
+++ b/src/main/java/net/packet/logging/MonitoredChrLogger.java
@@ -23,7 +23,8 @@ package net.packet.logging;
import client.Character;
import client.Client;
import net.opcodes.RecvOpcode;
-import tools.FilePrinter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import tools.HexTool;
import java.util.Arrays;
@@ -31,16 +32,17 @@ import java.util.HashSet;
import java.util.Set;
/**
- * Logs packets to console and file.
+ * Logs packets from monitored characters to a file.
*
* @author Alan (SharpAceX)
*/
-public class MapleLogger {
+public class MonitoredChrLogger {
+ private static final Logger log = LoggerFactory.getLogger(MonitoredChrLogger.class);
public static final Set monitored = new HashSet<>();
public static final Set ignored = new HashSet<>();
- public static void logRecv(Client c, short packetId, byte[] packetContent) {
+ public static void logPacketIfMonitored(Client c, short packetId, byte[] packetContent) {
Character chr = c.getPlayer();
if (chr == null) {
return;
@@ -52,8 +54,9 @@ public class MapleLogger {
if (isRecvBlocked(op)) {
return;
}
- String packet = op + "\r\n" + HexTool.toString(packetContent);
- FilePrinter.printError(FilePrinter.PACKET_LOGS + c.getAccountName() + "-" + chr.getName() + ".txt", packet);
+
+ String packet = packetContent.length > 0 ? HexTool.toString(packetContent) : "";
+ log.info("{}-{} {}-{}", c.getAccountName(), chr.getName(), packetId, packet);
}
private static boolean isRecvBlocked(RecvOpcode op) {
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 3b0f9d5966..d9120f9450 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -5,6 +5,7 @@
%d{HH:mm:ss.SSS} [%t] %-5level %logger{2} - %msg%n
%d{HH:mm:ss.SSS} %-15logger{1} - %msg%n
+
@@ -29,7 +30,14 @@
${packet-pattern}
+
+
+
+ ${standard-pattern}
+
+
+
@@ -40,6 +48,10 @@
+
+
+
+