Add teleposer blacklist

This commit is contained in:
TehNut 2015-02-20 13:37:48 -08:00
parent c46141f0e7
commit 6b3863bea4
3 changed files with 36 additions and 1 deletions

View file

@ -34,6 +34,9 @@ public class BloodMagicConfiguration
public static final String CATEGORY_GAMEPLAY = "gameplay";
public static String[] teleposerBlacklist;
public static String[] blacklist = {};
public static void init(File configFile)
{
for (String s : DEFAULT_COLOR_LIST.split(";"))
@ -136,7 +139,9 @@ public class BloodMagicConfiguration
AlchemicalWizardry.ritualDisabledSpawnWard = config.get("Ritual Blacklist", "Ward of Sacrosanctity", false).getBoolean(false);
AlchemicalWizardry.ritualDisabledVeilOfEvil = config.get("Ritual Blacklist", "Veil of Evil", false).getBoolean(false);
AlchemicalWizardry.ritualDisabledFullStomach = config.get("Ritual Blacklist", "Requiem of the Satiated Stomach", false).getBoolean(false);
teleposerBlacklist = config.get("Teleposer Blacklist", "Blacklist", blacklist, "Stops specified blocks from being teleposed. Put entries on new lines. Valid syntax is: \nmodid:blockname:meta").getStringList();
String tempDemonConfigs = "Demon Configs";
TEDemonPortal.buildingGridDelay = config.get(tempDemonConfigs, "Building Grid Delay", 25).getInt();
TEDemonPortal.roadGridDelay = config.get(tempDemonConfigs, "Road Grid Delay", 10).getInt();

View file

@ -30,6 +30,8 @@ public class ConfigGui extends GuiConfig {
list.add(new ConfigElement<ConfigCategory>(config.getCategory("wellofsufferingblacklist".toLowerCase())));
list.add(new ConfigElement<ConfigCategory>(config.getCategory("wimpysettings".toLowerCase())));
list.add(new ConfigElement<ConfigCategory>(config.getCategory("ritual blacklist".toLowerCase())));
list.add(new ConfigElement<ConfigCategory>(config.getCategory("teleposer blacklist".toLowerCase())));
list.add(new ConfigElement<ConfigCategory>(config.getCategory("demon configs".toLowerCase())));
return list;
}

View file

@ -6,6 +6,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import WayofTime.alchemicalWizardry.api.event.TeleposeEvent;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IProjectile;
@ -31,6 +33,7 @@ import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn;
import net.minecraftforge.oredict.OreDictionary;
import vazkii.botania.api.internal.IManaBurst;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.BloodMagicConfiguration;
@ -676,6 +679,31 @@ public class AlchemicalWizardryEventHooks
}
}
@SubscribeEvent(priority = EventPriority.LOWEST)
public void onTelepose(TeleposeEvent event) {
for (int i = 0; i < BloodMagicConfiguration.teleposerBlacklist.length; i++) {
String[] blockData = BloodMagicConfiguration.teleposerBlacklist[i].split(":");
if (blockData.length == 3) {
Block block = GameRegistry.findBlock(blockData[0], blockData[1]);
int meta;
// Check if it's an int, if so, parse it. If not, set to 0 to avoid crashing.
if (blockData[2].matches("-?\\d+"))
meta = Integer.parseInt(blockData[2]);
else if (blockData[2].equals("*"))
meta = OreDictionary.WILDCARD_VALUE;
else
meta = 0;
if (block != null)
if (( block == event.initialBlock || block == event.finalBlock) && ( meta == event.initialMetadata || meta == event.finalMetadata || meta == OreDictionary.WILDCARD_VALUE))
event.setCanceled(true);
}
}
}
@SubscribeEvent
public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) {
if (event.modID.equals("AWWayofTime")) {