Jump to content

[Solved][1.10.2] Blockstates crashing


Silly511

Recommended Posts

I have a block with a facing property. However for some reason I can't set it's default state. Heres my block class:

 

public class CrystalFurnace extends Block {

public static final PropertyDirection FACING = BlockHorizontal.FACING;

public CrystalFurnace() {
	super(Material.ROCK, MapColor.RED);
	this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
	this.setCreativeTab(EnchantedAura.mainTab);
	this.setSoundType(SoundType.STONE);
}

@Override
public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) {
	return this.getStateFromMeta(meta).withProperty(FACING, placer.getHorizontalFacing().getOpposite());
}

@Override
public IBlockState getStateFromMeta(int meta) {
	if (meta >= 2 && meta <= 5)
		return getDefaultState();

	return getDefaultState().withProperty(FACING, EnumFacing.getFront(meta));
}

@Override
public int getMetaFromState(IBlockState state) {
	return state.getValue(FACING).getIndex();
}

}

 

But every time I run the game it crashes with this crash:

 

// Don't be sad. I'll do better next time, I promise!

Time: 10/14/16 11:10 AM
Description: Initializing game

java.lang.IllegalArgumentException: Cannot set property PropertyDirection{name=facing, clazz=class net.minecraft.util.EnumFacing, values=[north, south, west, east]} as it does not exist in BlockStateContainer{block=null, properties=[]}
at net.minecraft.block.state.BlockStateContainer$StateImplementation.withProperty(BlockStateContainer.java:210)
at silly511.enchantedaura.blocks.CrystalFurnace.<init>(CrystalFurnace.java:22)
at silly511.enchantedaura.EnchantedAura.preload(EnchantedAura.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:579)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:235)
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:213)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:142)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:593)
at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:255)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:477)
at net.minecraft.client.Minecraft.run(Minecraft.java:386)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)


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

-- Head --
Thread: Client thread
Stacktrace:
at net.minecraft.block.state.BlockStateContainer$StateImplementation.withProperty(BlockStateContainer.java:210)
at silly511.enchantedaura.blocks.CrystalFurnace.<init>(CrystalFurnace.java:22)
at silly511.enchantedaura.EnchantedAura.preload(EnchantedAura.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:579)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:235)
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:213)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:142)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:593)
at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:255)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:477)

-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.run(Minecraft.java:386)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)

-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Mac OS X (x86_64) version 10.10.1
Java Version: 1.8.0_66, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 878551736 bytes (837 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.32 Powered by Forge 12.18.1.2011 8 mods loaded, 8 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH	mcp{9.19} [Minecraft Coder Pack] (minecraft.jar) 
UCH	FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.1.2011.jar) 
UCH	Forge{12.18.1.2011} [Minecraft Forge] (forgeSrc-1.10.2-12.18.1.2011.jar) 
UCH	examplemod{1.0} [Example Mod] (bin) 
UCE	EnchantedAura{1.0.0} [Enchanted Aura] (bin) 
UCH	KeepingInventory{2.1} [Keeping Inventory] (bin) 
UCH	JEI{3.7.10.237} [Just Enough Items] (jei_1.10.2-3.7.10.237.jar) 
UCH	Waila{1.7.0} [Waila] (Waila-1.7.0-B3_1.9.4.jar) 
Loaded coremods (and transformers): 
Launched Version: 1.10.2
LWJGL: 2.9.2
OpenGL: ATI Radeon HD 2600 PRO OpenGL Engine GL version 2.1 ATI-10.0.19, ATI Technologies Inc.
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because ARB_framebuffer_object is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: 
Current Language: English (US)
Profiler Position: N/A (disabled)
CPU: 2x Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz

 

 

How can I fix this?

Link to comment
Share on other sites

You didn't declare your block state properties.

 

	@Override
protected BlockStateContainer createBlockState() {
	return new BlockStateContainer(this, new IProperty[] {FACING});
}

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

There's also no reason not to use .getDefaultState() in the onBlockPlaced method: the itemblock shouldn't ever have metadata associated with it.

 

Also, you allow any facing when the block is placed, and even save that value into metadata.  But when reloading the world you enforce the facing to be either UP or DOWN (any other direction gets set to DOWN).

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Yeah I spotted those. Heres my new block file:

 

public class CrystalFurnace extends Block {

public static final PropertyDirection FACING = BlockHorizontal.FACING;

public CrystalFurnace() {
	super(Material.ROCK, MapColor.RED);
	this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
	this.setCreativeTab(EnchantedAura.mainTab);
	this.setSoundType(SoundType.STONE);
}

@Override
protected BlockStateContainer createBlockState() {
	return new BlockStateContainer(this, FACING);
}

@Override
public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) {
	return getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
}

@Override
public IBlockState getStateFromMeta(int meta) {
	return getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
}

@Override
public int getMetaFromState(IBlockState state) {
	return state.getValue(FACING).getHorizontalIndex();
}

}

Link to comment
Share on other sites

Is there a reason that you did not extend BlockFurnace? At least walk through the vanilla furnace classes to plagiarize all code fragments that would fit your use case.

 

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Electronic Arts is making some much-needed changes to its soccer annual game EAFC 24 Coins. The addition of cross-play between PC, PS5. Stadia as well as Xbox Series X/S gamers and also players from PS4 as well as Xbox One players, is very thrilling. Cross-play has been demanded in FIFA by players for quite a long time. But as exciting as it may be, EA is actually holding off on providing full support for the technology. Particularly, FC 24 is not offering cross-play in its well-known Pro Clubs game mode. A confirmed statement from EA has stated that FC 24's cross-play feature will not be available for Pro Clubs in the foreseeable time. The reason according to EA is to ensure that "product innovativeness is of high top quality." Furthermore, Pro Clubs, according to EA is a degree of technical complexity that is higher than what developers can handle at the moment. "Technical complexity" is a subtle method of describing the scenario. The Pro Clubs of FIFA permit the use of up to 22 players in an online multiplayer game that includes between 2 and 11 real players in each team. Connecting 22 players on one platform isn't a simple task and adding interplay of the four platforms can make difficult. In the real world, the platforms pose less complicated than 22 players, however EA is just exploring cross-play, and therefore it's plausible when they say that additional time is required. It isn't stopping FIFA fans from feeling dissatisfied and angry about the situation However. Demands for cross-play being made available to FC 24 Pro Clubs are being circulated across the web and FIFA YouTuber JCC encouraging players to join support the cause. JCC along with other well-known players within the FIFA community are complaining that EA of placing the importance of FIFA Ultimate Team above the core experience like Pro Clubs. The company is very grateful that it has responded to the growing discontent within members of the FIFA community, saying it is aware of the criticism. Electronic Arts then points to its FIFA Twitter account to receive future updates on its plans for future games. This isn't a guarantee at all but it's about the closest a game's creator can get to say that something is being developed. FC 24 is all but certain to not have cross-play features for Pro Clubs at launch, or during the game's release. Maybe Pro Club cross-play will end being tested in FC 24 similar to how the basic cross-play was implemented in cheap EAFC 24 Coins. More likely, the feature will be a bit further away to be released by EA Sports FC's launch in 2023 or even later. It's also possible that FIFA fans are right and that EA's priority lies in FUT. It's the responsibility of EA to prove the criticism is not true.
    • SENSA69 💯 Daftar Link Slot Gacor Hari Ini Bisa Judi Slot Online KLIK DISINI >>> DAFTAR DAN LOGIN KLIK DISINI >>>   DAFTAR AKUN GACOR KLIK DISINI >>> DAFTAR AKUN VVIP KLIK DISINI >>>  LINK ALTERNATIF KLIK DISINI >>> AKUN GACOR SCATTER HITAM SENSA69 adalah slot gacor winrate 100% dengan server thailand dan akun pro. Dapatkan akses menuju kemenangan ke puluhan sampai ratusan juta rupiah hanya dalam hitungan menit. 3 web yang kami hadirkan ini adalah yang terbaik dengan histori kemenangan tertinggi di satu Asia Tenggara. Member-member dari web ini selalu kembali karena tim admin dan CS yang profesional serta kemenangan berapapun pasti akan dibayar. RTP slot gacor juga sudah disiapkan agar kalian tidak bingung lagi mau main apa dan di jam berapa. Semua fasilitas seperti deposit dana dan pulsa sudah disiapkan juga untuk kemudahan para slotters. Jadi tunggu apalagi? Raih kemenangan kalian disini sekarang juga!
    • SV388: Temukan situs taruhan sabung ayam resmi yang terjamin aman di Winning303! Bergabunglah dengan SV388 untuk pengalaman taruhan sabung ayam yang mengasyikkan dan aman. Nikmati berbagai pertandingan sabung ayam terbaik sambil memanfaatkan layanan terpercaya dari Winning303. Daftar sekarang dan rasakan sensasi taruhan yang tak terlupakan dengan SV388 di Winning303! ❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ ❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰
    • MPO1121: Temukan daftar situs judi slot dengan layanan pembayaran melalui Bank Danamon. Bergabunglah dengan MPO1121 untuk pengalaman taruhan slot online yang menarik dan aman. Nikmati berbagai permainan slot terbaik sambil memanfaatkan kemudahan pembayaran melalui Bank Danamon. Daftar sekarang dan rasakan sensasi taruhan yang tak terlupakan dengan MPO1121!" ❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰ ❱❱❱❱❱ DAFTAR DI SINI ❰❰❰❰❰
  • Topics

×
×
  • Create New...

Important Information

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