Some mod element files not removed after deleting mod element

Submitted by smmmadden on Tue, 01/15/2019 - 20:27
Upvotes: 0
Issue description

During the configuring of my next version of the mod, I had added a "test" advancement to see if I could add it during the crafting of certain blocks.  I later removed it since I want the base minecraft to control the advancements and it works fine.  So I removed the references, but everytime I started the server and then connect to a new world, I'd get the below exceptions.  

[09:40:09] [Server thread/ERROR] [FML]: Parsing error loading built-in advancement testenvironmentmod:test 
com.google.gson.JsonSyntaxException: Expected item to be an item, was unknown string 'testenvironmentmod:arsenicneurotoxinantidote'    
at net.minecraft.util.JsonUtils.getItem(JsonUtils.java:133) ~[JsonUtils.class:?]    
at net.minecraft.util.JsonUtils.getItem(JsonUtils.java:150) ~[JsonUtils.class:?]    
at net.minecraft.advancements.DisplayInfo.deserializeIcon(DisplayInfo.java:133) ~[DisplayInfo.class:?]    
at net.minecraft.advancements.DisplayInfo.deserialize(DisplayInfo.java:111) ~[DisplayInfo.class:?]    
at net.minecraft.advancements.Advancement$Builder.deserialize(Advancement.java:294) ~[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.minecraftforge.common.ForgeHooks.lambda$loadAdvancements$0(ForgeHooks.java:1356) ~[ForgeHooks.class:?]    
at net.minecraftforge.common.crafting.CraftingHelper.findFiles(CraftingHelper.java:822) [CraftingHelper.class:?]    
at net.minecraftforge.common.ForgeHooks.loadAdvancements(ForgeHooks.java:1338) [ForgeHooks.class:?]    
at net.minecraftforge.common.ForgeHooks.loadAdvancements(ForgeHooks.java:1312) [ForgeHooks.class:?]    
at net.minecraft.advancements.AdvancementManager.reload(AdvancementManager.java:70) [AdvancementManager.class:?]    
at net.minecraft.advancements.AdvancementManager. (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:552) [MinecraftServer.class:?]    
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_172] 
[09:40:09] [Server thread/ERROR] [FML]: Parsing error loading built-in advancement testenvironmentmod:cinnabarpowdermaker 
com.google.gson.JsonSyntaxException: Invalid criterion trigger: minecraft:cinnabarpowdermaker    
at net.minecraft.advancements.Criterion.criterionFromJson(Criterion.java:52) ~[Criterion.class:?]    
at net.minecraft.advancements.Criterion.criteriaFromJson(Criterion.java:82) ~[Criterion.class:?]    
at net.minecraft.advancements.Advancement$Builder.deserialize(Advancement.java:296) ~[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.minecraftforge.common.ForgeHooks.lambda$loadAdvancements$0(ForgeHooks.java:1356) ~[ForgeHooks.class:?]    
at net.minecraftforge.common.crafting.CraftingHelper.findFiles(CraftingHelper.java:822) [CraftingHelper.class:?]    
at net.minecraftforge.common.ForgeHooks.loadAdvancements(ForgeHooks.java:1338) [ForgeHooks.class:?]    
at net.minecraftforge.common.ForgeHooks.loadAdvancements(ForgeHooks.java:1312) [ForgeHooks.class:?]    
at net.minecraft.advancements.AdvancementManager.reload(AdvancementManager.java:70) [AdvancementManager.class:?]    
at net.minecraft.advancements.AdvancementManager. (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:552) [MinecraftServer.class:?]    
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_172]

So I went through each of the Java files and reformatted/saved them one-by-one.  Still, I got the same error when connecting to the world.  Since it had JSON in the error I thought, well maybe the app isn't cleaning up the older files and sure enough the two files still resided in the json folder and being picked by MCreator.  Once I removed them, the issue stopped.  So this bug is to make sure that if advancements are added and later removed, we also remove the files from the developers workstation.  If you need the JSON files, I have them saved.

screenshot of files

Issue comments

Submitted by Klemen on Wed, 01/16/2019 - 20:13

I can confirm this is happening. Some other files of some mod elements are not properly removed too. We will fix this bug.

I hope this will be in 1.8.4

This fix would make so much Space in Mod files, I always delete lot of mod elements I found bad

Submitted by Klemen on Mon, 02/18/2019 - 19:29

MCreator 1.8.3 will properly remove all associated files. It will keep textures and models however as they can be used by other elements and can be manually removed too. But advancement JSON files, block, and item JSON files and all these files will be properly removed.

I am closing this ticket now.

Submitted by Klemen on Mon, 02/18/2019 - 19:30

Files of mod elements that were removed already will not be automatically removed and need to be manually removed as MCreator does not have a track of removed files.

These files can be deleted in Code Tab? I see them there abd i delete them there

Submitted by Klemen on Tue, 02/19/2019 - 12:43

Some of them, yes, but you will need to manually remove some of them.