From 351aa3e74c47c6f44e6fc121d3314cea6950857b Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 9 Jan 2016 18:05:21 -0800 Subject: [PATCH] Implement Entity blacklist for WoS --- .../WayofTime/bloodmagic/ConfigHandler.java | 8 ++++++++ .../client/gui/config/ConfigGui.java | 1 + .../ritual/RitualWellOfSuffering.java | 20 +++++++++++-------- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/ConfigHandler.java b/src/main/java/WayofTime/bloodmagic/ConfigHandler.java index 861dd353..367cbe73 100644 --- a/src/main/java/WayofTime/bloodmagic/ConfigHandler.java +++ b/src/main/java/WayofTime/bloodmagic/ConfigHandler.java @@ -14,6 +14,7 @@ import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; import java.io.File; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -32,6 +33,9 @@ public class ConfigHandler public static List itemBlacklist; public static List blockBlacklist; + // Well of Suffering Blacklist + public static List wellOfSufferingBlacklist; + // Potion ID's public static int customPotionDrowningID; public static int customPotionBoostID; @@ -112,6 +116,10 @@ public class ConfigHandler teleposerBlacklisting = config.getStringList("teleposerBlacklist", category, new String[] { "minecraft:bedrock" }, "Stops specified blocks from being teleposed. Put entries on new lines. Valid syntax is:\nmodid:blockname:meta"); buildTeleposerBlacklist(); + category = "Well of Suffering Blacklist"; + config.addCustomCategoryComment(category, "Entity blacklisting from WoS"); + wellOfSufferingBlacklist = Arrays.asList(config.getStringList("wellOfSufferingBlacklist", category, new String[] {}, "Use the class name of the Entity to blacklist it from usage.\nIE: EntityWolf, EntityWitch, etc")); + category = "Potions"; config.addCustomCategoryComment(category, "Potion settings"); config.addCustomCategoryComment(category + ".id", "Potion ID settings"); diff --git a/src/main/java/WayofTime/bloodmagic/client/gui/config/ConfigGui.java b/src/main/java/WayofTime/bloodmagic/client/gui/config/ConfigGui.java index ff6b751b..81c444d9 100644 --- a/src/main/java/WayofTime/bloodmagic/client/gui/config/ConfigGui.java +++ b/src/main/java/WayofTime/bloodmagic/client/gui/config/ConfigGui.java @@ -28,6 +28,7 @@ public class ConfigGui extends GuiConfig list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("Potions".toLowerCase()))); list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("Compatibility".toLowerCase()))); list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("Teleposer Blacklist".toLowerCase()))); + list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("Well of Suffering Blacklist".toLowerCase()))); list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("Item/Block Blacklisting".toLowerCase()))); list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("General".toLowerCase()))); list.add(new ConfigElement(ConfigHandler.getConfig().getCategory("Rituals".toLowerCase()))); diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java index a590ec91..2d4f882a 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.ritual; import java.util.ArrayList; import java.util.List; +import WayofTime.bloodmagic.ConfigHandler; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -87,17 +88,20 @@ public class RitualWellOfSuffering extends Ritual for (EntityLivingBase entity : entities) { - if (entity.isEntityAlive() && !(entity instanceof EntityPlayer)) + if (!ConfigHandler.wellOfSufferingBlacklist.contains(entity.getClass().getSimpleName())) { - if (entity.attackEntityFrom(DamageSource.outOfWorld, 1)) + if (entity.isEntityAlive() && !(entity instanceof EntityPlayer)) { - tileAltar.sacrificialDaggerCall(SACRIFICE_AMOUNT, true); - - totalEffects++; - - if (totalEffects >= maxEffects) + if (entity.attackEntityFrom(DamageSource.outOfWorld, 1)) { - break; + tileAltar.sacrificialDaggerCall(SACRIFICE_AMOUNT, true); + + totalEffects++; + + if (totalEffects >= maxEffects) + { + break; + } } } }