Jump to content

[1.8]Rare Crash when using world.setBlockState()


Brickfix

Recommended Posts

Hi, this is me again - with a different problem

 

This time, as I am trying to generate custom structures, I have a not very comon crash which is related to setting a furnace.

This crash does not occur everytime I generate the structure - just sometimes.

Sometimes chunks where the structure spawns in are not decorated or have an ocean biome ID - even though they are clearly taiga or forest.

 

CrashReport:

 

 

---- Minecraft Crash Report ----

// Quite honestly, I wouldn't worry myself about that.

 

Time: 04.12.14 13:06

Description: Exception ticking world

 

java.lang.RuntimeException: Already decorating

at net.minecraft.world.biome.BiomeDecorator.func_180292_a(BiomeDecorator.java:96)

at net.minecraft.world.biome.BiomeGenBase.func_180624_a(BiomeGenBase.java:350)

at net.minecraft.world.biome.BiomeGenSnow.func_180624_a(BiomeGenSnow.java:55)

at net.minecraft.world.gen.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:470)

at net.minecraft.world.gen.ChunkProviderServer.populate(ChunkProviderServer.java:269)

at net.minecraft.world.chunk.Chunk.populateChunk(Chunk.java:1079)

at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:180)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:122)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:92)

at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:189)

at net.minecraft.world.World.getChunkFromChunkCoords(World.java:304)

at net.minecraft.world.World.getChunkFromBlockCoords(World.java:299)

at net.minecraft.world.World.getBlockState(World.java:833)

at net.minecraft.world.World.updateComparatorOutputLevel(World.java:3657)

at net.minecraft.world.World.setTileEntity(World.java:2332)

at net.minecraft.world.chunk.Chunk.func_177424_a(Chunk.java:883)

at net.minecraft.world.World.getTileEntity(World.java:2283)

at net.minecraft.block.BlockFurnace.breakBlock(BlockFurnace.java:187)

at net.minecraft.world.chunk.Chunk.setBlockState(Chunk.java:667)

at net.minecraft.world.World.setBlockState(World.java:329)

at net.minecraft.block.BlockFurnace.func_176445_e(BlockFurnace.java:76)

at net.minecraft.block.BlockFurnace.onBlockAdded(BlockFurnace.java:46)

at net.minecraft.world.chunk.Chunk.setBlockState(Chunk.java:713)

at net.minecraft.world.World.setBlockState(World.java:329)

at com.brickfix.worldgenmod.GenStruktureTower.genDecoration(GenStruktureTower.java:73)

at com.brickfix.worldgenmod.GenStruktureTower.genStrukure(GenStruktureTower.java:58)

at com.brickfix.worldgenmod.GenStruktureBase.generate(GenStruktureBase.java:28)

at com.brickfix.worldgenmod.BrickfixEventHandler.DecorateBiomeEvent(BrickfixEventHandler.java:29)

at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_BrickfixEventHandler_DecorateBiomeEvent_DecorateBiomeEvent.invoke(.dynamic)

at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55)

at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:138)

at net.minecraft.world.biome.BiomeDecorator.genDecorations(BiomeDecorator.java:133)

at net.minecraft.world.biome.BiomeDecorator.func_180292_a(BiomeDecorator.java:125)

at net.minecraft.world.biome.BiomeGenBase.func_180624_a(BiomeGenBase.java:350)

at net.minecraft.world.biome.BiomeGenSnow.func_180624_a(BiomeGenSnow.java:55)

at net.minecraft.world.gen.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:470)

at net.minecraft.world.gen.ChunkProviderServer.populate(ChunkProviderServer.java:269)

at net.minecraft.world.chunk.Chunk.populateChunk(Chunk.java:1079)

at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:180)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:122)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:92)

at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:189)

at net.minecraft.world.World.getChunkFromChunkCoords(World.java:304)

at net.minecraft.world.World.getChunkFromBlockCoords(World.java:299)

at net.minecraft.world.World.getBlockState(World.java:833)

at net.minecraft.block.BlockGrass.updateTick(BlockGrass.java:73)

at net.minecraft.block.Block.randomTick(Block.java:428)

at net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:454)

at net.minecraft.world.WorldServer.tick(WorldServer.java:221)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:694)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:598)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:164)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:478)

at java.lang.Thread.run(Unknown Source)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at net.minecraft.world.biome.BiomeDecorator.func_180292_a(BiomeDecorator.java:96)

at net.minecraft.world.biome.BiomeGenBase.func_180624_a(BiomeGenBase.java:350)

at net.minecraft.world.biome.BiomeGenSnow.func_180624_a(BiomeGenSnow.java:55)

at net.minecraft.world.gen.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:470)

at net.minecraft.world.gen.ChunkProviderServer.populate(ChunkProviderServer.java:269)

at net.minecraft.world.chunk.Chunk.populateChunk(Chunk.java:1079)

at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:180)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:122)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:92)

at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:189)

at net.minecraft.world.World.getChunkFromChunkCoords(World.java:304)

at net.minecraft.world.World.getChunkFromBlockCoords(World.java:299)

at net.minecraft.world.World.getBlockState(World.java:833)

at net.minecraft.world.World.updateComparatorOutputLevel(World.java:3657)

at net.minecraft.world.World.setTileEntity(World.java:2332)

at net.minecraft.world.chunk.Chunk.func_177424_a(Chunk.java:883)

at net.minecraft.world.World.getTileEntity(World.java:2283)

at net.minecraft.block.BlockFurnace.breakBlock(BlockFurnace.java:187)

at net.minecraft.world.chunk.Chunk.setBlockState(Chunk.java:667)

at net.minecraft.world.World.setBlockState(World.java:329)

at net.minecraft.block.BlockFurnace.func_176445_e(BlockFurnace.java:76)

at net.minecraft.block.BlockFurnace.onBlockAdded(BlockFurnace.java:46)

at net.minecraft.world.chunk.Chunk.setBlockState(Chunk.java:713)

at net.minecraft.world.World.setBlockState(World.java:329)

at com.brickfix.worldgenmod.GenStruktureTower.genDecoration(GenStruktureTower.java:73)

at com.brickfix.worldgenmod.GenStruktureTower.genStrukure(GenStruktureTower.java:58)

at com.brickfix.worldgenmod.GenStruktureBase.generate(GenStruktureBase.java:28)

at com.brickfix.worldgenmod.BrickfixEventHandler.DecorateBiomeEvent(BrickfixEventHandler.java:29)

at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_BrickfixEventHandler_DecorateBiomeEvent_DecorateBiomeEvent.invoke(.dynamic)

at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55)

at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:138)

at net.minecraft.world.biome.BiomeDecorator.genDecorations(BiomeDecorator.java:133)

at net.minecraft.world.biome.BiomeDecorator.func_180292_a(BiomeDecorator.java:125)

at net.minecraft.world.biome.BiomeGenBase.func_180624_a(BiomeGenBase.java:350)

at net.minecraft.world.biome.BiomeGenSnow.func_180624_a(BiomeGenSnow.java:55)

at net.minecraft.world.gen.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:470)

at net.minecraft.world.gen.ChunkProviderServer.populate(ChunkProviderServer.java:269)

at net.minecraft.world.chunk.Chunk.populateChunk(Chunk.java:1079)

at net.minecraft.world.gen.ChunkProviderServer.originalLoadChunk(ChunkProviderServer.java:180)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:122)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:92)

at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:189)

at net.minecraft.world.World.getChunkFromChunkCoords(World.java:304)

at net.minecraft.world.World.getChunkFromBlockCoords(World.java:299)

at net.minecraft.world.World.getBlockState(World.java:833)

at net.minecraft.block.BlockGrass.updateTick(BlockGrass.java:73)

at net.minecraft.block.Block.randomTick(Block.java:428)

at net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:454)

at net.minecraft.world.WorldServer.tick(WorldServer.java:221)

 

-- Affected level --

Details:

Level name: Copy of First test (please)

All players: 1 total; [EntityPlayerMP['Player217'/141, l='Copy of First test (please)', x=35,25, y=110,27, z=-602,72]]

Chunk stats: ServerChunkCache: 956 Drop: 0

Level seed: 1333919601

Level generator: ID 00 - default, ver 1. Features enabled: true

Level generator options:

Level spawn location: 202,00,64,00,255,00 - World: (202,64,255), Chunk: (at 10,4,15 in 12,15; contains blocks 192,0,240 to 207,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)

Level time: 3124 game time, 3124 day time

Level dimension: 0

Level storage version: 0x04ABD - Anvil

Level weather: Rain time: 22088 (now: false), thunder time: 153102 (now: false)

Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true

Stacktrace:

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:694)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:598)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:164)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:478)

at java.lang.Thread.run(Unknown Source)

 

-- System Details --

Details:

Minecraft Version: 1.8

Operating System: Windows 8 (amd64) version 6.2

Java Version: 1.7.0_51, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 685553056 bytes (653 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP v9.10 FML v8.0.10.1248 Minecraft Forge 11.14.0.1248 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{8.0.10.1248} [Forge Mod Loader] (forgeSrc-1.8-11.14.0.1248-1.8.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{11.14.0.1248} [Minecraft Forge] (forgeSrc-1.8-11.14.0.1248-1.8.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

BrickfixWorldGen{1.0} [brickfix WorldGen] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Profiler Position: N/A (disabled)

Player Count: 1 / 8; [EntityPlayerMP['Player217'/141, l='Copy of First test (please)', x=35,25, y=110,27, z=-602,72]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml,forge'

 

 

 

This does not happen everytime the structure spawns! So I do know that it does work, it has to be something very weird that i do not understand. Any help would be very appreciated :)

 

EDIT

I changed to topic name as the problem seems to be something else:

Every now and than, when generating my custom structure, the game crashes. The crash report alway looks simiular to the one above, but this also happens when I use any type of block.

It also happened when using world.setBlockToAir, which is basically the same. I don't really know the reason.

 

I use the DecorateBiomeEvent to call the generating class, maybe that is a problem?

It has happened several times with different blocks: Blocks.air, Blocks.stone_Brick, Blocks.furnace and some other.

 

Another side note: It alway happens at the same place: So when I duplicate the world, it always happens at the exact same structure at the exact same block. It doesn't happen with every structure I spawn, only with every 100th or something.

 

Thanks again for any help

 

 

Link to comment
Share on other sites

Well, this problem is getting more and more weird:

 

First of all, I found out that it is NOT seed-related. I have been wrong about that.

It seems to be something that happens when there is a lot happening "at once", e.g. when I start a new world and instantly go flying to the next structure.

It doesn't happen when I walk to the structure slowly.

 

I have set the chance to spawn at a chank to once every five hundred tries, and after flying through a regular world it happened to me once - after 20 minutes. So I am already thinking that it is either when it is generated in a chunk that technicaly doesn't decorate yet, but starts decorating, so it throughs the exception "already decorating" or my computer is just to slow. I will try to keep the generation of the structure in one chunk, maybe that will help

 

EDIT:

I have fixed it (at least I hope so): It really seems to be a problem, when my structure is generating in more than just one chunk. I could now even set the probability to spawn my structure up to once every fifty tries, and there wasn't any crash for ten minutes when flying strate.

 

But this is not a very acceptable solution - as it does not allow me to generate bigger structures. And how do mineshafts work, or villages? It doesn't crash on their generation!

 

I still hope that it is a problem with Forge which will get fixed or something, or that somebody points out what I did wrong.

 

~Brickfix

Link to comment
Share on other sites

I am using the DecorateBiomeEvent to enable my structure generation:

 

@SubscribeEvent
public void DecorateBiomeEvent(DecorateBiomeEvent event)
{
	BlockPos pos = event.pos;
	World world = event.world;
	Random random = event.rand;

	int xCoord = pos.getX();
	int zCoord = pos.getZ();



	BlockPos pos1 = new BlockPos(xCoord+2, 0, zCoord+2);

	if (random.nextInt(500)==0) (new GenStruktureTower()).generate(world, random, pos1);
}

 

I would really prefer to use the IWorldGenerator interface, but for some reason it is not working for me. But for now I don't have any crashes, as I made sure that my structure spawns exclusively in one chunk. Still, if there would be a solution, this would be very good, since structures limited to one chunk can't be that big - and I want to add bigger structures later on the way

 

~Brickfix

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.