Jump to content

How to setBlock in 1.12?


jordsta95

Recommended Posts

Simple question, how do you create a blockstate based on a registry name. 

 

What I essentially want to do is to be able to pass regName as a parameter, and have said block be created above the current block.

BlockPos pos = getPos();
String regName = "minecraft:stone";
world.setBlockState(new BlockPos(pos.getX(), (pos.getY() + 1), pos.getZ()), regName);

However, I understand that the second parameter is an instance of IBlockState, but I'm a little lost as to how I can create this using the registry name of a block, which I can then pass in as the variable.

 

Thanks,
Jordan

Why bother?

Link to comment
Share on other sites

To get blockstate use Block#getDefaultState()

Block is the block you want to place, you can get it from block list like Blocks class

To get block by registry name, try going through ForgeRegistry

Edited by Toma™
  • Like 2
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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I tried installing forge for 1.20.6 and for some reason when i open it, it says: "Java Virtual Machine Launcher": Error: Unable to acces jarfile C:\Users\PC\OneDrive\???????????\forge-1.20.6-50.1.0-installer.jar. I dont have any idea what to do. Can anyone help?
    • Update I seem to have fixed it by removing the folders made when the server first starts (e.g. config, world) and starting it all again.  
    • Good days im working on this Costume underground dungeon the plan is creating a mineshaft tunel whit fully functional railway and rail switchs going deep down into the ground      My hypothesis its than than the rails get created before the supporting stone blocks   i was setting blocks whit  Level.setBlock(pos,blkstate,2)  in mode 2 i change it to 10 but the problem persist  in the doorblock class it uses 3 as flag   level.setBlock(p_52750_.above(), p_52751_.setValue(HALF, DoubleBlockHalf.UPPER), 3); i set 3 as flag the problem continues (i du not know what 3 means) this numbers are basically a mistery ===> i need the number mode to set a block into the world whithout doing any checks or triggering neighbors blocks  ############# The nbt class has an Enum to make more redable the code  is in "import net.minecraft.nbt.Tag;" nbtpos = entitydata.getList("blockPos", Tag.TAG_INT);// blockdata contains pos;   if theres something like this for the setBlockMode that would be nice           
    • this is a really old resurrected post  anyway    //values to nbt  ListTag nbtblockpos = new ListTag(); nbtblockpos.add(IntTag.valueOf(blockPos.getX())); nbtblockpos.add(IntTag.valueOf(blockPos.getY())); nbtblockpos.add(IntTag.valueOf(blockPos.getZ())); entitydata.put("blockPos", nbtblockpos); ListTag nbtpos = new ListTag(); nbtpos.add(DoubleTag.valueOf(Pos.x)); nbtpos.add(DoubleTag.valueOf(Pos.y)); nbtpos.add(DoubleTag.valueOf(Pos.z)); entitydata.put("pos", nbtpos);   //getting things back if(entitydata.contains("blockPos")) { nbtpos = entitydata.getList("blockPos", Tag.TAG_INT);// blockdata contains pos this.blockPos = new BlockPos( nbtpos.getInt(0), nbtpos.getInt(1), nbtpos.getInt(2) ); } this.pos = null; if(entitydata.contains("pos")) { nbtpos = entitydata.getList("pos", Tag.TAG_DOUBLE);// blockdata contains pos this.Pos = new Vec3( nbtpos.getDouble(0), nbtpos.getDouble(1), nbtpos.getDouble(2) ); }    
  • Topics

×
×
  • Create New...

Important Information

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