From 340cfe631f7963057d1da56175fce4d48c46a4ec Mon Sep 17 00:00:00 2001 From: Adubbz Date: Mon, 23 Dec 2013 09:10:49 +1100 Subject: [PATCH] *Hopefully* added support for respawning with Natura installed --- .../world/ChunkProviderBOPNaturaHell.java | 54 +++++++++++++------ 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/src/main/java/biomesoplenty/world/ChunkProviderBOPNaturaHell.java b/src/main/java/biomesoplenty/world/ChunkProviderBOPNaturaHell.java index 826974ecb..36cd74bfe 100644 --- a/src/main/java/biomesoplenty/world/ChunkProviderBOPNaturaHell.java +++ b/src/main/java/biomesoplenty/world/ChunkProviderBOPNaturaHell.java @@ -1,18 +1,12 @@ package biomesoplenty.world; -import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SHROOM; -import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_BRIDGE; -import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_CAVE; -import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.FIRE; -import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.GLOWSTONE; -import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.NETHER_LAVA; - -import java.util.List; -import java.util.Random; - +import biomesoplenty.worldgen.WorldGenFlowersMeta; +import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockSand; import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.IProgressUpdate; import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; @@ -22,12 +16,7 @@ import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.MapGenBase; import net.minecraft.world.gen.MapGenCavesHell; import net.minecraft.world.gen.NoiseGeneratorOctaves; -import net.minecraft.world.gen.feature.WorldGenFire; -import net.minecraft.world.gen.feature.WorldGenFlowers; -import net.minecraft.world.gen.feature.WorldGenGlowStone1; -import net.minecraft.world.gen.feature.WorldGenGlowStone2; -import net.minecraft.world.gen.feature.WorldGenHellLava; -import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.structure.MapGenNetherBridge; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.Event.Result; @@ -35,7 +24,15 @@ import net.minecraftforge.event.terraingen.ChunkProviderEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; import net.minecraftforge.event.terraingen.PopulateChunkEvent; import net.minecraftforge.event.terraingen.TerrainGen; -import biomesoplenty.worldgen.WorldGenFlowersMeta; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Random; + +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SHROOM; +import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_BRIDGE; +import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.NETHER_CAVE; +import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.*; public class ChunkProviderBOPNaturaHell implements IChunkProvider { @@ -686,6 +683,29 @@ public class ChunkProviderBOPNaturaHell implements IChunkProvider return 0; } + @Override + public int getRespawnDimension (EntityPlayerMP player) + { + try + { + Field canRespawnInNether = ReflectionHelper.findField(Class.forName("mods.natura.common.PHNatura"), new String[] { "canRespawnInNether" }); + + if (canRespawnInNether.getBoolean(canRespawnInNether)) + { + ChunkCoordinates coords = player.getBedLocation(-1); + if (coords != null) + return -1; + } + + } + catch (Exception e) + { + + } + + return 0; + } + @Override public void recreateStructures(int par1, int par2) {