Remove listener when job is completed

This commit is contained in:
Him188 2020-03-21 11:46:39 +08:00
parent 074236ceda
commit df1fbbe236

View File

@ -26,7 +26,12 @@ val EventLogger: MiraiLoggerWithSwitch = DefaultLogger("Event").withSwitch(false
@MiraiInternalAPI
fun <L : Listener<E>, E : Event> KClass<out E>.subscribeInternal(listener: L): L {
this.listeners().addLast(listener)
with(this.listeners()) {
addLast(listener)
listener.invokeOnCompletion {
this.remove(listener)
}
}
return listener
}