From 2d6b4611efac70022096425ef24831f42a021ff6 Mon Sep 17 00:00:00 2001 From: Nick Date: Fri, 22 Jan 2016 17:19:01 -0800 Subject: [PATCH] Attempt 2 at fakeplayer lookup fix Removes the name checker and is now based on class names. --- .../bloodmagic/api/util/helper/PlayerHelper.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 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 3422233a..d6b245d4 100644 --- a/src/main/java/WayofTime/bloodmagic/api/util/helper/PlayerHelper.java +++ b/src/main/java/WayofTime/bloodmagic/api/util/helper/PlayerHelper.java @@ -4,6 +4,7 @@ import WayofTime.bloodmagic.api.Constants; import com.google.common.base.Strings; +import com.google.common.collect.Lists; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; @@ -14,12 +15,18 @@ import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; +import java.util.ArrayList; import java.util.UUID; -import java.util.regex.Pattern; public class PlayerHelper { - private static final Pattern FAKE_PLAYER_PATTERN = Pattern.compile("^(?:\\[.*\\])|(?:ComputerCraft)$"); + /** + * A list of all known fake players that do not extend FakePlayer. + * + * Will be added to as needed. + */ + private static final ArrayList knownFakePlayers = Lists.newArrayList( + ); public static String getUsernameFromPlayer(EntityPlayer player) { @@ -68,7 +75,7 @@ public class PlayerHelper public static boolean isFakePlayer(EntityPlayer player) { - return player != null && (player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(getUsernameFromPlayer(player)).matches()); + return player != null && (player instanceof FakePlayer || knownFakePlayers.contains(player.getClass().getCanonicalName())); } public static void causeNauseaToPlayer(ItemStack stack)