From 3235fcdc73caae47f4416c08cdf8248d7c62cfd2 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 14 Sep 2022 21:53:27 +0700 Subject: [PATCH] Clear client power map on logging out Fixes #85 --- .../java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java | 1 + .../kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java index 60474feb2..f291d52a6 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java +++ b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java @@ -115,6 +115,7 @@ public final class OverdriveThatMatters { EVENT_BUS.addListener(EventPriority.NORMAL, ExplosionQueue.Companion::onWorldTick); EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::tick); EVENT_BUS.addListener(EventPriority.NORMAL, QuantumBatteryItem.Companion::tick); + EVENT_BUS.addListener(EventPriority.NORMAL, QuantumBatteryItem.Companion::clientDisconnect); EVENT_BUS.addListener(EventPriority.LOWEST, PortableCondensationDriveItem.Companion::onPickupEvent); MatteryPlayerCapability.Companion.registerEffects(event); diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt index f2794e411..e0528b2ab 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/QuantumBatteryItem.kt @@ -12,6 +12,7 @@ import net.minecraft.network.chat.Component import net.minecraft.util.Mth import net.minecraft.world.item.* import net.minecraft.world.level.Level +import net.minecraftforge.client.event.ClientPlayerNetworkEvent import net.minecraftforge.common.capabilities.Capability import net.minecraftforge.common.capabilities.ForgeCapabilities import net.minecraftforge.common.capabilities.ICapabilityProvider @@ -29,6 +30,7 @@ import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.network.GenericNetworkChannel import ru.dbotthepony.mc.otm.network.MatteryPacket import ru.dbotthepony.mc.otm.network.packetHandled +import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.saveddata.SavedCountingMap import java.util.function.Supplier @@ -359,6 +361,10 @@ class QuantumBatteryItem : Item { } companion object { + fun clientDisconnect(event: ClientPlayerNetworkEvent.LoggingOut) { + ForgeRegistries.ITEMS.values.parallelStream().forEach { if (it is QuantumBatteryItem) it.clientPowerMap.clear() } + } + fun readPacket(buff: FriendlyByteBuf): ChargePacket { return ChargePacket( (ForgeRegistries.ITEMS as ForgeRegistry).getValue(buff.readInt()) as QuantumBatteryItem,