From 3178485ce0bb233503eac16fe40efa465470e169 Mon Sep 17 00:00:00 2001 From: bconlon Date: Mon, 28 Dec 2020 19:04:25 -0800 Subject: [PATCH] Made some of the inebriation packet code a bit more solid, hopefully prevents any issues with it. --- .../entities/effects/PotionInebriation.java | 16 ++++++++++++++-- .../network/packets/PacketSendPoison.java | 17 ++++++++++++++--- .../network/packets/PacketSendPoisonTime.java | 17 ++++++++++++++--- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gildedgames/the_aether/entities/effects/PotionInebriation.java b/src/main/java/com/gildedgames/the_aether/entities/effects/PotionInebriation.java index 1798744..e0f19b7 100644 --- a/src/main/java/com/gildedgames/the_aether/entities/effects/PotionInebriation.java +++ b/src/main/java/com/gildedgames/the_aether/entities/effects/PotionInebriation.java @@ -3,6 +3,7 @@ package com.gildedgames.the_aether.entities.effects; import com.gildedgames.the_aether.Aether; import com.gildedgames.the_aether.AetherConfig; import com.gildedgames.the_aether.api.AetherAPI; +import com.gildedgames.the_aether.api.player.IPlayerAether; import com.gildedgames.the_aether.network.AetherNetwork; import com.gildedgames.the_aether.network.packets.PacketSendPoison; import com.gildedgames.the_aether.player.PlayerAether; @@ -56,8 +57,19 @@ public class PotionInebriation extends Potion { if (this.duration >= 500) { - ((PlayerAether) AetherAPI.get((EntityPlayer) entityLivingBaseIn)).setPoisoned(); - AetherNetwork.sendToAll(new PacketSendPoison((EntityPlayer) entityLivingBaseIn)); + EntityPlayer player = (EntityPlayer) entityLivingBaseIn; + IPlayerAether iPlayerAether = AetherAPI.get(player); + + if (iPlayerAether != null) + { + PlayerAether playerAether = (PlayerAether) iPlayerAether; + + if (!player.worldObj.isRemote) + { + playerAether.setPoisoned(); + AetherNetwork.sendToAll(new PacketSendPoison(player)); + } + } } } } diff --git a/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoison.java b/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoison.java index cf545e1..083afcb 100644 --- a/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoison.java +++ b/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoison.java @@ -1,8 +1,10 @@ package com.gildedgames.the_aether.network.packets; import com.gildedgames.the_aether.api.AetherAPI; +import com.gildedgames.the_aether.api.player.IPlayerAether; import com.gildedgames.the_aether.player.PlayerAether; import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; public class PacketSendPoison extends AetherPacket { @@ -36,11 +38,20 @@ public class PacketSendPoison extends AetherPacket { { if (player != null && player.worldObj != null) { - EntityPlayer parent = (EntityPlayer) player.worldObj.getEntityByID(message.entityID); + Entity entity = player.worldObj.getEntityByID(message.entityID); - if (parent != null) + if (entity instanceof EntityPlayer) { - ((PlayerAether) AetherAPI.get(parent)).setPoisoned(); + EntityPlayer parent = (EntityPlayer) entity; + + IPlayerAether iPlayerAether = AetherAPI.get(parent); + + if (iPlayerAether != null) + { + PlayerAether playerAether = (PlayerAether) iPlayerAether; + + playerAether.setPoisoned(); + } } } } diff --git a/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoisonTime.java b/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoisonTime.java index 7fb9876..d8f607b 100644 --- a/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoisonTime.java +++ b/src/main/java/com/gildedgames/the_aether/network/packets/PacketSendPoisonTime.java @@ -1,8 +1,10 @@ package com.gildedgames.the_aether.network.packets; import com.gildedgames.the_aether.api.AetherAPI; +import com.gildedgames.the_aether.api.player.IPlayerAether; import com.gildedgames.the_aether.player.PlayerAether; import io.netty.buffer.ByteBuf; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; public class PacketSendPoisonTime extends AetherPacket @@ -40,11 +42,20 @@ public class PacketSendPoisonTime extends AetherPacket { if (player != null && player.worldObj != null) { - EntityPlayer parent = (EntityPlayer) player.worldObj.getEntityByID(message.entityID); + Entity entity = player.worldObj.getEntityByID(message.entityID); - if (parent != null) + if (entity instanceof EntityPlayer) { - ((PlayerAether) AetherAPI.get(parent)).poisonTime = message.time; + EntityPlayer parent = (EntityPlayer) entity; + + IPlayerAether iPlayerAether = AetherAPI.get(parent); + + if (iPlayerAether != null) + { + PlayerAether playerAether = (PlayerAether) iPlayerAether; + + playerAether.poisonTime = message.time; + } } } }