diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/session/Session.java b/core/src/main/java/com/seibel/distanthorizons/core/network/session/Session.java index 3527536be..a9c0e6a35 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/session/Session.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/session/Session.java @@ -86,15 +86,25 @@ public class Session extends NetworkEventSource public void sendMessage(NetworkMessage message) { + if (this.closeReason.get() != null) return; LOGGER.debug("Sending message: {}", message); - if (this.serverPlayer != null) + try { - PACKET_SENDER.sendPluginPacketServer(this.serverPlayer, message); + if (this.serverPlayer != null) + { + PACKET_SENDER.sendPluginPacketServer(this.serverPlayer, message); + } + else + { + PACKET_SENDER.sendPluginPacketClient(message); + } } - else + catch (Throwable throwable) { - PACKET_SENDER.sendPluginPacketClient(message); + LOGGER.info("Failed to send a message", throwable); + LOGGER.info("Message: {}", message); + this.close(throwable); } }