Skip to content

Commit de47978

Browse files
authored
Merge pull request #81
Fixed & Improved Recipe Book
2 parents 908c379 + 06770b1 commit de47978

31 files changed

+372
-392
lines changed

src/main/java/me/wolfyscript/customcrafting/commands/cc_subcommands/ReloadSubCommand.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,8 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull String var3, @N
6868
api.getChat().sendMessage(p, ChatColor.YELLOW + "Reloading Config...");
6969
configHandler.load();
7070
api.getChat().sendMessage(p, ChatColor.YELLOW + "Loading Recipe & Items...");
71-
dataHandler.initCategories();
7271
dataHandler.load();
73-
dataHandler.getCategories().index(customCrafting);
72+
configHandler.getRecipeBookConfig().index(customCrafting);
7473
api.getChat().sendMessage(p, "&eReloading GUIs");
7574
((MenuRecipeBook) invAPI.getGuiWindow(ClusterRecipeBook.RECIPE_BOOK)).reset();
7675
invAPI.reset();

src/main/java/me/wolfyscript/customcrafting/configs/recipebook/Categories.java

Lines changed: 0 additions & 179 deletions
This file was deleted.

src/main/java/me/wolfyscript/customcrafting/configs/recipebook/Category.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class Category extends CategorySettings {
4343
public Category() {
4444
super();
4545
this.containers = new ArrayList<>();
46-
this.auto = recipes.isEmpty() && namespaces.isEmpty();
46+
this.auto = recipes.isEmpty() && folders.isEmpty();
4747
}
4848

4949
public Category(Category category) {
@@ -55,16 +55,16 @@ public Category(Category category) {
5555
void index(CustomCrafting customCrafting, Collection<CategoryFilter> filters) {
5656
var registry = customCrafting.getRegistries().getRecipes();
5757
if (auto) {
58-
this.namespaces.clear();
58+
this.folders.clear();
5959
this.groups.clear();
60-
this.namespaces.addAll(registry.namespaces());
60+
this.folders.addAll(registry.folders("customcrafting"));
6161
this.groups.addAll(registry.groups());
6262
}
6363
containers.clear();
6464
//Construct containers based on settings
6565
List<RecipeContainer> recipeContainers = new ArrayList<>();
6666
recipeContainers.addAll(this.groups.stream().map(s -> new RecipeContainer(customCrafting, s)).toList());
67-
recipeContainers.addAll(this.namespaces.stream().flatMap(s -> registry.get(s).stream().filter(recipe -> recipe.getGroup().isEmpty() || !groups.contains(recipe.getGroup())).map(customRecipe -> new RecipeContainer(customCrafting, customRecipe))).toList());
67+
recipeContainers.addAll(this.folders.stream().flatMap(s -> registry.get("customcrafting", s).stream().filter(recipe -> recipe.getGroup().isEmpty() || !groups.contains(recipe.getGroup())).map(customRecipe -> new RecipeContainer(customCrafting, customRecipe))).toList());
6868
recipeContainers.addAll(this.recipes.stream().map(namespacedKey -> {
6969
CustomRecipe<?> recipe = registry.get(namespacedKey);
7070
return recipe == null ? null : new RecipeContainer(customCrafting, recipe);

src/main/java/me/wolfyscript/customcrafting/configs/recipebook/CategoryFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public boolean filter(RecipeContainer container) {
8080
if (!groups.isEmpty() && container.getGroup() != null && !groups.contains(container.getGroup())) {
8181
return false;
8282
}
83-
if (container.getRecipe() != null && ((!recipes.isEmpty() && !recipes.contains(container.getRecipe())) || (!namespaces.isEmpty() && !namespaces.contains(container.getRecipe().getNamespace())))) {
83+
if (container.getRecipe() != null && ((!recipes.isEmpty() && !recipes.contains(container.getRecipe())) || (!folders.isEmpty() && !folders.contains(container.getRecipe().getNamespace())))) {
8484
return false;
8585
}
8686
return container.isValid(totalMaterials);

src/main/java/me/wolfyscript/customcrafting/configs/recipebook/CategorySettings.java

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222

2323
package me.wolfyscript.customcrafting.configs.recipebook;
2424

25+
import me.wolfyscript.lib.com.fasterxml.jackson.annotation.JsonAlias;
2526
import me.wolfyscript.lib.com.fasterxml.jackson.annotation.JsonGetter;
2627
import me.wolfyscript.lib.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
2728
import me.wolfyscript.lib.com.fasterxml.jackson.annotation.JsonInclude;
2829
import me.wolfyscript.lib.com.fasterxml.jackson.annotation.JsonSetter;
2930
import me.wolfyscript.customcrafting.CustomCrafting;
3031
import me.wolfyscript.customcrafting.recipes.CustomRecipe;
31-
import me.wolfyscript.utilities.api.WolfyUtilities;
3232
import me.wolfyscript.utilities.api.nms.network.MCByteBuf;
3333
import me.wolfyscript.utilities.util.NamespacedKey;
3434
import org.bukkit.Material;
@@ -37,35 +37,36 @@
3737
import java.util.ArrayList;
3838
import java.util.HashSet;
3939
import java.util.List;
40+
import java.util.Objects;
4041
import java.util.Set;
4142

4243
@JsonInclude(JsonInclude.Include.NON_NULL)
4344
@JsonIgnoreProperties(ignoreUnknown = true)
44-
public class CategorySettings {
45+
public abstract class CategorySettings {
4546

4647
protected Set<String> groups;
47-
protected Set<String> namespaces;
48+
protected Set<String> folders;
4849
protected Set<NamespacedKey> recipes;
4950
private String id = "";
5051
private Material icon;
5152
private String name;
5253
private List<String> description;
5354

54-
public CategorySettings() {
55+
protected CategorySettings() {
5556
this.name = "";
5657
this.icon = Material.CHEST;
5758
this.groups = new HashSet<>();
58-
this.namespaces = new HashSet<>();
59+
this.folders = new HashSet<>();
5960
this.description = new ArrayList<>();
6061
this.recipes = new HashSet<>();
6162
}
6263

63-
public CategorySettings(CategorySettings category) {
64+
protected CategorySettings(CategorySettings category) {
6465
this.id = category.id;
6566
this.name = category.name;
6667
this.icon = category.getIcon();
6768
this.groups = new HashSet<>(category.groups);
68-
this.namespaces = new HashSet<>(category.namespaces);
69+
this.folders = new HashSet<>(category.folders);
6970
this.description = new ArrayList<>(category.getDescription());
7071
this.recipes = new HashSet<>(category.getRecipes());
7172
}
@@ -118,12 +119,16 @@ public void setGroups(Set<String> groups) {
118119
this.groups = groups;
119120
}
120121

121-
public Set<String> getNamespaces() {
122-
return namespaces;
122+
@JsonAlias("namespaces")
123+
@JsonGetter
124+
public Set<String> getFolders() {
125+
return folders;
123126
}
124127

125-
public void setNamespaces(Set<String> namespaces) {
126-
this.namespaces = namespaces;
128+
@JsonAlias("namespaces")
129+
@JsonSetter
130+
public void setFolders(Set<String> folders) {
131+
this.folders = folders;
127132
}
128133

129134
@JsonGetter
@@ -156,19 +161,32 @@ public String toString() {
156161
return "CategorySettings{" +
157162
"id='" + id + '\'' +
158163
", groups=" + groups +
159-
", namespaces=" + namespaces +
164+
", namespaces=" + folders +
160165
", recipes=" + recipes +
161166
'}';
162167
}
163168

169+
@Override
170+
public boolean equals(Object o) {
171+
if (this == o) return true;
172+
if (o == null || getClass() != o.getClass()) return false;
173+
CategorySettings that = (CategorySettings) o;
174+
return Objects.equals(id, that.id);
175+
}
176+
177+
@Override
178+
public int hashCode() {
179+
return Objects.hash(id);
180+
}
181+
164182
public void writeToByteBuf(MCByteBuf byteBuf) {
165183
byteBuf.writeItemStack(new ItemStack(this.icon));
166184
byteBuf.writeUtf(this.name);
167185
}
168186

169187
protected void writeData(MCByteBuf byteBuf) {
170188
writeStringArray(new ArrayList<>(this.groups), byteBuf);
171-
writeStringArray(new ArrayList<>(this.namespaces), byteBuf);
189+
writeStringArray(new ArrayList<>(this.folders), byteBuf);
172190
writeStringArray(this.recipes.stream().map(NamespacedKey::toString).toList(), byteBuf);
173191
}
174192

0 commit comments

Comments
 (0)