diff --git a/src/main/kotlin/net/taehui/twilight/Twilight.kt b/src/main/kotlin/net/taehui/twilight/Twilight.kt index 03cab7f..c7c0f77 100644 --- a/src/main/kotlin/net/taehui/twilight/Twilight.kt +++ b/src/main/kotlin/net/taehui/twilight/Twilight.kt @@ -97,6 +97,7 @@ } } } finally { + AwilightHandler.dispose() WitSystem.dispose() PlatformIDSystem.savePlatformID() PlatformSystem.dispose() diff --git a/src/main/kotlin/net/taehui/twilight/awilight/AwilightAvatar.kt b/src/main/kotlin/net/taehui/twilight/awilight/AwilightAvatar.kt index aebc4fa..779d61d 100644 --- a/src/main/kotlin/net/taehui/twilight/awilight/AwilightAvatar.kt +++ b/src/main/kotlin/net/taehui/twilight/awilight/AwilightAvatar.kt @@ -19,7 +19,7 @@ import java.util.* import kotlin.io.path.pathString -class AwilightAvatar : SimpleChannelInboundHandler(), Logger { +class AwilightAvatar : SimpleChannelInboundHandler(), Logger, AutoCloseable { private lateinit var handler: ChannelHandlerContext private val enteredSites = mutableMapOf() private val defaultComputerCSX = Any() @@ -555,4 +555,8 @@ override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) { logFault(cause) } + + override fun close() { + handler.close() + } } \ No newline at end of file diff --git a/src/main/kotlin/net/taehui/twilight/system/AwilightHandler.kt b/src/main/kotlin/net/taehui/twilight/system/AwilightHandler.kt index e4bb19c..f979b5a 100644 --- a/src/main/kotlin/net/taehui/twilight/system/AwilightHandler.kt +++ b/src/main/kotlin/net/taehui/twilight/system/AwilightHandler.kt @@ -72,6 +72,12 @@ avatars.remove(handler)?.dispose() } + fun dispose() { + avatars.values.forEach{ + it.close() + } + } + fun setAwilightCount(awilightCount: Int) { WitSystem.wipeWit(this) if (awilightCount > 0) {