anothertime Posted July 7, 2018 Posted July 7, 2018 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? Quote
Cadiboo Posted July 7, 2018 Posted July 7, 2018 1.13 data packs, just wait a little while and all this will be handled (probably) automagically for you Quote About Me Spoiler My Discord - Cadiboo#8887 My Website - Cadiboo.github.io My Mods - Cadiboo.github.io/projects My Tutorials - Cadiboo.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)
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 (edited) 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 July 7, 2018 by _Cruelar_ Spelling mistake, sorry Quote 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
anothertime Posted July 7, 2018 Author Posted July 7, 2018 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 Quote
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 Help me I don't understand how he means this in actual code. Quote 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
Animefan8888 Posted July 7, 2018 Posted July 7, 2018 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. 1 Quote 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.
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 Thanks much clearer now. Quote 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
anothertime Posted July 7, 2018 Author Posted July 7, 2018 @Animefan8888: thank you! I'll keep myself on the IRecipe route then as it look the cleanest way to do this Quote
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 2 minutes ago, diesieben07 said: Do not use ForgeRegistry, use the IForgeRegistryModifiable interface. ForgeRegistry is an internal class. Thanks sounds much cleaner. Quote 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
anothertime Posted July 7, 2018 Author Posted July 7, 2018 @diesieben07 : is removing and re-adding recipes to the registry better then implementing an IRecipe linked to the config options then? Quote
anothertime Posted July 7, 2018 Author Posted July 7, 2018 Good. I'll go with the IRecipe then. Thank you! Quote
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 Conditions like which mod I'm also using? Quote 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
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 That's clear but how I test this In a json? Quote 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
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 It's more about finding out which mod is also used than processConditions. Quote 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
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 (edited) How you check for example for Baubles Edited July 7, 2018 by _Cruelar_ Quote 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
_Cruelar_ Posted July 7, 2018 Posted July 7, 2018 Haven't seen forge:mod_loaded before thanks for the help Quote 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
Aeronica Posted July 8, 2018 Posted July 8, 2018 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. Quote
Recommended Posts
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.