diff --git a/Server/src/main/java/core/net/IoEventHandler.java b/Server/src/main/java/core/net/IoEventHandler.java index bd8b48eb2..450624588 100644 --- a/Server/src/main/java/core/net/IoEventHandler.java +++ b/Server/src/main/java/core/net/IoEventHandler.java @@ -1,5 +1,7 @@ package core.net; +import rs09.game.system.SystemLogger; + import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.*; @@ -58,8 +60,14 @@ public class IoEventHandler { ByteBuffer buffer = ByteBuffer.allocate(100_000); IoSession session = (IoSession) key.attachment(); if (channel.read(buffer) == -1) { - //just when a client closes their client, nothing to worry about. - throw new IOException("An existing connection was disconnected!"); + if(session != null){ + if(session.getPlayer() != null){ + SystemLogger.logInfo("Connection closed - disconnecting player."); + session.getPlayer().clear(); + } + //key.cancel(); + return; + } } buffer.flip(); if (session == null) { diff --git a/Server/src/main/kotlin/rs09/game/system/SystemLogger.kt b/Server/src/main/kotlin/rs09/game/system/SystemLogger.kt index 61755329d..a51547784 100644 --- a/Server/src/main/kotlin/rs09/game/system/SystemLogger.kt +++ b/Server/src/main/kotlin/rs09/game/system/SystemLogger.kt @@ -29,8 +29,10 @@ object SystemLogger { @JvmStatic() fun flushLogs() { - tradeLogWriter?.flush() - tradeLogWriter?.close() + try { + tradeLogWriter?.flush() + tradeLogWriter?.close() + } catch(ignored: Exception) {} } fun getTime(): String{ @@ -76,10 +78,12 @@ object SystemLogger { @JvmStatic fun logTrade(message: String){ - if(message.isNotBlank()){ - if(tradeLogWriter == null) logWarn("Trade Logger is null!") - tradeLogWriter?.write("${getTime()}: $message") - tradeLogWriter?.newLine() - } + try { + if (message.isNotBlank()) { + if (tradeLogWriter == null) logWarn("Trade Logger is null!") + tradeLogWriter?.write("${getTime()}: $message") + tradeLogWriter?.newLine() + } + } catch(ignored: Exception){} } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt b/Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt index 3d425be94..2262c397f 100644 --- a/Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt +++ b/Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt @@ -23,7 +23,6 @@ object PacketWriteQueue { @JvmStatic fun queue(packet: OutgoingPacket, context: T){ - SystemLogger.logInfo(packet.javaClass.simpleName) PacketsToWrite.add(QueuedPacket(packet,context)) }