Skip to content

Commit 733c498

Browse files
committed
Updated recipes saving and loading: now they will be serialized as normal object lists
1 parent 3e03469 commit 733c498

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

item/serializer/src/main/java/it/angrybear/yagl/parsers/ItemParser.java

+9-14
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,14 @@
88
import it.angrybear.yagl.wrappers.Enchantment;
99
import it.fulminazzo.fulmicollection.interfaces.functions.BiFunctionException;
1010
import it.fulminazzo.fulmicollection.interfaces.functions.TriConsumer;
11-
import it.fulminazzo.fulmicollection.objects.Refl;
1211
import it.fulminazzo.yamlparser.configuration.ConfigurationSection;
1312
import it.fulminazzo.yamlparser.configuration.IConfiguration;
1413
import it.fulminazzo.yamlparser.parsers.YAMLParser;
1514
import org.jetbrains.annotations.NotNull;
1615
import org.jetbrains.annotations.Nullable;
1716

18-
import java.util.LinkedList;
17+
import java.util.ArrayList;
1918
import java.util.List;
20-
import java.util.Set;
2119
import java.util.stream.Collectors;
2220

2321
/**
@@ -53,12 +51,9 @@ public ItemParser() {
5351
itemSection.getListOptional("enchantments", Enchantment.class).ifPresent(item::addEnchantments);
5452
itemSection.getListOptional("item-flags", ItemFlag.class).ifPresent(item::addItemFlags);
5553

56-
ConfigurationSection recipesSection = itemSection.getConfigurationSection("recipes");
57-
if (recipesSection != null) {
58-
final List<Recipe> recipes = new LinkedList<>();
59-
@NotNull Set<String> keys = recipesSection.getKeys();
60-
for (String k : keys) recipes.add(recipesSection.get(k, Recipe.class));
61-
if (!recipes.isEmpty()) item = item.copy(RecipeItem.class).setRecipes(recipes.toArray(new Recipe[0]));
54+
if (itemSection.contains("recipes")) {
55+
List<Recipe> recipes = itemSection.getList("recipes", Recipe.class);
56+
if (recipes != null) item = item.copy(RecipeItem.class).setRecipes(recipes.toArray(new Recipe[0]));
6257
}
6358

6459
return item;
@@ -70,9 +65,11 @@ public ItemParser() {
7065
return (c, s, i) -> {
7166
c.set(s, null);
7267
if (i == null) return;
68+
7369
final ConfigurationSection itemSection = c.createSection(s);
7470
String material = i.getMaterial();
7571
if (material != null) itemSection.set("material", material.toLowerCase());
72+
7673
itemSection.set("amount", i.getAmount());
7774
itemSection.set("durability", i.getDurability());
7875
itemSection.set("display-name", MessageUtils.decolor(i.getDisplayName()));
@@ -83,11 +80,9 @@ public ItemParser() {
8380
itemSection.set("custom-model-data", i.getCustomModelData());
8481

8582
if (i instanceof RecipeItem) {
86-
ConfigurationSection recipesSection = itemSection.createSection("recipes");
87-
List<Recipe> recipes = new Refl<>(i).getFieldObject("recipes");
88-
if (recipes != null)
89-
for (int j = 0; j < recipes.size(); j++)
90-
recipesSection.set(String.valueOf(j), recipes.get(j));
83+
List<Recipe> recipes = new ArrayList<>();
84+
((RecipeItem) i).forEach(recipes::add);
85+
itemSection.setList("recipes", recipes);
9186
}
9287
};
9388
}

0 commit comments

Comments
 (0)