Jump to content

[1.12] Disable / enable my recipes


anothertime

Recommended Posts

Hi!

I'm new to modding and I'm starting to learn things here on the forum and reading online tutorials. I've created my blocks, configs and recipes with the json files. What I could not find is how to disable a registered recipe (one of mine) after it was registered (and to re-enable it later)

 

Let's say that I have a recipe for a block of dirt and an option in my config file to enable or disable this recipe. So far so good, I read how to do that with the json file and the factories. But now I want to sync the server config to the player when he join a server. I got the packets working so that's it good. But how do I disable my dirt recipe if it was disabled on the server config file but now on the client one? And how to re-enable it when the player logoff from the server and want to play in a single player world on his computer? I know what events to use, what I can't find is a way to disable (and then re-enable) a registered recipe

 

Can someone point me in the right direction?

Link to comment
Share on other sites

1.13 data packs, just wait a little while and all this will be handled (probably) automagically for you

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

May search for the Reciperegistry (not the actual name) in Minecraft or Forge to see wether there's a way to disable them or not, but I've never tried this but if you find a solution it could be useful for me.

Edited by _Cruelar_
Spelling mistake, sorry

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

Link to comment
Share on other sites

When I was looking for a way to sync the configuration between server and client I found this post by diesieben07 so it should be possible right now on 1.12.

 

The IForgeRegistry don't seem to have a way to disable an entry

 

I was thinking about implementing by own IRecipe and returning an empty itemstack in getCraftingResult and getRecipeOutput but I don't know if this is a good idea or not

Link to comment
Share on other sites

3 minutes ago, _Cruelar_ said:

Help me I don't understand how he means this in actual code.

 

2 minutes ago, anothertime said:

You and I both ?

Here is how you can remove the recipe from the game.

ForgeRegistry<IRecipe> recipes = (ForgeRegistry<IRecipe>) ForgeRegistries.RECIPES;
recipes.remove(new ResourceLocation("minecraft", "furnace"));

Though you will need to re-add the recipes after a disconnect. Though if you send the packet in the correct event it will sync your recipes correctly.

 

On the other hand you could create your own IRecipe implementation that references your config variables and return accordingly in matches and getCraftingResult.

  • Thanks 1

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

2 minutes ago, diesieben07 said:

Do not use ForgeRegistry, use the IForgeRegistryModifiable interface. ForgeRegistry is an internal class.

Thanks sounds much cleaner.

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

Link to comment
Share on other sites

When I disabled recipes via mod config I created a pair of IRecipeFactory classes (recipe factories) for my recipes and did overrides on a couple of methods. This seems to work well as long as you disable the recipes you don't want before you create a world. See here  here here.here.

 

I'd be curious to know if they way I'm doing this is bad or not.

 

 

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.