Jump to content

Removing/ Editing Vanilla Advancemets


StrikerRocker

Recommended Posts

In Minecraft 1.12 achievements were replaced by advancement. After 1.12 every block had advancement bound to it for recipes . So when i remove recipes it causes a console spam which becomes really annoying when trying to solve issues. For removing recipes i use the following code:

Spoiler

@SubscribeEvent
public static void removeRecipes(RegistryEvent.Register<IRecipe> event) {
    IForgeRegistryModifiable modRegistry = (IForgeRegistryModifiable) event.getRegistry();
    ResourceLocation oak = new ResourceLocation("minecraft:oak_stairs");
        modRegistry.remove(oak);
}

The log spam caused by:

Spoiler

[13:47:23] [Server thread/ERROR]: Parsing error loading built-in advancement minecraft:recipes/building_blocks/oak_stairs
com.google.gson.JsonSyntaxException: Unknown recipe 'minecraft:oak_stairs'
   at net.minecraft.advancements.AdvancementRewards$Deserializer.deserialize(AdvancementRewards.java:204) ~[AdvancementRewards$Deserializer.class:?]
   at net.minecraft.advancements.AdvancementRewards$Deserializer.deserialize(AdvancementRewards.java:180) ~[AdvancementRewards$Deserializer.class:?]
   at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69) ~[TreeTypeAdapter.class:?]
   at com.google.gson.Gson.fromJson(Gson.java:887) ~[Gson.class:?]
   at com.google.gson.Gson.fromJson(Gson.java:952) ~[Gson.class:?]
   at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162) ~[TreeTypeAdapter$GsonContextImpl.class:?]
   at net.minecraft.util.JsonUtils.deserializeClass(JsonUtils.java:359) ~[JsonUtils.class:?]
   at net.minecraft.util.JsonUtils.deserializeClass(JsonUtils.java:381) ~[JsonUtils.class:?]
   at net.minecraft.advancements.Advancement$Builder.deserialize(Advancement.java:295) ~[Advancement$Builder.class:?]
   at net.minecraft.advancements.AdvancementManager$1.deserialize(AdvancementManager.java:50) ~[AdvancementManager$1.class:?]
   at net.minecraft.advancements.AdvancementManager$1.deserialize(AdvancementManager.java:46) ~[AdvancementManager$1.class:?]
   at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69) ~[TreeTypeAdapter.class:?]
   at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:435) ~[JsonUtils.class:?]
   at net.minecraft.util.JsonUtils.fromJson(JsonUtils.java:485) ~[JsonUtils.class:?]
   at net.minecraft.advancements.AdvancementManager.loadBuiltInAdvancements(AdvancementManager.java:185) [AdvancementManager.class:?]
   at net.minecraft.advancements.AdvancementManager.reload(AdvancementManager.java:69) [AdvancementManager.class:?]
   at net.minecraft.advancements.AdvancementManager.<init>(AdvancementManager.java:61) [AdvancementManager.class:?]
   at net.minecraft.world.WorldServer.init(WorldServer.java:162) [WorldServer.class:?]
   at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:123) [IntegratedServer.class:?]
   at net.minecraft.server.integrated.IntegratedServer.init(IntegratedServer.java:160) [IntegratedServer.class:?]
   at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:550) [MinecraftServer.class:?]
   at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]

So how can i remove recipes without causing huge log spam like this

Link to comment
Share on other sites

i think this is a known issue. While it is possible to remove advancements it takes a lot of work. If you remove the recipes you get the error. Instead of removing the recipe, many people replace it with a "dummy" recipe instead. That gets rid of the error, but brings up a different message (warning about "dangerous prefix"). If you're interested in trying this though I describe it my tips on recipes here: http://jabelarminecraft.blogspot.com/p/minecraft-modding-ore-dictionary.html

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

  • 4 weeks later...

I may have found a solution for this problem other than just replacing it with a dummy recipe. 

Make a minecraft resource pack with the advacnements tab on it' and then when you do the advancement you want to change, you change the trigger to "minecraft:impossible" with an hidden tag @jabelar

Edited by StrikerRocker
Link to comment
Share on other sites

4 hours ago, StrikerRocker said:

I may have found a solution for this problem other than just replacing it with a dummy recipe. 

Make a minecraft resource pack with the advacnements tab on it' and then when you do the advancement you want to change, you change the trigger to "minecraft:impossible" with an hidden tag @jabelar

 

Advancements and other server-side files aren't loaded from resource packs, which are client-only. 1.13 will allow loading of advancements from data packs.

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



×
×
  • Create New...

Important Information

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