From 5ac78b2dea271e26d28edf7d5ede93ff11fa09a1 Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 13 Jan 2016 13:13:01 -0800 Subject: [PATCH] Should fix fakePlayer lookup NPE #546 I think it's safe to say that if the player is null here, the places we use this check should probably not continue. Will see how it goes. Also added the check to imperfect rituals and removed a redundant check from the dagger. --- .../WayofTime/bloodmagic/api/util/helper/PlayerHelper.java | 2 +- .../java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java | 2 +- .../WayofTime/bloodmagic/tile/TileImperfectRitualStone.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/api/util/helper/PlayerHelper.java b/src/main/java/WayofTime/bloodmagic/api/util/helper/PlayerHelper.java index 64f9e55c..2b1450bd 100644 --- a/src/main/java/WayofTime/bloodmagic/api/util/helper/PlayerHelper.java +++ b/src/main/java/WayofTime/bloodmagic/api/util/helper/PlayerHelper.java @@ -68,7 +68,7 @@ public class PlayerHelper public static boolean isFakePlayer(EntityPlayer player) { - return player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(getUsernameFromPlayer(player)).matches(); + return player != null && player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(getUsernameFromPlayer(player)).matches(); } public static void causeNauseaToPlayer(ItemStack stack) diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java b/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java index caac80de..260b1a41 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemSacrificialDagger.java @@ -123,7 +123,7 @@ public class ItemSacrificialDagger extends Item for (int l = 0; l < 8; ++l) world.spawnParticle(EnumParticleTypes.REDSTONE, posX + Math.random() - Math.random(), posY + Math.random() - Math.random(), posZ + Math.random() - Math.random(), f1, f2, f3); - if (!world.isRemote && PlayerHelper.isFakePlayer(player)) + if (!world.isRemote) return stack; // TODO - Check if SoulFray is active diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileImperfectRitualStone.java b/src/main/java/WayofTime/bloodmagic/tile/TileImperfectRitualStone.java index cc0fd123..b160c32d 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileImperfectRitualStone.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileImperfectRitualStone.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry; import WayofTime.bloodmagic.api.ritual.imperfect.IImperfectRitualStone; import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; +import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import lombok.NoArgsConstructor; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.player.EntityPlayer; @@ -19,8 +20,7 @@ public class TileImperfectRitualStone extends TileEntity implements IImperfectRi @Override public boolean performRitual(World world, BlockPos pos, ImperfectRitual imperfectRitual, EntityPlayer player) { - - if (imperfectRitual != null && ImperfectRitualRegistry.ritualEnabled(imperfectRitual)) + if (!PlayerHelper.isFakePlayer(player) && imperfectRitual != null && ImperfectRitualRegistry.ritualEnabled(imperfectRitual)) { NetworkHelper.getSoulNetwork(player).syphonAndDamage(player, imperfectRitual.getActivationCost()); if (imperfectRitual.onActivate(this, player))