Jump to content

Get Block from String and Vice Versa


1SDAN

Recommended Posts

I'm working on a config file where players can set custom behaviors for blocks of vanilla and my and other mods and am having trouble finding a method of turning a string to a block and back. I know it exists, but all of the results I found via google that might answer my question seem to be outdated.

Link to comment
Share on other sites

1 minute ago, 1SDAN said:

I'm working on a config file where players can set custom behaviors for blocks of vanilla and my and other mods and am having trouble finding a method of turning a string to a block and back. I know it exists, but all of the results I found via google that might answer my question seem to be outdated.

Get the registry, GameRegistry.findRegistry, or ForgeRegistries.BLOCKS. And then call .getValue(ResourceLocation)

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

21 hours ago, Animefan8888 said:

Get the registry, GameRegistry.findRegistry, or ForgeRegistries.BLOCKS. And then call .getValue(ResourceLocation)

So if I give this a Block class it will give me the String (ie minecraft:oak_log) and vice versa?

 

EDIT: Apparently not. Is the block to string one block.getRegistryName().toString()?

 

EDIT2: I couldn't figure out how to convert a string to a resource location, but I've found Block.getBlockFromName(string). I'm going to do a couple tests to see what these two lines output and go from there.

Edited by 1SDAN
Link to comment
Share on other sites

1 hour ago, 1SDAN said:

I couldn't figure out how to convert a string to a resource location

new ResourceLocation(yourString).

 

1 hour ago, 1SDAN said:

Block.getBlockFromName(string)

That method does the same thing @Animefan8888 suggested but if it can't fing the block converts the string to a number and tries to get the block using that number as an ID. Do not use it, use IForgeRegistry#getValue.

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.