I have tried wuppy's dimension tutorials, and I have created my dimension, but with a few problems. The portal is made from sandstone (same shape as the nether portal,) but I spawn far away from the portal (on my dimension) and the portal block (BlockPortalBlock) does not spawn inside the sandstone. Also, the dimension, is all flat land. Does anyone know where i went wrong?
here is my code:
BlockPortalBlock:
package gem_mod;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPortal;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
public class BlockPortalBlock extends BlockPortal
{
public BlockPortalBlock(int id, int texture)
{
super(id);
this.setCreativeTab(CreativeTabs.tabBlock);
}
public String getTextureFile()
{
return "/tutorialblocks.png";
}
public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
}
public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
{
if (par5Entity.ridingEntity == null && par5Entity.riddenByEntity == null)
{
if (par5Entity instanceof EntityPlayerMP)
{
EntityPlayerMP thePlayer = (EntityPlayerMP) par5Entity;
if (par5Entity.dimension != Gem.dimension)
{
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, Gem.dimension, new TeleporterGem(thePlayer.mcServer.worldServerForDimension(Gem.dimension)));
}
else
{
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new TeleporterGem(thePlayer.mcServer.worldServerForDimension(0)));
}
}
}
}
public boolean tryToCreatePortal(World par1World, int par2, int par3, int par4)
{
byte var5 = 0;
byte var6 = 0;
if (par1World.getBlockId(par2 - 1, par3, par4) == Block.sandStone.blockID || par1World.getBlockId(par2 + 1, par3, par4) == Block.sandStone.blockID)
{
var5 = 1;
}
if (par1World.getBlockId(par2, par3, par4 - 1) == Block.sandStone.blockID || par1World.getBlockId(par2, par3, par4 + 1) == Block.sandStone.blockID)
{
var6 = 1;
}
if (var5 == var6)
{
return false;
}
else
{
if (par1World.getBlockId(par2 - var5, par3, par4 - var6) == 0)
{
par2 -= var5;
par4 -= var6;
}
int var7;
int var8;
for (var7 = -1; var7 <= 2; ++var7)
{
for (var8 = -1; var8 <= 3; ++var8)
{
boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3;
if (var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3)
{
int var10 = par1World.getBlockId(par2 + var5 * var7, par3 + var8, par4 + var6 * var7);
if (var9)
{
if (var10 != Block.sandStone.blockID)
{
return false;
}
}
else if (var10 != 0 && var10 != Block.fire.blockID)
{
return false;
}
}
}
}
par1World.scheduledUpdatesAreImmediate = true;
for (var7 = 0; var7 < 2; ++var7)
{
for (var8 = 0; var8 < 3; ++var8)
{
par1World.setBlock(par2 + var5 * var7, par3 + var8, par4 + var6 * var7, this.blockID);
}
}
par1World.scheduledUpdatesAreImmediate = false;
return true;
}
}
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
}
public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
byte var6 = 0;
byte var7 = 1;
if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID)
{
var6 = 1;
var7 = 0;
}
int var8;
for (var8 = par3; par1World.getBlockId(par2, var8 - 1, par4) == this.blockID; --var8)
{
;
}
if (par1World.getBlockId(par2, var8 - 1, par4) != Block.sandStone.blockID)
{
par1World.setBlock(par2, par3, par4, 0);
}
else
{
int var9;
for (var9 = 1; var9 < 4 && par1World.getBlockId(par2, var8 + var9, par4) == this.blockID; ++var9)
{
;
}
if (var9 == 3 && par1World.getBlockId(par2, var8 + var9, par4) == Block.sandStone.blockID)
{
boolean var10 = par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID;
boolean var11 = par1World.getBlockId(par2, par3, par4 - 1) == this.blockID || par1World.getBlockId(par2, par3, par4 + 1) == this.blockID;
if (var10 && var11)
{
par1World.setBlock(par2, par3, par4, 0);
}
else
{
if ((par1World.getBlockId(par2 + var6, par3, par4 + var7) != Block.sandStone.blockID || par1World.getBlockId(par2 - var6, par3, par4 - var7) != this.blockID) && (par1World.getBlockId(par2 - var6, par3, par4 - var7) != Block.sandStone.blockID || par1World.getBlockId(par2 + var6, par3, par4 + var7) != this.blockID))
{
par1World.setBlock(par2, par3, par4, 0);
}
}
}
else
{
par1World.setBlock(par2, par3, par4, 0);
}
}
}
}
ChunkProviderGem:
package gem_mod;
import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.CAVE;
import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.MINESHAFT;
import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.RAVINE;
import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.SCATTERED_FEATURE;
import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.STRONGHOLD;
import static net.minecraftforge.event.terraingen.InitMapGenEvent.EventType.VILLAGE;
import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.DUNGEON;
import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.ICE;
import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAKE;
import static net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType.LAVA;
import java.util.List;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSand;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.util.IProgressUpdate;
import net.minecraft.util.MathHelper;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.SpawnerAnimals;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.MapGenBase;
import net.minecraft.world.gen.MapGenCaves;
import net.minecraft.world.gen.MapGenRavine;
import net.minecraft.world.gen.NoiseGeneratorOctaves;
import net.minecraft.world.gen.feature.MapGenScatteredFeature;
import net.minecraft.world.gen.feature.WorldGenDungeons;
import net.minecraft.world.gen.feature.WorldGenLakes;
import net.minecraft.world.gen.structure.MapGenMineshaft;
import net.minecraft.world.gen.structure.MapGenStronghold;
import net.minecraft.world.gen.structure.MapGenVillage;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.Event.Result;
import net.minecraftforge.event.terraingen.ChunkProviderEvent;
import net.minecraftforge.event.terraingen.PopulateChunkEvent;
import net.minecraftforge.event.terraingen.TerrainGen;
public class ChunkProviderGem implements IChunkProvider
{
/** RNG. */
private Random rand;
/** A NoiseGeneratorOctaves used in generating terrain */
private NoiseGeneratorOctaves noiseGen1;
/** A NoiseGeneratorOctaves used in generating terrain */
private NoiseGeneratorOctaves noiseGen2;
/** A NoiseGeneratorOctaves used in generating terrain */
private NoiseGeneratorOctaves noiseGen3;
/** A NoiseGeneratorOctaves used in generating terrain */
private NoiseGeneratorOctaves noiseGen4;
/** A NoiseGeneratorOctaves used in generating terrain */
public NoiseGeneratorOctaves noiseGen5;
/** A NoiseGeneratorOctaves used in generating terrain */
public NoiseGeneratorOctaves noiseGen6;
public NoiseGeneratorOctaves mobSpawnerNoise;
/** Reference to the World object. */
private World worldObj;
/** are map structures going to be generated (e.g. strongholds) */
private final boolean mapFeaturesEnabled;
/** Holds the overall noise array used in chunk generation */
private double[] noiseArray;
private double[] stoneNoise = new double[256];
private MapGenBase caveGenerator = new MapGenCaves();
/** Holds Stronghold Generator */
private MapGenStronghold strongholdGenerator = new MapGenStronghold();
/** Holds Village Generator */
private MapGenVillage villageGenerator = new MapGenVillage();
/** Holds Mineshaft Generator */
private MapGenMineshaft mineshaftGenerator = new MapGenMineshaft();
private MapGenScatteredFeature scatteredFeatureGenerator = new MapGenScatteredFeature();
/** Holds ravine generator */
private MapGenBase ravineGenerator = new MapGenRavine();
/** The biomes that are used to generate the chunk */
private BiomeGenBase[] biomesForGeneration;
/** A double array that hold terrain noise from noiseGen3 */
double[] noise3;
/** A double array that hold terrain noise */
double[] noise1;
/** A double array that hold terrain noise from noiseGen2 */
double[] noise2;
/** A double array that hold terrain noise from noiseGen5 */
double[] noise5;
/** A double array that holds terrain noise from noiseGen6 */
double[] noise6;
/**
* Used to store the 5x5 parabolic field that is used during terrain generation.
*/
float[] parabolicField;
int[][] field_73219_j = new int[32][32];
{
caveGenerator = TerrainGen.getModdedMapGen(caveGenerator, CAVE);
strongholdGenerator = (MapGenStronghold) TerrainGen.getModdedMapGen(strongholdGenerator, STRONGHOLD);
villageGenerator = (MapGenVillage) TerrainGen.getModdedMapGen(villageGenerator, VILLAGE);
mineshaftGenerator = (MapGenMineshaft) TerrainGen.getModdedMapGen(mineshaftGenerator, MINESHAFT);
scatteredFeatureGenerator = (MapGenScatteredFeature) TerrainGen.getModdedMapGen(scatteredFeatureGenerator, SCATTERED_FEATURE);
ravineGenerator = TerrainGen.getModdedMapGen(ravineGenerator, RAVINE);
}
public ChunkProviderGem(World par1World, long par2, boolean par4)
{
this.worldObj = par1World;
this.mapFeaturesEnabled = par4;
this.rand = new Random(par2);
this.noiseGen1 = new NoiseGeneratorOctaves(this.rand, 16);
this.noiseGen2 = new NoiseGeneratorOctaves(this.rand, 16);
this.noiseGen3 = new NoiseGeneratorOctaves(this.rand, 8);
this.noiseGen4 = new NoiseGeneratorOctaves(this.rand, 4);
this.noiseGen5 = new NoiseGeneratorOctaves(this.rand, 10);
this.noiseGen6 = new NoiseGeneratorOctaves(this.rand, 16);
this.mobSpawnerNoise = new NoiseGeneratorOctaves(this.rand, 8);
NoiseGeneratorOctaves[] noiseGens = {noiseGen1, noiseGen2, noiseGen3, noiseGen4, noiseGen5, noiseGen6, mobSpawnerNoise};
noiseGens = TerrainGen.getModdedNoiseGenerators(par1World, this.rand, noiseGens);
this.noiseGen1 = noiseGens[0];
this.noiseGen2 = noiseGens[1];
this.noiseGen3 = noiseGens[2];
this.noiseGen4 = noiseGens[3];
this.noiseGen5 = noiseGens[4];
this.noiseGen6 = noiseGens[5];
this.mobSpawnerNoise = noiseGens[6];
}
/**
* Generates the shape of the terrain for the chunk though its all stone though the water is frozen if the
* temperature is low enough
*/
public void generateTerrain(int par1, int par2, byte[] par3ArrayOfByte)
{
byte var4 = 4;
byte var5 = 16;
byte var6 = 63;
int var7 = var4 + 1;
byte var8 = 17;
int var9 = var4 + 1;
this.biomesForGeneration = this.worldObj.getWorldChunkManager().getBiomesForGeneration(this.biomesForGeneration, par1 * 4 - 2, par2 * 4 - 2, var7 + 5, var9 + 5);
this.noiseArray = this.initializeNoiseField(this.noiseArray, par1 * var4, 0, par2 * var4, var7, var8, var9);
for (int var10 = 0; var10 < var4; ++var10)
{
for (int var11 = 0; var11 < var4; ++var11)
{
for (int var12 = 0; var12 < var5; ++var12)
{
double var13 = 0.125D;
double var15 = this.noiseArray[((var10 + 0) * var9 + var11 + 0) * var8 + var12 + 0];
double var17 = this.noiseArray[((var10 + 0) * var9 + var11 + 1) * var8 + var12 + 0];
double var19 = this.noiseArray[((var10 + 1) * var9 + var11 + 0) * var8 + var12 + 0];
double var21 = this.noiseArray[((var10 + 1) * var9 + var11 + 1) * var8 + var12 + 0];
double var23 = (this.noiseArray[((var10 + 0) * var9 + var11 + 0) * var8 + var12 + 1] - var15) * var13;
double var25 = (this.noiseArray[((var10 + 0) * var9 + var11 + 1) * var8 + var12 + 1] - var17) * var13;
double var27 = (this.noiseArray[((var10 + 1) * var9 + var11 + 0) * var8 + var12 + 1] - var19) * var13;
double var29 = (this.noiseArray[((var10 + 1) * var9 + var11 + 1) * var8 + var12 + 1] - var21) * var13;
for (int var31 = 0; var31 < 8; ++var31)
{
double var32 = 0.25D;
double var34 = var15;
double var36 = var17;
double var38 = (var19 - var15) * var32;
double var40 = (var21 - var17) * var32;
for (int var42 = 0; var42 < 4; ++var42)
{
int var43 = var42 + var10 * 4 << 11 | 0 + var11 * 4 << 7 | var12 * 8 + var31;
short var44 = 128;
var43 -= var44;
double var45 = 0.25D;
double var49 = (var36 - var34) * var45;
double var47 = var34 - var49;
for (int var51 = 0; var51 < 4; ++var51)
{
if ((var47 += var49) > 0.0D)
{
par3ArrayOfByte[var43 += var44] = (byte)Block.stone.blockID;
}
else if (var12 * 8 + var31 < var6)
{
par3ArrayOfByte[var43 += var44] = (byte)Block.waterStill.blockID;
}
else
{
par3ArrayOfByte[var43 += var44] = 0;
}
}
var34 += var38;
var36 += var40;
}
var15 += var23;
var17 += var25;
var19 += var27;
var21 += var29;
}
}
}
}
}
/**
* Replaces the stone that was placed in with blocks that match the biome
*/
public void replaceBlocksForBiome(int par1, int par2, byte[] par3ArrayOfByte, BiomeGenBase[] par4ArrayOfBiomeGenBase)
{
ChunkProviderEvent.ReplaceBiomeBlocks event = new ChunkProviderEvent.ReplaceBiomeBlocks(this, par1, par2, par3ArrayOfByte, par4ArrayOfBiomeGenBase);
MinecraftForge.EVENT_BUS.post(event);
if (event.getResult() == Result.DENY) return;
byte var5 = 63;
double var6 = 0.03125D;
this.stoneNoise = this.noiseGen4.generateNoiseOctaves(this.stoneNoise, par1 * 16, par2 * 16, 0, 16, 16, 1, var6 * 2.0D, var6 * 2.0D, var6 * 2.0D);
for (int var8 = 0; var8 < 16; ++var8)
{
for (int var9 = 0; var9 < 16; ++var9)
{
BiomeGenBase var10 = par4ArrayOfBiomeGenBase[var9 + var8 * 16];
float var11 = var10.getFloatTemperature();
int var12 = (int)(this.stoneNoise[var8 + var9 * 16] / 3.0D + 3.0D + this.rand.nextDouble() * 0.25D);
int var13 = -1;
byte var14 = var10.topBlock;
byte var15 = var10.fillerBlock;
for (int var16 = 127; var16 >= 0; --var16)
{
int var17 = (var9 * 16 + var8) * 128 + var16;
if (var16 <= 0 + this.rand.nextInt(5))
{
par3ArrayOfByte[var17] = (byte)Block.bedrock.blockID;
}
else
{
byte var18 = par3ArrayOfByte[var17];
if (var18 == 0)
{
var13 = -1;
}
else if (var18 == Block.stone.blockID)
{
if (var13 == -1)
{
if (var12 <= 0)
{
var14 = 0;
var15 = (byte)Block.stone.blockID;
}
else if (var16 >= var5 - 4 && var16 <= var5 + 1)
{
var14 = var10.topBlock;
var15 = var10.fillerBlock;
}
if (var16 < var5 && var14 == 0)
{
if (var11 < 0.15F)
{
var14 = (byte)Block.ice.blockID;
}
else
{
var14 = (byte)Block.waterStill.blockID;
}
}
var13 = var12;
if (var16 >= var5 - 1)
{
par3ArrayOfByte[var17] = var14;
}
else
{
par3ArrayOfByte[var17] = var15;
}
}
else if (var13 > 0)
{
--var13;
par3ArrayOfByte[var17] = var15;
if (var13 == 0 && var15 == Block.sand.blockID)
{
var13 = this.rand.nextInt(4);
var15 = (byte)Block.sandStone.blockID;
}
}
}
}
}
}
}
}
/**
* loads or generates the chunk at the chunk location specified
*/
public Chunk loadChunk(int par1, int par2)
{
return this.provideChunk(par1, par2);
}
/**
* Will return back a chunk, if it doesn't exist and its not a MP client it will generates all the blocks for the
* specified chunk from the map seed and chunk seed
*/
public Chunk provideChunk(int par1, int par2)
{
this.rand.setSeed((long)par1 * 341873128712L + (long)par2 * 132897987541L);
byte[] var3 = new byte[32768];
this.generateTerrain(par1, par2, var3);
this.biomesForGeneration = this.worldObj.getWorldChunkManager().loadBlockGeneratorData(this.biomesForGeneration, par1 * 16, par2 * 16, 16, 16);
this.replaceBlocksForBiome(par1, par2, var3, this.biomesForGeneration);
this.caveGenerator.generate(this, this.worldObj, par1, par2, var3);
this.ravineGenerator.generate(this, this.worldObj, par1, par2, var3);
if (this.mapFeaturesEnabled)
{
this.mineshaftGenerator.generate(this, this.worldObj, par1, par2, var3);
this.villageGenerator.generate(this, this.worldObj, par1, par2, var3);
this.strongholdGenerator.generate(this, this.worldObj, par1, par2, var3);
this.scatteredFeatureGenerator.generate(this, this.worldObj, par1, par2, var3);
}
Chunk var4 = new Chunk(this.worldObj, var3, par1, par2);
byte[] var5 = var4.getBiomeArray();
for (int var6 = 0; var6 < var5.length; ++var6)
{
var5[var6] = (byte)this.biomesForGeneration[var6].biomeID;
}
var4.generateSkylightMap();
return var4;
}
/**
* generates a subset of the level's terrain data. Takes 7 arguments: the [empty] noise array, the position, and the
* size.
*/
private double[] initializeNoiseField(double[] par1ArrayOfDouble, int par2, int par3, int par4, int par5, int par6, int par7)
{
ChunkProviderEvent.InitNoiseField event = new ChunkProviderEvent.InitNoiseField(this, par1ArrayOfDouble, par2, par3, par4, par5, par6, par7);
MinecraftForge.EVENT_BUS.post(event);
if (event.getResult() == Result.DENY) return event.noisefield;
if (par1ArrayOfDouble == null)
{
par1ArrayOfDouble = new double[par5 * par6 * par7];
}
if (this.parabolicField == null)
{
this.parabolicField = new float[25];
for (int var8 = -2; var8 <= 2; ++var8)
{
for (int var9 = -2; var9 <= 2; ++var9)
{
float var10 = 10.0F / MathHelper.sqrt_float((float)(var8 * var8 + var9 * var9) + 0.2F);
this.parabolicField[var8 + 2 + (var9 + 2) * 5] = var10;
}
}
}
double var44 = 684.412D;
double var45 = 684.412D;
this.noise5 = this.noiseGen5.generateNoiseOctaves(this.noise5, par2, par4, par5, par7, 1.121D, 1.121D, 0.5D);
this.noise6 = this.noiseGen6.generateNoiseOctaves(this.noise6, par2, par4, par5, par7, 200.0D, 200.0D, 0.5D);
this.noise3 = this.noiseGen3.generateNoiseOctaves(this.noise3, par2, par3, par4, par5, par6, par7, var44 / 80.0D, var45 / 160.0D, var44 / 80.0D);
this.noise1 = this.noiseGen1.generateNoiseOctaves(this.noise1, par2, par3, par4, par5, par6, par7, var44, var45, var44);
this.noise2 = this.noiseGen2.generateNoiseOctaves(this.noise2, par2, par3, par4, par5, par6, par7, var44, var45, var44);
boolean var43 = false;
boolean var42 = false;
int var12 = 0;
int var13 = 0;
for (int var14 = 0; var14 < par5; ++var14)
{
for (int var15 = 0; var15 < par7; ++var15)
{
float var16 = 0.0F;
float var17 = 0.0F;
float var18 = 0.0F;
byte var19 = 2;
BiomeGenBase var20 = this.biomesForGeneration[var14 + 2 + (var15 + 2) * (par5 + 5)];
for (int var21 = -var19; var21 <= var19; ++var21)
{
for (int var22 = -var19; var22 <= var19; ++var22)
{
BiomeGenBase var23 = this.biomesForGeneration[var14 + var21 + 2 + (var15 + var22 + 2) * (par5 + 5)];
float var24 = this.parabolicField[var21 + 2 + (var22 + 2) * 5] / (var23.minHeight + 2.0F);
if (var23.minHeight > var20.minHeight)
{
var24 /= 2.0F;
}
var16 += var23.maxHeight * var24;
var17 += var23.minHeight * var24;
var18 += var24;
}
}
var16 /= var18;
var17 /= var18;
var16 = var16 * 0.9F + 0.1F;
var17 = (var17 * 4.0F - 1.0F) / 8.0F;
double var47 = this.noise6[var13] / 8000.0D;
if (var47 < 0.0D)
{
var47 = -var47 * 0.3D;
}
var47 = var47 * 3.0D - 2.0D;
if (var47 < 0.0D)
{
var47 /= 2.0D;
if (var47 < -1.0D)
{
var47 = -1.0D;
}
var47 /= 1.4D;
var47 /= 2.0D;
}
else
{
if (var47 > 1.0D)
{
var47 = 1.0D;
}
var47 /= 8.0D;
}
++var13;
for (int var46 = 0; var46 < par6; ++var46)
{
double var48 = (double)var17;
double var26 = (double)var16;
var48 += var47 * 0.2D;
var48 = var48 * (double)par6 / 16.0D;
double var28 = (double)par6 / 2.0D + var48 * 4.0D;
double var30 = 0.0D;
double var32 = ((double)var46 - var28) * 12.0D * 128.0D / 128.0D / var26;
if (var32 < 0.0D)
{
var32 *= 4.0D;
}
double var34 = this.noise1[var12] / 512.0D;
double var36 = this.noise2[var12] / 512.0D;
double var38 = (this.noise3[var12] / 10.0D + 1.0D) / 2.0D;
if (var38 < 0.0D)
{
var30 = var34;
}
else if (var38 > 1.0D)
{
var30 = var36;
}
else
{
var30 = var34 + (var36 - var34) * var38;
}
var30 -= var32;
if (var46 > par6 - 4)
{
double var40 = (double)((float)(var46 - (par6 - 4)) / 3.0F);
var30 = var30 * (1.0D - var40) + -10.0D * var40;
}
par1ArrayOfDouble[var12] = var30;
++var12;
}
}
}
return par1ArrayOfDouble;
}
/**
* Checks to see if a chunk exists at x, y
*/
public boolean chunkExists(int par1, int par2)
{
return true;
}
/**
* Populates chunk with ores etc etc
*/
public void populate(IChunkProvider par1IChunkProvider, int par2, int par3)
{
BlockSand.fallInstantly = true;
int var4 = par2 * 16;
int var5 = par3 * 16;
BiomeGenBase var6 = this.worldObj.getBiomeGenForCoords(var4 + 16, var5 + 16);
this.rand.setSeed(this.worldObj.getSeed());
long var7 = this.rand.nextLong() / 2L * 2L + 1L;
long var9 = this.rand.nextLong() / 2L * 2L + 1L;
this.rand.setSeed((long)par2 * var7 + (long)par3 * var9 ^ this.worldObj.getSeed());
boolean var11 = false;
MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Pre(par1IChunkProvider, worldObj, rand, par2, par3, var11));
if (this.mapFeaturesEnabled)
{
this.mineshaftGenerator.generateStructuresInChunk(this.worldObj, this.rand, par2, par3);
var11 = this.villageGenerator.generateStructuresInChunk(this.worldObj, this.rand, par2, par3);
this.strongholdGenerator.generateStructuresInChunk(this.worldObj, this.rand, par2, par3);
this.scatteredFeatureGenerator.generateStructuresInChunk(this.worldObj, this.rand, par2, par3);
}
int var12;
int var13;
int var14;
if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, var11, LAKE) &&
!var11 && this.rand.nextInt(4) == 0)
{
var12 = var4 + this.rand.nextInt(16) + 8;
var13 = this.rand.nextInt(128);
var14 = var5 + this.rand.nextInt(16) + 8;
(new WorldGenLakes(Block.waterStill.blockID)).generate(this.worldObj, this.rand, var12, var13, var14);
}
if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, var11, LAVA) &&
!var11 && this.rand.nextInt(8) == 0)
{
var12 = var4 + this.rand.nextInt(16) + 8;
var13 = this.rand.nextInt(this.rand.nextInt(120) + 8);
var14 = var5 + this.rand.nextInt(16) + 8;
if (var13 < 63 || this.rand.nextInt(10) == 0)
{
(new WorldGenLakes(Block.lavaStill.blockID)).generate(this.worldObj, this.rand, var12, var13, var14);
}
}
boolean doGen = TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, var11, DUNGEON);
for (var12 = 0; doGen && var12 < 8; ++var12)
{
var13 = var4 + this.rand.nextInt(16) + 8;
var14 = this.rand.nextInt(128);
int var15 = var5 + this.rand.nextInt(16) + 8;
if ((new WorldGenDungeons()).generate(this.worldObj, this.rand, var13, var14, var15))
{
;
}
}
var6.decorate(this.worldObj, this.rand, var4, var5);
SpawnerAnimals.performWorldGenSpawning(this.worldObj, var6, var4 + 8, var5 + 8, 16, 16, this.rand);
var4 += 8;
var5 += 8;
doGen = TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, var11, ICE);
for (var12 = 0; doGen && var12 < 16; ++var12)
{
for (var13 = 0; var13 < 16; ++var13)
{
var14 = this.worldObj.getPrecipitationHeight(var4 + var12, var5 + var13);
if (this.worldObj.isBlockFreezable(var12 + var4, var14 - 1, var13 + var5))
{
this.worldObj.setBlock(var12 + var4, var14 - 1, var13 + var5, Block.ice.blockID);
}
if (this.worldObj.canSnowAt(var12 + var4, var14, var13 + var5))
{
this.worldObj.setBlock(var12 + var4, var14, var13 + var5, Block.snow.blockID);
}
}
}
MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Post(par1IChunkProvider, worldObj, rand, par2, par3, var11));
BlockSand.fallInstantly = false;
}
/**
* Two modes of operation: if passed true, save all Chunks in one go. If passed false, save up to two chunks.
* Return true if all chunks have been saved.
*/
public boolean saveChunks(boolean par1, IProgressUpdate par2IProgressUpdate)
{
return true;
}
/**
* Unloads the 100 oldest chunks from memory, due to a bug with chunkSet.add() never being called it thinks the list
* is always empty and will not remove any chunks.
*/
public boolean unload100OldestChunks()
{
return false;
}
/**
* Returns if the IChunkProvider supports saving.
*/
public boolean canSave()
{
return true;
}
/**
* Converts the instance data to a readable string.
*/
public String makeString()
{
return "RandomLevelSource";
}
/**
* Returns a list of creatures of the specified type that can spawn at the given location.
*/
public List getPossibleCreatures(EnumCreatureType par1EnumCreatureType, int par2, int par3, int par4)
{
BiomeGenBase var5 = this.worldObj.getBiomeGenForCoords(par2, par4);
return var5 == null ? null : (var5 == BiomeGenBase.swampland && par1EnumCreatureType == EnumCreatureType.monster && this.scatteredFeatureGenerator.hasStructureAt(par2, par3, par4) ? this.scatteredFeatureGenerator.getScatteredFeatureSpawnList() : var5.getSpawnableList(par1EnumCreatureType));
}
/**
* Returns the location of the closest structure of the specified type. If not found returns null.
*/
public ChunkPosition findClosestStructure(World par1World, String par2Str, int par3, int par4, int par5)
{
return "Stronghold".equals(par2Str) && this.strongholdGenerator != null ? this.strongholdGenerator.getNearestInstance(par1World, par3, par4, par5) : null;
}
public int getLoadedChunkCount()
{
return 0;
}
public void recreateStructures(int par1, int par2)
{
if (this.mapFeaturesEnabled)
{
this.mineshaftGenerator.generate(this, this.worldObj, par1, par2, (byte[])null);
this.villageGenerator.generate(this, this.worldObj, par1, par2, (byte[])null);
this.strongholdGenerator.generate(this, this.worldObj, par1, par2, (byte[])null);
this.scatteredFeatureGenerator.generate(this, this.worldObj, par1, par2, (byte[])null);
}
}
@Override
public boolean unloadQueuedChunks() {
// TODO Auto-generated method stub
return false;
}
}
Sorry about putting the "Teleporter" in the first post, it was a mistake. Anyway, to add to the list of problems, the portal does not spawn in the over world when I return from my dimension. And the portalblock doesn't spawn in the portal frame either.
Yeah, I don't know how I missed that line in the world provider. Is this the only line of code in the BlockFire that has to do anything with the portal?
public void onBlockAdded(World par1World, int par2, int par3, int par4)
{
if (par1World.provider.dimensionId > 0 || par1World.getBlockId(par2, par3 - 1, par4) != Block.obsidian.blockID || !Block.portal.tryToCreatePortal(par1World, par2, par3, par4))
{
if (!par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !this.canNeighborBurn(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World) + par1World.rand.nextInt(10));
}
}
}
Because I tried changing it to my block and it didnt work. Is there a tutorial out there to show how to make your own portal activator?
Wuppy also put out a tutorial on a portal placer item. Definitely don't mod the BlockFire class. Wuppy's main 1.4.7 mod page can be found here, and the portal placer item is in text tutorials under Items. Even though it was written for 1.4.7, nearly all of the code will be 1.5.1 compatible.
I tried doing what you said, but when I right click with my portal placer(my version of an Item which places the "GemFire" Block) it creates the block only for a second then disappears When I right click in the sandstone portal (that's what I changed it to be) then it stays there, but crashes.
Crash log:
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Forge Mod Loader version 5.1.10.620 for Minecraft 1.5.1 loading
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Java is Java HotSpot(TM) Client VM, version 1.7.0_17, running on Windows Vista:x86:6.0, installed at C:\Program Files\Java\jre7
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-04-17 10:54:32 [INFO] [STDOUT] 229 recipes
2013-04-17 10:54:32 [INFO] [STDOUT] 27 achievements
2013-04-17 10:54:33 [INFO] [Minecraft-Client] Setting user: Player796
2013-04-17 10:54:33 [INFO] [STDOUT] (Session ID is -)
2013-04-17 10:54:33 [INFO] [STDERR] Client asked for parameter: server
2013-04-17 10:54:33 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-04-17 10:54:33 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-04-17 10:54:33 [INFO] [STDOUT] MinecraftForge v7.7.1.620 Initialized
2013-04-17 10:54:33 [INFO] [ForgeModLoader] MinecraftForge v7.7.1.620 Initialized
2013-04-17 10:54:33 [INFO] [STDOUT] Replaced 85 ore recipies
2013-04-17 10:54:33 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-04-17 10:54:33 [INFO] [ForgeModLoader] Reading custom logging properties from C:\MCP 1.5.1 UPDATED\jars\config\logging.properties
2013-04-17 10:54:33 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-04-17 10:54:33 [INFO] [ForgeModLoader] Searching C:\MCP 1.5.1 UPDATED\jars\mods for mods
2013-04-17 10:54:37 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-04-17 10:54:37 [INFO] [mcp] Activating mod mcp
2013-04-17 10:54:37 [INFO] [FML] Activating mod FML
2013-04-17 10:54:37 [INFO] [Forge] Activating mod Forge
2013-04-17 10:54:37 [INFO] [Gem Mod] Activating mod Gem Mod
2013-04-17 10:54:37 [INFO] [ForgeModLoader] FML has found a non-mod file mods.zip in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.
2013-04-17 10:54:38 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
2013-04-17 10:54:38 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-17 10:54:39 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-17 10:54:40 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-17 10:54:40 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-17 10:54:40 [INFO] [STDOUT] CONFLICT @ 0 item slot already occupied by net.minecraft.item.ItemSpade@5651ca while adding gem_mod.ItemHardened_Cobblestone_Hoe@1f03948
2013-04-17 10:54:40 [INFO] [fml.ItemTracker] The mod Gem Mod is overwriting existing item at 256 (net.minecraft.item.ItemSpade from Minecraft) with gem_mod.ItemHardened_Cobblestone_Hoe
2013-04-17 10:54:40 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
2013-04-17 10:54:40 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-17 10:54:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-17 10:54:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/PortalPlacer.png, but that file does not exist. Ignoring.
2013-04-17 10:54:42 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-17 10:54:42 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-17 10:54:44 [INFO] [Minecraft-Server] Starting integrated minecraft server version 1.5.1
2013-04-17 10:54:44 [INFO] [Minecraft-Server] Generating keypair
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 20 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [Minecraft-Server] Preparing start region for level 0
2013-04-17 10:54:46 [INFO] [Minecraft-Server] Preparing spawn area: 66%
2013-04-17 10:54:47 [INFO] [STDOUT] loading single player
2013-04-17 10:54:47 [INFO] [Minecraft-Server] Player796[/127.0.0.1:0] logged in with entity id 179 at (-8.082147005704137, 71.0, 212.3112640367952)
2013-04-17 10:54:49 [INFO] [STDERR] net.minecraft.util.ReportedException: Ticking memory connection
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-17 10:54:49 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-04-17 10:54:49 [INFO] [STDERR] at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:17)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:553)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:715)
2013-04-17 10:54:49 [INFO] [STDERR] at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
2013-04-17 10:54:49 [INFO] [STDERR] ... 6 more
2013-04-17 10:54:49 [SEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:17)
at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
at net.minecraft.world.World.setBlock(World.java:553)
at net.minecraft.world.World.setBlock(World.java:715)
at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
... 6 more
2013-04-17 10:54:49 [SEVERE] [Minecraft-Server] This crash report has been saved to: C:\MCP 1.5.1 UPDATED\jars\.\crash-reports\crash-2013-04-17_10.54.49-server.txt
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Stopping server
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving players
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving worlds
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 0
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension -1
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 1
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 20
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_STARTED to SERVER_STOPPED. Loading cannot continue
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader]
mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Gem Mod [Gem Mod!] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-04-17 10:54:50 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:799)
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:470)
2013-04-17 10:54:50 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530)
2013-04-17 10:54:50 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-17 10:54:59 [INFO] [Minecraft-Client] Stopping!
2013-04-17 11:00:30 [INFO] [STDERR] Someone is closing me!
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Stopping server
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Saving players
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Saving worlds
If I reopen Minecraft and go into the world that I placed the fire block on, the block stays inside the sandstone frame, but the portal block isn't created.
here is my code:
ItemPortalPlacer
package gem_mod;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class ItemPortalPlacer extends Item
{
public ItemPortalPlacer(int id)
{
super(id);
this.setCreativeTab(CreativeTabs.tabMisc);
}
public String getTextureFile()
{
return "/tutorialitems.png";
}
public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
{
if (par7 == 0)
{
--par5;
}
if (par7 == 1)
{
++par5;
}
if (par7 == 2)
{
--par6;
}
if (par7 == 3)
{
++par6;
}
if (par7 == 4)
{
--par4;
}
if (par7 == 5)
{
++par4;
}
if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack))
{
return false;
}
else
{
int i1 = par3World.getBlockId(par4, par5, par6);
if (i1 == 0)
{
par3World.playSoundEffect((double)par4 + 0.5D, (double)par5 + 0.5D, (double)par6 + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F);
par3World.setBlock(par4, par5, par6, Gem.BlockGemFire.blockID);
}
par1ItemStack.damageItem(1, par2EntityPlayer);
return true;
}}
}
BlockGemFire
package gem_mod;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
public class BlockGemFire extends Block {
public BlockGemFire(int par1, Material par2Material) {
super(par1, par2Material);
}
public void onBlockAdded(World par1World, int par2, int par3, int par4)
{
if (par1World.provider.dimensionId > Gem.dimension || par1World.getBlockId(par2, par3 - 1, par4) != Block.sandStone.blockID || !((BlockPortalBlock) Gem.BlockPortalBlock).tryToCreatePortal(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World) + par1World.rand.nextInt(10));
}
}
}
BlockPortalBlock
package gem_mod;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPortal;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
public class BlockPortalBlock extends BlockPortal
{
public BlockPortalBlock(int id, int texture)
{
super(id);
this.setCreativeTab(CreativeTabs.tabBlock);
}
public String getTextureFile()
{
return "/tutorialblocks.png";
}
public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
}
public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
{
if (par5Entity.ridingEntity == null && par5Entity.riddenByEntity == null)
{
if (par5Entity instanceof EntityPlayerMP)
{
EntityPlayerMP thePlayer = (EntityPlayerMP) par5Entity;
if (par5Entity.dimension != Gem.dimension)
{
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, Gem.dimension, new TeleporterGem(thePlayer.mcServer.worldServerForDimension(Gem.dimension)));
}
else
{
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new TeleporterGem(thePlayer.mcServer.worldServerForDimension(0)));
}
}
}
}
public boolean tryToCreatePortal(World par1World, int par2, int par3, int par4)
{
byte var5 = 0;
byte var6 = 0;
if (par1World.getBlockId(par2 - 1, par3, par4) == Block.sandStone.blockID || par1World.getBlockId(par2 + 1, par3, par4) == Block.sandStone.blockID)
{
var5 = 1;
}
if (par1World.getBlockId(par2, par3, par4 - 1) == Block.sandStone.blockID || par1World.getBlockId(par2, par3, par4 + 1) == Block.sandStone.blockID)
{
var6 = 1;
}
if (var5 == var6)
{
return false;
}
else
{
if (par1World.getBlockId(par2 - var5, par3, par4 - var6) == 0)
{
par2 -= var5;
par4 -= var6;
}
int var7;
int var8;
for (var7 = -1; var7 <= 2; ++var7)
{
for (var8 = -1; var8 <= 3; ++var8)
{
boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3;
if (var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3)
{
int var10 = par1World.getBlockId(par2 + var5 * var7, par3 + var8, par4 + var6 * var7);
if (var9)
{
if (var10 != Block.sandStone.blockID)
{
return false;
}
}
else if (var10 != 0 && var10 != Block.fire.blockID)
{
return false;
}
}
}
}
par1World.scheduledUpdatesAreImmediate = true;
for (var7 = 0; var7 < 2; ++var7)
{
for (var8 = 0; var8 < 3; ++var8)
{
par1World.setBlock(par2 + var5 * var7, par3 + var8, par4 + var6 * var7, this.blockID);
}
}
par1World.scheduledUpdatesAreImmediate = false;
return true;
}
}
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
}
public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
byte var6 = 0;
byte var7 = 1;
if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID)
{
var6 = 1;
var7 = 0;
}
int var8;
for (var8 = par3; par1World.getBlockId(par2, var8 - 1, par4) == this.blockID; --var8)
{
;
}
if (par1World.getBlockId(par2, var8 - 1, par4) != Block.sandStone.blockID)
{
par1World.setBlock(par2, par3, par4, 0);
}
else
{
int var9;
for (var9 = 1; var9 < 4 && par1World.getBlockId(par2, var8 + var9, par4) == this.blockID; ++var9)
{
;
}
if (var9 == 3 && par1World.getBlockId(par2, var8 + var9, par4) == Block.sandStone.blockID)
{
boolean var10 = par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID;
boolean var11 = par1World.getBlockId(par2, par3, par4 - 1) == this.blockID || par1World.getBlockId(par2, par3, par4 + 1) == this.blockID;
if (var10 && var11)
{
par1World.setBlock(par2, par3, par4, 0);
}
else
{
if ((par1World.getBlockId(par2 + var6, par3, par4 + var7) != Block.sandStone.blockID || par1World.getBlockId(par2 - var6, par3, par4 - var7) != this.blockID) && (par1World.getBlockId(par2 - var6, par3, par4 - var7) != Block.sandStone.blockID || par1World.getBlockId(par2 + var6, par3, par4 + var7) != this.blockID))
{
par1World.setBlock(par2, par3, par4, 0);
}
}
}
else
{
par1World.setBlock(par2, par3, par4, 0);
}
}
}
}
I tried doing what you said, but when I right click with my portal placer(my version of an Item which places the "GemFire" Block) it creates the block only for a second then disappears When I right click in the sandstone portal (that's what I changed it to be) then it stays there, but crashes.
Crash log:
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Forge Mod Loader version 5.1.10.620 for Minecraft 1.5.1 loading
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Java is Java HotSpot™ Client VM, version 1.7.0_17, running on Windows Vista:x86:6.0, installed at C:\Program Files\Java\jre7
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-04-17 10:54:32 [INFO] [STDOUT] 229 recipes
2013-04-17 10:54:32 [INFO] [STDOUT] 27 achievements
2013-04-17 10:54:33 [INFO] [Minecraft-Client] Setting user: Player796
2013-04-17 10:54:33 [INFO] [STDOUT] (Session ID is -)
2013-04-17 10:54:33 [INFO] [STDERR] Client asked for parameter: server
2013-04-17 10:54:33 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-04-17 10:54:33 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-04-17 10:54:33 [INFO] [STDOUT] MinecraftForge v7.7.1.620 Initialized
2013-04-17 10:54:33 [INFO] [ForgeModLoader] MinecraftForge v7.7.1.620 Initialized
2013-04-17 10:54:33 [INFO] [STDOUT] Replaced 85 ore recipies
2013-04-17 10:54:33 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-04-17 10:54:33 [INFO] [ForgeModLoader] Reading custom logging properties from C:\MCP 1.5.1 UPDATED\jars\config\logging.properties
2013-04-17 10:54:33 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-04-17 10:54:33 [INFO] [ForgeModLoader] Searching C:\MCP 1.5.1 UPDATED\jars\mods for mods
2013-04-17 10:54:37 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-04-17 10:54:37 [INFO] [mcp] Activating mod mcp
2013-04-17 10:54:37 [INFO] [FML] Activating mod FML
2013-04-17 10:54:37 [INFO] [Forge] Activating mod Forge
2013-04-17 10:54:37 [INFO] [Gem Mod] Activating mod Gem Mod
2013-04-17 10:54:37 [INFO] [ForgeModLoader] FML has found a non-mod file mods.zip in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.
2013-04-17 10:54:38 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
2013-04-17 10:54:38 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-17 10:54:39 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-17 10:54:40 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-17 10:54:40 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-17 10:54:40 [INFO] [STDOUT] CONFLICT @ 0 item slot already occupied by net.minecraft.item.ItemSpade@5651ca while adding gem_mod.ItemHardened_Cobblestone_Hoe@1f03948
2013-04-17 10:54:40 [INFO] [fml.ItemTracker] The mod Gem Mod is overwriting existing item at 256 (net.minecraft.item.ItemSpade from Minecraft) with gem_mod.ItemHardened_Cobblestone_Hoe
2013-04-17 10:54:40 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
2013-04-17 10:54:40 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-17 10:54:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-17 10:54:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/PortalPlacer.png, but that file does not exist. Ignoring.
2013-04-17 10:54:42 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-17 10:54:42 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-17 10:54:44 [INFO] [Minecraft-Server] Starting integrated minecraft server version 1.5.1
2013-04-17 10:54:44 [INFO] [Minecraft-Server] Generating keypair
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 20 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [Minecraft-Server] Preparing start region for level 0
2013-04-17 10:54:46 [INFO] [Minecraft-Server] Preparing spawn area: 66%
2013-04-17 10:54:47 [INFO] [STDOUT] loading single player
2013-04-17 10:54:47 [INFO] [Minecraft-Server] Player796[/127.0.0.1:0] logged in with entity id 179 at (-8.082147005704137, 71.0, 212.3112640367952)
2013-04-17 10:54:49 [INFO] [STDERR] net.minecraft.util.ReportedException: Ticking memory connection
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-17 10:54:49 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-04-17 10:54:49 [INFO] [STDERR] at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:17)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:553)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:715)
2013-04-17 10:54:49 [INFO] [STDERR] at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
2013-04-17 10:54:49 [INFO] [STDERR] ... 6 more
2013-04-17 10:54:49 [SEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:17)
at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
at net.minecraft.world.World.setBlock(World.java:553)
at net.minecraft.world.World.setBlock(World.java:715)
at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
... 6 more
2013-04-17 10:54:49 [SEVERE] [Minecraft-Server] This crash report has been saved to: C:\MCP 1.5.1 UPDATED\jars\.\crash-reports\crash-2013-04-17_10.54.49-server.txt
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Stopping server
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving players
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving worlds
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 0
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension -1
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 1
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 20
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_STARTED to SERVER_STOPPED. Loading cannot continue
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader]
mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Gem Mod [Gem Mod!] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-04-17 10:54:50 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:799)
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:470)
2013-04-17 10:54:50 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530)
2013-04-17 10:54:50 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-17 10:54:59 [INFO] [Minecraft-Client] Stopping!
2013-04-17 11:00:30 [INFO] [STDERR] Someone is closing me!
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Stopping server
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Saving players
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Saving worlds
If I reopen Minecraft and go into the world that I placed the fire block on, the block stays inside the sandstone frame, but the portal block isn't created.
here is my code:
ItemPortalPlacer
package gem_mod;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class ItemPortalPlacer extends Item
{
public ItemPortalPlacer(int id)
{
super(id);
this.setCreativeTab(CreativeTabs.tabMisc);
}
public String getTextureFile()
{
return "/tutorialitems.png";
}
public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
{
if (par7 == 0)
{
--par5;
}
if (par7 == 1)
{
++par5;
}
if (par7 == 2)
{
--par6;
}
if (par7 == 3)
{
++par6;
}
if (par7 == 4)
{
--par4;
}
if (par7 == 5)
{
++par4;
}
if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack))
{
return false;
}
else
{
int i1 = par3World.getBlockId(par4, par5, par6);
if (i1 == 0)
{
par3World.playSoundEffect((double)par4 + 0.5D, (double)par5 + 0.5D, (double)par6 + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F);
par3World.setBlock(par4, par5, par6, Gem.BlockGemFire.blockID);
}
par1ItemStack.damageItem(1, par2EntityPlayer);
return true;
}}
}
BlockGemFire
package gem_mod;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
public class BlockGemFire extends Block {
public BlockGemFire(int par1, Material par2Material) {
super(par1, par2Material);
}
public void onBlockAdded(World par1World, int par2, int par3, int par4)
{
if (par1World.provider.dimensionId > [color=#ff0000]Gem.dimension[/color] || par1World.getBlockId(par2, par3 - 1, par4) != Block.sandStone.blockID || !((BlockPortalBlock) Gem.BlockPortalBlock).tryToCreatePortal(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World) + par1World.rand.nextInt(10));
}
}
}
BlockPortalBlock
package gem_mod;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockPortal;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
public class BlockPortalBlock extends BlockPortal
{
public BlockPortalBlock(int id, int texture)
{
super(id);
this.setCreativeTab(CreativeTabs.tabBlock);
}
public String getTextureFile()
{
return "/tutorialblocks.png";
}
public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
}
public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
{
if (par5Entity.ridingEntity == null && par5Entity.riddenByEntity == null)
{
if (par5Entity instanceof EntityPlayerMP)
{
EntityPlayerMP thePlayer = (EntityPlayerMP) par5Entity;
if (par5Entity.dimension != Gem.dimension)
{
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, Gem.dimension, new TeleporterGem(thePlayer.mcServer.worldServerForDimension(Gem.dimension)));
}
else
{
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new TeleporterGem(thePlayer.mcServer.worldServerForDimension(0)));
}
}
}
}
public boolean tryToCreatePortal(World par1World, int par2, int par3, int par4)
{
byte var5 = 0;
byte var6 = 0;
if (par1World.getBlockId(par2 - 1, par3, par4) == Block.sandStone.blockID || par1World.getBlockId(par2 + 1, par3, par4) == Block.sandStone.blockID)
{
var5 = 1;
}
if (par1World.getBlockId(par2, par3, par4 - 1) == Block.sandStone.blockID || par1World.getBlockId(par2, par3, par4 + 1) == Block.sandStone.blockID)
{
var6 = 1;
}
if (var5 == var6)
{
return false;
}
else
{
if (par1World.getBlockId(par2 - var5, par3, par4 - var6) == 0)
{
par2 -= var5;
par4 -= var6;
}
int var7;
int var8;
for (var7 = -1; var7 <= 2; ++var7)
{
for (var8 = -1; var8 <= 3; ++var8)
{
boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3;
if (var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3)
{
int var10 = par1World.getBlockId(par2 + var5 * var7, par3 + var8, par4 + var6 * var7);
if (var9)
{
if (var10 != Block.sandStone.blockID)
{
return false;
}
}
else if (var10 != 0 && var10 != Block.fire.blockID)
{
return false;
}
}
}
}
par1World.scheduledUpdatesAreImmediate = true;
for (var7 = 0; var7 < 2; ++var7)
{
for (var8 = 0; var8 < 3; ++var8)
{
par1World.setBlock(par2 + var5 * var7, par3 + var8, par4 + var6 * var7, this.blockID);
}
}
par1World.scheduledUpdatesAreImmediate = false;
return true;
}
}
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
}
public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
byte var6 = 0;
byte var7 = 1;
if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID)
{
var6 = 1;
var7 = 0;
}
int var8;
for (var8 = par3; par1World.getBlockId(par2, var8 - 1, par4) == this.blockID; --var8)
{
;
}
if (par1World.getBlockId(par2, var8 - 1, par4) != Block.sandStone.blockID)
{
par1World.setBlock(par2, par3, par4, 0);
}
else
{
int var9;
for (var9 = 1; var9 < 4 && par1World.getBlockId(par2, var8 + var9, par4) == this.blockID; ++var9)
{
;
}
if (var9 == 3 && par1World.getBlockId(par2, var8 + var9, par4) == Block.sandStone.blockID)
{
boolean var10 = par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID;
boolean var11 = par1World.getBlockId(par2, par3, par4 - 1) == this.blockID || par1World.getBlockId(par2, par3, par4 + 1) == this.blockID;
if (var10 && var11)
{
par1World.setBlock(par2, par3, par4, 0);
}
else
{
if ((par1World.getBlockId(par2 + var6, par3, par4 + var7) != Block.sandStone.blockID || par1World.getBlockId(par2 - var6, par3, par4 - var7) != this.blockID) && (par1World.getBlockId(par2 - var6, par3, par4 - var7) != Block.sandStone.blockID || par1World.getBlockId(par2 + var6, par3, par4 + var7) != this.blockID))
{
par1World.setBlock(par2, par3, par4, 0);
}
}
}
else
{
par1World.setBlock(par2, par3, par4, 0);
}
}
}
}
the dimension ID that you put on the trigger block class should be the number you put for it that is on your main mod class like this
i think i see your error; in worldprovider you have Gem.dimension ===> Try to change this to "MainModfile".Gem (at example; Server.Tron is what i have to do)
^^^
Isn't this one a smart cookie he couldn't pick up that Gem was the name of your mod file and dimension was an integer.
No, it still didn't work. Same thing, here is the crash report:
2013-04-21 15:24:46 [INFO] [ForgeModLoader] Forge Mod Loader version 5.1.10.620 for Minecraft 1.5.1 loading
2013-04-21 15:24:46 [INFO] [ForgeModLoader] Java is Java HotSpot(TM) Client VM, version 1.7.0_21, running on Windows Vista:x86:6.0, installed at C:\Program Files\Java\jre7
2013-04-21 15:24:46 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-04-21 15:25:03 [INFO] [STDOUT] 229 recipes
2013-04-21 15:25:03 [INFO] [STDOUT] 27 achievements
2013-04-21 15:25:05 [INFO] [Minecraft-Client] Setting user: Player852
2013-04-21 15:25:06 [INFO] [STDOUT] (Session ID is -)
2013-04-21 15:25:06 [INFO] [STDERR] Client asked for parameter: server
2013-04-21 15:25:06 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-04-21 15:25:08 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-04-21 15:25:08 [INFO] [STDOUT] MinecraftForge v7.7.1.620 Initialized
2013-04-21 15:25:08 [INFO] [ForgeModLoader] MinecraftForge v7.7.1.620 Initialized
2013-04-21 15:25:10 [INFO] [STDOUT] Replaced 85 ore recipies
2013-04-21 15:25:11 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-04-21 15:25:11 [INFO] [ForgeModLoader] Reading custom logging properties from C:\MCP 1.5.1 UPDATED\jars\config\logging.properties
2013-04-21 15:25:11 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-04-21 15:25:12 [INFO] [ForgeModLoader] Searching C:\MCP 1.5.1 UPDATED\jars\mods for mods
2013-04-21 15:25:38 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-04-21 15:25:38 [INFO] [mcp] Activating mod mcp
2013-04-21 15:25:38 [INFO] [FML] Activating mod FML
2013-04-21 15:25:38 [INFO] [Forge] Activating mod Forge
2013-04-21 15:25:38 [INFO] [Gem Mod] Activating mod Gem Mod
2013-04-21 15:25:38 [INFO] [ForgeModLoader] FML has found a non-mod file mods.zip in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.
2013-04-21 15:25:38 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
2013-04-21 15:25:39 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-21 15:25:40 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-21 15:25:41 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-21 15:25:41 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-21 15:25:41 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
2013-04-21 15:25:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-21 15:25:42 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-21 15:25:42 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/PortalPlacer.png, but that file does not exist. Ignoring.
2013-04-21 15:25:43 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-21 15:25:43 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-21 15:25:52 [INFO] [Minecraft-Server] Starting integrated minecraft server version 1.5.1
2013-04-21 15:25:52 [INFO] [Minecraft-Server] Generating keypair
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension 20 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [Minecraft-Server] Preparing start region for level 0
2013-04-21 15:25:57 [INFO] [Minecraft-Server] Preparing spawn area: 0%
2013-04-21 15:25:58 [INFO] [Minecraft-Server] Preparing spawn area: 53%
2013-04-21 15:25:59 [INFO] [STDOUT] loading single player
2013-04-21 15:25:59 [INFO] [Minecraft-Server] Player852[/127.0.0.1:0] logged in with entity id 237 at (-216.46361019858074, 4.0, -473.284639639382)
2013-04-21 15:26:03 [WARNING] [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
2013-04-21 15:26:03 [INFO] [Minecraft-Server] Saving and pausing game...
2013-04-21 15:26:03 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-21 15:26:05 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-21 15:26:05 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-21 15:26:05 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-21 15:31:19 [WARNING] [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
2013-04-21 15:31:19 [INFO] [Minecraft-Server] Saving and pausing game...
2013-04-21 15:31:19 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-21 15:31:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-21 15:31:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-21 15:31:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-21 15:31:47 [INFO] [ForgeModLoader] Unloading dimension 20
2013-04-21 15:31:47 [WARNING] [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
2013-04-21 15:31:51 [SEVERE] [ForgeModLoader] Detected leaking worlds in memory. There are 2 worlds that appear to be persisting. A mod is likely caching the world incorrectly
2013-04-21 15:31:51 [SEVERE] [ForgeModLoader] The world 750e94 (New World) has leaked.
2013-04-21 15:31:52 [WARNING] [Minecraft-Client] Memory connection overburdened; after processing 2500 packets, we still have 527 to go!
2013-04-21 15:32:29 [INFO] [STDERR] net.minecraft.util.ReportedException: Ticking memory connection
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-21 15:32:29 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-04-21 15:32:29 [INFO] [STDERR] at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:11)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:553)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:715)
2013-04-21 15:32:29 [INFO] [STDERR] at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
2013-04-21 15:32:29 [INFO] [STDERR] ... 6 more
2013-04-21 15:32:29 [SEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:11)
at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
at net.minecraft.world.World.setBlock(World.java:553)
at net.minecraft.world.World.setBlock(World.java:715)
at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
... 6 more
2013-04-21 15:32:29 [SEVERE] [Minecraft-Server] This crash report has been saved to: C:\MCP 1.5.1 UPDATED\jars\.\crash-reports\crash-2013-04-21_15.32.29-server.txt
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Stopping server
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving players
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving worlds
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-21 15:32:31 [INFO] [ForgeModLoader] Unloading dimension 0
2013-04-21 15:32:31 [INFO] [ForgeModLoader] Unloading dimension -1
2013-04-21 15:32:31 [INFO] [ForgeModLoader] Unloading dimension 1
2013-04-21 15:32:31 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_STARTED to SERVER_STOPPED. Loading cannot continue
2013-04-21 15:32:31 [SEVERE] [ForgeModLoader]
mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Gem Mod [Gem Mod!] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
2013-04-21 15:32:31 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-04-21 15:32:31 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-04-21 15:32:31 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-04-21 15:32:31 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:799)
2013-04-21 15:32:31 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:470)
2013-04-21 15:32:31 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530)
2013-04-21 15:32:31 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-21 15:32:40 [INFO] [Minecraft-Client] Stopping!
I tried copying the whole BLockFire code, but it didnt work.
crash report:
2013-04-22 10:27:23 [INFO] [ForgeModLoader] Forge Mod Loader version 5.1.29.664 for Minecraft 1.5.1 loading
2013-04-22 10:27:23 [INFO] [ForgeModLoader] Java is Java HotSpot(TM) Client VM, version 1.7.0_21, running on Windows Vista:x86:6.0, installed at C:\Program Files\Java\jre7
2013-04-22 10:27:23 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-04-22 10:27:25 [INFO] [STDOUT] 229 recipes
2013-04-22 10:27:25 [INFO] [STDOUT] 27 achievements
2013-04-22 10:27:25 [INFO] [Minecraft-Client] Setting user: Player663
2013-04-22 10:27:25 [INFO] [STDOUT] (Session ID is -)
2013-04-22 10:27:25 [INFO] [STDERR] Client asked for parameter: server
2013-04-22 10:27:25 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-04-22 10:27:26 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-04-22 10:27:26 [INFO] [STDOUT] MinecraftForge v7.7.1.664 Initialized
2013-04-22 10:27:26 [INFO] [ForgeModLoader] MinecraftForge v7.7.1.664 Initialized
2013-04-22 10:27:26 [INFO] [STDOUT] Replaced 85 ore recipies
2013-04-22 10:27:26 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-04-22 10:27:26 [INFO] [ForgeModLoader] Reading custom logging properties from C:\MCP FORGE 666\jars\config\logging.properties
2013-04-22 10:27:26 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-04-22 10:27:26 [INFO] [ForgeModLoader] Searching C:\MCP FORGE 666\jars\mods for mods
2013-04-22 10:27:27 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-04-22 10:27:27 [INFO] [mcp] Activating mod mcp
2013-04-22 10:27:27 [INFO] [FML] Activating mod FML
2013-04-22 10:27:27 [INFO] [Forge] Activating mod Forge
2013-04-22 10:27:27 [INFO] [Gem Mod] Activating mod Gem Mod
2013-04-22 10:27:27 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
2013-04-22 10:27:28 [INFO] [STDOUT]
2013-04-22 10:27:28 [INFO] [STDOUT] Starting up SoundSystem...
2013-04-22 10:27:28 [INFO] [STDOUT] Initializing LWJGL OpenAL
2013-04-22 10:27:28 [INFO] [STDOUT] (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
2013-04-22 10:27:28 [INFO] [STDOUT] OpenAL initialized.
2013-04-22 10:27:28 [INFO] [STDOUT]
2013-04-22 10:27:29 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-22 10:27:29 [INFO] [STDERR] java.lang.NoSuchFieldException: GL_ARB_copy_image
2013-04-22 10:27:29 [INFO] [STDERR] at java.lang.Class.getField(Unknown Source)
2013-04-22 10:27:29 [INFO] [STDERR] at cpw.mods.fml.client.TextureFXManager.getHelper(TextureFXManager.java:122)
2013-04-22 10:27:29 [INFO] [STDERR] at net.minecraft.client.renderer.texture.TextureStitched.init(TextureStitched.java:74)
2013-04-22 10:27:29 [INFO] [STDERR] at net.minecraft.client.renderer.texture.TextureMap.refreshTextures(TextureMap.java:154)
2013-04-22 10:27:29 [INFO] [STDERR] at net.minecraft.client.renderer.RenderEngine.refreshTextureMaps(RenderEngine.java:520)
2013-04-22 10:27:29 [INFO] [STDERR] at net.minecraft.client.Minecraft.startGame(Minecraft.java:442)
2013-04-22 10:27:29 [INFO] [STDERR] at net.minecraft.client.MinecraftAppletImpl.startGame(MinecraftAppletImpl.java:44)
2013-04-22 10:27:29 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:731)
2013-04-22 10:27:29 [INFO] [STDERR] at java.lang.Thread.run(Unknown Source)
2013-04-22 10:27:29 [INFO] [ForgeModLoader] Forge Mod Loader has detected an older LWJGL version, new advanced texture animation features are disabled
2013-04-22 10:27:29 [INFO] [ForgeModLoader] Not using advanced OpenGL 4.3 advanced capability for animations : OpenGL 4.3 is not available
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-22 10:27:29 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-22 10:27:30 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-22 10:27:30 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-22 10:27:30 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
2013-04-22 10:27:30 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-22 10:27:30 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file mods/Gem_Mod/textures/blocks/Hardened_Cobblestone_Axe.png, but that file does not exist. Ignoring.
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-22 10:27:31 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-22 10:27:31 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/Hardened_Cobblestone_Hoe.png, but that file does not exist. Ignoring.
2013-04-22 10:27:31 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file mods/Gem_Mod/textures/items/Hardened_Cobblestone_Axe.png, but that file does not exist. Ignoring.
2013-04-22 10:27:31 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/Hardened_Cobblestone_Picaxe.png, but that file does not exist. Ignoring.
2013-04-22 10:27:31 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/Hardened_Cobblestone_Shovel.png, but that file does not exist. Ignoring.
2013-04-22 10:27:31 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/Hardened_Cobblestone_Sword.png, but that file does not exist. Ignoring.
2013-04-22 10:27:32 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/Hardened_Cobblestone_Axe.png, but that file does not exist. Ignoring.
2013-04-22 10:27:32 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-22 10:27:32 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting level New World
2013-04-22 10:27:36 [INFO] [STDOUT] Attempt 1...
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\data
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\data\villages.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM-1
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM-1\data
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM-1\forcedchunks.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM1
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM1\data
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM1\forcedchunks.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\data
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\forcedchunks.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.-1.-1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.-1.0.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.-1.1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.-2.-1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.-2.0.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.0.-1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.0.0.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\DIM20\region\r.1.-1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\forcedchunks.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\level.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\level.dat_mcr
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\level.dat_old
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\players
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\players\Player623.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\players\Player807.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\players\Player902.dat
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\region
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\region\r.-1.-1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\region\r.-1.0.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\region\r.0.-1.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\region\r.0.0.mca
2013-04-22 10:27:36 [INFO] [STDOUT] Deleting .\saves\New World\session.lock
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting level New World-
2013-04-22 10:27:38 [INFO] [STDOUT] Attempt 1...
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\data
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\data\villages.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM-1
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM-1\data
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM-1\forcedchunks.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM1
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM1\data
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM1\forcedchunks.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\data
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\forcedchunks.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.-1.-1.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.-1.-2.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.-1.0.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.-2.-1.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.-2.-2.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.-3.-2.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.0.-1.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\DIM20\region\r.0.0.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\forcedchunks.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\level.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\level.dat_mcr
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\level.dat_old
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\players
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\players\Player209.dat
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\region
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\region\r.-1.0.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\region\r.0.0.mca
2013-04-22 10:27:38 [INFO] [STDOUT] Deleting .\saves\New World-\session.lock
2013-04-22 10:27:40 [INFO] [Minecraft-Server] Starting integrated minecraft server version 1.5.1
2013-04-22 10:27:40 [INFO] [Minecraft-Server] Generating keypair
2013-04-22 10:27:41 [INFO] [Minecraft-Server] Converting map!
2013-04-22 10:27:41 [INFO] [Minecraft-Server] Scanning folders...
2013-04-22 10:27:41 [INFO] [Minecraft-Server] Total conversion count is 0
2013-04-22 10:27:42 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@bdb471)
2013-04-22 10:27:42 [WARNING] [Minecraft-Server] Unable to find spawn biome
2013-04-22 10:27:54 [INFO] [ForgeModLoader] Loading dimension 20 (New World) (net.minecraft.server.integrated.IntegratedServer@bdb471)
2013-04-22 10:27:54 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@bdb471)
2013-04-22 10:27:54 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@bdb471)
2013-04-22 10:27:54 [INFO] [Minecraft-Server] Preparing start region for level 0
2013-04-22 10:27:55 [INFO] [Minecraft-Server] Preparing spawn area: 6%
2013-04-22 10:27:56 [INFO] [Minecraft-Server] Preparing spawn area: 9%
2013-04-22 10:27:57 [INFO] [Minecraft-Server] Preparing spawn area: 14%
2013-04-22 10:27:58 [INFO] [Minecraft-Server] Preparing spawn area: 18%
2013-04-22 10:27:59 [INFO] [Minecraft-Server] Preparing spawn area: 23%
2013-04-22 10:28:00 [INFO] [Minecraft-Server] Preparing spawn area: 28%
2013-04-22 10:28:01 [INFO] [Minecraft-Server] Preparing spawn area: 33%
2013-04-22 10:28:02 [INFO] [Minecraft-Server] Preparing spawn area: 37%
2013-04-22 10:28:03 [INFO] [Minecraft-Server] Preparing spawn area: 44%
2013-04-22 10:28:04 [INFO] [Minecraft-Server] Preparing spawn area: 51%
2013-04-22 10:28:05 [INFO] [Minecraft-Server] Preparing spawn area: 59%
2013-04-22 10:28:06 [INFO] [Minecraft-Server] Preparing spawn area: 66%
2013-04-22 10:28:07 [INFO] [Minecraft-Server] Preparing spawn area: 72%
2013-04-22 10:28:08 [INFO] [Minecraft-Server] Preparing spawn area: 79%
2013-04-22 10:28:09 [INFO] [Minecraft-Server] Preparing spawn area: 87%
2013-04-22 10:28:10 [INFO] [Minecraft-Server] Preparing spawn area: 94%
2013-04-22 10:28:11 [INFO] [Minecraft-Server] Player663[/127.0.0.1:0] logged in with entity id 164 at (164.5, 64.0, 183.5)
2013-04-22 10:28:23 [INFO] [STDERR] java.lang.ClassCastException: gem_mod.BlockGemFire cannot be cast to net.minecraft.block.BlockFire
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.renderer.RenderBlocks.renderBlockByRenderType(RenderBlocks.java:459)
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:226)
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1535)
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1119)
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:991)
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:869)
2013-04-22 10:28:23 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:758)
2013-04-22 10:28:23 [INFO] [STDERR] at java.lang.Thread.run(Unknown Source)
2013-04-22 10:28:23 [INFO] [Minecraft-Server] Stopping server
2013-04-22 10:28:23 [INFO] [Minecraft-Server] Saving players
2013-04-22 10:28:23 [INFO] [Minecraft-Server] Saving worlds
2013-04-22 10:28:23 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-22 10:28:28 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-22 10:28:28 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-22 10:28:28 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-22 10:28:33 [INFO] [Minecraft-Client] Stopping!
2013-04-22 10:28:33 [INFO] [STDOUT]
2013-04-22 10:28:33 [INFO] [STDOUT] SoundSystem shutting down...
2013-04-22 10:28:34 [INFO] [STDOUT] Author: Paul Lamb, www.paulscode.com
2013-04-22 10:28:34 [INFO] [STDOUT]
2013-04-22 10:28:36 [INFO] [STDERR] Someone is closing me!
2013-04-22 10:28:36 [INFO] [Minecraft-Server] Stopping server
2013-04-22 10:28:36 [INFO] [Minecraft-Server] Saving players
2013-04-22 10:28:36 [INFO] [Minecraft-Server] Saving worlds
2013-04-22 10:28:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-22 10:28:36 [INFO] [STDERR] Exception in thread "Thread-5" java.lang.NullPointerException
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraftforge.common.ForgeChunkManager.saveWorld(ForgeChunkManager.java:826)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraftforge.common.ForgeInternalHandler.onDimensionSave(ForgeInternalHandler.java:70)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraftforge.event.ASMEventHandler_2_ForgeInternalHandler_onDimensionSave_Save.invoke(.dynamic)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:35)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraftforge.event.EventBus.post(EventBus.java:103)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:907)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:344)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.stopServer(MinecraftServer.java:377)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.stopServer(IntegratedServer.java:240)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraft.client.Minecraft.stopIntegratedServer(Minecraft.java:2556)
2013-04-22 10:28:36 [INFO] [STDERR] at net.minecraft.client.ThreadShutdown.run(ThreadShutdown.java:11)
The code I put in my GemFireBlock
package gem_mod;
import static net.minecraftforge.common.ForgeDirection.DOWN;
import static net.minecraftforge.common.ForgeDirection.EAST;
import static net.minecraftforge.common.ForgeDirection.NORTH;
import static net.minecraftforge.common.ForgeDirection.SOUTH;
import static net.minecraftforge.common.ForgeDirection.UP;
import static net.minecraftforge.common.ForgeDirection.WEST;
import java.util.Random;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Icon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
public class BlockGemFire extends Block {
public BlockGemFire(int par1, Material par2Material) {
super(par1, par2Material);
}
/** The chance this block will encourage nearby blocks to catch on fire */
private int[] chanceToEncourageFire = new int[256];
/**
* This is an array indexed by block ID the larger the number in the array the more likely a block type will catch
* fires
*/
private int[] abilityToCatchFire = new int[256];
@SideOnly(Side.CLIENT)
private Icon[] iconArray;
protected BlockGemFire(int par1)
{
super(par1, Material.fire);
this.setTickRandomly(true);
}
/**
* This method is called on a block after all other blocks gets already created. You can use it to reference and
* configure something on the block that needs the others ones.
*/
public void initializeBlock()
{
abilityToCatchFire = Block.blockFlammability;
chanceToEncourageFire = Block.blockFireSpreadSpeed;
this.setBurnRate(Block.planks.blockID, 5, 20);
this.setBurnRate(Block.woodDoubleSlab.blockID, 5, 20);
this.setBurnRate(Block.woodSingleSlab.blockID, 5, 20);
this.setBurnRate(Block.fence.blockID, 5, 20);
this.setBurnRate(Block.stairsWoodOak.blockID, 5, 20);
this.setBurnRate(Block.stairsWoodBirch.blockID, 5, 20);
this.setBurnRate(Block.stairsWoodSpruce.blockID, 5, 20);
this.setBurnRate(Block.stairsWoodJungle.blockID, 5, 20);
this.setBurnRate(Block.wood.blockID, 5, 5);
this.setBurnRate(Block.leaves.blockID, 30, 60);
this.setBurnRate(Block.bookShelf.blockID, 30, 20);
this.setBurnRate(Block.tnt.blockID, 15, 100);
this.setBurnRate(Block.tallGrass.blockID, 60, 100);
this.setBurnRate(Block.cloth.blockID, 30, 60);
this.setBurnRate(Block.vine.blockID, 15, 100);
}
/**
* Sets the burn rate for a block. The larger abilityToCatchFire the more easily it will catch. The larger
* chanceToEncourageFire the faster it will burn and spread to other blocks. Args: blockID, chanceToEncourageFire,
* abilityToCatchFire
*/
private void setBurnRate(int par1, int par2, int par3)
{
Block.setBurnProperties(par1, par2, par3);
}
/**
* Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
* cleared to be reused)
*/
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
{
return null;
}
/**
* Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two
* adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
*/
public boolean isOpaqueCube()
{
return false;
}
/**
* If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
*/
public boolean renderAsNormalBlock()
{
return false;
}
/**
* The type of render function that is called for this block
*/
public int getRenderType()
{
return 3;
}
/**
* Returns the quantity of items to drop on block destruction.
*/
public int quantityDropped(Random par1Random)
{
return 0;
}
/**
* How many world ticks before ticking
*/
public int tickRate(World par1World)
{
return 30;
}
/**
* Ticks the block if it's been scheduled
*/
public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
if (par1World.getGameRules().getGameRuleBooleanValue("doFireTick"))
{
Block base = Block.blocksList[par1World.getBlockId(par2, par3 - 1, par4)];
boolean flag = (base != null && base.isFireSource(par1World, par2, par3 - 1, par4, par1World.getBlockMetadata(par2, par3 - 1, par4), UP));
if (!this.canPlaceBlockAt(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
if (!flag && par1World.isRaining() && (par1World.canLightningStrikeAt(par2, par3, par4) || par1World.canLightningStrikeAt(par2 - 1, par3, par4) || par1World.canLightningStrikeAt(par2 + 1, par3, par4) || par1World.canLightningStrikeAt(par2, par3, par4 - 1) || par1World.canLightningStrikeAt(par2, par3, par4 + 1)))
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
int l = par1World.getBlockMetadata(par2, par3, par4);
if (l < 15)
{
par1World.setBlockMetadataWithNotify(par2, par3, par4, l + par5Random.nextInt(3) / 2, 4);
}
par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World) + par5Random.nextInt(10));
if (!flag && !this.canNeighborBurn(par1World, par2, par3, par4))
{
if (!par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || l > 3)
{
par1World.setBlockToAir(par2, par3, par4);
}
}
else if (!flag && !this.canBlockCatchFire(par1World, par2, par3 - 1, par4, UP) && l == 15 && par5Random.nextInt(4) == 0)
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
boolean flag1 = par1World.isBlockHighHumidity(par2, par3, par4);
byte b0 = 0;
if (flag1)
{
b0 = -50;
}
this.tryToCatchBlockOnFire(par1World, par2 + 1, par3, par4, 300 + b0, par5Random, l, WEST );
this.tryToCatchBlockOnFire(par1World, par2 - 1, par3, par4, 300 + b0, par5Random, l, EAST );
this.tryToCatchBlockOnFire(par1World, par2, par3 - 1, par4, 250 + b0, par5Random, l, UP );
this.tryToCatchBlockOnFire(par1World, par2, par3 + 1, par4, 250 + b0, par5Random, l, DOWN );
this.tryToCatchBlockOnFire(par1World, par2, par3, par4 - 1, 300 + b0, par5Random, l, SOUTH);
this.tryToCatchBlockOnFire(par1World, par2, par3, par4 + 1, 300 + b0, par5Random, l, NORTH);
for (int i1 = par2 - 1; i1 <= par2 + 1; ++i1)
{
for (int j1 = par4 - 1; j1 <= par4 + 1; ++j1)
{
for (int k1 = par3 - 1; k1 <= par3 + 4; ++k1)
{
if (i1 != par2 || k1 != par3 || j1 != par4)
{
int l1 = 100;
if (k1 > par3 + 1)
{
l1 += (k1 - (par3 + 1)) * 100;
}
int i2 = this.getChanceOfNeighborsEncouragingFire(par1World, i1, k1, j1);
if (i2 > 0)
{
int j2 = (i2 + 40 + par1World.difficultySetting * 7) / (l + 30);
if (flag1)
{
j2 /= 2;
}
if (j2 > 0 && par5Random.nextInt(l1) <= j2 && (!par1World.isRaining() || !par1World.canLightningStrikeAt(i1, k1, j1)) && !par1World.canLightningStrikeAt(i1 - 1, k1, par4) && !par1World.canLightningStrikeAt(i1 + 1, k1, j1) && !par1World.canLightningStrikeAt(i1, k1, j1 - 1) && !par1World.canLightningStrikeAt(i1, k1, j1 + 1))
{
int k2 = l + par5Random.nextInt(5) / 4;
if (k2 > 15)
{
k2 = 15;
}
par1World.setBlock(i1, k1, j1, this.blockID, k2, 3);
}
}
}
}
}
}
}
}
}
}
public boolean func_82506_l()
{
return false;
}
@Deprecated
private void tryToCatchBlockOnFire(World par1World, int par2, int par3, int par4, int par5, Random par6Random, int par7)
{
tryToCatchBlockOnFire(par1World, par2, par3, par4, par5, par6Random, par7, UP);
}
private void tryToCatchBlockOnFire(World par1World, int par2, int par3, int par4, int par5, Random par6Random, int par7, ForgeDirection face)
{
int j1 = 0;
Block block = Block.blocksList[par1World.getBlockId(par2, par3, par4)];
if (block != null)
{
j1 = block.getFlammability(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), face);
}
if (par6Random.nextInt(par5) < j1)
{
boolean flag = par1World.getBlockId(par2, par3, par4) == Block.tnt.blockID;
if (par6Random.nextInt(par7 + 10) < 5 && !par1World.canLightningStrikeAt(par2, par3, par4))
{
int k1 = par7 + par6Random.nextInt(5) / 4;
if (k1 > 15)
{
k1 = 15;
}
par1World.setBlock(par2, par3, par4, this.blockID, k1, 3);
}
else
{
par1World.setBlockToAir(par2, par3, par4);
}
if (flag)
{
Block.tnt.onBlockDestroyedByPlayer(par1World, par2, par3, par4, 1);
}
}
}
/**
* Returns true if at least one block next to this one can burn.
*/
private boolean canNeighborBurn(World par1World, int par2, int par3, int par4)
{
return canBlockCatchFire(par1World, par2 + 1, par3, par4, WEST ) ||
canBlockCatchFire(par1World, par2 - 1, par3, par4, EAST ) ||
canBlockCatchFire(par1World, par2, par3 - 1, par4, UP ) ||
canBlockCatchFire(par1World, par2, par3 + 1, par4, DOWN ) ||
canBlockCatchFire(par1World, par2, par3, par4 - 1, SOUTH) ||
canBlockCatchFire(par1World, par2, par3, par4 + 1, NORTH);
}
/**
* Gets the highest chance of a neighbor block encouraging this block to catch fire
*/
private int getChanceOfNeighborsEncouragingFire(World par1World, int par2, int par3, int par4)
{
byte b0 = 0;
if (!par1World.isAirBlock(par2, par3, par4))
{
return 0;
}
else
{
int l = this.getChanceToEncourageFire(par1World, par2 + 1, par3, par4, b0, WEST);
l = this.getChanceToEncourageFire(par1World, par2 - 1, par3, par4, l, EAST);
l = this.getChanceToEncourageFire(par1World, par2, par3 - 1, par4, l, UP);
l = this.getChanceToEncourageFire(par1World, par2, par3 + 1, par4, l, DOWN);
l = this.getChanceToEncourageFire(par1World, par2, par3, par4 - 1, l, SOUTH);
l = this.getChanceToEncourageFire(par1World, par2, par3, par4 + 1, l, NORTH);
return l;
}
}
/**
* Returns if this block is collidable (only used by Fire). Args: x, y, z
*/
public boolean isCollidable()
{
return false;
}
/**
* Checks the specified block coordinate to see if it can catch fire. Args: blockAccess, x, y, z
* Deprecated for a side-sensitive version
*/
@Deprecated
public boolean canBlockCatchFire(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
{
return canBlockCatchFire(par1IBlockAccess, par2, par3, par4, UP);
}
/**
* Retrieves a specified block's chance to encourage their neighbors to burn and if the number is greater than the
* current number passed in it will return its number instead of the passed in one. Args: world, x, y, z,
* curChanceToEncourageFire
* Deprecated for a side-sensitive version
*/
@Deprecated
public int getChanceToEncourageFire(World par1World, int par2, int par3, int par4, int par5)
{
return getChanceToEncourageFire(par1World, par2, par3, par4, par5, UP);
}
/**
* Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
return par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || this.canNeighborBurn(par1World, par2, par3, par4);
}
/**
* Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
* their own) Args: x, y, z, neighbor blockID
*/
public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
if (!par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !this.canNeighborBurn(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
}
/**
* Called whenever the block is added into the world. Args: world, x, y, z
*/
public void onBlockAdded(World par1World, int par2, int par3, int par4)
{
if (par1World.provider.dimensionId > 0 || par1World.getBlockId(par2, par3 - 1, par4) != Block.obsidian.blockID || !Block.portal.tryToCreatePortal(par1World, par2, par3, par4))
{
if (!par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !this.canNeighborBurn(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World) + par1World.rand.nextInt(10));
}
}
}
@SideOnly(Side.CLIENT)
/**
* A randomly called display update to be able to add particles or other items for display
*/
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
{
if (par5Random.nextInt(24) == 0)
{
par1World.playSound((double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F), "fire.fire", 1.0F + par5Random.nextFloat(), par5Random.nextFloat() * 0.7F + 0.3F, false);
}
int l;
float f;
float f1;
float f2;
if (!par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !Block.fire.canBlockCatchFire(par1World, par2, par3 - 1, par4, UP))
{
if (Block.fire.canBlockCatchFire(par1World, par2 - 1, par3, par4, EAST))
{
for (l = 0; l < 2; ++l)
{
f = (float)par2 + par5Random.nextFloat() * 0.1F;
f1 = (float)par3 + par5Random.nextFloat();
f2 = (float)par4 + par5Random.nextFloat();
par1World.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D);
}
}
if (Block.fire.canBlockCatchFire(par1World, par2 + 1, par3, par4, WEST))
{
for (l = 0; l < 2; ++l)
{
f = (float)(par2 + 1) - par5Random.nextFloat() * 0.1F;
f1 = (float)par3 + par5Random.nextFloat();
f2 = (float)par4 + par5Random.nextFloat();
par1World.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D);
}
}
if (Block.fire.canBlockCatchFire(par1World, par2, par3, par4 - 1, SOUTH))
{
for (l = 0; l < 2; ++l)
{
f = (float)par2 + par5Random.nextFloat();
f1 = (float)par3 + par5Random.nextFloat();
f2 = (float)par4 + par5Random.nextFloat() * 0.1F;
par1World.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D);
}
}
if (Block.fire.canBlockCatchFire(par1World, par2, par3, par4 + 1, NORTH))
{
for (l = 0; l < 2; ++l)
{
f = (float)par2 + par5Random.nextFloat();
f1 = (float)par3 + par5Random.nextFloat();
f2 = (float)(par4 + 1) - par5Random.nextFloat() * 0.1F;
par1World.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D);
}
}
if (Block.fire.canBlockCatchFire(par1World, par2, par3 + 1, par4, DOWN))
{
for (l = 0; l < 2; ++l)
{
f = (float)par2 + par5Random.nextFloat();
f1 = (float)(par3 + 1) - par5Random.nextFloat() * 0.1F;
f2 = (float)par4 + par5Random.nextFloat();
par1World.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D);
}
}
}
else
{
for (l = 0; l < 3; ++l)
{
f = (float)par2 + par5Random.nextFloat();
f1 = (float)par3 + par5Random.nextFloat() * 0.5F + 0.5F;
f2 = (float)par4 + par5Random.nextFloat();
par1World.spawnParticle("largesmoke", (double)f, (double)f1, (double)f2, 0.0D, 0.0D, 0.0D);
}
}
}
@SideOnly(Side.CLIENT)
/**
* When this method is called, your block should register all the icons it needs with the given IconRegister. This
* is the only chance you get to register icons.
*/
public void registerIcons(IconRegister par1IconRegister)
{
this.iconArray = new Icon[] {par1IconRegister.registerIcon("fire_0"), par1IconRegister.registerIcon("fire_1")};
}
@SideOnly(Side.CLIENT)
public Icon func_94438_c(int par1)
{
return this.iconArray[par1];
}
@SideOnly(Side.CLIENT)
/**
* From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
*/
public Icon getIcon(int par1, int par2)
{
return this.iconArray[0];
}
/**
* Side sensitive version that calls the block function.
*
* @param world The current world
* @param x X Position
* @param y Y Position
* @param z Z Position
* @param face The side the fire is coming from
* @return True if the face can catch fire.
*/
public boolean canBlockCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face)
{
Block block = Block.blocksList[world.getBlockId(x, y, z)];
if (block != null)
{
return block.isFlammable(world, x, y, z, world.getBlockMetadata(x, y, z), face);
}
return false;
}
/**
* Side sensitive version that calls the block function.
*
* @param world The current world
* @param x X Position
* @param y Y Position
* @param z Z Position
* @param oldChance The previous maximum chance.
* @param face The side the fire is coming from
* @return The chance of the block catching fire, or oldChance if it is higher
*/
public int getChanceToEncourageFire(World world, int x, int y, int z, int oldChance, ForgeDirection face)
{
int newChance = 0;
Block block = Block.blocksList[world.getBlockId(x, y, z)];
if (block != null)
{
newChance = block.getFireSpreadSpeed(world, x, y, z, world.getBlockMetadata(x, y, z), face);
}
return (newChance > oldChance ? newChance : oldChance);
}
}
public final static Block BlockGemFire = new BlockGemFire(503, Material.ground)
.setHardness(2.5F).setStepSound(Block.soundStoneFootstep)
.setUnlocalizedName("Fire Lighter").setCreativeTab(CreativeTabs.tabTools);
here is my code:
BlockPortalBlock:
WorldProvider20:
one in 'placeInPortal' function, two more towards the end of 'makePortal' function.
I think that will fix your portal issues, the world generation is a separate issue, I've not done much with that part of the code myself.
Because I tried changing it to my block and it didnt work. Is there a tutorial out there to show how to make your own portal activator?
ok you will need to make a item that will place a trigger block you can look at the flint and steel code to place blocks but here is the code:
ok now you have to make the trigger block. Just make a normal block and add this
Just change the dimension ID (the number 20) to your id and edit the other parts and now you should be able to light up your portal
Crash log:
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Java is Java HotSpot(TM) Client VM, version 1.7.0_17, running on Windows Vista:x86:6.0, installed at C:\Program Files\Java\jre7
2013-04-17 10:54:30 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-04-17 10:54:32 [INFO] [STDOUT] 229 recipes
2013-04-17 10:54:32 [INFO] [STDOUT] 27 achievements
2013-04-17 10:54:33 [INFO] [Minecraft-Client] Setting user: Player796
2013-04-17 10:54:33 [INFO] [STDOUT] (Session ID is -)
2013-04-17 10:54:33 [INFO] [STDERR] Client asked for parameter: server
2013-04-17 10:54:33 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-04-17 10:54:33 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-04-17 10:54:33 [INFO] [STDOUT] MinecraftForge v7.7.1.620 Initialized
2013-04-17 10:54:33 [INFO] [ForgeModLoader] MinecraftForge v7.7.1.620 Initialized
2013-04-17 10:54:33 [INFO] [STDOUT] Replaced 85 ore recipies
2013-04-17 10:54:33 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-04-17 10:54:33 [INFO] [ForgeModLoader] Reading custom logging properties from C:\MCP 1.5.1 UPDATED\jars\config\logging.properties
2013-04-17 10:54:33 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-04-17 10:54:33 [INFO] [ForgeModLoader] Searching C:\MCP 1.5.1 UPDATED\jars\mods for mods
2013-04-17 10:54:37 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-04-17 10:54:37 [INFO] [mcp] Activating mod mcp
2013-04-17 10:54:37 [INFO] [FML] Activating mod FML
2013-04-17 10:54:37 [INFO] [Forge] Activating mod Forge
2013-04-17 10:54:37 [INFO] [Gem Mod] Activating mod Gem Mod
2013-04-17 10:54:37 [INFO] [ForgeModLoader] FML has found a non-mod file mods.zip in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.
2013-04-17 10:54:38 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
2013-04-17 10:54:38 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-17 10:54:39 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-17 10:54:39 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-17 10:54:40 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-17 10:54:40 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-17 10:54:40 [INFO] [STDOUT] CONFLICT @ 0 item slot already occupied by net.minecraft.item.ItemSpade@5651ca while adding gem_mod.ItemHardened_Cobblestone_Hoe@1f03948
2013-04-17 10:54:40 [INFO] [fml.ItemTracker] The mod Gem Mod is overwriting existing item at 256 (net.minecraft.item.ItemSpade from Minecraft) with gem_mod.ItemHardened_Cobblestone_Hoe
2013-04-17 10:54:40 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
2013-04-17 10:54:40 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-17 10:54:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-17 10:54:41 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-17 10:54:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/PortalPlacer.png, but that file does not exist. Ignoring.
2013-04-17 10:54:42 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-17 10:54:42 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-17 10:54:44 [INFO] [Minecraft-Server] Starting integrated minecraft server version 1.5.1
2013-04-17 10:54:44 [INFO] [Minecraft-Server] Generating keypair
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 20 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@ba1fc7)
2013-04-17 10:54:45 [INFO] [Minecraft-Server] Preparing start region for level 0
2013-04-17 10:54:46 [INFO] [Minecraft-Server] Preparing spawn area: 66%
2013-04-17 10:54:47 [INFO] [STDOUT] loading single player
2013-04-17 10:54:47 [INFO] [Minecraft-Server] Player796[/127.0.0.1:0] logged in with entity id 179 at (-8.082147005704137, 71.0, 212.3112640367952)
2013-04-17 10:54:49 [INFO] [STDERR] net.minecraft.util.ReportedException: Ticking memory connection
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-17 10:54:49 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-04-17 10:54:49 [INFO] [STDERR] at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:17)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:553)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:715)
2013-04-17 10:54:49 [INFO] [STDERR] at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
2013-04-17 10:54:49 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
2013-04-17 10:54:49 [INFO] [STDERR] ... 6 more
2013-04-17 10:54:49 [SEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:17)
at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
at net.minecraft.world.World.setBlock(World.java:553)
at net.minecraft.world.World.setBlock(World.java:715)
at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
... 6 more
2013-04-17 10:54:49 [SEVERE] [Minecraft-Server] This crash report has been saved to: C:\MCP 1.5.1 UPDATED\jars\.\crash-reports\crash-2013-04-17_10.54.49-server.txt
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Stopping server
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving players
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving worlds
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-17 10:54:49 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 0
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension -1
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 1
2013-04-17 10:54:50 [INFO] [ForgeModLoader] Unloading dimension 20
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_STARTED to SERVER_STOPPED. Loading cannot continue
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader]
mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Gem Mod [Gem Mod!] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
2013-04-17 10:54:50 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-04-17 10:54:50 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:799)
2013-04-17 10:54:50 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:470)
2013-04-17 10:54:50 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530)
2013-04-17 10:54:50 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-17 10:54:59 [INFO] [Minecraft-Client] Stopping!
2013-04-17 11:00:30 [INFO] [STDERR] Someone is closing me!
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Stopping server
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Saving players
2013-04-17 11:00:30 [INFO] [Minecraft-Server] Saving worlds
here is my code:
ItemPortalPlacer
the dimension ID that you put on the trigger block class should be the number you put for it that is on your main mod class like this
change Gem.Dimension to your dimension ID
That's why it gives me no errors when I put it in "Gem.dimension" it gives me no errors. This isn't the cause of the problem
^^^
Isn't this one a smart cookie he couldn't pick up that Gem was the name of your mod file and dimension was an integer.
2013-04-21 15:24:46 [INFO] [ForgeModLoader] Java is Java HotSpot(TM) Client VM, version 1.7.0_21, running on Windows Vista:x86:6.0, installed at C:\Program Files\Java\jre7
2013-04-21 15:24:46 [INFO] [ForgeModLoader] Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
2013-04-21 15:25:03 [INFO] [STDOUT] 229 recipes
2013-04-21 15:25:03 [INFO] [STDOUT] 27 achievements
2013-04-21 15:25:05 [INFO] [Minecraft-Client] Setting user: Player852
2013-04-21 15:25:06 [INFO] [STDOUT] (Session ID is -)
2013-04-21 15:25:06 [INFO] [STDERR] Client asked for parameter: server
2013-04-21 15:25:06 [INFO] [Minecraft-Client] LWJGL Version: 2.4.2
2013-04-21 15:25:08 [INFO] [MinecraftForge] Attempting early MinecraftForge initialization
2013-04-21 15:25:08 [INFO] [STDOUT] MinecraftForge v7.7.1.620 Initialized
2013-04-21 15:25:08 [INFO] [ForgeModLoader] MinecraftForge v7.7.1.620 Initialized
2013-04-21 15:25:10 [INFO] [STDOUT] Replaced 85 ore recipies
2013-04-21 15:25:11 [INFO] [MinecraftForge] Completed early MinecraftForge initialization
2013-04-21 15:25:11 [INFO] [ForgeModLoader] Reading custom logging properties from C:\MCP 1.5.1 UPDATED\jars\config\logging.properties
2013-04-21 15:25:11 [OFF] [ForgeModLoader] Logging level for ForgeModLoader logging is set to ALL
2013-04-21 15:25:12 [INFO] [ForgeModLoader] Searching C:\MCP 1.5.1 UPDATED\jars\mods for mods
2013-04-21 15:25:38 [INFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load
2013-04-21 15:25:38 [INFO] [mcp] Activating mod mcp
2013-04-21 15:25:38 [INFO] [FML] Activating mod FML
2013-04-21 15:25:38 [INFO] [Forge] Activating mod Forge
2013-04-21 15:25:38 [INFO] [Gem Mod] Activating mod Gem Mod
2013-04-21 15:25:38 [INFO] [ForgeModLoader] FML has found a non-mod file mods.zip in your mods directory. It will now be injected into your classpath. This could severe stability issues, it should be removed if possible.
2013-04-21 15:25:38 [INFO] [ForgeModLoader] Configured a dormant chunk cache size of 0
2013-04-21 15:25:39 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-21 15:25:40 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-21 15:25:40 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-21 15:25:41 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-21 15:25:41 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-21 15:25:41 [INFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods
2013-04-21 15:25:41 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Hardened Cobblestone.png, but that file does not exist. Ignoring.
2013-04-21 15:25:42 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/blocks/Fire Lighter.png, but that file does not exist. Ignoring.
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava_flow.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water_flow.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_0.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/fire_1.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/lava.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/portal.txt
2013-04-21 15:25:42 [INFO] [Minecraft-Client] Found animation info for: textures/blocks/water.txt
2013-04-21 15:25:42 [WARNING] [Minecraft-Client] TextureManager.createTexture called for file textures/items/PortalPlacer.png, but that file does not exist. Ignoring.
2013-04-21 15:25:43 [INFO] [Minecraft-Client] Found animation info for: textures/items/clock.txt
2013-04-21 15:25:43 [INFO] [Minecraft-Client] Found animation info for: textures/items/compass.txt
2013-04-21 15:25:52 [INFO] [Minecraft-Server] Starting integrated minecraft server version 1.5.1
2013-04-21 15:25:52 [INFO] [Minecraft-Server] Generating keypair
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension 20 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@1487757)
2013-04-21 15:25:53 [INFO] [Minecraft-Server] Preparing start region for level 0
2013-04-21 15:25:57 [INFO] [Minecraft-Server] Preparing spawn area: 0%
2013-04-21 15:25:58 [INFO] [Minecraft-Server] Preparing spawn area: 53%
2013-04-21 15:25:59 [INFO] [STDOUT] loading single player
2013-04-21 15:25:59 [INFO] [Minecraft-Server] Player852[/127.0.0.1:0] logged in with entity id 237 at (-216.46361019858074, 4.0, -473.284639639382)
2013-04-21 15:26:03 [WARNING] [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
2013-04-21 15:26:03 [INFO] [Minecraft-Server] Saving and pausing game...
2013-04-21 15:26:03 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-21 15:26:05 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-21 15:26:05 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-21 15:26:05 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-21 15:31:19 [WARNING] [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
2013-04-21 15:31:19 [INFO] [Minecraft-Server] Saving and pausing game...
2013-04-21 15:31:19 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-21 15:31:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-21 15:31:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-21 15:31:36 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/RavenLoft
2013-04-21 15:31:47 [INFO] [ForgeModLoader] Unloading dimension 20
2013-04-21 15:31:47 [WARNING] [Minecraft-Server] Can't keep up! Did the system time change, or is the server overloaded?
2013-04-21 15:31:51 [SEVERE] [ForgeModLoader] Detected leaking worlds in memory. There are 2 worlds that appear to be persisting. A mod is likely caching the world incorrectly
2013-04-21 15:31:51 [SEVERE] [ForgeModLoader] The world 750e94 (New World) has leaked.
2013-04-21 15:31:52 [WARNING] [Minecraft-Client] Memory connection overburdened; after processing 2500 packets, we still have 527 to go!
2013-04-21 15:32:29 [INFO] [STDERR] net.minecraft.util.ReportedException: Ticking memory connection
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-21 15:32:29 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-04-21 15:32:29 [INFO] [STDERR] at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:11)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:553)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.world.World.setBlock(World.java:715)
2013-04-21 15:32:29 [INFO] [STDERR] at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
2013-04-21 15:32:29 [INFO] [STDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
2013-04-21 15:32:29 [INFO] [STDERR] ... 6 more
2013-04-21 15:32:29 [SEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:674)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:570)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at gem_mod.BlockGemFire.onBlockAdded(BlockGemFire.java:11)
at net.minecraft.world.chunk.Chunk.setBlockIDWithMetadata(Chunk.java:767)
at net.minecraft.world.World.setBlock(World.java:553)
at net.minecraft.world.World.setBlock(World.java:715)
at gem_mod.ItemPortalPlacer.onItemUse(ItemPortalPlacer.java:67)
at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:149)
at net.minecraft.item.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:425)
at net.minecraft.network.NetServerHandler.handlePlace(NetServerHandler.java:553)
at net.minecraft.network.packet.Packet15Place.processPacket(Packet15Place.java:79)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)
... 6 more
2013-04-21 15:32:29 [SEVERE] [Minecraft-Server] This crash report has been saved to: C:\MCP 1.5.1 UPDATED\jars\.\crash-reports\crash-2013-04-21_15.32.29-server.txt
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Stopping server
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving players
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving worlds
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether
2013-04-21 15:32:29 [INFO] [Minecraft-Server] Saving chunks for level 'New World'/The End
2013-04-21 15:32:31 [INFO] [ForgeModLoader] Unloading dimension 0
2013-04-21 15:32:31 [INFO] [ForgeModLoader] Unloading dimension -1
2013-04-21 15:32:31 [INFO] [ForgeModLoader] Unloading dimension 1
2013-04-21 15:32:31 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_STARTED to SERVER_STOPPED. Loading cannot continue
2013-04-21 15:32:31 [SEVERE] [ForgeModLoader]
mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
Gem Mod [Gem Mod!] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available
2013-04-21 15:32:31 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-04-21 15:32:31 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-04-21 15:32:31 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-04-21 15:32:31 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:799)
2013-04-21 15:32:31 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:470)
2013-04-21 15:32:31 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:530)
2013-04-21 15:32:31 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-04-21 15:32:40 [INFO] [Minecraft-Client] Stopping!
public void onBlockAdded(World par1World, int par2, int par3, int par4)
{
if (par1World.provider.dimensionId > Gem.dimension || par1World.getBlockId(par2, par3 - 1, par4) != Block.sandStone.blockID || !Gem.BlockPortalBlock.tryToCreatePortal(par1World, par2, par3, par4))
{
if (!par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !this.canNeighborBurn(par1World, par2, par3, par4))
{
par1World.setBlockToAir(par2, par3, par4);
}
else
{
par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, this.tickRate(par1World) + par1World.rand.nextInt(10));
}
}
}
This didn't work. The "tryToCreatePortal" and "canNeighborBurn" methods are undefined. Am I missing something?
crash report:
The code I put in my GemFireBlock
and the initialization of BlockID: