Subscribe to LevelEvent.Unload
This commit is contained in:
parent
93711aacc1
commit
43740dcd3a
@ -141,6 +141,7 @@ public final class OverdriveThatMatters {
|
||||
EVENT_BUS.addListener(EventPriority.NORMAL, AndroidResearchManager.INSTANCE::syncEvent);
|
||||
|
||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onServerStopping);
|
||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onLevelUnload);
|
||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onWatch);
|
||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::onForget);
|
||||
EVENT_BUS.addListener(EventPriority.NORMAL, SynchronizedBlockEntity.Companion::playerDisconnected);
|
||||
|
@ -14,6 +14,7 @@ import net.minecraftforge.event.TickEvent
|
||||
import net.minecraftforge.event.TickEvent.LevelTickEvent
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent
|
||||
import net.minecraftforge.event.level.ChunkWatchEvent
|
||||
import net.minecraftforge.event.level.LevelEvent
|
||||
import net.minecraftforge.event.server.ServerStoppingEvent
|
||||
import ru.dbotthepony.mc.otm.network.BlockEntitySyncPacket
|
||||
import ru.dbotthepony.mc.otm.network.FieldSynchronizer
|
||||
@ -261,8 +262,15 @@ abstract class SynchronizedBlockEntity(p_155228_: BlockEntityType<*>, p_155229_:
|
||||
private val playerMap = WeakHashMap<ServerLevel, Long2ObjectAVLTreeMap<ChunkSubscribers>>()
|
||||
private val tickingMap = WeakHashMap<ServerLevel, ArrayList<WeakReference<ChunkSubscribers>>>()
|
||||
|
||||
fun onLevelUnload(event: LevelEvent.Unload) {
|
||||
val level = event.level as? ServerLevel ?: return
|
||||
playerMap.remove(level)
|
||||
tickingMap.remove(level)
|
||||
}
|
||||
|
||||
fun onServerStopping(event: ServerStoppingEvent) {
|
||||
playerMap.clear()
|
||||
tickingMap.clear()
|
||||
}
|
||||
|
||||
fun postLevelTick(event: LevelTickEvent) {
|
||||
|
Loading…
Reference in New Issue
Block a user