Clear client power map on logging out

Fixes #85
This commit is contained in:
DBotThePony 2022-09-14 21:53:27 +07:00
parent e1ce6a9d3f
commit 3235fcdc73
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 7 additions and 0 deletions

View File

@ -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);

View File

@ -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<Item>).getValue(buff.readInt()) as QuantumBatteryItem,