Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.broken.cheststorage.Crafting;
- import org.broken.cheststorage.util.FormattingMaps;
- import org.bukkit.inventory.ItemStack;
- import org.mineacademy.fo.collection.SerializedMap;
- import org.mineacademy.fo.model.ConfigSerializable;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
- public class RecipeCache {
- private Map<ItemStack, RecipeData> recipesCache = new HashMap<>();
- /**
- * add the recipe tho the cache.
- *
- * @param recipes the output item
- * @param material1 matrials used
- * @param material2 matrials used
- * @param material3 matrials used
- * @param material4 matrials used
- * @param material5 matrials used
- * @param amount1 amount of matrials used
- * @param amount2 amount of matrials used
- * @param amount3 amount of matrials used
- * @param amount4 amount of matrials used
- * @param amount5 amount of matrials used
- * @param totalAmount of matrials used
- */
- public void addRecipes(ItemStack recipes, Set<ItemStack> material1, Set<ItemStack> material2, Set<ItemStack> material3, Set<ItemStack> material4, Set<ItemStack> material5,
- int amount1, int amount2, int amount3, int amount4, int amount5, int totalAmount) {
- this.recipesCache.put(recipes, RecipeData.of(material1, material2, material3, material4, material5,
- amount1, amount2, amount3, amount4, amount5, totalAmount));
- }
- /**
- * Get the map with all recipes
- *
- * @return return all recipes.
- */
- public Map<ItemStack, RecipeData> getRecipe() {
- return this.recipesCache;
- }
- /**
- * Get all recipes as a setlist
- *
- * @return a list of recipes.
- */
- public Set<ItemStack> getRecipes() {
- return this.recipesCache.keySet();
- }
- /**
- * Get one recipe from this cache
- *
- * @param recipe the recipe you want the ingridens.
- * @return the recipe ingridens.
- */
- public RecipeData getRecipe(ItemStack recipe) {
- return this.recipesCache.get(recipe);
- }
- public static class RecipeData implements ConfigSerializable {
- Set<ItemStack> matrial1;
- Set<ItemStack> matrial2;
- Set<ItemStack> matrial3;
- Set<ItemStack> matrial4;
- Set<ItemStack> matrial5;
- int amount1;
- int amount2;
- int amount3;
- int amount4;
- int amount5;
- int totalAmount;
- public RecipeData() {
- }
- public RecipeData(Set<ItemStack> matrial1, Set<ItemStack> matrial2, Set<ItemStack> matrial3, Set<ItemStack> matrial4, Set<ItemStack> matrial5, int amount1, int amount2, int amount3, int amount4, int amount5, int totalAmount) {
- this.matrial1 = matrial1;
- this.matrial2 = matrial2;
- this.matrial3 = matrial3;
- this.matrial4 = matrial4;
- this.matrial5 = matrial5;
- this.amount1 = amount1;
- this.amount2 = amount2;
- this.amount3 = amount3;
- this.amount4 = amount4;
- this.amount5 = amount5;
- this.totalAmount = totalAmount;
- }
- @Override
- public SerializedMap serialize() {
- final SerializedMap map = new SerializedMap();
- map.put("Matrial1", this.matrial1);
- map.put("Matrial2", this.matrial2);
- map.put("Matrial3", this.matrial3);
- map.put("Matrial4", this.matrial4);
- map.put("Matrial5", this.matrial5);
- map.put("Amount1", this.amount1);
- map.put("Amount2", this.amount2);
- map.put("Amount3", this.amount3);
- map.put("Amount4", this.amount4);
- map.put("Amount5", this.amount5);
- map.put("totalAmount", this.totalAmount);
- return map;
- }
- static RecipeData of(Set<ItemStack> matrial1, Set<ItemStack> matrial2, Set<ItemStack> matrial3, Set<ItemStack> matrial4,
- Set<ItemStack> matrial5, int amount1, int amount2, int amount3, int amount4, int amount5, int totalAmount) {
- RecipeData data = new RecipeData();
- data.matrial1 = matrial1;
- data.matrial2 = matrial2;
- data.matrial3 = matrial3;
- data.matrial4 = matrial4;
- data.matrial5 = matrial5;
- data.amount1 = amount1;
- data.amount2 = amount2;
- data.amount3 = amount3;
- data.amount4 = amount4;
- data.amount5 = amount5;
- data.totalAmount = totalAmount;
- return data;
- }
- @Override
- public String toString() {
- return FormattingMaps.toStringFormatted(serialize());
- }
- public Set<ItemStack> getMatrial1() {
- return matrial1;
- }
- public Set<ItemStack> getMatrial2() {
- return matrial2;
- }
- public Set<ItemStack> getMatrial3() {
- return matrial3;
- }
- public Set<ItemStack> getMatrial4() {
- return matrial4;
- }
- public Set<ItemStack> getMatrial5() {
- return matrial5;
- }
- public int getAmount1() {
- return amount1;
- }
- public int getAmount2() {
- return amount2;
- }
- public int getAmount3() {
- return amount3;
- }
- public int getAmount4() {
- return amount4;
- }
- public int getAmount5() {
- return amount5;
- }
- public int getTotalAmount() {
- return totalAmount;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement