Crafting stations minor refactor

This commit is contained in:
Jules 2023-09-30 23:56:52 +02:00
parent 6c685ea945
commit bab6b7c9d4
45 changed files with 268 additions and 288 deletions

View File

@ -35,7 +35,7 @@ import net.Indyuce.mmoitems.comp.rpg.HeroesHook;
import net.Indyuce.mmoitems.comp.rpg.McMMOHook; import net.Indyuce.mmoitems.comp.rpg.McMMOHook;
import net.Indyuce.mmoitems.comp.rpg.RPGHandler; import net.Indyuce.mmoitems.comp.rpg.RPGHandler;
import net.Indyuce.mmoitems.gui.PluginInventory; import net.Indyuce.mmoitems.gui.PluginInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.RecipeBrowserGUI; import net.Indyuce.mmoitems.gui.edition.recipe.RecipeTypeListGUI;
import net.Indyuce.mmoitems.manager.*; import net.Indyuce.mmoitems.manager.*;
import net.Indyuce.mmoitems.manager.data.PlayerDataManager; import net.Indyuce.mmoitems.manager.data.PlayerDataManager;
import net.Indyuce.mmoitems.util.PluginUtils; import net.Indyuce.mmoitems.util.PluginUtils;
@ -140,7 +140,7 @@ public class MMOItems extends JavaPlugin {
new MMOItemsMetrics(); new MMOItemsMetrics();
MMOItemUIFilter.register(); MMOItemUIFilter.register();
RecipeBrowserGUI.registerNativeRecipes(); RecipeTypeListGUI.registerNativeRecipes();
skillManager.initialize(false); skillManager.initialize(false);
final int configVersion = getConfig().contains("config-version", true) ? getConfig().getInt("config-version") : -1; final int configVersion = getConfig().contains("config-version", true) ? getConfig().getInt("config-version") : -1;

View File

@ -4,6 +4,7 @@ import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.RecipeChoice; import org.bukkit.inventory.RecipeChoice;
@Deprecated
public class AirIngredient extends WorkbenchIngredient { public class AirIngredient extends WorkbenchIngredient {
public AirIngredient() { public AirIngredient() {
super(0); super(0);

View File

@ -7,6 +7,7 @@ import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Type; import net.Indyuce.mmoitems.api.Type;
import io.lumine.mythic.lib.api.item.NBTItem; import io.lumine.mythic.lib.api.item.NBTItem;
@Deprecated
public class MMOItemIngredient extends WorkbenchIngredient { public class MMOItemIngredient extends WorkbenchIngredient {
private final Type type; private final Type type;
private final String id; private final String id;

View File

@ -6,6 +6,7 @@ import org.bukkit.inventory.RecipeChoice;
import io.lumine.mythic.lib.api.item.NBTItem; import io.lumine.mythic.lib.api.item.NBTItem;
@Deprecated
public class VanillaIngredient extends WorkbenchIngredient { public class VanillaIngredient extends WorkbenchIngredient {
private final Material material; private final Material material;

View File

@ -3,6 +3,7 @@ package net.Indyuce.mmoitems.api.recipe.workbench.ingredients;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.RecipeChoice; import org.bukkit.inventory.RecipeChoice;
@Deprecated
public abstract class WorkbenchIngredient { public abstract class WorkbenchIngredient {
private final int amount; private final int amount;

View File

@ -32,7 +32,8 @@ import java.util.Optional;
public abstract class EditionInventory extends PluginInventory { public abstract class EditionInventory extends PluginInventory {
protected final Inventory inventory; @Nullable
protected Inventory inventory;
/** /**
* Item template currently being edited. This field is not final as it is * Item template currently being edited. This field is not final as it is
@ -81,8 +82,6 @@ public abstract class EditionInventory extends PluginInventory {
player.getOpenInventory(); player.getOpenInventory();
if (player.getOpenInventory().getTopInventory().getHolder() instanceof EditionInventory) if (player.getOpenInventory().getTopInventory().getHolder() instanceof EditionInventory)
this.cachedItem = ((EditionInventory) player.getOpenInventory().getTopInventory().getHolder()).cachedItem; this.cachedItem = ((EditionInventory) player.getOpenInventory().getTopInventory().getHolder()).cachedItem;
inventory = Bukkit.createInventory(this, 54, getName());
} }
@Override @Override
@ -93,10 +92,12 @@ public abstract class EditionInventory extends PluginInventory {
public abstract void arrangeInventory(); public abstract void arrangeInventory();
/** /**
* Refreshes the inventory but does not open it again * Refreshes the inventory but does not open it again for the player.
* for the player. * Has the same clientside effect as {@link #open()} but does not
* create & open the inventory again.
*/ */
public void refreshInventory() { public void refreshInventory() {
Validate.notNull(inventory, "Inventory has never been opened");
inventory.clear(); inventory.clear();
// updateCachedItem(); // updateCachedItem();
addEditionItems(); addEditionItems();
@ -122,6 +123,7 @@ public abstract class EditionInventory extends PluginInventory {
*/ */
@Override @Override
public void open() { public void open() {
if (inventory == null) inventory = Bukkit.createInventory(this, 54, getName());
addEditionItems(); addEditionItems();
arrangeInventory(); arrangeInventory();
super.open(); super.open();

View File

@ -5,14 +5,13 @@ import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -56,8 +55,8 @@ public class RecipeListGUI extends EditionInventory {
listedItem = getRecipeRegistry().getDisplayListItem(); listedItem = getRecipeRegistry().getDisplayListItem();
// Obtain the crafting section // Obtain the crafting section
ConfigurationSection section = RecipeMakerGUI.getSection(getEditedSection(), "crafting"); ConfigurationSection section = RecipeEditorGUI.getSection(getEditedSection(), "crafting");
ConfigurationSection type = RecipeMakerGUI.getSection(section, kind.getRecipeConfigPath()); ConfigurationSection type = RecipeEditorGUI.getSection(section, kind.getRecipeConfigPath());
// What is all the recipes within this kind? // What is all the recipes within this kind?
recipeNames.addAll(type.getKeys(false)); recipeNames.addAll(type.getKeys(false));
@ -113,7 +112,7 @@ public class RecipeListGUI extends EditionInventory {
if (p == recipeNames.size()) { if (p == recipeNames.size()) {
// Rename list item... // Rename list item...
inventory.setItem(absolute, RecipeMakerGUI.rename(new ItemStack(Material.NETHER_STAR), FFPMMOItems.get().getBodyFormat() + "Create new " + SilentNumbers.getItemName(getListedItem(), false))); inventory.setItem(absolute, RecipeEditorGUI.rename(new ItemStack(Material.NETHER_STAR), FFPMMOItems.get().getBodyFormat() + "Create new " + SilentNumbers.getItemName(getListedItem(), false)));
// If this slot is clicked, a new recipe will be created. // If this slot is clicked, a new recipe will be created.
createSlot = absolute; createSlot = absolute;
@ -128,7 +127,7 @@ public class RecipeListGUI extends EditionInventory {
} else { } else {
// Display name // Display name
inventory.setItem(absolute, RecipeMakerGUI.rename(getListedItem().clone(), FFPMMOItems.get().getBodyFormat() + "Edit " + FFPMMOItems.get().getInputFormat() + recipeNames.get(p))); inventory.setItem(absolute, RecipeEditorGUI.rename(getListedItem().clone(), FFPMMOItems.get().getBodyFormat() + "Edit " + FFPMMOItems.get().getInputFormat() + recipeNames.get(p)));
// Store // Store
recipeMap.put(absolute, recipeNames.get(p)); recipeMap.put(absolute, recipeNames.get(p));
@ -222,8 +221,8 @@ public class RecipeListGUI extends EditionInventory {
if (recipeName != null) { if (recipeName != null) {
// Delete that // Delete that
ConfigurationSection section = RecipeMakerGUI.getSection(getEditedSection(), "crafting"); ConfigurationSection section = RecipeEditorGUI.getSection(getEditedSection(), "crafting");
ConfigurationSection type = RecipeMakerGUI.getSection(section, getRecipeRegistry().getRecipeConfigPath()); ConfigurationSection type = RecipeEditorGUI.getSection(section, getRecipeRegistry().getRecipeConfigPath());
recipeNames.remove(recipeName); recipeNames.remove(recipeName);
type.set(recipeName, null); type.set(recipeName, null);

View File

@ -14,7 +14,6 @@ import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -33,7 +32,7 @@ import java.util.Set;
* *
* @author Gunging * @author Gunging
*/ */
public class RecipeBrowserGUI extends EditionInventory { public class RecipeTypeListGUI extends EditionInventory {
// Item Stacks used in this inventory // Item Stacks used in this inventory
@NotNull private static final ItemStack NEXT_PAGE = ItemFactory.of(Material.ARROW).name(FFPMMOItems.get().getExampleFormat() + "Next Page").build(); @NotNull private static final ItemStack NEXT_PAGE = ItemFactory.of(Material.ARROW).name(FFPMMOItems.get().getExampleFormat() + "Next Page").build();
@ -48,7 +47,7 @@ public class RecipeBrowserGUI extends EditionInventory {
* @param player Player that is editing recipes * @param player Player that is editing recipes
* @param template Template being edited * @param template Template being edited
*/ */
public RecipeBrowserGUI(@NotNull Player player, @NotNull MMOItemTemplate template) { public RecipeTypeListGUI(@NotNull Player player, @NotNull MMOItemTemplate template) {
super(player, template); super(player, template);
// Start with defaults // Start with defaults

View File

@ -1,4 +1,4 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.MythicLib; import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.util.AltChar; import io.lumine.mythic.lib.api.util.AltChar;
@ -8,7 +8,7 @@ import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.ItemStats; import net.Indyuce.mmoitems.ItemStats;
import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.edition.StatEdition;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -33,11 +33,11 @@ public class RBA_AmountOutput extends RecipeButtonAction {
* @param inv Inventory this button is part of * @param inv Inventory this button is part of
* @param resultItem Output item of this recipe * @param resultItem Output item of this recipe
*/ */
public RBA_AmountOutput(@NotNull RecipeMakerGUI inv, @NotNull ItemStack resultItem) { public RBA_AmountOutput(@NotNull RecipeEditorGUI inv, @NotNull ItemStack resultItem) {
super(inv); super(inv);
// Get item // Get item
button = RecipeMakerGUI.rename(ItemFactory.of(resultItem.getType()).lore(SilentNumbers.chop( button = RecipeEditorGUI.rename(ItemFactory.of(resultItem.getType()).lore(SilentNumbers.chop(
"The amount of items produced every time the player crafts." "The amount of items produced every time the player crafts."
, 65, "\u00a77")).build(), "\u00a7cChoose Output Amount"); , 65, "\u00a77")).build(), "\u00a7cChoose Output Amount");
@ -67,7 +67,7 @@ public class RBA_AmountOutput extends RecipeButtonAction {
@Override public boolean runPrimary() { @Override public boolean runPrimary() {
// Query user for input // Query user for input
new StatEdition(inv, ItemStats.CRAFTING, RecipeMakerGUI.PRIMARY, this).enable(amountLog); new StatEdition(inv, ItemStats.CRAFTING, RecipeEditorGUI.PRIMARY, this).enable(amountLog);
// Success // Success
return true; return true;
@ -141,7 +141,7 @@ public class RBA_AmountOutput extends RecipeButtonAction {
ret.setAmount(getOutputAmount()); ret.setAmount(getOutputAmount());
// That's it // That's it
return RecipeMakerGUI.addLore(ret, SilentNumbers.toArrayList( "", return RecipeEditorGUI.addLore(ret, SilentNumbers.toArrayList( "",
ChatColor.YELLOW + AltChar.listDash + " Right click to reset to 1.", ChatColor.YELLOW + AltChar.listDash + " Right click to reset to 1.",
ChatColor.YELLOW + AltChar.listDash + " Left click to edit amount." )); ChatColor.YELLOW + AltChar.listDash + " Left click to edit amount." ));
} }

View File

@ -1,10 +1,10 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.ui.QuickNumberRange; import io.lumine.mythic.lib.api.util.ui.QuickNumberRange;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.type.RBA_DoubleButton; import net.Indyuce.mmoitems.gui.edition.recipe.button.type.RBA_DoubleButton;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -17,7 +17,7 @@ public class RBA_CookingTime extends RBA_DoubleButton {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_CookingTime(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_CookingTime(@NotNull RecipeEditorGUI inv) { super(inv); }
public static final String FURNACE_TIME = "time"; public static final String FURNACE_TIME = "time";
@NotNull @Override public String getDoubleConfigPath() { return FURNACE_TIME; } @NotNull @Override public String getDoubleConfigPath() { return FURNACE_TIME; }

View File

@ -1,9 +1,9 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.type.RBA_BooleanButton; import net.Indyuce.mmoitems.gui.edition.recipe.button.type.RBA_BooleanButton;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -21,7 +21,7 @@ public class RBA_DropGems extends RBA_BooleanButton {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_DropGems(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_DropGems(@NotNull RecipeEditorGUI inv) { super(inv); }
public static final String SMITH_GEMS = "drop-gems"; public static final String SMITH_GEMS = "drop-gems";
@NotNull @Override public String getBooleanConfigPath() { return SMITH_GEMS; } @NotNull @Override public String getBooleanConfigPath() { return SMITH_GEMS; }

View File

@ -1,10 +1,10 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.ui.QuickNumberRange; import io.lumine.mythic.lib.api.util.ui.QuickNumberRange;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.type.RBA_DoubleButton; import net.Indyuce.mmoitems.gui.edition.recipe.button.type.RBA_DoubleButton;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -22,7 +22,7 @@ public class RBA_Experience extends RBA_DoubleButton {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_Experience(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_Experience(@NotNull RecipeEditorGUI inv) { super(inv); }
public static final String FURNACE_EXPERIENCE = "exp"; public static final String FURNACE_EXPERIENCE = "exp";
@NotNull @Override public String getDoubleConfigPath() { return FURNACE_EXPERIENCE; } @NotNull @Override public String getDoubleConfigPath() { return FURNACE_EXPERIENCE; }

View File

@ -1,11 +1,11 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.AltChar; import io.lumine.mythic.lib.api.util.AltChar;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.type.RBA_BooleanButton; import net.Indyuce.mmoitems.gui.edition.recipe.button.type.RBA_BooleanButton;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
@ -27,7 +27,7 @@ public class RBA_HideFromBook extends RBA_BooleanButton {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_HideFromBook(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_HideFromBook(@NotNull RecipeEditorGUI inv) { super(inv); }
public static final String BOOK_HIDDEN = "hidden"; public static final String BOOK_HIDDEN = "hidden";
@NotNull @Override public String getBooleanConfigPath() { return BOOK_HIDDEN; } @NotNull @Override public String getBooleanConfigPath() { return BOOK_HIDDEN; }
@ -71,7 +71,7 @@ public class RBA_HideFromBook extends RBA_BooleanButton {
String input = isEnabled() ? "\u00a7cNO\u00a78, it's hidden." : "\u00a7aYES\u00a78, it's shown."; String input = isEnabled() ? "\u00a7cNO\u00a78, it's hidden." : "\u00a7aYES\u00a78, it's shown.";
// Copy and send // Copy and send
return RecipeMakerGUI.addLore(getBooleanButton().clone(), return RecipeEditorGUI.addLore(getBooleanButton().clone(),
SilentNumbers.toArrayList( SilentNumbers.toArrayList(
"", "\u00a77Currently in Book? " + input, "", "", "\u00a77Currently in Book? " + input, "",
ChatColor.YELLOW + AltChar.listDash + " Right click to generate recipe unlock book.", ChatColor.YELLOW + AltChar.listDash + " Right click to generate recipe unlock book.",

View File

@ -1,9 +1,9 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.AltChar; import io.lumine.mythic.lib.api.util.AltChar;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -23,7 +23,7 @@ public class RBA_InputOutput extends RecipeButtonAction {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_InputOutput(@NotNull RecipeMakerGUI inv) { public RBA_InputOutput(@NotNull RecipeEditorGUI inv) {
super(inv); super(inv);
// By default, input is shown. // By default, input is shown.
@ -76,7 +76,7 @@ public class RBA_InputOutput extends RecipeButtonAction {
String input = getInv().isShowingInput() ? "\u00a76INPUT" : "\u00a73OUTPUT"; String input = getInv().isShowingInput() ? "\u00a76INPUT" : "\u00a73OUTPUT";
// Copy and send // Copy and send
return RecipeMakerGUI.addLore(button.clone(), SilentNumbers.toArrayList("\u00a77Currently Showing: " + input, "", return RecipeEditorGUI.addLore(button.clone(), SilentNumbers.toArrayList("\u00a77Currently Showing: " + input, "",
ChatColor.YELLOW + AltChar.listDash + " Left click to switch mode." )); ChatColor.YELLOW + AltChar.listDash + " Left click to switch mode." ));
} }
} }

View File

@ -1,10 +1,10 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.api.crafting.recipe.SmithingCombinationType; import net.Indyuce.mmoitems.api.crafting.recipe.SmithingCombinationType;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.type.RBA_ChooseableButton; import net.Indyuce.mmoitems.gui.edition.recipe.button.type.RBA_ChooseableButton;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -23,7 +23,7 @@ public class RBA_SmithingEnchantments extends RBA_ChooseableButton {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_SmithingEnchantments(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_SmithingEnchantments(@NotNull RecipeEditorGUI inv) { super(inv); }
@NotNull final ItemStack chooseableButton = ItemFactory.of(Material.ENCHANTING_TABLE).name("\u00a7aEnchantment Transfer").lore(SilentNumbers.chop( @NotNull final ItemStack chooseableButton = ItemFactory.of(Material.ENCHANTING_TABLE).name("\u00a7aEnchantment Transfer").lore(SilentNumbers.chop(
"What will happen to the enchantments of the ingredients? Will enchanted ingredients produce an enchanted output item?" "What will happen to the enchantments of the ingredients? Will enchanted ingredients produce an enchanted output item?"

View File

@ -1,10 +1,10 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import io.lumine.mythic.lib.api.util.ItemFactory; import io.lumine.mythic.lib.api.util.ItemFactory;
import net.Indyuce.mmoitems.api.crafting.recipe.SmithingCombinationType; import net.Indyuce.mmoitems.api.crafting.recipe.SmithingCombinationType;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.type.RBA_ChooseableButton; import net.Indyuce.mmoitems.gui.edition.recipe.button.type.RBA_ChooseableButton;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -22,7 +22,7 @@ public class RBA_SmithingUpgrades extends RBA_ChooseableButton {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_SmithingUpgrades(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_SmithingUpgrades(@NotNull RecipeEditorGUI inv) { super(inv); }
@NotNull final ItemStack chooseableButton = ItemFactory.of(Material.ANVIL).name("\u00a7aUpgrades Transfer").lore(SilentNumbers.chop( @NotNull final ItemStack chooseableButton = ItemFactory.of(Material.ANVIL).name("\u00a7aUpgrades Transfer").lore(SilentNumbers.chop(
"What will happen to the upgrades of the ingredients? Will upgraded ingredients produce an upgraded output item?" "What will happen to the upgrades of the ingredients? Will upgraded ingredients produce an upgraded output item?"

View File

@ -1,8 +1,8 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba; package net.Indyuce.mmoitems.gui.edition.recipe.button;
import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.edition.StatEdition;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.stat.type.ItemStat; import net.Indyuce.mmoitems.stat.type.ItemStat;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -21,23 +21,23 @@ public abstract class RecipeButtonAction {
/** /**
* The edition inventory this is a button of * The edition inventory this is a button of
*/ */
@NotNull final RecipeMakerGUI inv; @NotNull final RecipeEditorGUI inv;
/** /**
* @return The edition inventory this is a button of * @return The edition inventory this is a button of
*/ */
@NotNull public RecipeMakerGUI getInv() { return inv; } @NotNull public RecipeEditorGUI getInv() { return inv; }
/** /**
* A button of an Edition Inventory. Nice! * A button of an Edition Inventory. Nice!
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RecipeButtonAction(@NotNull RecipeMakerGUI inv) { this.inv = inv; } public RecipeButtonAction(@NotNull RecipeEditorGUI inv) { this.inv = inv; }
/** /**
* Called when the player left-clicks a slot. <br> * Called when the player left-clicks a slot. <br>
* <b>Important: When initializing a {@link StatEdition#StatEdition(EditionInventory, ItemStat, Object...)} you * <b>Important: When initializing a {@link StatEdition#StatEdition(EditionInventory, ItemStat, Object...)} you
* must pass {@link RecipeMakerGUI#PRIMARY} as the first <i>info</i> object!</b> Also, make sure to pass {@code this} * must pass {@link RecipeEditorGUI#PRIMARY} as the first <i>info</i> object!</b> Also, make sure to pass {@code this}
* as the second argument for {@link #primaryProcessInput(String, Object...)} to be called. * as the second argument for {@link #primaryProcessInput(String, Object...)} to be called.
* *
* @return <code>true</code> if and only if this action succeeded. Most importantly, * @return <code>true</code> if and only if this action succeeded. Most importantly,
@ -62,7 +62,7 @@ public abstract class RecipeButtonAction {
/** /**
* Called when the player right-clicks a slot. <br> * Called when the player right-clicks a slot. <br>
* <b>Important: When initializing a {@link StatEdition#StatEdition(EditionInventory, ItemStat, Object...)} you * <b>Important: When initializing a {@link StatEdition#StatEdition(EditionInventory, ItemStat, Object...)} you
* must pass {@link RecipeMakerGUI#SECONDARY} as the first <i>info</i> object!</b> Also, make sure to pass {@code this} * must pass {@link RecipeEditorGUI#SECONDARY} as the first <i>info</i> object!</b> Also, make sure to pass {@code this}
* as the second argument for {@link #secondaryProcessInput(String, Object...)} to be called. * as the second argument for {@link #secondaryProcessInput(String, Object...)} to be called.
* *
* @return <code>true</code> if and only if this action succeeded. Most importantly, * @return <code>true</code> if and only if this action succeeded. Most importantly,

View File

@ -1,9 +1,9 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba.type; package net.Indyuce.mmoitems.gui.edition.recipe.button.type;
import io.lumine.mythic.lib.api.util.AltChar; import io.lumine.mythic.lib.api.util.AltChar;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RecipeButtonAction; import net.Indyuce.mmoitems.gui.edition.recipe.button.RecipeButtonAction;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -19,7 +19,7 @@ public abstract class RBA_BooleanButton extends RecipeButtonAction {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_BooleanButton(@NotNull RecipeMakerGUI inv) { public RBA_BooleanButton(@NotNull RecipeEditorGUI inv) {
super(inv); super(inv);
} }
@ -97,7 +97,7 @@ public abstract class RBA_BooleanButton extends RecipeButtonAction {
String input = isEnabled() ? "\u00a7aTRUE" : "\u00a7cFALSE"; String input = isEnabled() ? "\u00a7aTRUE" : "\u00a7cFALSE";
// Copy and send // Copy and send
return RecipeMakerGUI.addLore(getBooleanButton().clone(), return RecipeEditorGUI.addLore(getBooleanButton().clone(),
SilentNumbers.toArrayList( SilentNumbers.toArrayList(
"", "\u00a77Current Value: " + input, "", "", "\u00a77Current Value: " + input, "",
ChatColor.YELLOW + AltChar.listDash + " Right click to reset \u00a78(to\u00a74 FALSE\u00a78)\u00a7e.", ChatColor.YELLOW + AltChar.listDash + " Right click to reset \u00a78(to\u00a74 FALSE\u00a78)\u00a7e.",

View File

@ -1,9 +1,9 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba.type; package net.Indyuce.mmoitems.gui.edition.recipe.button.type;
import io.lumine.mythic.lib.api.util.AltChar; import io.lumine.mythic.lib.api.util.AltChar;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RecipeButtonAction; import net.Indyuce.mmoitems.gui.edition.recipe.button.RecipeButtonAction;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -23,7 +23,7 @@ public abstract class RBA_ChooseableButton extends RecipeButtonAction {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_ChooseableButton(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_ChooseableButton(@NotNull RecipeEditorGUI inv) { super(inv); }
/** /**
* Cycles to the next value * Cycles to the next value
@ -105,7 +105,7 @@ public abstract class RBA_ChooseableButton extends RecipeButtonAction {
addedDefinitions.add(pick + " " + AltChar.smallListDash + " \u00a77" + str); } addedDefinitions.add(pick + " " + AltChar.smallListDash + " \u00a77" + str); }
// Clone button and add the lore // Clone button and add the lore
return RecipeMakerGUI.addLore(getChooseableButton().clone(), addedDefinitions); return RecipeEditorGUI.addLore(getChooseableButton().clone(), addedDefinitions);
} }
/** /**

View File

@ -1,4 +1,4 @@
package net.Indyuce.mmoitems.gui.edition.recipe.rba.type; package net.Indyuce.mmoitems.gui.edition.recipe.button.type;
import io.lumine.mythic.lib.api.util.AltChar; import io.lumine.mythic.lib.api.util.AltChar;
import io.lumine.mythic.lib.api.util.ui.FriendlyFeedbackProvider; import io.lumine.mythic.lib.api.util.ui.FriendlyFeedbackProvider;
@ -7,8 +7,8 @@ import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.ItemStats; import net.Indyuce.mmoitems.ItemStats;
import net.Indyuce.mmoitems.api.edition.StatEdition; import net.Indyuce.mmoitems.api.edition.StatEdition;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RecipeButtonAction; import net.Indyuce.mmoitems.gui.edition.recipe.button.RecipeButtonAction;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -26,7 +26,7 @@ public abstract class RBA_DoubleButton extends RecipeButtonAction {
* *
* @param inv The edition inventory this is a button of * @param inv The edition inventory this is a button of
*/ */
public RBA_DoubleButton(@NotNull RecipeMakerGUI inv) { super(inv); } public RBA_DoubleButton(@NotNull RecipeEditorGUI inv) { super(inv); }
/** /**
* @return Straight from the file, if this option is set to TRUE. * @return Straight from the file, if this option is set to TRUE.
@ -46,7 +46,7 @@ public abstract class RBA_DoubleButton extends RecipeButtonAction {
@Override public boolean runPrimary() { @Override public boolean runPrimary() {
// Query user for input // Query user for input
new StatEdition(getInv(), ItemStats.CRAFTING, RecipeMakerGUI.PRIMARY, this).enable(requireInteger() ? integerLog : amountLog); new StatEdition(getInv(), ItemStats.CRAFTING, RecipeEditorGUI.PRIMARY, this).enable(requireInteger() ? integerLog : amountLog);
// Success // Success
return true; return true;
@ -136,7 +136,7 @@ public abstract class RBA_DoubleButton extends RecipeButtonAction {
@NotNull @Override public ItemStack getButton() { @NotNull @Override public ItemStack getButton() {
// Copy and send // Copy and send
return RecipeMakerGUI.addLore(getDoubleButton().clone(), return RecipeEditorGUI.addLore(getDoubleButton().clone(),
SilentNumbers.toArrayList( SilentNumbers.toArrayList(
"", "\u00a77Current Value: " + getValue(), "", "", "\u00a77Current Value: " + getValue(), "",
ChatColor.YELLOW + AltChar.listDash + " Right click to reset \u00a78(to\u00a74 " + getDefaultValue() + "\u00a78)\u00a7e.", ChatColor.YELLOW + AltChar.listDash + " Right click to reset \u00a78(to\u00a74 " + getDefaultValue() + "\u00a78)\u00a7e.",

View File

@ -3,12 +3,11 @@ package net.Indyuce.mmoitems.gui.edition.recipe.gui;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_BurningLegacy; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_BurningLegacy;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_CookingTime; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_CookingTime;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_Experience; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_Experience;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_HideFromBook; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_HideFromBook;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -21,7 +20,7 @@ import java.util.HashMap;
* *
* @author Gunging * @author Gunging
*/ */
public class RMG_BurningLegacy extends RecipeMakerGUI { public class RMG_BurningLegacy extends RecipeEditorGUI {
@NotNull @NotNull
HashMap<Integer, Integer> inputLinks = new HashMap<>(); HashMap<Integer, Integer> inputLinks = new HashMap<>();

View File

@ -3,10 +3,9 @@ package net.Indyuce.mmoitems.gui.edition.recipe.gui;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_MegaShaped; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_MegaShaped;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_InputOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_InputOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -17,7 +16,7 @@ import java.util.HashMap;
* *
* @author Gunging * @author Gunging
*/ */
public class RMG_MegaShaped extends RecipeMakerGUI { public class RMG_MegaShaped extends RecipeEditorGUI {
@NotNull @NotNull
HashMap<Integer, Integer> inputLinks = new HashMap<>(); HashMap<Integer, Integer> inputLinks = new HashMap<>();

View File

@ -3,11 +3,10 @@ package net.Indyuce.mmoitems.gui.edition.recipe.gui;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Shaped; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Shaped;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_HideFromBook; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_HideFromBook;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_InputOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_InputOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.HashMap; import java.util.HashMap;
@ -17,7 +16,7 @@ import java.util.HashMap;
* *
* @author Gunging * @author Gunging
*/ */
public class RMG_Shaped extends RecipeMakerGUI { public class RMG_Shaped extends RecipeEditorGUI {
@NotNull HashMap<Integer, Integer> inputLinks = new HashMap<>(); @NotNull HashMap<Integer, Integer> inputLinks = new HashMap<>();

View File

@ -3,12 +3,11 @@ package net.Indyuce.mmoitems.gui.edition.recipe.gui;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Shapeless; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Shapeless;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_HideFromBook; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_HideFromBook;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_InputOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_InputOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -24,7 +23,7 @@ import java.util.HashMap;
* *
* @author Gunging * @author Gunging
*/ */
public class RMG_Shapeless extends RecipeMakerGUI { public class RMG_Shapeless extends RecipeEditorGUI {
@NotNull @NotNull
final HashMap<Integer, Integer> inputLinks = new HashMap<>(); final HashMap<Integer, Integer> inputLinks = new HashMap<>();
@ -43,9 +42,9 @@ public class RMG_Shapeless extends RecipeMakerGUI {
addButton(new RBA_HideFromBook(this)); addButton(new RBA_HideFromBook(this));
// Get section and build interpreter // Get section and build interpreter
ConfigurationSection crafting = RecipeMakerGUI.getSection(getEditedSection(), "crafting"); ConfigurationSection crafting = RecipeEditorGUI.getSection(getEditedSection(), "crafting");
ConfigurationSection recipe = RecipeMakerGUI.getSection(crafting, getRecipeRegistry().getRecipeConfigPath()); ConfigurationSection recipe = RecipeEditorGUI.getSection(crafting, getRecipeRegistry().getRecipeConfigPath());
ConfigurationSection name = RecipeMakerGUI.getSection(recipe, getRecipeName()); ConfigurationSection name = RecipeEditorGUI.getSection(recipe, getRecipeName());
interpreter = new RMGRI_Shapeless(name); interpreter = new RMGRI_Shapeless(name);
// Bind inputs // Bind inputs

View File

@ -3,14 +3,13 @@ package net.Indyuce.mmoitems.gui.edition.recipe.gui;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Smithing; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Smithing;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_DropGems; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_DropGems;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_InputOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_InputOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_SmithingEnchantments; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_SmithingEnchantments;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_SmithingUpgrades; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_SmithingUpgrades;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -26,7 +25,7 @@ import java.util.HashMap;
* *
* @author Gunging * @author Gunging
*/ */
public class RMG_Smithing extends RecipeMakerGUI { public class RMG_Smithing extends RecipeEditorGUI {
@NotNull @NotNull
final HashMap<Integer, Integer> inputLinks = new HashMap<>(); final HashMap<Integer, Integer> inputLinks = new HashMap<>();
@ -43,9 +42,9 @@ public class RMG_Smithing extends RecipeMakerGUI {
super(player, template, recipeName, recipeRegistry); super(player, template, recipeName, recipeRegistry);
// Get section and build interpreter // Get section and build interpreter
ConfigurationSection crafting = RecipeMakerGUI.getSection(getEditedSection(), "crafting"); ConfigurationSection crafting = RecipeEditorGUI.getSection(getEditedSection(), "crafting");
ConfigurationSection recipe = RecipeMakerGUI.getSection(crafting, getRecipeRegistry().getRecipeConfigPath()); ConfigurationSection recipe = RecipeEditorGUI.getSection(crafting, getRecipeRegistry().getRecipeConfigPath());
ConfigurationSection name = RecipeMakerGUI.getSection(recipe, getRecipeName()); ConfigurationSection name = RecipeEditorGUI.getSection(recipe, getRecipeName());
interpreter = new RMGRI_Smithing(name); interpreter = new RMGRI_Smithing(name);
// Bind inputs // Bind inputs

View File

@ -3,10 +3,9 @@ package net.Indyuce.mmoitems.gui.edition.recipe.gui;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_SuperShaped; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_SuperShaped;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_InputOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_InputOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -17,7 +16,7 @@ import java.util.HashMap;
* *
* @author Gunging * @author Gunging
*/ */
public class RMG_SuperShaped extends RecipeMakerGUI { public class RMG_SuperShaped extends RecipeEditorGUI {
@NotNull HashMap<Integer, Integer> inputLinks = new HashMap<>(); @NotNull HashMap<Integer, Integer> inputLinks = new HashMap<>();

View File

@ -17,15 +17,14 @@ import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_AmountOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_AmountOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RecipeButtonAction; import net.Indyuce.mmoitems.gui.edition.recipe.button.RecipeButtonAction;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -50,7 +49,7 @@ import java.util.UUID;
* @author Gunging * @author Gunging
*/ */
@SuppressWarnings("unused") @SuppressWarnings("unused")
public abstract class RecipeMakerGUI extends EditionInventory { public abstract class RecipeEditorGUI extends EditionInventory {
/** /**
* An editor for a recipe of this crafting system. * An editor for a recipe of this crafting system.
@ -66,7 +65,7 @@ public abstract class RecipeMakerGUI extends EditionInventory {
* @param recipeName Name of this particular Recipe * @param recipeName Name of this particular Recipe
* @param recipeRegistry Load/Save Information of this Recipe Type * @param recipeRegistry Load/Save Information of this Recipe Type
*/ */
public RecipeMakerGUI(@NotNull Player player, @NotNull MMOItemTemplate template, @NotNull String recipeName, @NotNull RecipeRegistry recipeRegistry) { public RecipeEditorGUI(@NotNull Player player, @NotNull MMOItemTemplate template, @NotNull String recipeName, @NotNull RecipeRegistry recipeRegistry) {
super(player, template); super(player, template);
// Store name // Store name

View File

@ -1,7 +1,7 @@
package net.Indyuce.mmoitems.gui.edition.recipe.interpreter; package net.Indyuce.mmoitems.gui.edition.recipe.interpreter;
import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter; import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -28,7 +28,7 @@ public class RMGRI_BurningLegacy implements RMG_RecipeInterpreter{
* *
* @param input The stuff that must be smelted * @param input The stuff that must be smelted
*/ */
public void setInput(@Nullable ProvidedUIFilter input) { this.input = input == null ? RecipeMakerGUI.AIR : input; } public void setInput(@Nullable ProvidedUIFilter input) { this.input = input == null ? RecipeEditorGUI.AIR : input; }
@NotNull final ConfigurationSection section; @NotNull final ConfigurationSection section;
/** /**
@ -50,8 +50,8 @@ public class RMGRI_BurningLegacy implements RMG_RecipeInterpreter{
// Furnaces support only input // Furnaces support only input
//noinspection ConstantConditions //noinspection ConstantConditions
input = ProvidedUIFilter.getFromString(RecipeMakerGUI.poofFromLegacy(recipeNameSection.getString(ITEM)), null); input = ProvidedUIFilter.getFromString(RecipeEditorGUI.poofFromLegacy(recipeNameSection.getString(ITEM)), null);
if (input == null) { input = RecipeMakerGUI.AIR.clone(); } if (input == null) { input = RecipeEditorGUI.AIR.clone(); }
} }
@Override @Override
@ -68,7 +68,7 @@ public class RMGRI_BurningLegacy implements RMG_RecipeInterpreter{
@Override public void editOutput(@NotNull ProvidedUIFilter input, int slot) { } @Override public void editOutput(@NotNull ProvidedUIFilter input, int slot) { }
@Override public void deleteInput(int slot) { editInput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteInput(int slot) { editInput(RecipeEditorGUI.AIR.clone(), slot); }
@Override public void deleteOutput(int slot) { } @Override public void deleteOutput(int slot) { }

View File

@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.gui.edition.recipe.interpreter;
import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter; import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -64,7 +64,7 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
// Parse // Parse
ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null); ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null);
if (parsed == null) { parsed = RecipeMakerGUI.AIR.clone(); } if (parsed == null) { parsed = RecipeEditorGUI.AIR.clone(); }
// Add // Add
ret[r][p] = parsed; } } ret[r][p] = parsed; } }
@ -114,7 +114,7 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
// Build // Build
for (ProvidedUIFilter poof : poofs) { for (ProvidedUIFilter poof : poofs) {
ProvidedUIFilter providedUIFilter = poof; ProvidedUIFilter providedUIFilter = poof;
if (providedUIFilter == null) { providedUIFilter = RecipeMakerGUI.AIR.clone(); } if (providedUIFilter == null) { providedUIFilter = RecipeEditorGUI.AIR.clone(); }
// Add bar // Add bar
if (sb.length() != 0) { sb.append("|"); } if (sb.length() != 0) { sb.append("|"); }
@ -182,8 +182,8 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
section = recipeNameSection; section = recipeNameSection;
// Build Input list // Build Input list
inputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)); inputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS));
outputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)); outputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS));
} }
@Override @Override
@ -193,7 +193,7 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
setInput(slot, input); setInput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.INPUT_INGREDIENTS, toYML(inputRecipe)); section.set(RecipeEditorGUI.INPUT_INGREDIENTS, toYML(inputRecipe));
} }
@Override @Override
@ -203,12 +203,12 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
setOutput(slot, input); setOutput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe)); section.set(RecipeEditorGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe));
} }
@Override public void deleteInput(int slot) { editInput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteInput(int slot) { editInput(RecipeEditorGUI.AIR.clone(), slot); }
@Override public void deleteOutput(int slot) { editOutput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteOutput(int slot) { editOutput(RecipeEditorGUI.AIR.clone(), slot); }
//region Updater, to update old recipes //region Updater, to update old recipes
/** /**
@ -247,7 +247,7 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); }
} }
// Build and return // Build and return
@ -268,7 +268,7 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); }
} }
// Build and return // Build and return
@ -278,7 +278,7 @@ public class RMGRI_MegaShaped implements RMG_RecipeInterpreter {
} else { } else {
// Just that i guess // Just that i guess
return RecipeMakerGUI.poofFromLegacy(curr) + "|v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0"; return RecipeEditorGUI.poofFromLegacy(curr) + "|v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0";
} }
} }
public static final String emptyRow = "v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0"; public static final String emptyRow = "v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0";

View File

@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.gui.edition.recipe.interpreter;
import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter; import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -59,7 +59,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
// Parse // Parse
ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null); ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null);
if (parsed == null) { parsed = RecipeMakerGUI.AIR.clone(); } if (parsed == null) { parsed = RecipeEditorGUI.AIR.clone(); }
// Add // Add
ret[r][p] = parsed; } } ret[r][p] = parsed; } }
@ -102,7 +102,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
// Build // Build
for (ProvidedUIFilter poof : poofs) { for (ProvidedUIFilter poof : poofs) {
ProvidedUIFilter providedUIFilter = poof; ProvidedUIFilter providedUIFilter = poof;
if (providedUIFilter == null) { providedUIFilter = RecipeMakerGUI.AIR.clone(); } if (providedUIFilter == null) { providedUIFilter = RecipeEditorGUI.AIR.clone(); }
// Add bar // Add bar
if (sb.length() != 0) { sb.append("|"); } if (sb.length() != 0) { sb.append("|"); }
@ -162,7 +162,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
/** /**
* Generate an interpreter from this <i>updated</i> configuration section. * Generate an interpreter from this <i>updated</i> configuration section.
* <br><br> * <br><br>
* By 'updated' I mean that, for now, we <b>should call {@link RecipeMakerGUI#moveInput()} * By 'updated' I mean that, for now, we <b>should call {@link RecipeEditorGUI#moveInput()}
* on this configuration before passing it here</b>, to move the input list from being the recipe name * on this configuration before passing it here</b>, to move the input list from being the recipe name
* section itself to the 'input' section within. * section itself to the 'input' section within.
* *
@ -174,8 +174,8 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
section = recipeNameSection; section = recipeNameSection;
// Build Input list // Build Input list
inputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)); inputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS));
outputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)); outputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS));
} }
@Override @Override
@ -185,7 +185,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
setInput(slot, input); setInput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.INPUT_INGREDIENTS, toYML(inputRecipe)); section.set(RecipeEditorGUI.INPUT_INGREDIENTS, toYML(inputRecipe));
} }
@Override @Override
@ -195,12 +195,12 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
setOutput(slot, input); setOutput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe)); section.set(RecipeEditorGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe));
} }
@Override public void deleteInput(int slot) { editInput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteInput(int slot) { editInput(RecipeEditorGUI.AIR.clone(), slot); }
@Override public void deleteOutput(int slot) { editOutput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteOutput(int slot) { editOutput(RecipeEditorGUI.AIR.clone(), slot); }
//region Updater, to update old recipes //region Updater, to update old recipes
/** /**
@ -239,7 +239,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); }
} }
// Build and return // Build and return
@ -260,7 +260,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); }
} }
// Build and return // Build and return
@ -270,7 +270,7 @@ public class RMGRI_Shaped implements RMG_RecipeInterpreter {
} else { } else {
// Just that i guess // Just that i guess
return RecipeMakerGUI.poofFromLegacy(curr) + "|v AIR 0|v AIR 0"; return RecipeEditorGUI.poofFromLegacy(curr) + "|v AIR 0|v AIR 0";
} }
} }
public static final String emptyRow = "v AIR 0|v AIR 0|v AIR 0"; public static final String emptyRow = "v AIR 0|v AIR 0|v AIR 0";

View File

@ -1,7 +1,7 @@
package net.Indyuce.mmoitems.gui.edition.recipe.interpreter; package net.Indyuce.mmoitems.gui.edition.recipe.interpreter;
import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter; import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -49,11 +49,11 @@ public class RMGRI_Shapeless implements RMG_RecipeInterpreter {
String row = config.size() > r ? config.get(r) : null; String row = config.size() > r ? config.get(r) : null;
// Update it ig // Update it ig
String poof = RecipeMakerGUI.poofFromLegacy(row); String poof = RecipeEditorGUI.poofFromLegacy(row);
// Parse // Parse
ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null); ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null);
if (parsed == null) { parsed = RecipeMakerGUI.AIR.clone(); } if (parsed == null) { parsed = RecipeEditorGUI.AIR.clone(); }
// Add // Add
ret[r] = parsed; ret[r] = parsed;
@ -93,7 +93,7 @@ public class RMGRI_Shapeless implements RMG_RecipeInterpreter {
for (int r = 0; r < 9; r++) { for (int r = 0; r < 9; r++) {
// Get row // Get row
ProvidedUIFilter poof = ingredients.length > r ? ingredients[r] : RecipeMakerGUI.AIR.clone(); ProvidedUIFilter poof = ingredients.length > r ? ingredients[r] : RecipeEditorGUI.AIR.clone();
// Add poof // Add poof
ret.add(poof.toString()); ret.add(poof.toString());
@ -148,7 +148,7 @@ public class RMGRI_Shapeless implements RMG_RecipeInterpreter {
/** /**
* Generate an interpreter from this <i>updated</i> configuration section. * Generate an interpreter from this <i>updated</i> configuration section.
* <br><br> * <br><br>
* By 'updated' I mean that, for now, we <b>should call {@link RecipeMakerGUI#moveInput(ConfigurationSection, String)} * By 'updated' I mean that, for now, we <b>should call {@link RecipeEditorGUI#moveInput(ConfigurationSection, String)}
* on this configuration before passing it here</b>, to move the input list from being the recipe name * on this configuration before passing it here</b>, to move the input list from being the recipe name
* section itself to the 'input' section within. * section itself to the 'input' section within.
* *
@ -160,8 +160,8 @@ public class RMGRI_Shapeless implements RMG_RecipeInterpreter {
section = recipeNameSection; section = recipeNameSection;
// Build Input list // Build Input list
inputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)); inputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS));
outputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)); outputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS));
} }
@Override @Override
@ -171,7 +171,7 @@ public class RMGRI_Shapeless implements RMG_RecipeInterpreter {
setInput(slot, input); setInput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.INPUT_INGREDIENTS, toYML(inputRecipe)); section.set(RecipeEditorGUI.INPUT_INGREDIENTS, toYML(inputRecipe));
} }
@Override @Override
@ -181,10 +181,10 @@ public class RMGRI_Shapeless implements RMG_RecipeInterpreter {
setOutput(slot, input); setOutput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe)); section.set(RecipeEditorGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe));
} }
@Override public void deleteInput(int slot) { editInput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteInput(int slot) { editInput(RecipeEditorGUI.AIR.clone(), slot); }
@Override public void deleteOutput(int slot) { editOutput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteOutput(int slot) { editOutput(RecipeEditorGUI.AIR.clone(), slot); }
} }

View File

@ -1,7 +1,7 @@
package net.Indyuce.mmoitems.gui.edition.recipe.interpreter; package net.Indyuce.mmoitems.gui.edition.recipe.interpreter;
import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter; import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -68,7 +68,7 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
/** /**
* Generate an interpreter from this <i>updated</i> configuration section. * Generate an interpreter from this <i>updated</i> configuration section.
* <br><br> * <br><br>
* By 'updated' I mean that, for now, we <b>should call {@link RecipeMakerGUI#moveInput()} * By 'updated' I mean that, for now, we <b>should call {@link RecipeEditorGUI#moveInput()}
* on this configuration before passing it here</b>, to move the input list from being the recipe name * on this configuration before passing it here</b>, to move the input list from being the recipe name
* section itself to the 'input' section within. * section itself to the 'input' section within.
* *
@ -82,8 +82,8 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
/* /*
* Read input and output from the file * Read input and output from the file
*/ */
String input = updateIngredients(section.getString(RecipeMakerGUI.INPUT_INGREDIENTS)); String input = updateIngredients(section.getString(RecipeEditorGUI.INPUT_INGREDIENTS));
String output = updateIngredients(section.getString(RecipeMakerGUI.OUTPUT_INGREDIENTS)); String output = updateIngredients(section.getString(RecipeEditorGUI.OUTPUT_INGREDIENTS));
// Split // Split
String[] inputSplit = input.split("\\|"); String[] inputSplit = input.split("\\|");
@ -95,10 +95,10 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
ProvidedUIFilter outputIngotParse = ProvidedUIFilter.getFromString(outputSplit[1], null); ProvidedUIFilter outputIngotParse = ProvidedUIFilter.getFromString(outputSplit[1], null);
// Build Input list // Build Input list
inputItem = inputItemParse != null ? inputItemParse : RecipeMakerGUI.AIR.clone(); inputItem = inputItemParse != null ? inputItemParse : RecipeEditorGUI.AIR.clone();
inputIngot = inputIngotParse != null ? inputIngotParse : RecipeMakerGUI.AIR.clone(); inputIngot = inputIngotParse != null ? inputIngotParse : RecipeEditorGUI.AIR.clone();
outputItem = outputItemParse != null ? outputItemParse : RecipeMakerGUI.AIR.clone(); outputItem = outputItemParse != null ? outputItemParse : RecipeEditorGUI.AIR.clone();
outputIngot = outputIngotParse != null ? outputIngotParse : RecipeMakerGUI.AIR.clone(); outputIngot = outputIngotParse != null ? outputIngotParse : RecipeEditorGUI.AIR.clone();
} }
/** /**
@ -134,7 +134,7 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
setInput(slot, input); setInput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.INPUT_INGREDIENTS, toYML(getInputItem(), getInputIngot())); section.set(RecipeEditorGUI.INPUT_INGREDIENTS, toYML(getInputItem(), getInputIngot()));
} }
@Override @Override
@ -144,12 +144,12 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
setOutput(slot, input); setOutput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.OUTPUT_INGREDIENTS, toYML(getOutputItem(), getOutputIngot())); section.set(RecipeEditorGUI.OUTPUT_INGREDIENTS, toYML(getOutputItem(), getOutputIngot()));
} }
@Override public void deleteInput(int slot) { editInput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteInput(int slot) { editInput(RecipeEditorGUI.AIR.clone(), slot); }
@Override public void deleteOutput(int slot) { editOutput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteOutput(int slot) { editOutput(RecipeEditorGUI.AIR.clone(), slot); }
//region Updater, to update old recipes //region Updater, to update old recipes
/** /**
@ -188,7 +188,7 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR -"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR -"); }
} }
// Build and return // Build and return
@ -209,7 +209,7 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR -"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR -"); }
} }
// Build and return // Build and return
@ -219,7 +219,7 @@ public class RMGRI_Smithing implements RMG_RecipeInterpreter {
} else { } else {
// Just that i guess // Just that i guess
return RecipeMakerGUI.poofFromLegacy(curr) + "|v AIR 0"; return RecipeEditorGUI.poofFromLegacy(curr) + "|v AIR 0";
} }
} }
public static final String emptyIngredients = "v AIR -|v AIR -"; public static final String emptyIngredients = "v AIR -|v AIR -";

View File

@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.gui.edition.recipe.interpreter;
import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter; import io.lumine.mythic.lib.api.crafting.uimanager.ProvidedUIFilter;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -62,7 +62,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
// Parse // Parse
ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null); ProvidedUIFilter parsed = ProvidedUIFilter.getFromString(poof, null);
if (parsed == null) { parsed = RecipeMakerGUI.AIR.clone(); } if (parsed == null) { parsed = RecipeEditorGUI.AIR.clone(); }
// Add // Add
ret[r][p] = parsed; } } ret[r][p] = parsed; } }
@ -110,7 +110,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
// Build // Build
for (ProvidedUIFilter poof : poofs) { for (ProvidedUIFilter poof : poofs) {
ProvidedUIFilter providedUIFilter = poof; ProvidedUIFilter providedUIFilter = poof;
if (providedUIFilter == null) { providedUIFilter = RecipeMakerGUI.AIR.clone(); } if (providedUIFilter == null) { providedUIFilter = RecipeEditorGUI.AIR.clone(); }
// Add bar // Add bar
if (sb.length() != 0) { sb.append("|"); } if (sb.length() != 0) { sb.append("|"); }
@ -170,7 +170,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
/** /**
* Generate an interpreter from this <i>updated</i> configuration section. * Generate an interpreter from this <i>updated</i> configuration section.
* <br><br> * <br><br>
* By 'updated' I mean that, for now, we <b>should call {@link RecipeMakerGUI#moveInput()} * By 'updated' I mean that, for now, we <b>should call {@link RecipeEditorGUI#moveInput()}
* on this configuration before passing it here</b>, to move the input list from being the recipe name * on this configuration before passing it here</b>, to move the input list from being the recipe name
* section itself to the 'input' section within. * section itself to the 'input' section within.
* *
@ -182,8 +182,8 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
section = recipeNameSection; section = recipeNameSection;
// Build Input list // Build Input list
inputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)); inputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS));
outputRecipe = buildIngredientsFromList(section.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)); outputRecipe = buildIngredientsFromList(section.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS));
} }
@Override @Override
@ -193,7 +193,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
setInput(slot, input); setInput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.INPUT_INGREDIENTS, toYML(inputRecipe)); section.set(RecipeEditorGUI.INPUT_INGREDIENTS, toYML(inputRecipe));
} }
@Override @Override
@ -203,12 +203,12 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
setOutput(slot, input); setOutput(slot, input);
// Save // Save
section.set(RecipeMakerGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe)); section.set(RecipeEditorGUI.OUTPUT_INGREDIENTS, toYML(outputRecipe));
} }
@Override public void deleteInput(int slot) { editInput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteInput(int slot) { editInput(RecipeEditorGUI.AIR.clone(), slot); }
@Override public void deleteOutput(int slot) { editOutput(RecipeMakerGUI.AIR.clone(), slot); } @Override public void deleteOutput(int slot) { editOutput(RecipeEditorGUI.AIR.clone(), slot); }
//region Updater, to update old recipes //region Updater, to update old recipes
/** /**
@ -247,7 +247,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); }
} }
// Build and return // Build and return
@ -268,7 +268,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
if (r != 0) { ret.append("|"); } if (r != 0) { ret.append("|"); }
// Array has it? // Array has it?
if (r < curSplit.length) { ret.append(RecipeMakerGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); } if (r < curSplit.length) { ret.append(RecipeEditorGUI.poofFromLegacy(curSplit[r])); } else { ret.append("v AIR 0"); }
} }
// Build and return // Build and return
@ -278,7 +278,7 @@ public class RMGRI_SuperShaped implements RMG_RecipeInterpreter {
} else { } else {
// Just that i guess // Just that i guess
return RecipeMakerGUI.poofFromLegacy(curr) + "|v AIR 0|v AIR 0|v AIR 0|v AIR 0"; return RecipeEditorGUI.poofFromLegacy(curr) + "|v AIR 0|v AIR 0|v AIR 0|v AIR 0";
} }
} }
public static final String emptyRow = "v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0"; public static final String emptyRow = "v AIR 0|v AIR 0|v AIR 0|v AIR 0|v AIR 0";

View File

@ -11,11 +11,11 @@ import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_BurningLegacy; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_BurningLegacy;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_AmountOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_AmountOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_CookingTime; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_CookingTime;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_Experience; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_Experience;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_HideFromBook; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_HideFromBook;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.burninglegacy.BurningRecipeInformation; import net.Indyuce.mmoitems.gui.edition.recipe.registry.burninglegacy.BurningRecipeInformation;
import net.Indyuce.mmoitems.manager.RecipeManager; import net.Indyuce.mmoitems.manager.RecipeManager;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
@ -45,7 +45,7 @@ public abstract class RMGRR_LegacyBurning implements RecipeRegistry {
@SuppressWarnings("NotNullFieldNotInitialized") @SuppressWarnings("NotNullFieldNotInitialized")
@NotNull @NotNull
private final ItemStack displayListItem = RecipeMakerGUI.rename(getLegacyBurningType().getItem(), FFPMMOItems.get().getExampleFormat() + capitalizeFirst(getRecipeConfigPath()) + " Recipe"); private final ItemStack displayListItem = RecipeEditorGUI.rename(getLegacyBurningType().getItem(), FFPMMOItems.get().getExampleFormat() + capitalizeFirst(getRecipeConfigPath()) + " Recipe");
@NotNull @NotNull
@Override @Override
@ -66,7 +66,7 @@ public abstract class RMGRR_LegacyBurning implements RecipeRegistry {
Validate.isTrue(namespace.getValue() != null); Validate.isTrue(namespace.getValue() != null);
// Get correct section // Get correct section
ConfigurationSection recipeSection = RecipeMakerGUI.getSection(recipeTypeSection, recipeName); ConfigurationSection recipeSection = RecipeEditorGUI.getSection(recipeTypeSection, recipeName);
// Get ingredient // Get ingredient
String itemIngredient = recipeSection.getString("item"); String itemIngredient = recipeSection.getString("item");

View File

@ -14,9 +14,9 @@ import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_MegaShaped; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_MegaShaped;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_AmountOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_AmountOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_MegaShaped; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_MegaShaped;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -31,7 +31,7 @@ public class RMGRR_MegaShaped implements RecipeRegistry {
@Override public String getRecipeConfigPath() { return "megashaped"; } @Override public String getRecipeConfigPath() { return "megashaped"; }
@NotNull @Override public String getRecipeTypeName() { return "Mega Shaped"; } @NotNull @Override public String getRecipeTypeName() { return "Mega Shaped"; }
@NotNull final ItemStack displayListItem = RecipeMakerGUI.rename(new ItemStack(Material.JUKEBOX), FFPMMOItems.get().getExampleFormat() + "Mega Shaped Recipe"); @NotNull final ItemStack displayListItem = RecipeEditorGUI.rename(new ItemStack(Material.JUKEBOX), FFPMMOItems.get().getExampleFormat() + "Mega Shaped Recipe");
@NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; } @NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; }
@Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) { @Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) {
@ -43,17 +43,17 @@ public class RMGRR_MegaShaped implements RecipeRegistry {
public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException { public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException {
// Read some values // Read some values
ConfigurationSection recipeSection = RecipeMakerGUI.moveInput(recipeTypeSection, recipeName); ConfigurationSection recipeSection = RecipeEditorGUI.moveInput(recipeTypeSection, recipeName);
NamespacedKey nk = namespace.getValue(); NamespacedKey nk = namespace.getValue();
if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); } if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); }
// Identify the input // Identify the input
ShapedRecipe input = megaShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)), ffp); ShapedRecipe input = megaShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS)), ffp);
if (input == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Shaped recipe containing only AIR, $fignored$b.")); } if (input == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Shaped recipe containing only AIR, $fignored$b.")); }
// Read the options and output // Read the options and output
ShapedRecipe output = megaShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)), ffp); ShapedRecipe output = megaShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS)), ffp);
int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1); int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1);
// Build Output // Build Output
@ -142,12 +142,12 @@ public class RMGRR_MegaShaped implements RecipeRegistry {
if (positions.length != 6) { throw new IllegalArgumentException("Invalid mega crafting table row $u" + updatedRow + "$b ($fNot exactly 6 ingredients wide$b)."); } if (positions.length != 6) { throw new IllegalArgumentException("Invalid mega crafting table row $u" + updatedRow + "$b ($fNot exactly 6 ingredients wide$b)."); }
// Identify // Identify
ProvidedUIFilter left = RecipeMakerGUI.readIngredientFrom(positions[0], ffp); ProvidedUIFilter left = RecipeEditorGUI.readIngredientFrom(positions[0], ffp);
ProvidedUIFilter midLeft = RecipeMakerGUI.readIngredientFrom(positions[1], ffp); ProvidedUIFilter midLeft = RecipeEditorGUI.readIngredientFrom(positions[1], ffp);
ProvidedUIFilter center = RecipeMakerGUI.readIngredientFrom(positions[2], ffp); ProvidedUIFilter center = RecipeEditorGUI.readIngredientFrom(positions[2], ffp);
ProvidedUIFilter midRight = RecipeMakerGUI.readIngredientFrom(positions[3], ffp); ProvidedUIFilter midRight = RecipeEditorGUI.readIngredientFrom(positions[3], ffp);
ProvidedUIFilter right = RecipeMakerGUI.readIngredientFrom(positions[4], ffp); ProvidedUIFilter right = RecipeEditorGUI.readIngredientFrom(positions[4], ffp);
ProvidedUIFilter extra = RecipeMakerGUI.readIngredientFrom(positions[5], ffp); ProvidedUIFilter extra = RecipeEditorGUI.readIngredientFrom(positions[5], ffp);
if (!left.isAir()) { nonAirFound = true; } if (!left.isAir()) { nonAirFound = true; }
if (!midLeft.isAir()) { nonAirFound = true; } if (!midLeft.isAir()) { nonAirFound = true; }
if (!center.isAir()) { nonAirFound = true; } if (!center.isAir()) { nonAirFound = true; }

View File

@ -15,10 +15,10 @@ import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Shaped; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Shaped;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_AmountOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_AmountOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_HideFromBook; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_HideFromBook;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_Shaped; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_Shaped;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.stat.data.StringData; import net.Indyuce.mmoitems.stat.data.StringData;
import net.Indyuce.mmoitems.stat.data.random.RandomStatData; import net.Indyuce.mmoitems.stat.data.random.RandomStatData;
import org.bukkit.Material; import org.bukkit.Material;
@ -35,7 +35,7 @@ public class RMGRR_Shaped implements RecipeRegistry {
@NotNull @Override public String getRecipeConfigPath() { return "shaped"; } @NotNull @Override public String getRecipeConfigPath() { return "shaped"; }
@NotNull @Override public String getRecipeTypeName() { return "Shaped"; } @NotNull @Override public String getRecipeTypeName() { return "Shaped"; }
@NotNull final ItemStack displayListItem = RecipeMakerGUI.rename(new ItemStack(Material.CRAFTING_TABLE), FFPMMOItems.get().getExampleFormat() + "Shaped Recipe"); @NotNull final ItemStack displayListItem = RecipeEditorGUI.rename(new ItemStack(Material.CRAFTING_TABLE), FFPMMOItems.get().getExampleFormat() + "Shaped Recipe");
@NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; } @NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; }
@Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) { @Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) {
@ -47,17 +47,17 @@ public class RMGRR_Shaped implements RecipeRegistry {
public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException { public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException {
// Read some values // Read some values
ConfigurationSection recipeSection = RecipeMakerGUI.moveInput(recipeTypeSection, recipeName); ConfigurationSection recipeSection = RecipeEditorGUI.moveInput(recipeTypeSection, recipeName);
NamespacedKey nk = namespace.getValue(); NamespacedKey nk = namespace.getValue();
if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); } if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); }
// Identify the input // Identify the input
ShapedRecipe input = shapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)), ffp); ShapedRecipe input = shapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS)), ffp);
if (input == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Shaped recipe containing only AIR, $fignored$b.")); } if (input == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Shaped recipe containing only AIR, $fignored$b.")); }
// Read the options and output // Read the options and output
ShapedRecipe output = shapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)), ffp); ShapedRecipe output = shapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS)), ffp);
int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1); int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1);
boolean hideBook = recipeSection.getBoolean(RBA_HideFromBook.BOOK_HIDDEN, false); boolean hideBook = recipeSection.getBoolean(RBA_HideFromBook.BOOK_HIDDEN, false);
@ -153,9 +153,9 @@ public class RMGRR_Shaped implements RecipeRegistry {
if (positions.length != 3) { throw new IllegalArgumentException("Invalid crafting table row $u" + updatedRow + "$b ($fNot exactly 3 ingredients wide$b)."); } if (positions.length != 3) { throw new IllegalArgumentException("Invalid crafting table row $u" + updatedRow + "$b ($fNot exactly 3 ingredients wide$b)."); }
// Identify // Identify
ProvidedUIFilter left = RecipeMakerGUI.readIngredientFrom(positions[0], ffp); ProvidedUIFilter left = RecipeEditorGUI.readIngredientFrom(positions[0], ffp);
ProvidedUIFilter center = RecipeMakerGUI.readIngredientFrom(positions[1], ffp); ProvidedUIFilter center = RecipeEditorGUI.readIngredientFrom(positions[1], ffp);
ProvidedUIFilter right = RecipeMakerGUI.readIngredientFrom(positions[2], ffp); ProvidedUIFilter right = RecipeEditorGUI.readIngredientFrom(positions[2], ffp);
if (!left.isAir()) { nonAirFound = true; } if (!left.isAir()) { nonAirFound = true; }
if (!center.isAir()) { nonAirFound = true; } if (!center.isAir()) { nonAirFound = true; }
if (!right.isAir()) { nonAirFound = true; } if (!right.isAir()) { nonAirFound = true; }

View File

@ -15,10 +15,10 @@ import net.Indyuce.mmoitems.api.crafting.MMOItemUIFilter;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_AmountOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_AmountOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_HideFromBook; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_HideFromBook;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_Shapeless; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_Shapeless;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.stat.data.StringData; import net.Indyuce.mmoitems.stat.data.StringData;
import net.Indyuce.mmoitems.stat.data.random.RandomStatData; import net.Indyuce.mmoitems.stat.data.random.RandomStatData;
import org.bukkit.Material; import org.bukkit.Material;
@ -34,7 +34,7 @@ public class RMGRR_Shapeless implements RecipeRegistry {
@NotNull @Override public String getRecipeTypeName() { return "Shapeless"; } @NotNull @Override public String getRecipeTypeName() { return "Shapeless"; }
@NotNull @Override public String getRecipeConfigPath() { return "shapeless"; } @NotNull @Override public String getRecipeConfigPath() { return "shapeless"; }
@NotNull final ItemStack displayListItem = RecipeMakerGUI.rename(new ItemStack(Material.OAK_LOG), FFPMMOItems.get().getExampleFormat() + "Shapeless Recipe"); @NotNull final ItemStack displayListItem = RecipeEditorGUI.rename(new ItemStack(Material.OAK_LOG), FFPMMOItems.get().getExampleFormat() + "Shapeless Recipe");
@NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; } @NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; }
@Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) { @Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) {
@ -46,16 +46,16 @@ public class RMGRR_Shapeless implements RecipeRegistry {
public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException { public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException {
// Prior Preparations (update old formats) // Prior Preparations (update old formats)
RecipeMakerGUI.moveInput(recipeTypeSection, recipeName); RecipeEditorGUI.moveInput(recipeTypeSection, recipeName);
// Read some values // Read some values
ConfigurationSection recipeSection = RecipeMakerGUI.getSection(recipeTypeSection, recipeName); ConfigurationSection recipeSection = RecipeEditorGUI.getSection(recipeTypeSection, recipeName);
NamespacedKey nk = namespace.getValue(); NamespacedKey nk = namespace.getValue();
if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); } if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); }
//region Identify the input //region Identify the input
ArrayList<MythicRecipeIngredient> poofs = new ArrayList<>(); ArrayList<MythicRecipeIngredient> poofs = new ArrayList<>();
ArrayList<String> recipe = new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)); ArrayList<String> recipe = new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS));
// Read from the recipe // Read from the recipe
boolean nonAirFound = false; boolean nonAirFound = false;
@ -65,7 +65,7 @@ public class RMGRR_Shapeless implements RecipeRegistry {
if (str == null || "AIR".equals(str)) { continue; } if (str == null || "AIR".equals(str)) { continue; }
// Add // Add
ProvidedUIFilter p = RecipeMakerGUI.readIngredientFrom(str, ffp); ProvidedUIFilter p = RecipeEditorGUI.readIngredientFrom(str, ffp);
// Not air right // Not air right
if (p.isAir()) { continue; } if (p.isAir()) { continue; }
@ -79,7 +79,7 @@ public class RMGRR_Shapeless implements RecipeRegistry {
//endregion //endregion
// Read the options and output // Read the options and output
ShapedRecipe output = RMGRR_Shaped.shapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)), ffp); ShapedRecipe output = RMGRR_Shaped.shapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS)), ffp);
int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1); int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1);
boolean hideBook = recipeSection.getBoolean(RBA_HideFromBook.BOOK_HIDDEN, false); boolean hideBook = recipeSection.getBoolean(RBA_HideFromBook.BOOK_HIDDEN, false);

View File

@ -14,9 +14,9 @@ import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Smithing; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_Smithing;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.*; import net.Indyuce.mmoitems.gui.edition.recipe.button.*;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_Smithing; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_Smithing;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -29,7 +29,7 @@ public class RMGRR_Smithing implements RecipeRegistry {
@NotNull @Override public String getRecipeTypeName() { return "Smithing"; } @NotNull @Override public String getRecipeTypeName() { return "Smithing"; }
@NotNull @Override public String getRecipeConfigPath() { return "smithing"; } @NotNull @Override public String getRecipeConfigPath() { return "smithing"; }
@NotNull final ItemStack displayListItem = RecipeMakerGUI.rename(new ItemStack(Material.SMITHING_TABLE), FFPMMOItems.get().getExampleFormat() + "Smithing Recipe"); @NotNull final ItemStack displayListItem = RecipeEditorGUI.rename(new ItemStack(Material.SMITHING_TABLE), FFPMMOItems.get().getExampleFormat() + "Smithing Recipe");
@NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; } @NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; }
@Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) { @Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) {
@ -41,22 +41,22 @@ public class RMGRR_Smithing implements RecipeRegistry {
public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException { public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException {
// Prior Preparations (update old formats) // Prior Preparations (update old formats)
RecipeMakerGUI.moveInput(recipeTypeSection, recipeName); RecipeEditorGUI.moveInput(recipeTypeSection, recipeName);
// Read some values // Read some values
ConfigurationSection recipeSection = RecipeMakerGUI.getSection(recipeTypeSection, recipeName); ConfigurationSection recipeSection = RecipeEditorGUI.getSection(recipeTypeSection, recipeName);
NamespacedKey nk = namespace.getValue(); NamespacedKey nk = namespace.getValue();
if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); } if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); }
//region Identify the input //region Identify the input
// Find value in files // Find value in files
String input = RMGRI_Smithing.updateIngredients(recipeSection.getString(RecipeMakerGUI.INPUT_INGREDIENTS)); String input = RMGRI_Smithing.updateIngredients(recipeSection.getString(RecipeEditorGUI.INPUT_INGREDIENTS));
String[] inputSplit = input.split("\\|"); String[] inputSplit = input.split("\\|");
// All right lets read them // All right lets read them
ProvidedUIFilter itemPoof = RecipeMakerGUI.readIngredientFrom(inputSplit[0], ffp); ProvidedUIFilter itemPoof = RecipeEditorGUI.readIngredientFrom(inputSplit[0], ffp);
ProvidedUIFilter ingotPoof = RecipeMakerGUI.readIngredientFrom(inputSplit[1], ffp); ProvidedUIFilter ingotPoof = RecipeEditorGUI.readIngredientFrom(inputSplit[1], ffp);
if (itemPoof.isAir() || ingotPoof.isAir()) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Smithing recipe containing AIR, $fignored$b.")); } if (itemPoof.isAir() || ingotPoof.isAir()) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Smithing recipe containing AIR, $fignored$b.")); }
// Make ingredients // Make ingredients
@ -70,12 +70,12 @@ public class RMGRR_Smithing implements RecipeRegistry {
//region Identify the output of ingredients //region Identify the output of ingredients
// Find value in files // Find value in files
String output = RMGRI_Smithing.updateIngredients(recipeSection.getString(RecipeMakerGUI.OUTPUT_INGREDIENTS)); String output = RMGRI_Smithing.updateIngredients(recipeSection.getString(RecipeEditorGUI.OUTPUT_INGREDIENTS));
String[] outputSplit = output.split("\\|"); String[] outputSplit = output.split("\\|");
// All right lets read them // All right lets read them
ProvidedUIFilter itemOPoof = RecipeMakerGUI.readIngredientFrom(outputSplit[0], ffp); ProvidedUIFilter itemOPoof = RecipeEditorGUI.readIngredientFrom(outputSplit[0], ffp);
ProvidedUIFilter ingotOPoof = RecipeMakerGUI.readIngredientFrom(outputSplit[1], ffp); ProvidedUIFilter ingotOPoof = RecipeEditorGUI.readIngredientFrom(outputSplit[1], ffp);
// Make output recipes // Make output recipes
ShapedRecipe outputItem = itemOPoof.isAir() ? null : ShapedRecipe.single(nk.getKey(), itemOPoof); ShapedRecipe outputItem = itemOPoof.isAir() ? null : ShapedRecipe.single(nk.getKey(), itemOPoof);

View File

@ -15,9 +15,9 @@ import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_SuperShaped; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMGRI_SuperShaped;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RBA_AmountOutput; import net.Indyuce.mmoitems.gui.edition.recipe.button.RBA_AmountOutput;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_SuperShaped; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RMG_SuperShaped;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.stat.data.StringData; import net.Indyuce.mmoitems.stat.data.StringData;
import net.Indyuce.mmoitems.stat.data.random.RandomStatData; import net.Indyuce.mmoitems.stat.data.random.RandomStatData;
import org.bukkit.Material; import org.bukkit.Material;
@ -35,7 +35,7 @@ public class RMGRR_SuperShaped implements RecipeRegistry {
@Override public String getRecipeConfigPath() { return "supershaped"; } @Override public String getRecipeConfigPath() { return "supershaped"; }
@NotNull @Override public String getRecipeTypeName() { return "Super Shaped"; } @NotNull @Override public String getRecipeTypeName() { return "Super Shaped"; }
@NotNull final ItemStack displayListItem = RecipeMakerGUI.rename(new ItemStack(Material.NOTE_BLOCK), FFPMMOItems.get().getExampleFormat() + "Super Shaped Recipe"); @NotNull final ItemStack displayListItem = RecipeEditorGUI.rename(new ItemStack(Material.NOTE_BLOCK), FFPMMOItems.get().getExampleFormat() + "Super Shaped Recipe");
@NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; } @NotNull @Override public ItemStack getDisplayListItem() { return displayListItem; }
@Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) { @Override public void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams) {
@ -47,17 +47,17 @@ public class RMGRR_SuperShaped implements RecipeRegistry {
public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException { public MythicRecipeBlueprint sendToMythicLib(@NotNull MMOItemTemplate template, @NotNull ConfigurationSection recipeTypeSection, @NotNull String recipeName, @NotNull Ref<NamespacedKey> namespace, @NotNull FriendlyFeedbackProvider ffp) throws IllegalArgumentException {
// Read some values // Read some values
ConfigurationSection recipeSection = RecipeMakerGUI.moveInput(recipeTypeSection, recipeName); ConfigurationSection recipeSection = RecipeEditorGUI.moveInput(recipeTypeSection, recipeName);
NamespacedKey nk = namespace.getValue(); NamespacedKey nk = namespace.getValue();
if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); } if (nk == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Illegal (Null) Namespace")); }
// Identify the input // Identify the input
ShapedRecipe input = superShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.INPUT_INGREDIENTS)), ffp); ShapedRecipe input = superShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.INPUT_INGREDIENTS)), ffp);
if (input == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Shaped recipe containing only AIR, $fignored$b.")); } if (input == null) { throw new IllegalArgumentException(FriendlyFeedbackProvider.quickForConsole(FFPMMOItems.get(), "Shaped recipe containing only AIR, $fignored$b.")); }
// Read the options and output // Read the options and output
ShapedRecipe output = superShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeMakerGUI.OUTPUT_INGREDIENTS)), ffp); ShapedRecipe output = superShapedRecipeFromList(nk.getKey(), new ArrayList<>(recipeSection.getStringList(RecipeEditorGUI.OUTPUT_INGREDIENTS)), ffp);
int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1); int outputAmount = recipeSection.getInt(RBA_AmountOutput.AMOUNT_INGREDIENTS, 1);
// Build Output // Build Output
@ -155,11 +155,11 @@ public class RMGRR_SuperShaped implements RecipeRegistry {
if (positions.length != 5) { throw new IllegalArgumentException("Invalid super crafting table row $u" + updatedRow + "$b ($fNot exactly 5 ingredients wide$b)."); } if (positions.length != 5) { throw new IllegalArgumentException("Invalid super crafting table row $u" + updatedRow + "$b ($fNot exactly 5 ingredients wide$b)."); }
// Identify // Identify
ProvidedUIFilter left = RecipeMakerGUI.readIngredientFrom(positions[0], ffp); ProvidedUIFilter left = RecipeEditorGUI.readIngredientFrom(positions[0], ffp);
ProvidedUIFilter midLeft = RecipeMakerGUI.readIngredientFrom(positions[1], ffp); ProvidedUIFilter midLeft = RecipeEditorGUI.readIngredientFrom(positions[1], ffp);
ProvidedUIFilter center = RecipeMakerGUI.readIngredientFrom(positions[2], ffp); ProvidedUIFilter center = RecipeEditorGUI.readIngredientFrom(positions[2], ffp);
ProvidedUIFilter midRight = RecipeMakerGUI.readIngredientFrom(positions[3], ffp); ProvidedUIFilter midRight = RecipeEditorGUI.readIngredientFrom(positions[3], ffp);
ProvidedUIFilter right = RecipeMakerGUI.readIngredientFrom(positions[4], ffp); ProvidedUIFilter right = RecipeEditorGUI.readIngredientFrom(positions[4], ffp);
if (!left.isAir()) { nonAirFound = true; } if (!left.isAir()) { nonAirFound = true; }
if (!midLeft.isAir()) { nonAirFound = true; } if (!midLeft.isAir()) { nonAirFound = true; }
if (!center.isAir()) { nonAirFound = true; } if (!center.isAir()) { nonAirFound = true; }

View File

@ -5,6 +5,7 @@ import io.lumine.mythic.lib.api.util.Ref;
import io.lumine.mythic.lib.api.util.ui.FriendlyFeedbackProvider; import io.lumine.mythic.lib.api.util.ui.FriendlyFeedbackProvider;
import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate; import net.Indyuce.mmoitems.api.item.template.MMOItemTemplate;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -50,7 +51,7 @@ public interface RecipeRegistry {
* *
* @param inv Edition Inventory by which the player is opening this * @param inv Edition Inventory by which the player is opening this
* @param recipeName Name of the recipe * @param recipeName Name of the recipe
* @param otherParams Whatever else required by the constructor of the {@link net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI} * @param otherParams Whatever else required by the constructor of the {@link RecipeEditorGUI}
*/ */
void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams); void openForPlayer(@NotNull EditionInventory inv, @NotNull String recipeName, Object... otherParams);

View File

@ -11,6 +11,7 @@ import org.jetbrains.annotations.NotNull;
* *
* @author ASangarin * @author ASangarin
*/ */
@Deprecated
public class BurningRecipeInformation { public class BurningRecipeInformation {
private final WorkbenchIngredient choice; private final WorkbenchIngredient choice;
private final float exp; private final float exp;

View File

@ -8,9 +8,9 @@ import net.Indyuce.mmoitems.gui.ItemBrowser;
import net.Indyuce.mmoitems.gui.PluginInventory; import net.Indyuce.mmoitems.gui.PluginInventory;
import net.Indyuce.mmoitems.gui.edition.EditionInventory; import net.Indyuce.mmoitems.gui.edition.EditionInventory;
import net.Indyuce.mmoitems.gui.edition.ItemEdition; import net.Indyuce.mmoitems.gui.edition.ItemEdition;
import net.Indyuce.mmoitems.gui.edition.recipe.RecipeBrowserGUI; import net.Indyuce.mmoitems.gui.edition.recipe.RecipeTypeListGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.RecipeListGUI; import net.Indyuce.mmoitems.gui.edition.recipe.RecipeListGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -67,10 +67,10 @@ public class GuiListener implements Listener {
if (inventory instanceof ItemEdition) { new ItemBrowser(player, template.getType()).open(); } if (inventory instanceof ItemEdition) { new ItemBrowser(player, template.getType()).open(); }
// Open the RECIPE TYPE BROWSER stat thing // Open the RECIPE TYPE BROWSER stat thing
else if ((inventory instanceof RecipeListGUI)) { new RecipeBrowserGUI(player, template).open((EditionInventory) inventory); } else if ((inventory instanceof RecipeListGUI)) { new RecipeTypeListGUI(player, template).open((EditionInventory) inventory); }
// Open the RECIPE LIST thing // Open the RECIPE LIST thing
else if ((inventory instanceof RecipeMakerGUI)) { new RecipeListGUI(player, template, ((RecipeMakerGUI) inventory).getRecipeRegistry()).open((EditionInventory) inventory); } else if ((inventory instanceof RecipeEditorGUI)) { new RecipeListGUI(player, template, ((RecipeEditorGUI) inventory).getRecipeRegistry()).open((EditionInventory) inventory); }
// Just open the ITEM EDITION I guess // Just open the ITEM EDITION I guess
else { new ItemEdition(player, template).open((EditionInventory) inventory); } else { new ItemEdition(player, template).open((EditionInventory) inventory); }

View File

@ -19,8 +19,8 @@ import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.MMOItemIngredient;
import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.VanillaIngredient; import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.VanillaIngredient;
import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient; import net.Indyuce.mmoitems.api.recipe.workbench.ingredients.WorkbenchIngredient;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.recipe.RecipeBrowserGUI; import net.Indyuce.mmoitems.gui.edition.recipe.RecipeTypeListGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry; import net.Indyuce.mmoitems.gui.edition.recipe.registry.RecipeRegistry;
import net.Indyuce.mmoitems.gui.edition.recipe.registry.burninglegacy.BurningRecipeInformation; import net.Indyuce.mmoitems.gui.edition.recipe.registry.burninglegacy.BurningRecipeInformation;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -87,19 +87,19 @@ public class RecipeManager implements Reloadable {
if (config.contains(template.getId() + ".base.crafting")) { if (config.contains(template.getId() + ".base.crafting")) {
// Get section containing the crafting recipes // Get section containing the crafting recipes
ConfigurationSection section = RecipeMakerGUI.getSection(config, template.getId() + ".base.crafting"); ConfigurationSection section = RecipeEditorGUI.getSection(config, template.getId() + ".base.crafting");
// All loaded recipes // All loaded recipes
for (String recipeType : RecipeBrowserGUI.getRegisteredRecipes()) { for (String recipeType : RecipeTypeListGUI.getRegisteredRecipes()) {
// Is it in-yo? // Is it in-yo?
if (section.contains(recipeType)) { if (section.contains(recipeType)) {
// Get Registry // Get Registry
RecipeRegistry rr = RecipeBrowserGUI.getRegisteredRecipe(recipeType); RecipeRegistry rr = RecipeTypeListGUI.getRegisteredRecipe(recipeType);
// Get recipe type section // Get recipe type section
ConfigurationSection typeSection = RecipeMakerGUI.getSection(section, recipeType); ConfigurationSection typeSection = RecipeEditorGUI.getSection(section, recipeType);
// Register dem // Register dem
for (String recipeName : typeSection.getKeys(false)) { for (String recipeName : typeSection.getKeys(false)) {
@ -150,6 +150,7 @@ public class RecipeManager implements Reloadable {
Bukkit.getScheduler().runTask(MMOItems.plugin, () -> getBukkitRecipes().forEach(Bukkit::addRecipe)); Bukkit.getScheduler().runTask(MMOItems.plugin, () -> getBukkitRecipes().forEach(Bukkit::addRecipe));
} }
@Deprecated
public void registerBurningRecipe(@NotNull BurningRecipeType recipeType, @NotNull MMOItem mmo, @NotNull BurningRecipeInformation info, int amount, @NotNull NamespacedKey key, boolean hidden) { public void registerBurningRecipe(@NotNull BurningRecipeType recipeType, @NotNull MMOItem mmo, @NotNull BurningRecipeInformation info, int amount, @NotNull NamespacedKey key, boolean hidden) {
// Build its item stacc // Build its item stacc
@ -339,7 +340,7 @@ public class RecipeManager implements Reloadable {
public static WorkbenchIngredient getWorkbenchIngredient(@NotNull String input) throws IllegalArgumentException { public static WorkbenchIngredient getWorkbenchIngredient(@NotNull String input) throws IllegalArgumentException {
// Read it this other way ~ // Read it this other way ~
ProvidedUIFilter poof = ProvidedUIFilter.getFromString(RecipeMakerGUI.poofFromLegacy(input), null); ProvidedUIFilter poof = ProvidedUIFilter.getFromString(RecipeEditorGUI.poofFromLegacy(input), null);
// Air is AIR // Air is AIR
if (poof == null) { if (poof == null) {

View File

@ -7,7 +7,7 @@ import net.Indyuce.mmoitems.api.ConfigFile;
import net.Indyuce.mmoitems.api.ItemTier; import net.Indyuce.mmoitems.api.ItemTier;
import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem; import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem;
import net.Indyuce.mmoitems.api.util.message.FFPMMOItems; import net.Indyuce.mmoitems.api.util.message.FFPMMOItems;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -35,7 +35,7 @@ public class TierManager implements Reloadable{
for (String tierName : config.getConfig().getKeys(false)) { for (String tierName : config.getConfig().getKeys(false)) {
// Get section (Using RecipeMakerGUI for @NotNull attribute) // Get section (Using RecipeMakerGUI for @NotNull attribute)
ConfigurationSection tierSection = RecipeMakerGUI.getSection(config.getConfig(), tierName); ConfigurationSection tierSection = RecipeEditorGUI.getSection(config.getConfig(), tierName);
// Attempt to register // Attempt to register
try { try {

View File

@ -9,10 +9,10 @@ import io.lumine.mythic.lib.api.crafting.uimanager.UIFilterManager;
import io.lumine.mythic.lib.api.item.ItemTag; import io.lumine.mythic.lib.api.item.ItemTag;
import io.lumine.mythic.lib.api.util.ui.QuickNumberRange; import io.lumine.mythic.lib.api.util.ui.QuickNumberRange;
import io.lumine.mythic.lib.api.util.ui.SilentNumbers; import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
import net.Indyuce.mmoitems.gui.edition.recipe.RecipeBrowserGUI; import net.Indyuce.mmoitems.gui.edition.recipe.RecipeTypeListGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeMakerGUI; import net.Indyuce.mmoitems.gui.edition.recipe.gui.RecipeEditorGUI;
import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter; import net.Indyuce.mmoitems.gui.edition.recipe.interpreter.RMG_RecipeInterpreter;
import net.Indyuce.mmoitems.gui.edition.recipe.rba.RecipeButtonAction; import net.Indyuce.mmoitems.gui.edition.recipe.button.RecipeButtonAction;
import net.Indyuce.mmoitems.stat.data.StringData; import net.Indyuce.mmoitems.stat.data.StringData;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -40,7 +40,7 @@ public class Crafting extends ItemStat<RandomStatData<StatData>, StatData> {
@Override @Override
public void whenClicked(@NotNull EditionInventory inv, @NotNull InventoryClickEvent event) { public void whenClicked(@NotNull EditionInventory inv, @NotNull InventoryClickEvent event) {
if (event.getAction() == InventoryAction.PICKUP_ALL) if (event.getAction() == InventoryAction.PICKUP_ALL)
new RecipeBrowserGUI(inv.getPlayer(), inv.getEdited()).open(inv); new RecipeTypeListGUI(inv.getPlayer(), inv.getEdited()).open(inv);
else if (event.getAction() == InventoryAction.PICKUP_HALF && inv.getEditedSection().contains("crafting")) { else if (event.getAction() == InventoryAction.PICKUP_HALF && inv.getEditedSection().contains("crafting")) {
inv.getEditedSection().set("crafting", null); inv.getEditedSection().set("crafting", null);
@ -76,8 +76,8 @@ public class Crafting extends ItemStat<RandomStatData<StatData>, StatData> {
int type = (int) info[0]; int type = (int) info[0];
switch (type) { switch (type) {
case RecipeMakerGUI.INPUT: case RecipeEditorGUI.INPUT:
case RecipeMakerGUI.OUTPUT: case RecipeEditorGUI.OUTPUT:
//region Transcribe from old format to new //region Transcribe from old format to new
int spc = message.indexOf(' '); int spc = message.indexOf(' ');
@ -163,12 +163,12 @@ public class Crafting extends ItemStat<RandomStatData<StatData>, StatData> {
if (!read.isValid(inv.getFFP())) { throw new IllegalArgumentException(""); } if (!read.isValid(inv.getFFP())) { throw new IllegalArgumentException(""); }
// Find section // Find section
ConfigurationSection section = RecipeMakerGUI.getSection(inv.getEditedSection(), "crafting"); ConfigurationSection section = RecipeEditorGUI.getSection(inv.getEditedSection(), "crafting");
section = RecipeMakerGUI.getSection(section, ((RecipeMakerGUI) inv).getRecipeRegistry().getRecipeConfigPath()); section = RecipeEditorGUI.getSection(section, ((RecipeEditorGUI) inv).getRecipeRegistry().getRecipeConfigPath());
section = RecipeMakerGUI.getSection(section, ((RecipeMakerGUI) inv).getRecipeName()); section = RecipeEditorGUI.getSection(section, ((RecipeEditorGUI) inv).getRecipeName());
// Redirect // Redirect
if (type == RecipeMakerGUI.INPUT) { if (type == RecipeEditorGUI.INPUT) {
interpreter.editInput(read, slot); interpreter.editInput(read, slot);
// It must be output // It must be output
@ -179,8 +179,8 @@ public class Crafting extends ItemStat<RandomStatData<StatData>, StatData> {
inv.registerTemplateEdition(); inv.registerTemplateEdition();
break; break;
case RecipeMakerGUI.PRIMARY: case RecipeEditorGUI.PRIMARY:
case RecipeMakerGUI.SECONDARY: case RecipeEditorGUI.SECONDARY:
/* /*
* No Button Action? That's the end, and is not necessarily * No Button Action? That's the end, and is not necessarily
@ -192,7 +192,7 @@ public class Crafting extends ItemStat<RandomStatData<StatData>, StatData> {
// Delegate // Delegate
if (type == RecipeMakerGUI.PRIMARY) { if (type == RecipeEditorGUI.PRIMARY) {
((RecipeButtonAction) info[1]).primaryProcessInput(message, info); ((RecipeButtonAction) info[1]).primaryProcessInput(message, info);
} else { } else {
@ -204,26 +204,6 @@ public class Crafting extends ItemStat<RandomStatData<StatData>, StatData> {
default: inv.registerTemplateEdition(); break; default: inv.registerTemplateEdition(); break;
} }
/*
* Handles burning recipes ie furnace, campfire, smoker and blast
* furnace recipes
*
case "item": {
String[] args = message.split(" ");
Validate.isTrue(args.length == 3, "Invalid format");
Validate.notNull(MMOItems.plugin.getRecipes().getWorkbenchIngredient(args[0]), "Invalid ingredient");
int time = Integer.parseInt(args[1]);
double exp = MMOUtils.parseDouble(args[2]);
inv.getEditedSection().set("crafting." + info[1] + ".1.item", args[0]);
inv.getEditedSection().set("crafting." + info[1] + ".1.time", time);
inv.getEditedSection().set("crafting." + info[1] + ".1.experience", exp);
inv.registerTemplateEdition();
break;
}
*/
} }
@Nullable @Nullable