Jump to content

[1.8] multiple property enum issue


UltraTechX

Recommended Posts

I have these 3 json files to tell my block how to work with the given states:

 

railControlBlock.json (blockstate):

 

{
"variants": {
"normal": { "model": "generic:railControlBlock" },
"part=middle,shape=north_south": { "model": "generic:railControlBlock" },
"shape=ascending_east": { "model": "generic:railControlBlock", "y": 90 },
"shape=ascending_west": { "model": "generic:railControlBlock", "y": 90 },
"shape=ascending_north": { "model": "generic:railControlBlock" },
"shape=ascending_south": { "model": "generic:railControlBlock" },
"part=middle,shape=east_west": { "model": "generic:railControlBlock", "y": 90 },
"part=middle,shape=south_east": { "model": "generic:railControlBlock" },
"part=middle,shape=south_west": { "model": "generic:railControlBlock", "y": 90 },
"part=middle,shape=north_west": { "model": "generic:railControlBlock", "y": 180 },
"part=middle,shape=north_east": { "model": "generic:railControlBlock", "y": 270 }
}
}

 

 

controlRail.json (block model):

 

{
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"textures": {
"particle": "generic:blocks/railControlBlock",
"0": "generic:blocks/railControlBlock"
},
"elements": [
{
"name": "rail bottom",
"from": [ 0.0, 0.0, 13.0 ], 
"to": [ 16.0, 1.0, 15.0 ], 
"faces": {
"north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] },
"east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] },
"south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] },
"west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] },
"up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] },
"down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] }
}
},
{
"name": "rail bottom",
"from": [ 0.0, 0.0, 9.0 ], 
"to": [ 16.0, 1.0, 11.0 ], 
"faces": {
"north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] },
"east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] },
"south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] },
"west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] },
"up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] },
"down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] }
}
},
{
"name": "rail bottom",
"from": [ 0.0, 0.0, 5.0 ], 
"to": [ 16.0, 1.0, 7.0 ], 
"faces": {
"north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] },
"east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] },
"south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] },
"west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] },
"up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] },
"down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] }
}
},
{
"name": "rail bottom",
"from": [ 0.0, 0.0, 1.0 ], 
"to": [ 16.0, 1.0, 3.0 ], 
"faces": {
"north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] },
"east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] },
"south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] },
"west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] },
"up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] },
"down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] }
}
},
{
"name": "Center Track",
"from": [ 6.0, 1.0, 0.0 ], 
"to": [ 10.0, 2.0, 16.0 ], 
"faces": {
"north": { "texture": "#0", "uv": [ 13.0, 6.0, 14.0, 7.0 ] },
"east": { "texture": "#0", "uv": [ 2.0, 8.0, 3.0, 9.0 ] },
"south": { "texture": "#0", "uv": [ 2.0, 8.0, 3.0, 9.0 ] },
"west": { "texture": "#0", "uv": [ 2.0, 5.0, 3.0, 6.0 ] },
"up": { "texture": "#0", "uv": [ 2.0, 0.0, 3.0, 16.0 ] },
"down": { "texture": "#0", "uv": [ 2.0, 0.0, 3.0, 16.0 ] }
}
}
]
}

 

 

controlRailBlock.json (block model pointer):

 

{
"parent": "generic:block/controlRail",
"textures": {
"rail": "generic:blocks/railControlBlock"
}
}

 

 

any help? Thanks!  ;D

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

In case this helps here is the block class (enum is in the class as well):

 

 

package tutorial.generic;

import net.minecraft.block.Block;
import net.minecraft.block.BlockRail;
import net.minecraft.block.BlockRailBase;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.BlockPos;
import net.minecraft.util.IStringSerializable;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class railControlBlock extends BlockRail implements ITileEntityProvider {

public static final PropertyEnum SHAPE = PropertyEnum.create("shape", BlockRailBase.EnumRailDirection.class);
public static final PropertyEnum PART = PropertyEnum.create("part", EnumPartType.class);
private static String name = "railControlBlock";

    public railControlBlock() {
    	
        super();
        GameRegistry.registerTileEntity(railControl.class, name);
        setDefaultState(this.blockState.getBaseState().withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH).withProperty(PART, EnumPartType.MIDDLE));
        GameRegistry.registerBlock(this, name);
        this.setCreativeTab(CreativeTabs.tabMisc);
        this.setUnlocalizedName(name);
        this.setHardness(2.0f);
        setBlockBounds();
        this.setResistance(6.0f);
        this.setHarvestLevel("pickaxe", 2);
        this.isBlockContainer = true;
        
    }
    
    @Override
    public String toString() {
        return getName();
    }
    
  

@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
	return new railControl();
}



public static String getName(){
    	return name;
    }


  
  @SideOnly(Side.CLIENT)
  public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos)
  {
    setBlockBoundsBasedOnState(worldIn, pos);
    return super.getSelectedBoundingBox(worldIn, pos);
  }

public IProperty getShapeProperty()
  {
    return SHAPE;
  }


  
  public IBlockState getStateFromMeta(int meta)
  {
    return getDefaultState().withProperty(SHAPE, BlockRailBase.EnumRailDirection.byMetadata(meta));
  }
  
  @Override
    public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
    {
        
            setBlockBounds();
        
    }
  
  
  private void setBlockBounds()
  {
	  setBlockBounds(0F, 0.0F, 0F, 1F, 0.125F, 1F);
  }
  
  public int getMetaFromState(IBlockState state)
  {
    return ((BlockRailBase.EnumRailDirection)state.getValue(SHAPE)).getMetadata();
  }
  
  protected BlockState createBlockState()
  {
    return new BlockState(this, new IProperty[] { SHAPE, PART });
  }
  
  
  
  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;
  }

  public int getRenderBlockPass()
  {
  return 1;
  }
  
  protected void onNeighborChangedInternal(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
  {
    //whenever the blocks around it change
  }
  
  public static enum EnumPartType
    implements IStringSerializable
  {
    MIDDLE("middle"),  LEFT("left"), RIGHT("right");
    
    private final String name;
    
    private EnumPartType(String name)
    {
      this.name = name;
    }
    
    public String toString()
    {
      return this.name;
    }
    
    public String getName()
    {
      return this.name;
    }
  }
  
}

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

There should be a huge section from FML explaining which texture(s) it couldn't find. Compare that with your .json files and texture path locations.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

ok, here is all of the missing blockstates:

 

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=north_south not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=north_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_north not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_south not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_north not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=south_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=east_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=north_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=south_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=east_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_south not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_south not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=south_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=north_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_north not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=south_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=north_south not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_west not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_east not found

[07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=north_west not found

 

 

 

 

 

here is the reason i think its not that some are missing, its because the following should be true:

 

"part=middle,shape=north_south": { "model": "generic:railControlBlock" },

 

because of these lines in the block code that are run in the constructor:

 

setDefaultState(this.blockState.getBaseState().withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH).withProperty(PART, EnumPartType.MIDDLE));

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

I think you need to have the states in you blockstates file in the same order as you register them in.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

If the model's shape is working, it's an issue with the texture being invalid or missing. If the block is appearing as a cube, it's an issue with the model being invalid or missing. Which is it?

 

If you're using the vanilla blockstates format, you need to define the model for every possible combination of property values. The ones that are listed as missing are the ones you haven't defined a model for.

 

You can also use Forge's blockstates format, which lets you specify how each value affects the model instead of defining the model for every combination of values.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

something is different now, i added PART to everything that only had shape to get this code:

 

package tutorial.generic;

import net.minecraft.block.Block;
import net.minecraft.block.BlockRail;
import net.minecraft.block.BlockRailBase;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.BlockPos;
import net.minecraft.util.IStringSerializable;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class railControlBlock extends BlockRail implements ITileEntityProvider {

public static final PropertyEnum PART = PropertyEnum.create("part", EnumPartType.class);
public static final PropertyEnum SHAPE = PropertyEnum.create("shape", BlockRailBase.EnumRailDirection.class);

private static String name = "railControlBlock";

    public railControlBlock(int pnum) {
    	
        super();
        GameRegistry.registerTileEntity(railControl.class, name);
        if(pnum == 0) {
        	setDefaultState(this.blockState.getBaseState().withProperty(PART, EnumPartType.MIDDLE).withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH));
        }else if(pnum == 1){
        	setDefaultState(this.blockState.getBaseState().withProperty(PART, EnumPartType.LEFT).withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH));
        }else if(pnum == 2){
        	setDefaultState(this.blockState.getBaseState().withProperty(PART, EnumPartType.RIGHT).withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH));
        }
        
        GameRegistry.registerBlock(this, name);
        this.setCreativeTab(CreativeTabs.tabMisc);
        this.setUnlocalizedName(name);
        this.setHardness(2.0f);
        setBlockBounds();
        this.setResistance(6.0f);
        this.setHarvestLevel("pickaxe", 2);
        this.isBlockContainer = true;
        
    }
    
    @Override
    public String toString() {
        return getName();
    }
    
    
    
  

@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
	return new railControl();
}



public static String getName(){
    	return name;
    }


  
  @SideOnly(Side.CLIENT)
  public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos)
  {
    setBlockBoundsBasedOnState(worldIn, pos);
    return super.getSelectedBoundingBox(worldIn, pos);
  }

public IProperty getShapeProperty()
  {
    return SHAPE;
  }

public IProperty getPartProperty()
  {
    return PART;
  }


  
  public IBlockState getStateFromMeta(int meta)
  {
    return getDefaultState().withProperty(PART, EnumPartType.byMetadata(meta)).withProperty(SHAPE, BlockRailBase.EnumRailDirection.byMetadata(meta));
  }
  
  @Override
    public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
    {
        
            setBlockBounds();
        
    }
  
  
  private void setBlockBounds()
  {
	  setBlockBounds(0F, 0.0F, 0F, 1F, 0.125F, 1F);
  }
  
  public int getMetaFromState(IBlockState state)
  {
    return ((EnumPartType)state.getValue(PART)).getMetadata();
  }
  
  protected BlockState createBlockState()
  {
    return new BlockState(this, new IProperty[] { PART, SHAPE });
  }
  
  
  
  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;
  }

  public int getRenderBlockPass()
  {
  return 1;
  }
  
  protected void onNeighborChangedInternal(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
  {
    //whenever the blocks around it change
  }
  
  public static enum EnumPartType
    implements IStringSerializable
  {
    MIDDLE(0, "middle"),  
    LEFT(1, "left"), 
    RIGHT(2, "right");
	  
	private static final EnumPartType[] META_LOOKUP = new EnumPartType[values().length];

	private final int meta;
    
    private final String name;
    
    private EnumPartType(int meta, String name)
        {
            this.meta = meta;
            this.name = name;
        }

        public int getMetadata()
        {
            return this.meta;
        }

        public String toString()
        {
            return this.name;
        }
    public String getName()
    {
      return this.name;
    }
    
    public static EnumPartType byMetadata(int meta)
        {
            if (meta < 0 || meta >= META_LOOKUP.length)
            {
                meta = 0;
            }

            return META_LOOKUP[meta];
        }
    
    static
        {
            EnumPartType[] var0 = values();
            int var1 = var0.length;

            for (int var2 = 0; var2 < var1; ++var2)
            {
                EnumPartType var3 = var0[var2];
                META_LOOKUP[var3.getMetadata()] = var3;
            }
        }
  }
  
}

 

 

 

but here is what made it work:

 

i changed:

 

 public int getMetaFromState(IBlockState state)
  {
    return ((BlockRailBase.EnumRailDirection)state.getValue(SHAPE)).getMetadata();
  }

 

 

to:

 

 public int getMetaFromState(IBlockState state)
  {
    return ((EnumPartType)state.getValue(PART)).getMetadata();
  }

 

 

 

but now the block will not rotate anymore, how can I return both Blockstate's metadata?

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

If you have 3 block instances, you don't need to have this PART property registered at any point.

#getMetaFromState need to reflect #getStateFromMeta

Note you use EnumRailDirection states. There are 10 of those, and you probably don't want all of them.

Checkout those you don't need, like in BlockRailPowered.

 

Link to comment
Share on other sites

but now the block will not rotate anymore, how can I return both Blockstate's metadata?

 

To store multiple values in your metadata, you need to use bitwise operations to combine the values into a single integer.

 

The problem here is that metadata is restricted to 4 bits, but the 10 possible values of

EnumRailDirection

require 4 bits to store and the 3 possible values of

EnumPartType

require 2 bits to store. This means that you can't store both values in the metadata, you may need to store the

PART

property in your

TileEntity

instead. You can still have it as a property of the

BlockState

(and thus decide the model based on its value), just override

Block#getActualState

to return an

IBlockState

with the

PART

property's value retrieved from the

TileEntity

at the provided location.

 

Look at

BlockFlowerPot

for an example of an enum property stored in a

TileEntity

instead of the metadata.

 

Edit: I didn't realise you were using separate instances. Either use separate instances or store the

PART

property in the

TileEntity

. Like GotoLink said, there's no need to do both.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

it started crashing after i added this to the blocks main class:

 

 @Override
  public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
  /*     */   {
	  return state.withProperty(PART, this.part);
  }

 

i dont know whats wrong now.

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

I meant post the crash report, though having the code on Gist makes it a bit easier to read.

 

The exception type and stack trace should tell you what went wrong even if the message doesn't.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

ok then, here is the crash report:

 

[16:05:00] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:-1]: ---- Minecraft Crash Report ----
// Shall we play a game?

Time: 10/4/15 4:05 PM
Description: Unexpected error

java.lang.NullPointerException: Unexpected error
at net.minecraft.crash.CrashReportCategory.firstTwoElementsOfStackTraceMatch(Unknown Source)
at net.minecraft.crash.CrashReport.makeCategoryDepth(Unknown Source)
at net.minecraft.crash.CrashReport.makeCategory(Unknown Source)
at net.minecraft.world.World.playAuxSFXAtEntity(Unknown Source)
at net.minecraft.world.World.playAuxSFX(Unknown Source)
at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerDestroyBlock(Unknown Source)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_178891_a(Unknown Source)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_180511_b(Unknown Source)
at net.minecraft.client.Minecraft.clickMouse(Unknown Source)
at net.minecraft.client.Minecraft.runTick(Unknown Source)
at net.minecraft.client.Minecraft.runGameLoop(Unknown Source)
at net.minecraft.client.Minecraft.run(Unknown Source)
at net.minecraft.client.main.Main.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)


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

-- Head --
Stacktrace:
at net.minecraft.crash.CrashReportCategory.firstTwoElementsOfStackTraceMatch(Unknown Source)
at net.minecraft.crash.CrashReport.makeCategoryDepth(Unknown Source)
at net.minecraft.crash.CrashReport.makeCategory(Unknown Source)
at net.minecraft.world.World.playAuxSFXAtEntity(Unknown Source)
at net.minecraft.world.World.playAuxSFX(Unknown Source)
at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerDestroyBlock(Unknown Source)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_178891_a(Unknown Source)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_180511_b(Unknown Source)
at net.minecraft.client.Minecraft.clickMouse(Unknown Source)

-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['Player640'/0, l='MpServer', x=-587.43, y=56.00, z=-574.99]]
Chunk stats: MultiplayerChunkCache: 599, 599
Level seed: 0
Level generator: ID 01 - flat, ver 0. Features enabled: false
Level generator options: 
Level spawn location: -586.00,4.00,-567.00 - World: (-586,4,-567), Chunk: (at 6,0,9 in -37,-36; contains blocks -592,0,-576 to -577,255,-561), Region: (-2,-2; contains chunks -64,-64 to -33,-33, blocks -1024,0,-1024 to -513,255,-513)
Level time: 15612 game time, 15468 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 1 total; [EntityPlayerSP['Player640'/0, l='MpServer', x=-587.43, y=56.00, z=-574.99]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(Unknown Source)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Unknown Source)
at net.minecraft.client.Minecraft.run(Unknown Source)
at net.minecraft.client.main.Main.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)

-- System Details --
Details:
Minecraft Version: 1.8
Operating System: Windows 8.1 (amd64) version 6.3
Java Version: 1.7.0_79, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 783627456 bytes (747 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.10 FML v8.0.99.99 Minecraft Forge 11.14.3.1519 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJAAAA	mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
UCHIJAAAA	FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.8-11.14.3.1519.jar) 
UCHIJAAAA	Forge{11.14.3.1519} [Minecraft Forge] (forgeSrc-1.8-11.14.3.1519.jar) 
UCHIJAAAA	generic{0.0.0} [Generic Mod] (bin) 
Loaded coremods (and transformers): 
GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13399 Compatibility Profile Context 15.200.1062.1004' Renderer: 'AMD Radeon HD 7800 Series'
Launched Version: 1.8
LWJGL: 2.9.1
OpenGL: AMD Radeon HD 7800 Series GL version 4.5.13399 Compatibility Profile Context 15.200.1062.1004, ATI Technologies Inc.
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 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: No
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)

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

RenderGlobal#playAusSFX

(called from

World#playAuxSFXAtEntity

) is throwing an exception, but a

NullPointerException

was thrown while generating the crash report.

 

Put a breakpoint in the

catch

block of

World#playAuxSFXAtEntity

and run Minecraft in debug mode. When it hits the breakpoint, the

throwable

variable will contain the exception that was thrown.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

RenderGlobal#playAusSFX

(called from

World#playAuxSFXAtEntity

) is throwing an exception, but a

NullPointerException

was thrown while generating the crash report.

 

Put a breakpoint in the

catch

block of

World#playAuxSFXAtEntity

and run Minecraft in debug mode. When it hits the breakpoint, the

throwable

variable will contain the exception that was thrown.

 

 

i dont use any SFX yet in the game, so I don't think that is the case

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

This is a bug with ForgeGradle actually because the code does not have line numbers.

Change to the "bleeding edge" version in your build.gradle. Then run gradlew clean cleanCache and then gradlew setupDecompWorkspace again to fix it.

 

whats the "bleeding edge" version of gradle and where can I find it?

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

i dont use any SFX yet in the game, so I don't think that is the case

 

If you look at the stacktrace, it's being called from

PlayerControllerMP#onPlayerDestroyBlock

; so it's likely the block's breaking sound that's causing the issue.

 

Updating ForgeGradle or following my previous debugging instructions should provide further information as to what the issue is.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

It's all explained in the build.gradle.

 

you were right!  Now the error changed to the line that i put in my block's class:

 

Cannot set property PropertyEnum{name=part, clazz=class tutorial.generic.railControlBlock$EnumPartType, values=[middle, left, right]} to 0 on block generic:railControlBlock, it is not an allowed value

 

 

here is the function that breaks it:

 

@Override

  public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos){

  return state.withProperty(PART, this.part);

  }

I'm working on something big!  As long as there arent alot of big issues... [D

Link to comment
Share on other sites

you were right!  Now the error changed to the line that i put in my block's class:

 

Cannot set property PropertyEnum{name=part, clazz=class tutorial.generic.railControlBlock$EnumPartType, values=[middle, left, right]} to 0 on block generic:railControlBlock, it is not an allowed value

 

 

here is the function that breaks it:

 

@Override

  public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos){

  return state.withProperty(PART, this.part);

  }

 

PART

is a

PropertyEnum

of

EnumPartType

, but you're trying to assign an

int

value to it (

this.part

).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

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

    • LUCONETWORK  LucoNetwork is a brand new SkyBlock and Prisons server and we are looking for staff & Developers. We are always in need of players and we want to make this a very fun and enjoyable server for all to enjoy. We are welcoming ALL. We hope to be the best and we want your support to make our servers better. Thank you so much for reading this. About the server: We are currently working on getting the SkyBlock server up and released. Then we will be working on some more servers to get them up. We will be bug fixing once the server released & working hard to get updates out to Skyblock too. we are striving to be the best network. What game modes can I hope to see inside Luco Network?  Prisons  Lifesteal  SkyBlock  Survival / Earth SMP Why should I join LucoNetwork? We strive to listen to our player base, we want to work for our player base.  We strive to make the best & enjoyable servers for all to enjoy. Our links: https://discord.gg/fmd4SrzdWt
    • When i try to launch Minecraft Java 1.20.1 forge with mods (82 mods),on start it loaded all mods,but at end Java just crashed.  p.s i allocated 8GB ram for minecraft and i didn't runned another instance.Log file pp.s I use ATlauncher   Environment: Organising filesystem [24/04/2024 23:40:08 PM] ATLauncher Version: 3.4.36.3 [11ae0b2334c236e93ee8128de980952b2a1b8900] [24/04/2024 23:40:08 PM] App Arguments: ["--install-method=aur","--no-launcher-update"] [24/04/2024 23:40:08 PM] JVM Arguments: ["-Dawt.useSystemAAFontSettings=on","-Dswing.aatext=true"] [24/04/2024 23:40:08 PM] Java Version: Java 22 (22) [24/04/2024 23:40:08 PM] Java Path: /usr/lib/jvm/java-22-openjdk [24/04/2024 23:40:08 PM] 64 Bit Java: true [24/04/2024 23:40:08 PM] RAM Available: 14931MB [24/04/2024 23:40:08 PM] Launcher Directory: **USERSDIR** [24/04/2024 23:40:08 PM] GPU: IvyBridge GT2 [HD Graphics 4000] (Intel Corporation (0x8086)) unknown 256MB VRAM [24/04/2024 23:40:08 PM] CPU: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 4 cores/8 threads [24/04/2024 23:40:08 PM] Operating System: EndeavourOS (unknown (unknown) build 6.8.7-arch1-1) [24/04/2024 23:40:08 PM] Bitness: 64 [24/04/2024 23:40:08 PM] Uptime: 15889 [24/04/2024 23:40:08 PM] Manufacturer: GNU/Linux
    • If you have nvidia graphics, don't touch your amd drivers, otherwise it might fix it but keep running on integrated graphics, which will result in terrible performance. For nvidia graphics, you need to tell windows and nvidia control panel that anything Minecraft related (the launcher, java, etc...) should prefer high performance graphics so that it actually uses your nvidia gpu
    • In the ever-evolving landscape of technology, the rise of cryptocurrencies and digital assets has introduced both unparalleled opportunities and unprecedented challenges. As these digital currencies become increasingly prevalent, so too does the risk of theft and loss. Yet, amidst the complexity and uncertainty, there exists a beacon of hope: ADRIAN LAMO HACKER. Technology has indeed become more sophisticated and enhanced, presenting new challenges in the realm of asset recovery. However, just as any other currency can be stolen or lost, crypto and digital assets are not beyond redemption. With the right expertise and guidance, recovery is possible and achievable. Contact ADRIAN LAMO HACKER via the website: https://adrianlamohackpro.online/ , a trusted, honest, and certified agency specializing in the retrieval of stolen or lost digital assets. In my own experience, I found myself in dire straits after falling victim to cybercriminals who absconded with a significant portion of my crypto holdings. It was a daunting situation, but I refused to succumb to despair. Upon engaging ADRIAN LAMO HACKER, their professionalism, and integrity immediately struck me, as an unwavering commitment to their clients. They deeply understand blockchain technology and utilize advanced methodologies to trace and recover lost or stolen funds. Their approach is meticulous, their expertise unparalleled, and their results speak for themselves. In a matter of days, ADRIAN LAMO HACKER successfully traced and recovered over 90% of my stolen funds, a feat I once believed to be unattainable. Their fees were fair and transparent, and communication throughout the process was nothing short of excellent. They kept me informed every step of the way, providing reassurance and guidance when I needed it most. For anyone who has fallen victim to crypto theft or loss, I wholeheartedly recommend ADRIAN LAMO HACKER. They are not just experts in their field; they are guardians of justice in the digital realm. With their assistance, you can reclaim what's rightfully yours and emerge stronger than ever before. So, if you find yourself grappling with the devastation of lost or stolen digital assets, don't despair. Reach out to ADRIAN LAMO HACKER via website: https://adrianlamohackpro.online/  / Telegram: @ADRIANLAMOHACKERTECH and let them guide you toward a brighter tomorrow.
  • Topics

×
×
  • Create New...

Important Information

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