From f8a6fe3d751dc0638ae3daf6f06a96837ce890da Mon Sep 17 00:00:00 2001 From: luisc Date: Sat, 15 Jan 2022 22:49:07 -0600 Subject: [PATCH] Compatibility fix for mods that initialize player or worldobj fields as null. --- .../noppes/npcs/ScriptPlayerEventHandler.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index 334c63465..701a919a3 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -62,6 +62,9 @@ public class ScriptPlayerEventHandler { } @SubscribeEvent public void onServerTick(TickEvent.PlayerTickEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.side == Side.SERVER && event.phase == TickEvent.Phase.START) { EntityPlayer player = event.player; @@ -80,6 +83,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(EntityInteractEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -90,6 +96,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(ArrowNockEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -100,6 +109,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(ArrowLooseEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -110,6 +122,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(BlockEvent.BreakEvent event) { + if(event.getPlayer() == null || event.getPlayer().worldObj == null) + return; + if(!event.getPlayer().worldObj.isRemote && event.world instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.getPlayer()); @@ -121,6 +136,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerUseItemEvent.Start event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -129,6 +147,9 @@ public class ScriptPlayerEventHandler { } @SubscribeEvent public void invoke(PlayerUseItemEvent.Tick event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -137,6 +158,9 @@ public class ScriptPlayerEventHandler { } @SubscribeEvent public void invoke(PlayerUseItemEvent.Stop event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -145,6 +169,9 @@ public class ScriptPlayerEventHandler { } @SubscribeEvent public void invoke(PlayerUseItemEvent.Finish event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -154,6 +181,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerDropsEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -163,6 +193,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerPickupXpEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -172,6 +205,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerEvent.PlayerChangedDimensionEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player); @@ -181,6 +217,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerEvent.ItemPickupEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player); @@ -190,6 +229,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerOpenContainerEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer && !(event.entityPlayer.openContainer instanceof ContainerPlayer)) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -199,6 +241,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(UseHoeEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -208,6 +253,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerSleepInBedEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -217,6 +265,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerWakeUpEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -226,6 +277,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(FillBucketEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -235,6 +289,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(BonemealEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -244,6 +301,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(AchievementEvent event) { + if(event.entityPlayer == null || event.entityPlayer.worldObj == null) + return; + if(event.entityPlayer.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.entityPlayer); @@ -253,6 +313,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(ItemTossEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player); @@ -262,6 +325,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(LivingFallEvent event) { + if(event.entityLiving == null || event.entityLiving.worldObj == null) + return; + if(event.entityLiving.worldObj instanceof WorldServer) { if (event.entityLiving instanceof EntityPlayer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; @@ -273,6 +339,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(LivingEvent.LivingJumpEvent event) { + if(event.entityLiving == null || event.entityLiving.worldObj == null) + return; + if(event.entityLiving.worldObj instanceof WorldServer) { if (event.entityLiving instanceof EntityPlayer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; @@ -284,6 +353,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(EntityStruckByLightningEvent event) { + if(event.entity == null || event.entity.worldObj == null) + return; + if(event.entity.worldObj instanceof WorldServer) { if (event.entity instanceof EntityPlayer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; @@ -295,6 +367,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlaySoundAtEntityEvent event) { + if(event.entity == null || event.entity.worldObj == null) + return; + if(event.entity.worldObj instanceof WorldServer) { if (event.entity instanceof EntityPlayer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; @@ -306,6 +381,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(LivingDeathEvent event) { + if(event.entityLiving == null || event.entityLiving.worldObj == null) + return; + if(event.entityLiving.worldObj instanceof WorldServer) { Entity source = NoppesUtilServer.GetDamageSourcee(event.source); PlayerDataScript handler = ScriptController.Instance.playerScripts; @@ -324,6 +402,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(LivingHurtEvent event) { + if(event.entityLiving == null || event.entityLiving.worldObj == null) + return; + if(event.entityLiving.worldObj instanceof WorldServer) { Entity source = NoppesUtilServer.GetDamageSourcee(event.source); PlayerDataScript handler = ScriptController.Instance.playerScripts; @@ -344,6 +425,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerEvent.PlayerRespawnEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player); @@ -353,6 +437,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerEvent.PlayerLoggedInEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player); @@ -362,6 +449,9 @@ public class ScriptPlayerEventHandler { @SubscribeEvent public void invoke(PlayerEvent.PlayerLoggedOutEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player); @@ -373,6 +463,9 @@ public class ScriptPlayerEventHandler { priority = EventPriority.HIGHEST ) public void invoke(net.minecraftforge.event.ServerChatEvent event) { + if(event.player == null || event.player.worldObj == null) + return; + if(event.player.worldObj instanceof WorldServer && !event.player.equals(EntityNPCInterface.chateventPlayer)) { PlayerDataScript handler = ScriptController.Instance.playerScripts; ScriptPlayer scriptPlayer = (ScriptPlayer) ScriptController.Instance.getScriptForEntity(event.player);