From bcd31696273ea5c87c968188974b8178b11aed0b Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Fri, 27 Feb 2015 23:27:17 +0000 Subject: [PATCH] Implemented regex based fake player checking. Not 100%, but should catch most of them. --- .../java/vazkii/botania/common/entity/EntityDoppleganger.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/vazkii/botania/common/entity/EntityDoppleganger.java b/src/main/java/vazkii/botania/common/entity/EntityDoppleganger.java index ae6fc8c5b..2750b648b 100644 --- a/src/main/java/vazkii/botania/common/entity/EntityDoppleganger.java +++ b/src/main/java/vazkii/botania/common/entity/EntityDoppleganger.java @@ -14,6 +14,7 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.regex.Pattern; import net.minecraft.block.Block; import net.minecraft.entity.Entity; @@ -248,6 +249,7 @@ public class EntityDoppleganger extends EntityCreature implements IBotaniaBossWi return false; } + private static final Pattern FAKE_PLAYER_PATTERN = Pattern.compile("^(?:\\[.*\\])|(?:ComputerCraft)$"); public static boolean isTruePlayer(Entity e) { if(!(e instanceof EntityPlayer)) return false; @@ -255,7 +257,7 @@ public class EntityDoppleganger extends EntityCreature implements IBotaniaBossWi EntityPlayer player = (EntityPlayer) e; String name = player.getCommandSenderName(); - return !(player instanceof FakePlayer || name.contains("[CoFH]") || name.contains("[Thaumcraft")); + return !(player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(name).matches()); } @Override