From 2bbfd46105d6d4a718e15fa94866962a42843569 Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 10 Feb 2022 21:31:33 +0100 Subject: [PATCH] Stop logging with System.out.println, start using slf4j --- src/main/java/client/Character.java | 45 ++++++++++--------- .../java/client/command/CommandsExecutor.java | 2 +- src/main/java/client/inventory/Equip.java | 8 +++- src/main/java/client/inventory/Item.java | 12 ++--- src/main/java/net/PacketProcessor.java | 9 ++-- src/main/java/net/server/Server.java | 18 ++++---- src/main/java/net/server/channel/Channel.java | 43 ++++++++---------- .../AbstractMovementPacketHandler.java | 7 ++- .../channel/handlers/AdminCommandHandler.java | 11 +++-- .../channel/handlers/BBSOperationHandler.java | 10 +++-- .../handlers/CashOperationHandler.java | 2 +- .../handlers/GuildOperationHandler.java | 24 +++++----- .../server/channel/handlers/MTSHandler.java | 10 +++-- .../channel/handlers/MoveLifeHandler.java | 9 +++- .../handlers/PlayerInteractionHandler.java | 2 +- .../channel/handlers/RangedAttackHandler.java | 7 ++- .../channel/handlers/RingActionHandler.java | 9 ++-- .../channel/handlers/SkillEffectHandler.java | 8 +++- .../channel/handlers/UseCashItemHandler.java | 7 ++- .../channel/handlers/WeddingHandler.java | 7 ++- .../session/SessionCoordinator.java | 17 ++++--- src/main/java/net/server/guild/Guild.java | 17 ++++--- src/main/java/net/server/world/World.java | 11 +++-- .../scripting/event/EventScriptManager.java | 7 ++- src/main/java/server/Shop.java | 6 ++- .../server/SkillbookInformationProvider.java | 6 ++- src/main/java/server/Trade.java | 2 +- src/main/java/server/life/LifeFactory.java | 15 +++---- src/main/java/server/life/MobSkill.java | 5 ++- src/main/java/server/life/Monster.java | 7 ++- .../life/MonsterInformationProvider.java | 8 ++-- src/main/java/server/life/PlayerNPC.java | 5 ++- .../life/positioner/PlayerNPCPodium.java | 6 ++- .../life/positioner/PlayerNPCPositioner.java | 5 ++- src/main/java/server/quest/Quest.java | 5 ++- src/main/java/tools/packets/Fishing.java | 9 ++-- .../java/tools/packets/WeddingPackets.java | 6 ++- 37 files changed, 227 insertions(+), 160 deletions(-) diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index adeab8dad7..969521e37d 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -97,6 +97,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.regex.Pattern; +import java.util.stream.Collectors; import static java.util.concurrent.TimeUnit.*; @@ -3587,26 +3588,25 @@ public class Character extends AbstractCharacterObject { effLock.lock(); chrLock.lock(); try { - System.out.println("-------------------"); - System.out.println("CACHED BUFF COUNT: "); - for (Entry bpl : buffEffectsCount.entrySet()) { - System.out.println(bpl.getKey() + ": " + bpl.getValue()); - } - System.out.println("-------------------"); - System.out.println("CACHED BUFFS: "); - for (Entry> bpl : buffEffects.entrySet()) { - System.out.print(bpl.getKey() + ": "); - for (Entry pble : bpl.getValue().entrySet()) { - System.out.print(pble.getKey().name() + pble.getValue().value + ", "); - } - System.out.println(); - } - System.out.println("-------------------"); + log.debug("-------------------"); + log.debug("CACHED BUFF COUNT: {}", buffEffectsCount.entrySet().stream() + .map(entry -> entry.getKey() + ": " + entry.getValue()) + .collect(Collectors.joining(", ")) + ); - System.out.println("IN ACTION:"); - for (Entry bpl : effects.entrySet()) { - System.out.println(bpl.getKey().name() + " -> " + ItemInformationProvider.getInstance().getName(bpl.getValue().effect.getSourceId())); - } + log.debug("-------------------"); + log.debug("CACHED BUFFS: {}", buffEffects.entrySet().stream() + .map(entry -> entry.getKey() + ": (" + entry.getValue().entrySet().stream() + .map(innerEntry -> innerEntry.getKey().name() + innerEntry.getValue().value) + .collect(Collectors.joining(", ")) + ")") + .collect(Collectors.joining(", ")) + ); + + log.debug("-------------------"); + log.debug("IN ACTION: {}", effects.entrySet().stream() + .map(entry -> entry.getKey().name() + " -> " + ItemInformationProvider.getInstance().getName(entry.getValue().effect.getSourceId())) + .collect(Collectors.joining(", ")) + ); } finally { chrLock.unlock(); effLock.unlock(); @@ -3617,9 +3617,10 @@ public class Character extends AbstractCharacterObject { effLock.lock(); chrLock.lock(); try { - for (Entry mbsl : buffEffectsCount.entrySet()) { - System.out.println(mbsl.getKey().name() + " -> " + mbsl.getValue()); - } + log.debug("ALL BUFFS COUNT: {}", buffEffectsCount.entrySet().stream() + .map(entry -> entry.getKey().name() + " -> " + entry.getValue()) + .collect(Collectors.joining(", ")) + ); } finally { chrLock.unlock(); effLock.unlock(); diff --git a/src/main/java/client/command/CommandsExecutor.java b/src/main/java/client/command/CommandsExecutor.java index 91feda485e..9287dbfbeb 100644 --- a/src/main/java/client/command/CommandsExecutor.java +++ b/src/main/java/client/command/CommandsExecutor.java @@ -153,7 +153,7 @@ public class CommandsExecutor { private void addCommand(String syntax, int rank, Class commandClass) { if (registeredCommands.containsKey(syntax.toLowerCase())) { - System.out.println("Error on register command with name: " + syntax + ". Already exists."); + log.warn("Error on register command with name: {}. Already exists.", syntax); return; } diff --git a/src/main/java/client/inventory/Equip.java b/src/main/java/client/inventory/Equip.java index bbcd47ccb3..58caa3277a 100644 --- a/src/main/java/client/inventory/Equip.java +++ b/src/main/java/client/inventory/Equip.java @@ -25,6 +25,8 @@ import client.Client; import config.YamlConfig; import constants.game.ExpTable; import constants.inventory.ItemConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.ItemInformationProvider; import tools.PacketCreator; import tools.Pair; @@ -36,6 +38,7 @@ import java.util.List; import java.util.Map; public class Equip extends Item { + private static final Logger log = LoggerFactory.getLogger(Equip.class); public enum ScrollResult { @@ -110,7 +113,7 @@ public class Equip extends Item { ret.itemLevel = itemLevel; ret.itemExp = itemExp; ret.level = level; - ret.log = new LinkedList<>(log); + ret.itemLog = new LinkedList<>(itemLog); ret.setOwner(getOwner()); ret.setQuantity(getQuantity()); ret.setExpiration(getExpiration()); @@ -647,7 +650,8 @@ public class Equip extends Item { int expNeeded = ExpTable.getEquipExpNeededForLevel(itemLevel); if (YamlConfig.config.server.USE_DEBUG_SHOW_INFO_EQPEXP) { - System.out.println("'" + ii.getName(this.getItemId()) + "' -> EXP Gain: " + gain + " Mastery: " + masteryModifier + " Base gain: " + baseExpGain + " exp: " + itemExp + " / " + expNeeded + ", Kills TNL: " + expNeeded / (baseExpGain / c.getPlayer().getExpRate())); + log.debug("{} -> EXP Gain: {}, Mastery: {}, Base gain: {}, exp: {} / {}, Kills TNL: {}", ii.getName(getItemId()), + gain, masteryModifier, baseExpGain, itemExp, expNeeded, expNeeded / (baseExpGain / c.getPlayer().getExpRate())); } if (itemExp >= expNeeded) { diff --git a/src/main/java/client/inventory/Item.java b/src/main/java/client/inventory/Item.java index 6fc41b63bc..5adabe31d1 100644 --- a/src/main/java/client/inventory/Item.java +++ b/src/main/java/client/inventory/Item.java @@ -42,7 +42,7 @@ public class Item implements Comparable { private int petid = -1; private Pet pet = null; private String owner = ""; - protected List log; + protected List itemLog; private short flag; private long expiration = -1; private String giftFrom = ""; @@ -51,7 +51,7 @@ public class Item implements Comparable { this.id = id; this.position = position; this.quantity = quantity; - this.log = new LinkedList<>(); + this.itemLog = new LinkedList<>(); this.flag = 0; } @@ -67,7 +67,7 @@ public class Item implements Comparable { } this.petid = petid; this.flag = 0; - this.log = new LinkedList<>(); + this.itemLog = new LinkedList<>(); } public Item copy() { @@ -75,7 +75,7 @@ public class Item implements Comparable { ret.flag = flag; ret.owner = owner; ret.expiration = expiration; - ret.log = new LinkedList<>(log); + ret.itemLog = new LinkedList<>(itemLog); return ret; } @@ -147,8 +147,8 @@ public class Item implements Comparable { return "Item: " + id + " quantity: " + quantity; } - public List getLog() { - return Collections.unmodifiableList(log); + public List getItemLog() { + return Collections.unmodifiableList(itemLog); } public short getFlag() { diff --git a/src/main/java/net/PacketProcessor.java b/src/main/java/net/PacketProcessor.java index 498332b0ab..4c5e2615cc 100644 --- a/src/main/java/net/PacketProcessor.java +++ b/src/main/java/net/PacketProcessor.java @@ -28,13 +28,15 @@ import net.server.handlers.CustomPacketHandler; import net.server.handlers.KeepAliveHandler; import net.server.handlers.LoginRequiringNoOpHandler; import net.server.handlers.login.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.LinkedHashMap; import java.util.Map; public final class PacketProcessor { - - private final static Map instances = new LinkedHashMap<>(); + private static final Logger log = LoggerFactory.getLogger(PacketProcessor.class); + private static final Map instances = new LinkedHashMap<>(); private PacketHandler[] handlers; private PacketProcessor() { @@ -67,8 +69,7 @@ public final class PacketProcessor { try { handlers[code.getValue()] = handler; } catch (ArrayIndexOutOfBoundsException e) { - e.printStackTrace(); - System.out.println("Error registering handler - " + code.name()); + log.error("Error registering handler {}", code.name(), e); } } diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index eab9cf4973..1184860abc 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -303,11 +303,10 @@ public class Server { private void dumpData() { wldRLock.lock(); try { - System.out.println(worlds); - System.out.println(channels); - System.out.println(worldRecommendedList); - System.out.println(); - System.out.println("---------------------"); + log.debug("Worlds: {}", worlds); + log.debug("Channels: {}", channels); + log.debug("World recommended list: {}", worldRecommendedList); + log.debug("---------------------"); } finally { wldRLock.unlock(); } @@ -1879,7 +1878,7 @@ public class Server { } private synchronized void shutdownInternal(boolean restart) { - System.out.println((restart ? "Restarting" : "Shutting down") + " the server!\r\n"); + log.info("{} the server!", restart ? "Restarting" : "Shutting down"); if (getWorlds() == null) { return;//already shutdown } @@ -1917,8 +1916,7 @@ public class Server { try { Thread.sleep(1000); } catch (InterruptedException ie) { - ie.printStackTrace(); - System.err.println("FUCK MY LIFE"); + log.error("Error during shutdown sleep", ie); } } } @@ -1929,12 +1927,12 @@ public class Server { TimerManager.getInstance().purge(); TimerManager.getInstance().stop(); - System.out.println("Worlds + Channels are offline."); + log.info("World and channels are offline."); loginServer.stop(); if (!restart) { // shutdown hook deadlocks if System.exit() method is used within its body chores, thanks MIKE for pointing that out new Thread(() -> System.exit(0)).start(); } else { - System.out.println("\r\nRestarting the server....\r\n"); + log.info("Restarting the server..."); try { instance.finalize();//FUU I CAN AND IT'S FREE } catch (Throwable ex) { diff --git a/src/main/java/net/server/channel/Channel.java b/src/main/java/net/server/channel/Channel.java index f8d2a3eaba..0343dc5da7 100644 --- a/src/main/java/net/server/channel/Channel.java +++ b/src/main/java/net/server/channel/Channel.java @@ -164,13 +164,13 @@ public final class Channel { eventSM = new EventScriptManager(this, getEvents()); } - public final synchronized void shutdown() { + public synchronized void shutdown() { try { if (finishedShutdown) { return; } - System.out.println("Shutting down Channel " + channel + " on World " + world); + log.info("Shutting down channel {} in world {}", channel, world); closeAllMerchants(); disconnectAwayPlayers(); @@ -188,10 +188,9 @@ public final class Channel { channelServer.stop(); finishedShutdown = true; - System.out.println("Successfully shut down Channel " + channel + " on World " + world + "\r\n"); + log.info("Successfully shut down channel {} in world {}", channel, world); } catch (Exception e) { - e.printStackTrace(); - System.err.println("Error while shutting down Channel " + channel + " on World " + world + "\r\n" + e); + log.error("Error while shutting down channel {} in world {}", channel, world, e); } } @@ -1024,26 +1023,22 @@ public final class Channel { } public void debugMarriageStatus() { - System.out.println(" ----- WORLD DATA -----"); + log.debug(" ----- WORLD DATA -----"); getWorldServer().debugMarriageStatus(); - System.out.println(" ----- CH. " + channel + " -----"); - System.out.println(" ----- CATHEDRAL -----"); - System.out.println("Current Queue: " + cathedralReservationQueue); - System.out.println("Cancel Task: " + (cathedralReservationTask != null)); - System.out.println("Ongoing wid: " + ongoingCathedral); - System.out.println(); - System.out.println("Ongoing wid: " + ongoingCathedral + " isPremium: " + ongoingCathedralType); - System.out.println("Guest list: " + ongoingCathedralGuests); - System.out.println(); - System.out.println(" ----- CHAPEL -----"); - System.out.println("Current Queue: " + chapelReservationQueue); - System.out.println("Cancel Task: " + (chapelReservationTask != null)); - System.out.println("Ongoing wid: " + ongoingChapel); - System.out.println(); - System.out.println("Ongoing wid: " + ongoingChapel + " isPremium: " + ongoingChapelType); - System.out.println("Guest list: " + ongoingChapelGuests); - System.out.println(); - System.out.println("Starttime: " + ongoingStartTime); + log.debug(" ----- CH. {} -----", channel); + log.debug(" ----- CATHEDRAL -----"); + log.debug("Current Queue: {}", cathedralReservationQueue); + log.debug("Cancel Task?: {}", cathedralReservationTask != null); + log.debug("Ongoing wid: {}", ongoingCathedral); + log.debug("Ongoing wid: {}, isPremium: {}", ongoingCathedral, ongoingCathedralType); + log.debug("Guest list: {}", ongoingCathedralGuests); + log.debug(" ----- CHAPEL -----"); + log.debug("Current Queue: {}", chapelReservationQueue); + log.debug("Cancel Task?: {}", chapelReservationTask != null); + log.debug("Ongoing wid: {}", ongoingChapel); + log.debug("Ongoing wid: {}, isPremium: {}", ongoingChapel, ongoingChapelType); + log.debug("Guest list: {}", ongoingChapelGuests); + log.debug("Starttime: {}", ongoingStartTime); } } \ No newline at end of file diff --git a/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java b/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java index ef61e81842..a94936e4dc 100644 --- a/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java +++ b/src/main/java/net/server/channel/handlers/AbstractMovementPacketHandler.java @@ -23,6 +23,8 @@ package net.server.channel.handlers; import net.AbstractPacketHandler; import net.packet.InPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.maps.AnimatedMapObject; import server.movement.*; import tools.exceptions.EmptyMovementException; @@ -32,6 +34,7 @@ import java.util.ArrayList; import java.util.List; public abstract class AbstractMovementPacketHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(AbstractMovementPacketHandler.class); protected List parseMovement(InPacket p) throws EmptyMovementException { List res = new ArrayList<>(); @@ -136,7 +139,7 @@ public abstract class AbstractMovementPacketHandler extends AbstractPacketHandle break; } default: - System.out.println("Unhandled Case:" + command); + log.warn("Unhandled case: {}", command); throw new EmptyMovementException(p); } } @@ -235,7 +238,7 @@ public abstract class AbstractMovementPacketHandler extends AbstractPacketHandle break; } default: - System.out.println("Unhandled Case:" + command); + log.warn("Unhandled Case: {}", command); throw new EmptyMovementException(p); } } diff --git a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java index 147556bfee..3cd9dd6704 100644 --- a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java +++ b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java @@ -28,6 +28,8 @@ import client.inventory.InventoryType; import client.inventory.manipulator.InventoryManipulator; import net.AbstractPacketHandler; import net.packet.InPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.ItemInformationProvider; import server.life.LifeFactory; import server.life.Monster; @@ -41,9 +43,10 @@ import java.util.Arrays; import java.util.List; public final class AdminCommandHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(AdminCommandHandler.class); @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { if (!c.getPlayer().isGM()) { return; } @@ -170,13 +173,13 @@ public final class AdminCommandHandler extends AbstractPacketHandler { break; case 0x77: //Testing purpose if (p.available() == 4) { - System.out.println(p.readInt()); + log.debug("int: {}", p.readInt()); } else if (p.available() == 2) { - System.out.println(p.readShort()); + log.debug("short: {}", p.readShort()); } break; default: - System.out.println("New GM packet encountered (MODE : " + mode + ": " + p); + log.info("New GM packet encountered (MODE: {}): {}", mode, p); break; } } diff --git a/src/main/java/net/server/channel/handlers/BBSOperationHandler.java b/src/main/java/net/server/channel/handlers/BBSOperationHandler.java index ed9d57e5b8..b29e5b735f 100644 --- a/src/main/java/net/server/channel/handlers/BBSOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/BBSOperationHandler.java @@ -26,6 +26,8 @@ import client.Client; import net.AbstractPacketHandler; import net.packet.InPacket; import net.server.guild.GuildPackets; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import tools.DatabaseConnection; import java.sql.Connection; @@ -34,13 +36,14 @@ import java.sql.ResultSet; import java.sql.SQLException; public final class BBSOperationHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(BBSOperationHandler.class); private String correctLength(String in, int maxSize) { return in.length() > maxSize ? in.substring(0, maxSize) : in; } @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { if (c.getPlayer().getGuildId() < 1) { return; } @@ -324,10 +327,9 @@ public final class BBSOperationHandler extends AbstractPacketHandler { ps2.close(); } } catch (SQLException se) { - se.printStackTrace(); + log.error("Error displaying thread", se); } catch (RuntimeException re) {//btw we get this everytime for some reason, but replies work! - re.printStackTrace(); - System.out.println("The number of reply rows does not match the replycount in thread."); + log.error("The number of reply rows does not match the replycount in thread.", re); } } } diff --git a/src/main/java/net/server/channel/handlers/CashOperationHandler.java b/src/main/java/net/server/channel/handlers/CashOperationHandler.java index 6946cee3d7..0f2eeb4e08 100644 --- a/src/main/java/net/server/channel/handlers/CashOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/CashOperationHandler.java @@ -469,7 +469,7 @@ public final class CashOperationHandler extends AbstractPacketHandler { } c.enableCSActions(); } else { - System.out.println("Unhandled action: " + action + "\n" + p); + log.warn("Unhandled action: {}, packet: {}", action, p); } } finally { c.releaseClient(); diff --git a/src/main/java/net/server/channel/handlers/GuildOperationHandler.java b/src/main/java/net/server/channel/handlers/GuildOperationHandler.java index fdba87592d..6dd3012f05 100644 --- a/src/main/java/net/server/channel/handlers/GuildOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/GuildOperationHandler.java @@ -36,12 +36,16 @@ import net.server.guild.GuildPackets; import net.server.guild.GuildResponse; import net.server.world.Party; import net.server.world.World; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import tools.PacketCreator; import java.util.HashSet; import java.util.Set; public final class GuildOperationHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(GuildOperationHandler.class); + private boolean isGuildNameAcceptable(String name) { if (name.length() < 3 || name.length() > 12) { return false; @@ -55,7 +59,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { } @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { Character mc = c.getPlayer(); byte type = p.readByte(); int allianceId = -1; @@ -118,13 +122,13 @@ public final class GuildOperationHandler extends AbstractPacketHandler { break; case 0x06: if (mc.getGuildId() > 0) { - System.out.println("[Hack] " + mc.getName() + " attempted to join a guild when s/he is already in one."); + log.warn("[Hack] Chr {} attempted to join a guild when s/he is already in one.", mc.getName()); return; } int gid = p.readInt(); int cid = p.readInt(); if (cid != mc.getId()) { - System.out.println("[Hack] " + mc.getName() + " attempted to join a guild with a different character id."); + log.warn("[Hack] Chr {} attempted to join a guild with a different chrId", mc.getName()); return; } @@ -158,7 +162,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { cid = p.readInt(); String name = p.readString(); if (cid != mc.getId() || !name.equals(mc.getName()) || mc.getGuildId() <= 0) { - System.out.println("[Hack] " + mc.getName() + " tried to quit guild under the name \"" + name + "\" and current guild id of " + mc.getGuildId() + "."); + log.warn("[Hack] Chr {} tried to quit guild under the name {} and current guild id of {}", mc.getName(), name, mc.getGuildId()); return; } @@ -183,7 +187,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { cid = p.readInt(); name = p.readString(); if (mc.getGuildRank() > 2 || mc.getGuildId() <= 0) { - System.out.println("[Hack] " + mc.getName() + " is trying to expel without rank 1 or 2."); + log.warn("[Hack] Chr {} is trying to expel without rank 1 or 2", mc.getName()); return; } @@ -194,7 +198,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { break; case 0x0d: if (mc.getGuildId() <= 0 || mc.getGuildRank() != 1) { - System.out.println("[Hack] " + mc.getName() + " tried to change guild rank titles when s/he does not have permission."); + log.warn("[Hack] Chr {} tried to change guild rank titles when s/he does not have permission", mc.getName()); return; } String[] ranks = new String[5]; @@ -208,7 +212,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { cid = p.readInt(); byte newRank = p.readByte(); if (mc.getGuildRank() > 2 || (newRank <= 2 && mc.getGuildRank() != 1) || mc.getGuildId() <= 0) { - System.out.println("[Hack] " + mc.getName() + " is trying to change rank outside of his/her permissions."); + log.warn("[Hack] Chr {} is trying to change rank outside of his/her permissions.", mc.getName()); return; } if (newRank <= 1 || newRank > 5) { @@ -218,7 +222,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { break; case 0x0f: if (mc.getGuildId() <= 0 || mc.getGuildRank() != 1 || mc.getMapId() != MapId.GUILD_HQ) { - System.out.println("[Hack] " + mc.getName() + " tried to change guild emblem without being the guild leader."); + log.warn("[Hack] Chr {} tried to change guild emblem without being the guild leader", mc.getName()); return; } if (mc.getMeso() < YamlConfig.config.server.CHANGE_EMBLEM_COST) { @@ -243,7 +247,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { case 0x10: if (mc.getGuildId() <= 0 || mc.getGuildRank() > 2) { if (mc.getGuildId() <= 0) { - System.out.println("[Hack] " + mc.getName() + " tried to change guild notice while not in a guild."); + log.warn("[Hack] Chr {} tried to change guild notice while not in a guild", mc.getName()); } return; } @@ -280,7 +284,7 @@ public final class GuildOperationHandler extends AbstractPacketHandler { break; default: - System.out.println("Unhandled GUILD_OPERATION packet: \n" + p); + log.warn("Unhandled GUILD_OPERATION packet: {}", p); } } } diff --git a/src/main/java/net/server/channel/handlers/MTSHandler.java b/src/main/java/net/server/channel/handlers/MTSHandler.java index 4e951cb9d6..f9e788ae1d 100644 --- a/src/main/java/net/server/channel/handlers/MTSHandler.java +++ b/src/main/java/net/server/channel/handlers/MTSHandler.java @@ -33,6 +33,8 @@ import net.packet.InPacket; import net.packet.Packet; import net.server.Server; import net.server.channel.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.ItemInformationProvider; import server.MTSItemInfo; import tools.DatabaseConnection; @@ -48,9 +50,10 @@ import java.util.Calendar; import java.util.List; public final class MTSHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(MTSHandler.class); @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { // TODO add karma-to-untradeable flag on sold items here if (!c.getPlayer().getCashShop().isOpened()) { @@ -354,8 +357,7 @@ public final class MTSHandler extends AbstractPacketHandler { ps.close(); con.close(); } catch (SQLException e) { - e.printStackTrace(); - System.out.println("MTS Transfer error: " + e); + log.error("MTS Transfer error", e); } } else if (op == 9) { //add to cart int id = p.readInt(); //id of the item @@ -537,7 +539,7 @@ public final class MTSHandler extends AbstractPacketHandler { c.sendPacket(PacketCreator.MTSFailBuy()); } } else { - System.out.println("Unhandled OP(MTS): " + op + " Packet: " + p); + log.warn("Unhandled OP (MTS): {}, packet: {}", op, p); } } else { c.sendPacket(PacketCreator.showMTSCash(c.getPlayer())); diff --git a/src/main/java/net/server/channel/handlers/MoveLifeHandler.java b/src/main/java/net/server/channel/handlers/MoveLifeHandler.java index 96369ce4aa..94b5871596 100644 --- a/src/main/java/net/server/channel/handlers/MoveLifeHandler.java +++ b/src/main/java/net/server/channel/handlers/MoveLifeHandler.java @@ -25,6 +25,8 @@ import client.Character; import client.Client; import config.YamlConfig; import net.packet.InPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.life.MobSkill; import server.life.MobSkillFactory; import server.life.Monster; @@ -47,9 +49,10 @@ import java.util.List; * @author Ronan (HeavenMS) */ public final class MoveLifeHandler extends AbstractMovementPacketHandler { + private static final Logger log = LoggerFactory.getLogger(MoveLifeHandler.class); @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { Character player = c.getPlayer(); MapleMap map = player.getMap(); @@ -165,7 +168,9 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler { p.seek(movementDataStart); if (YamlConfig.config.server.USE_DEBUG_SHOW_RCVD_MVLIFE) { - System.out.println((isSkill ? "SKILL " : (isAttack ? "ATTCK " : " ")) + "castPos: " + castPos + " rawAct: " + rawActivity + " opt: " + pOption + " skillID: " + useSkillId + " skillLV: " + useSkillLevel + " " + "allowSkill: " + nextMovementCouldBeSkill + " mobMp: " + mobMp); + log.debug("{} castPos: {}, rawAct: {}, opt: {}, skillId: {}, skillLv: {}, allowSkill: {}, mobMp: {}", + isSkill ? "SKILL" : (isAttack ? "ATTCK" : ""), castPos, rawActivity, pOption, useSkillId, + useSkillLevel, nextMovementCouldBeSkill, mobMp); } map.broadcastMessage(player, PacketCreator.moveMonster(objectid, nextMovementCouldBeSkill, rawActivity, useSkillId, useSkillLevel, pOption, startPos, p, movementDataLength), serverStartPos); diff --git a/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java b/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java index 76e76c4531..edd39143b2 100644 --- a/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java +++ b/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java @@ -487,7 +487,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler { byte targetSlot = p.readByte(); if (targetSlot < 1 || targetSlot > 9) { - System.out.println("[Hack] " + chr.getName() + " Trying to dupe on trade slot."); + log.warn("[Hack] Chr {} Trying to dupe on trade slot.", chr.getName()); c.sendPacket(PacketCreator.enableActions()); return; } diff --git a/src/main/java/net/server/channel/handlers/RangedAttackHandler.java b/src/main/java/net/server/channel/handlers/RangedAttackHandler.java index 467407f050..a8ea010361 100644 --- a/src/main/java/net/server/channel/handlers/RangedAttackHandler.java +++ b/src/main/java/net/server/channel/handlers/RangedAttackHandler.java @@ -35,6 +35,8 @@ import constants.inventory.ItemConstants; import constants.skills.*; import net.packet.InPacket; import net.packet.Packet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.ItemInformationProvider; import server.StatEffect; import tools.PacketCreator; @@ -44,9 +46,10 @@ import static java.util.concurrent.TimeUnit.SECONDS; public final class RangedAttackHandler extends AbstractDealDamageHandler { + private static final Logger log = LoggerFactory.getLogger(RangedAttackHandler.class); @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { Character chr = c.getPlayer(); /*long timeElapsed = currentServerTime() - chr.getAutobanManager().getLastSpam(8); @@ -171,7 +174,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler { } if (slot < 0) { - System.out.println(" Projectile to use was unable to be found."); + log.warn(" Projectile to use was unable to be found."); } else { InventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, bulletConsume, false, true); } diff --git a/src/main/java/net/server/channel/handlers/RingActionHandler.java b/src/main/java/net/server/channel/handlers/RingActionHandler.java index 389be85986..73a31b842f 100644 --- a/src/main/java/net/server/channel/handlers/RingActionHandler.java +++ b/src/main/java/net/server/channel/handlers/RingActionHandler.java @@ -34,6 +34,8 @@ import net.AbstractPacketHandler; import net.packet.InPacket; import net.server.channel.Channel; import net.server.world.World; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import scripting.event.EventInstanceManager; import server.ItemInformationProvider; import tools.DatabaseConnection; @@ -52,6 +54,7 @@ import java.sql.SQLException; * @author Drago (Dragohe4rt) - on Wishlist */ public final class RingActionHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(RingActionHandler.class); private static int getEngagementBoxId(int useItemId) { return switch (useItemId) { @@ -175,7 +178,7 @@ public final class RingActionHandler extends AbstractPacketHandler { eraseEngagementOffline(characterId, con); } catch (SQLException ex) { - System.out.println("Error updating offline breakup " + ex.getMessage()); + log.error("Error updating offline breakup", ex); } } @@ -361,7 +364,7 @@ public final class RingActionHandler extends AbstractPacketHandler { source.sendPacket(WeddingPackets.OnNotifyWeddingPartnerTransfer(target.getId(), target.getMapId())); target.sendPacket(WeddingPackets.OnNotifyWeddingPartnerTransfer(source.getId(), source.getMapId())); } catch (Exception e) { - System.out.println("Error with engagement " + e.getMessage()); + log.error("Error with engagement", e); } } else { source.dropMessage(1, "She has politely declined your engagement request."); @@ -509,7 +512,7 @@ public final class RingActionHandler extends AbstractPacketHandler { break; default: - System.out.println("Unhandled RING_ACTION Mode: " + p); + log.warn("Unhandled RING_ACTION mode. Packet: {}", p); break; } diff --git a/src/main/java/net/server/channel/handlers/SkillEffectHandler.java b/src/main/java/net/server/channel/handlers/SkillEffectHandler.java index fbc5a6457d..6b5b251da0 100644 --- a/src/main/java/net/server/channel/handlers/SkillEffectHandler.java +++ b/src/main/java/net/server/channel/handlers/SkillEffectHandler.java @@ -25,11 +25,15 @@ import client.Client; import constants.skills.*; import net.AbstractPacketHandler; import net.packet.InPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import tools.PacketCreator; public final class SkillEffectHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(SkillEffectHandler.class); + @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { int skillId = p.readInt(); int level = p.readByte(); byte flags = p.readByte(); @@ -57,7 +61,7 @@ public final class SkillEffectHandler extends AbstractPacketHandler { c.getPlayer().getMap().broadcastMessage(c.getPlayer(), PacketCreator.skillEffect(c.getPlayer(), skillId, level, flags, speed, aids), false); return; default: - System.out.println(c.getPlayer() + " entered SkillEffectHandler without being handled using " + skillId + "."); + log.warn("Chr {} entered SkillEffectHandler without being handled using {}", c.getPlayer(), skillId); return; } } diff --git a/src/main/java/net/server/channel/handlers/UseCashItemHandler.java b/src/main/java/net/server/channel/handlers/UseCashItemHandler.java index fc639386e7..b87232a404 100644 --- a/src/main/java/net/server/channel/handlers/UseCashItemHandler.java +++ b/src/main/java/net/server/channel/handlers/UseCashItemHandler.java @@ -39,6 +39,8 @@ import constants.inventory.ItemConstants; import net.AbstractPacketHandler; import net.packet.InPacket; import net.server.Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.ItemInformationProvider; import server.Shop; import server.ShopFactory; @@ -56,9 +58,10 @@ import static java.util.concurrent.TimeUnit.DAYS; import static java.util.concurrent.TimeUnit.SECONDS; public final class UseCashItemHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(UseCashItemHandler.class); @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { final Character player = c.getPlayer(); long timeNow = currentServerTime(); @@ -601,7 +604,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler { client.sendPacket(PacketCreator.enableActions()); }, SECONDS.toMillis(3)); } else { - System.out.println("NEW CASH ITEM: " + itemType + "\n" + p); + log.warn("NEW CASH ITEM TYPE: {}, packet: {}", itemType, p); c.sendPacket(PacketCreator.enableActions()); } } diff --git a/src/main/java/net/server/channel/handlers/WeddingHandler.java b/src/main/java/net/server/channel/handlers/WeddingHandler.java index 7078c27bfc..1a31949e09 100644 --- a/src/main/java/net/server/channel/handlers/WeddingHandler.java +++ b/src/main/java/net/server/channel/handlers/WeddingHandler.java @@ -18,6 +18,8 @@ import config.YamlConfig; import constants.inventory.ItemConstants; import net.AbstractPacketHandler; import net.packet.InPacket; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.Marriage; import tools.PacketCreator; import tools.packets.WeddingPackets; @@ -29,9 +31,10 @@ import java.util.List; * @author Drago (Dragohe4rt) */ public final class WeddingHandler extends AbstractPacketHandler { + private static final Logger log = LoggerFactory.getLogger(WeddingHandler.class); @Override - public final void handlePacket(InPacket p, Client c) { + public void handlePacket(InPacket p, Client c) { if (c.tryacquireClient()) { try { @@ -151,7 +154,7 @@ public final class WeddingHandler extends AbstractPacketHandler { } else if (mode == 8) { // out of Wedding Registry c.sendPacket(PacketCreator.enableActions()); } else { - System.out.println(mode); + log.warn("Unhandled wedding mode: {}", mode); } } finally { c.releaseClient(); diff --git a/src/main/java/net/server/coordinator/session/SessionCoordinator.java b/src/main/java/net/server/coordinator/session/SessionCoordinator.java index 3f8429d276..18c9f5559c 100644 --- a/src/main/java/net/server/coordinator/session/SessionCoordinator.java +++ b/src/main/java/net/server/coordinator/session/SessionCoordinator.java @@ -344,27 +344,26 @@ public class SessionCoordinator { .map(Object::toString) .collect(Collectors.joining(", ")); - System.out.println("Current online clients: " + commaSeparatedClients); + log.debug("Current online clients: {}", commaSeparatedClients); } if (!onlineRemoteHwids.isEmpty()) { List hwids = new ArrayList<>(onlineRemoteHwids); hwids.sort(Comparator.comparing(Hwid::hwid)); - System.out.println("Current online HWIDs: "); - for (Hwid s : hwids) { - System.out.println(" " + s); - } + log.debug("Current online HWIDs: {}", hwids.stream() + .map(Hwid::hwid) + .collect(Collectors.joining(" "))); } if (!loginRemoteHosts.isEmpty()) { List> elist = new ArrayList<>(loginRemoteHosts.entrySet()); elist.sort(Entry.comparingByKey()); - System.out.println("Current login sessions: "); - for (Entry e : elist) { - System.out.println(" " + e.getKey() + ", client: " + e.getValue()); - } + log.debug("Current login sessions: {}", loginRemoteHosts.entrySet().stream() + .sorted(Entry.comparingByKey()) + .map(entry -> "(" + entry.getKey() + ", client: " + entry.getValue()) + .collect(Collectors.joining(", "))); } } diff --git a/src/main/java/net/server/guild/Guild.java b/src/main/java/net/server/guild/Guild.java index 7cd99383d6..8a05cd97cc 100644 --- a/src/main/java/net/server/guild/Guild.java +++ b/src/main/java/net/server/guild/Guild.java @@ -34,6 +34,8 @@ import net.server.coordinator.matchchecker.MatchCheckerCoordinator; import net.server.coordinator.world.InviteCoordinator; import net.server.coordinator.world.InviteCoordinator.InviteResult; import net.server.coordinator.world.InviteCoordinator.InviteType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import tools.DatabaseConnection; import tools.PacketCreator; @@ -45,6 +47,7 @@ import java.util.*; import java.util.concurrent.locks.Lock; public class Guild { + private static final Logger log = LoggerFactory.getLogger(Guild.class); private enum BCOp { NONE, DISBAND, EMBLEMCHANGE @@ -102,8 +105,7 @@ public class Guild { } } } catch (SQLException se) { - se.printStackTrace(); - System.out.println("Unable to read guild information from sql: " + se); + log.error("Unable to read guild information from sql", se); } } @@ -340,8 +342,7 @@ public class Guild { } } } catch (Exception re) { - re.printStackTrace(); - System.out.println("Failed to contact channel(s) for broadcast.");//fu? + log.error("Failed to contact channel(s) for broadcast.", re); } } } finally { @@ -520,8 +521,7 @@ public class Guild { ps.setLong(4, System.currentTimeMillis()); ps.executeUpdate(); } catch (SQLException e) { - e.printStackTrace(); - System.out.println("expelMember - Guild " + e); + log.error("expelMember - Guild", e); } Server.getInstance().getWorld(mgc.getWorld()).setOfflineGuildStatus((short) 0, (byte) 5, cid); } @@ -532,7 +532,7 @@ public class Guild { return; } } - System.out.println("Unable to find member with name " + name + " and id " + cid); + log.warn("Unable to find member with name {} and id {}", name, cid); } finally { membersLock.unlock(); } @@ -768,8 +768,7 @@ public class Guild { ResultSet rs = ps.executeQuery()) { c.sendPacket(GuildPackets.showGuildRanks(npcid, rs)); } catch (SQLException e) { - e.printStackTrace(); - System.out.println("failed to display guild ranks. " + e); + log.error("Failed to display guild ranks.", e); } } diff --git a/src/main/java/net/server/world/World.java b/src/main/java/net/server/world/World.java index 5097baebf4..162bbc58b0 100644 --- a/src/main/java/net/server/world/World.java +++ b/src/main/java/net/server/world/World.java @@ -52,6 +52,8 @@ import net.server.services.BaseService; import net.server.services.ServicesManager; import net.server.services.type.WorldServices; import net.server.task.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import scripting.event.EventInstanceManager; import server.Storage; import server.TimerManager; @@ -75,6 +77,7 @@ import static java.util.concurrent.TimeUnit.*; * @author Ronan - thread-oriented (world schedules + guild queue + marriages + party chars) */ public class World { + private static final Logger log = LoggerFactory.getLogger(World.class); private final int id; private int flag; @@ -834,8 +837,8 @@ public class World { } public void debugMarriageStatus() { - System.out.println("Queued marriages: " + queuedMarriages); - System.out.println("Guest list: " + marriageGuests); + log.debug("Queued marriages: {}", queuedMarriages); + log.debug("Guest list: {}", marriageGuests); } private void registerCharacterParty(Integer chrid, Integer partyid) { @@ -1004,7 +1007,7 @@ public class World { } break; default: - System.out.println("Unhandled updateParty operation " + operation.name()); + log.warn("Unhandled updateParty operation: {}", operation.name()); } updateParty(party, operation, target); } @@ -2151,6 +2154,6 @@ public class World { players = null; clearWorldData(); - System.out.println("Finished shutting down world " + id + "\r\n"); + log.info("Finished shutting down world {}", id); } } diff --git a/src/main/java/scripting/event/EventScriptManager.java b/src/main/java/scripting/event/EventScriptManager.java index ac474c185d..2723aa23cb 100644 --- a/src/main/java/scripting/event/EventScriptManager.java +++ b/src/main/java/scripting/event/EventScriptManager.java @@ -22,6 +22,7 @@ package scripting.event; import net.server.channel.Channel; +import org.slf4j.LoggerFactory; import scripting.AbstractScriptManager; import scripting.SynchronizedInvocable; @@ -32,13 +33,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Level; -import java.util.logging.Logger; /** * @author Matze */ public class EventScriptManager extends AbstractScriptManager { + private static final org.slf4j.Logger log = LoggerFactory.getLogger(EventScriptManager.class); private static final String INJECTED_VARIABLE_NAME = "em"; private static EventEntry fallback; private final Map events = new ConcurrentHashMap<>(); @@ -83,8 +83,7 @@ public class EventScriptManager extends AbstractScriptManager { try { entry.iv.invokeFunction("init", (Object) null); } catch (Exception ex) { - Logger.getLogger(EventScriptManager.class.getName()).log(Level.SEVERE, null, ex); - System.out.println("Error on script: " + entry.em.getName()); + log.error("Error on script: {}", entry.em.getName(), ex); } } diff --git a/src/main/java/server/Shop.java b/src/main/java/server/Shop.java index cb170e1266..cc0f65bd6a 100644 --- a/src/main/java/server/Shop.java +++ b/src/main/java/server/Shop.java @@ -28,6 +28,8 @@ import client.inventory.Pet; import client.inventory.manipulator.InventoryManipulator; import constants.id.ItemId; import constants.inventory.ItemConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import tools.DatabaseConnection; import tools.PacketCreator; @@ -44,7 +46,9 @@ import java.util.Set; * @author Matze */ public class Shop { + private static final Logger log = LoggerFactory.getLogger(Shop.class); private static final Set rechargeableItems = new LinkedHashSet<>(); + private final int id; private final int npcId; private final List items; @@ -83,7 +87,7 @@ public class Shop { ShopItem item = findBySlot(slot); if (item != null) { if (item.getItemId() != itemId) { - System.out.println("Wrong slot number in shop " + id); + log.warn("Wrong slot number in shop {}", id); return; } } else { diff --git a/src/main/java/server/SkillbookInformationProvider.java b/src/main/java/server/SkillbookInformationProvider.java index 65959717bd..62f63b0a37 100644 --- a/src/main/java/server/SkillbookInformationProvider.java +++ b/src/main/java/server/SkillbookInformationProvider.java @@ -20,6 +20,8 @@ package server; import client.Character; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import provider.Data; import provider.DataProvider; import provider.DataProviderFactory; @@ -45,6 +47,7 @@ import java.util.regex.Pattern; * Only used in 1 script that gives players information about where skillbooks can be found */ public class SkillbookInformationProvider { + private static final Logger log = LoggerFactory.getLogger(SkillbookInformationProvider.class); private static volatile Map foundSkillbooks = new HashMap<>(); public enum SkillBookEntry { @@ -242,8 +245,7 @@ public class SkillbookInformationProvider { scriptFileSkillbooks.put(skillbookId, SkillBookEntry.SCRIPT); } } catch (IOException ioe) { - System.out.println("Failed to read " + file.getName() + "."); - ioe.printStackTrace(); + log.error("Failed to read file:{}", file.getName(), ioe); } return scriptFileSkillbooks; diff --git a/src/main/java/server/Trade.java b/src/main/java/server/Trade.java index aaaa9582ee..2f95cb9219 100644 --- a/src/main/java/server/Trade.java +++ b/src/main/java/server/Trade.java @@ -182,7 +182,7 @@ public class Trade { throw new RuntimeException("Trade is locked."); } if (meso < 0) { - System.out.println("[Hack] " + chr.getName() + " Trying to trade < 0 mesos"); + log.warn("[Hack] Chr {} is trying to trade negative mesos", chr.getName()); return; } if (chr.getMeso() >= meso) { diff --git a/src/main/java/server/life/LifeFactory.java b/src/main/java/server/life/LifeFactory.java index b088bf05e6..80eb10462c 100644 --- a/src/main/java/server/life/LifeFactory.java +++ b/src/main/java/server/life/LifeFactory.java @@ -21,6 +21,8 @@ along with this program. If not, see . */ package server.life; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import provider.Data; import provider.DataProvider; import provider.DataProviderFactory; @@ -35,6 +37,7 @@ import java.util.List; import java.util.*; public class LifeFactory { + private static final Logger log = LoggerFactory.getLogger(LifeFactory.class); private static final DataProvider data = DataProviderFactory.getDataProvider(WZFiles.MOB); private final static DataProvider stringDataWZ = DataProviderFactory.getDataProvider(WZFiles.STRING); private static final Data mobStringData = stringDataWZ.getData("Mob.img"); @@ -59,7 +62,7 @@ public class LifeFactory { } else if (type.equalsIgnoreCase("m")) { return getMonster(id); } else { - System.out.println("Unknown Life type: " + type); + log.warn("Unknown Life type: {}", type); return null; } } @@ -247,12 +250,9 @@ public class LifeFactory { monsterStats.put(mid, stats); } - Monster ret = new Monster(mid, stats); - return ret; + return new Monster(mid, stats); } catch (NullPointerException npe) { - System.out.println("[SEVERE] MOB " + mid + " failed to load. Issue: " + npe.getMessage() + "\n\n"); - npe.printStackTrace(); - + log.error("[SEVERE] MOB {} failed to load.", mid, npe); return null; } } @@ -271,8 +271,7 @@ public class LifeFactory { return stats.getLevel(); } } catch (NullPointerException npe) { - System.out.println("[SEVERE] MOB " + mid + " failed to load. Issue: " + npe.getMessage() + "\n\n"); - npe.printStackTrace(); + log.error("[SEVERE] MOB {} failed to load.", mid, npe); } return -1; diff --git a/src/main/java/server/life/MobSkill.java b/src/main/java/server/life/MobSkill.java index af91a0e35a..3d0dc67eaa 100644 --- a/src/main/java/server/life/MobSkill.java +++ b/src/main/java/server/life/MobSkill.java @@ -28,6 +28,8 @@ import constants.id.MapId; import constants.id.MobId; import net.server.services.task.channel.OverallService; import net.server.services.type.ChannelServices; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.maps.MapObject; import server.maps.MapObjectType; import server.maps.MapleMap; @@ -43,6 +45,7 @@ import java.util.*; * @author Danny (Leifde) */ public class MobSkill { + private static final Logger log = LoggerFactory.getLogger(MobSkill.class); private final int skillId; private final int skillLevel; @@ -314,7 +317,7 @@ public class MobSkill { } break; default: - System.out.println("Unhandled Mob skill: " + skillId); + log.warn("Unhandled Mob skill: {}", skillId); break; } if (stats.size() > 0) { diff --git a/src/main/java/server/life/Monster.java b/src/main/java/server/life/Monster.java index 2c7f2ec7c6..14c061b941 100644 --- a/src/main/java/server/life/Monster.java +++ b/src/main/java/server/life/Monster.java @@ -42,6 +42,8 @@ import net.server.services.task.channel.OverallService; import net.server.services.type.ChannelServices; import net.server.world.Party; import net.server.world.PartyCharacter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import scripting.event.EventInstanceManager; import server.StatEffect; import server.TimerManager; @@ -66,6 +68,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; public class Monster extends AbstractLoadedLife { + private static final Logger log = LoggerFactory.getLogger(Monster.class); private ChangeableStats ostats = null; //unused, v83 WZs offers no support for changeable stats. private MonsterStats stats; @@ -823,7 +826,7 @@ public class Monster extends AbstractLoadedLife { }, getAnimationTime("die1")); } } else { // is this even necessary? - System.out.println("[CRITICAL LOSS] toSpawn is null for " + this.getName()); + log.warn("[CRITICAL LOSS] toSpawn is null for {}", getName()); } Character looter = map.getCharacterById(getHighestDamagerId()); @@ -1124,7 +1127,7 @@ public class Monster extends AbstractLoadedLife { case WEAK: break; default: { - System.out.println("Unknown elemental effectiveness: " + getMonsterEffectiveness(status.getSkill().getElement())); + log.warn("Unknown elemental effectiveness: {}", getMonsterEffectiveness(status.getSkill().getElement())); return false; } } diff --git a/src/main/java/server/life/MonsterInformationProvider.java b/src/main/java/server/life/MonsterInformationProvider.java index f1073e2c3a..e610559007 100644 --- a/src/main/java/server/life/MonsterInformationProvider.java +++ b/src/main/java/server/life/MonsterInformationProvider.java @@ -22,6 +22,8 @@ package server.life; import config.YamlConfig; import constants.inventory.ItemConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import provider.Data; import provider.DataProvider; import provider.DataProviderFactory; @@ -39,6 +41,7 @@ import java.sql.SQLException; import java.util.*; public class MonsterInformationProvider { + private static final Logger log = LoggerFactory.getLogger(MonsterInformationProvider.class); // Author : LightPepsi private static final MonsterInformationProvider instance = new MonsterInformationProvider(); @@ -100,7 +103,7 @@ public class MonsterInformationProvider { rs.getShort("questid"))); } } catch (SQLException e) { - System.err.println("Error retrieving drop" + e); + log.error("Error retrieving global drops", e); } } @@ -254,8 +257,7 @@ public class MonsterInformationProvider { } catch (Exception e) { //nonexistant mob boss = false; - e.printStackTrace(); - System.err.println("Nonexistant mob id " + id); + log.warn("Non-existent mob id {}", id, e); } mobBossCache.put(id, boss); diff --git a/src/main/java/server/life/PlayerNPC.java b/src/main/java/server/life/PlayerNPC.java index a8f2a7cff6..c0487d0276 100644 --- a/src/main/java/server/life/PlayerNPC.java +++ b/src/main/java/server/life/PlayerNPC.java @@ -31,6 +31,8 @@ import constants.id.NpcId; import net.server.Server; import net.server.channel.Channel; import net.server.world.World; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.life.positioner.PlayerNPCPodium; import server.life.positioner.PlayerNPCPositioner; import server.maps.AbstractMapObject; @@ -52,6 +54,7 @@ import java.util.concurrent.atomic.AtomicInteger; * @author Ronan */ public class PlayerNPC extends AbstractMapObject { + private static final Logger log = LoggerFactory.getLogger(PlayerNPC.class); private static final Map> availablePlayerNpcScriptIds = new HashMap<>(); private static final AtomicInteger runningOverallRank = new AtomicInteger(); private static final List runningWorldRank = new ArrayList<>(); @@ -400,7 +403,7 @@ public class PlayerNPC extends AbstractMapObject { } if (YamlConfig.config.server.USE_DEBUG) { - System.out.println("GOT SID " + scriptId + " POS " + pos); + log.debug("GOT SID {}, POS {}", scriptId, pos); } int worldId = chr.getWorld(); diff --git a/src/main/java/server/life/positioner/PlayerNPCPodium.java b/src/main/java/server/life/positioner/PlayerNPCPodium.java index 5402333c20..5f822affd2 100644 --- a/src/main/java/server/life/positioner/PlayerNPCPodium.java +++ b/src/main/java/server/life/positioner/PlayerNPCPodium.java @@ -22,6 +22,8 @@ package server.life.positioner; import config.YamlConfig; import net.server.Server; import net.server.channel.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.life.PlayerNPC; import server.maps.MapObject; import server.maps.MapObjectType; @@ -40,6 +42,8 @@ import java.util.List; * Podium system will implement increase-by-7 to negate that behaviour. */ public class PlayerNPCPodium { + private static final Logger log = LoggerFactory.getLogger(PlayerNPCPodium.class); + private static int getPlatformPosX(int platform) { return switch (platform) { case 0 -> -50; @@ -76,7 +80,7 @@ public class PlayerNPCPodium { private static Point reorganizePlayerNpcs(MapleMap map, int newStep, List mmoList) { if (!mmoList.isEmpty()) { if (YamlConfig.config.server.USE_DEBUG) { - System.out.println("Reorganizing pnpc map, step " + newStep); + log.debug("Re-organizing pnpc map, step {}", newStep); } List playerNpcs = new ArrayList<>(mmoList.size()); diff --git a/src/main/java/server/life/positioner/PlayerNPCPositioner.java b/src/main/java/server/life/positioner/PlayerNPCPositioner.java index d5a1b89d43..7220e945dc 100644 --- a/src/main/java/server/life/positioner/PlayerNPCPositioner.java +++ b/src/main/java/server/life/positioner/PlayerNPCPositioner.java @@ -22,6 +22,8 @@ package server.life.positioner; import config.YamlConfig; import net.server.Server; import net.server.channel.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.life.PlayerNPC; import server.maps.MapObject; import server.maps.MapObjectType; @@ -38,6 +40,7 @@ import java.util.List; * @author RonanLana */ public class PlayerNPCPositioner { + private static final Logger log = LoggerFactory.getLogger(PlayerNPCPositioner.class); private static boolean isPlayerNpcNearby(List otherPos, Point searchPos, int xLimit, int yLimit) { int xLimit2 = xLimit / 2, yLimit2 = yLimit / 2; @@ -135,7 +138,7 @@ public class PlayerNPCPositioner { private static Point reorganizePlayerNpcs(MapleMap map, int newStep, List mmoList) { if (!mmoList.isEmpty()) { if (YamlConfig.config.server.USE_DEBUG) { - System.out.println("Reorganizing pnpc map, step " + newStep); + log.debug("Re-organizing pnpc map, step {}", newStep); } List playerNpcs = new ArrayList<>(mmoList.size()); diff --git a/src/main/java/server/quest/Quest.java b/src/main/java/server/quest/Quest.java index 47867f52c4..30457f9ab6 100644 --- a/src/main/java/server/quest/Quest.java +++ b/src/main/java/server/quest/Quest.java @@ -25,6 +25,8 @@ import client.Character; import client.QuestStatus; import client.QuestStatus.Status; import config.YamlConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import provider.Data; import provider.DataProvider; import provider.DataProviderFactory; @@ -46,6 +48,7 @@ import static java.util.concurrent.TimeUnit.SECONDS; * @author Ronan - support for medal quests */ public class Quest { + private static final Logger log = LoggerFactory.getLogger(Quest.class); private static volatile Map quests = new HashMap<>(); private static volatile Map infoNumberQuests = new HashMap<>(); private static final Map medals = new HashMap<>(); @@ -100,7 +103,7 @@ public class Quest { medals.put(this.id, medalid); } } else { - System.out.println("no data " + id); + log.warn("No quest data for id {}", id); } } diff --git a/src/main/java/tools/packets/Fishing.java b/src/main/java/tools/packets/Fishing.java index 49b7e9a1d4..19081b50c0 100644 --- a/src/main/java/tools/packets/Fishing.java +++ b/src/main/java/tools/packets/Fishing.java @@ -24,6 +24,8 @@ import config.YamlConfig; import constants.id.ItemId; import constants.id.MapId; import constants.inventory.ItemConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import server.ItemInformationProvider; import tools.PacketCreator; @@ -34,6 +36,7 @@ import java.util.Calendar; * @author Ronan - timing pattern */ public class Fishing { + private static final Logger log = LoggerFactory.getLogger(Fishing.class); private static double getFishingLikelihood(int x) { return 50.0 + 7.0 * (7.0 * Math.sin(x)) * (Math.cos(Math.pow(x, 0.777))); @@ -192,8 +195,8 @@ public class Fishing { } } - System.out.println("Diary min " + minhit + " max " + maxhit); - System.out.println("Diary10 min " + minhit10 + " max " + maxhit10); - System.out.println("Hits: " + hits + "Hits10: " + hits10 + " Total: " + total + " -- %1000: " + (hits * 1000 / total) + ", +10 %1000: " + (hits10 * 1000 / total)); + log.debug("Diary min {} max {}", minhit, maxhit); + log.debug("Diary10 min {} max {}", minhit10, maxhit10); + log.debug("Hits: {}, Hits10: {}, Total: {} -- %1000 {}, +10 %1000: {}", hits, hits10, total, (hits * 1000 / total), (hits10 * 1000 / total)); } } diff --git a/src/main/java/tools/packets/WeddingPackets.java b/src/main/java/tools/packets/WeddingPackets.java index 3d275de151..20662e08ba 100644 --- a/src/main/java/tools/packets/WeddingPackets.java +++ b/src/main/java/tools/packets/WeddingPackets.java @@ -13,6 +13,8 @@ import constants.id.MapId; import net.opcodes.SendOpcode; import net.packet.OutPacket; import net.packet.Packet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import tools.PacketCreator; import tools.StringUtil; @@ -27,6 +29,8 @@ import java.util.List; * Wishlists edited by Drago (Dragohe4rt) */ public class WeddingPackets extends PacketCreator { + private static final Logger log = LoggerFactory.getLogger(WeddingPackets.class); + /* 00000000 CWeddingMan struc ; (sizeof=0x104) 00000000 vfptr dd ? ; offset @@ -409,7 +413,7 @@ public class WeddingPackets extends PacketCreator { break; } default: { - System.out.println("Unknown Wishlist Mode: " + mode); + log.warn("Unknown Wishlist Mode: {}", mode); break; } }