diff --git a/Forge/src/test/java/mezz/jei/test/IngredientFilterTest.java b/Forge/src/test/java/mezz/jei/test/IngredientFilterTest.java index 00330f6bc..0bb9de67f 100644 --- a/Forge/src/test/java/mezz/jei/test/IngredientFilterTest.java +++ b/Forge/src/test/java/mezz/jei/test/IngredientFilterTest.java @@ -258,6 +258,11 @@ private static void removeIngredients( } private static class NullSerializer implements EditModeConfig.ISerializer { + @Override + public void initialize(EditModeConfig config) { + + } + @Override public void save(EditModeConfig config) { diff --git a/Library/src/main/java/mezz/jei/library/config/EditModeConfig.java b/Library/src/main/java/mezz/jei/library/config/EditModeConfig.java index d235fc4c5..2e9bf1a35 100644 --- a/Library/src/main/java/mezz/jei/library/config/EditModeConfig.java +++ b/Library/src/main/java/mezz/jei/library/config/EditModeConfig.java @@ -33,6 +33,7 @@ public EditModeConfig(ISerializer serializer, IIngredientManager ingredientManag this.ingredientManager = ingredientManager; Collections.addAll(blacklist, defaultBlacklist); this.serializer = serializer; + this.serializer.initialize(this); this.serializer.load(this); } @@ -139,6 +140,7 @@ public void registerListener(IListener listener) { } public interface ISerializer { + void initialize(EditModeConfig config); void save(EditModeConfig config); void load(EditModeConfig config); } @@ -150,6 +152,13 @@ public FileSerializer(Path path) { this.path = path; } + @Override + public void initialize(EditModeConfig config) { + if (!Files.exists(path)) { + save(config); + } + } + @Override public void save(EditModeConfig config) { try { @@ -162,6 +171,9 @@ public void save(EditModeConfig config) { @Override public void load(EditModeConfig config) { + if (!Files.exists(path)) { + return; + } try { List strings = Files.readAllLines(path); config.blacklist.clear();