diff --git a/pom.xml b/pom.xml index 8e24ca0f..9d567a4d 100644 --- a/pom.xml +++ b/pom.xml @@ -7,39 +7,39 @@ com.github.civclassic civclassic-parent - 1.0.0 + 1.0.1 com.github.igotyou FactoryMod jar - 2.5.2 + 2.6.0 FactoryMod https://github.com/Civclassic/FactoryMod - com.destroystokyo.paper + io.papermc.paper paper - 1.16.5-R0.1-SNAPSHOT + 1.17.1-R0.1-SNAPSHOT provided - vg.civcraft.mc.namelayer + com.github.civclassic NameLayer - 2.14.1 + 2.15.0 provided - vg.civcraft.mc.citadel + com.github.civclassic Citadel - 4.1.1 + 4.2.0 provided - vg.civcraft.mc.civmodcore + com.github.civclassic CivModCore - 1.8.4 + 1.9.0 provided @@ -49,5 +49,9 @@ civ-github-repo https://raw.githubusercontent.com/CivClassic/artifacts/master/ + + papermc + https://papermc.io/repo/repository/maven-public/ + diff --git a/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java b/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java index ae72cc7c..2f3f3f6c 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java +++ b/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java @@ -1,9 +1,8 @@ package com.github.igotyou.FactoryMod; -import static vg.civcraft.mc.civmodcore.util.ConfigParsing.parseItemMap; -import static vg.civcraft.mc.civmodcore.util.ConfigParsing.parseItemMapDirectly; -import static vg.civcraft.mc.civmodcore.util.ConfigParsing.parseTime; -import static vg.civcraft.mc.civmodcore.util.ConfigParsing.parseTimeAsTicks; +import static vg.civcraft.mc.civmodcore.config.ConfigHelper.parseTime; +import static vg.civcraft.mc.civmodcore.config.ConfigHelper.parseTimeAsTicks; + import com.github.igotyou.FactoryMod.eggs.FurnCraftChestEgg; import com.github.igotyou.FactoryMod.eggs.IFactoryEgg; @@ -58,7 +57,8 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class ConfigParser { private FactoryMod plugin; @@ -115,7 +115,7 @@ public FactoryModManager parse() { } defaultUpdateTime = parseTimeAsTicks(config.getString("default_update_time", "250ms")); defaultHealth = config.getInt("default_health", 10000); - ItemMap dFuel = parseItemMap(config.getConfigurationSection("default_fuel")); + ItemMap dFuel = ConfigHelper.parseItemMap(config.getConfigurationSection("default_fuel")); if (dFuel.getTotalUniqueItemAmount() > 0) { defaultFuel = dFuel.getItemStackRepresentation().get(0); } else { @@ -306,7 +306,7 @@ private void parseFactory(ConfigurationSection config) { if (egg == null) { break; } - ItemMap pipeSetupCost = parseItemMap(config.getConfigurationSection("setupcost")); + ItemMap pipeSetupCost = ConfigHelper.parseItemMap(config.getConfigurationSection("setupcost")); if (pipeSetupCost.getTotalUniqueItemAmount() > 0) { manager.addFactoryEgg(PipeStructure.class, pipeSetupCost, egg); } else { @@ -318,7 +318,7 @@ private void parseFactory(ConfigurationSection config) { if (egg == null) { break; } - ItemMap sorterSetupCost = parseItemMap(config.getConfigurationSection("setupcost")); + ItemMap sorterSetupCost = ConfigHelper.parseItemMap(config.getConfigurationSection("setupcost")); if (sorterSetupCost.getTotalUniqueItemAmount() > 0) { manager.addFactoryEgg(BlockFurnaceStructure.class, sorterSetupCost, egg); } else { @@ -352,7 +352,7 @@ public SorterEgg parseSorter(ConfigurationSection config) { } ItemStack fuel; if (config.contains("fuel")) { - ItemMap tfuel = parseItemMap(config.getConfigurationSection("fuel")); + ItemMap tfuel = ConfigHelper.parseItemMap(config.getConfigurationSection("fuel")); if (tfuel.getTotalUniqueItemAmount() > 0) { fuel = tfuel.getItemStackRepresentation().get(0); } else { @@ -390,7 +390,7 @@ public PipeEgg parsePipe(ConfigurationSection config) { } ItemStack fuel; if (config.contains("fuel")) { - ItemMap tfuel = parseItemMap(config.getConfigurationSection("fuel")); + ItemMap tfuel = ConfigHelper.parseItemMap(config.getConfigurationSection("fuel")); if (tfuel.getTotalUniqueItemAmount() > 0) { fuel = tfuel.getItemStackRepresentation().get(0); } else { @@ -430,7 +430,7 @@ public IFactoryEgg parseFCCFactory(ConfigurationSection config) { } ItemStack fuel; if (config.contains("fuel")) { - ItemMap tfuel = parseItemMap(config.getConfigurationSection("fuel")); + ItemMap tfuel = ConfigHelper.parseItemMap(config.getConfigurationSection("fuel")); if (tfuel.getTotalUniqueItemAmount() > 0) { fuel = tfuel.getItemStackRepresentation().get(0); } else { @@ -468,7 +468,7 @@ public IFactoryEgg parseFCCFactory(ConfigurationSection config) { double citadelBreakReduction = config.getDouble("citadelBreakReduction", 1.0); ItemMap setupCost = null; if (config.isConfigurationSection("setupcost")) { - setupCost = parseItemMap(config.getConfigurationSection("setupcost")); + setupCost = ConfigHelper.parseItemMap(config.getConfigurationSection("setupcost")); } FurnCraftChestEgg egg = new FurnCraftChestEgg(name, update, null, fuel, fuelIntervall, returnRate, health, gracePeriod, healthPerDamageIntervall, citadelBreakReduction, setupCost); @@ -540,7 +540,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { input = ((InputRecipe) parentRecipe).getInput(); } } else { - input = parseItemMap(inputSection); + input = ConfigHelper.parseItemMap(inputSection); } switch (type) { case "PRODUCTION": @@ -556,7 +556,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { recipeRepresentation = ((ProductionRecipe) parentRecipe).getRecipeRepresentation(); } } else { - output = parseItemMap(outputSection); + output = ConfigHelper.parseItemMap(outputSection); recipeRepresentation = parseFirstItem(outputSection); } ProductionRecipeModifier modi = parseProductionRecipeModifier(config.getConfigurationSection("modi")); @@ -640,7 +640,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { // This is untested and should not be used for now plugin.warning( "This recipe is not tested or even completly developed, use it with great care and don't expect it to work"); - ItemMap tessence = parseItemMap(config.getConfigurationSection("essence")); + ItemMap tessence = ConfigHelper.parseItemMap(config.getConfigurationSection("essence")); if (tessence.getTotalUniqueItemAmount() > 0) { ItemStack essence = tessence.getItemStackRepresentation().get(0); int repPerEssence = config.getInt("repair_per_essence"); @@ -661,7 +661,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { outputMap = ((PylonRecipe) parentRecipe).getOutput().clone(); } } else { - outputMap = parseItemMap(outputSec); + outputMap = ConfigHelper.parseItemMap(outputSec); } if (outputMap.getTotalItemAmount() == 0) { plugin.warning("Pylon recipe " + name + " has an empty output specified"); @@ -696,7 +696,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { tool = ((DeterministicEnchantingRecipe) parentRecipe).getTool().clone(); } } else { - tool = parseItemMap(toolSection); + tool = ConfigHelper.parseItemMap(toolSection); } if (tool.getTotalItemAmount() == 0) { plugin.warning("Deterministic enchanting recipe " + name @@ -730,7 +730,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { if (keySec != null) { double chance = keySec.getDouble("chance"); totalChance += chance; - ItemMap im = parseItemMap(keySec); + ItemMap im = ConfigHelper.parseItemMap(keySec); outputs.put(im, chance); if (key.equals(displayMap)) { displayThis = im; @@ -762,7 +762,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { toolMap = ((LoreEnchantRecipe) parentRecipe).getTool().clone(); } } else { - toolMap = parseItemMap(toolSec); + toolMap = ConfigHelper.parseItemMap(toolSec); } if (toolMap.getTotalItemAmount() == 0) { plugin.warning("Lore enchanting recipe " + name + " had no tool to enchant specified, it was skipped"); @@ -816,7 +816,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { printingPlateOutput = ((PrintingPlateRecipe) parentRecipe).getOutput(); } } else { - printingPlateOutput = parseItemMap(printingPlateOutputSection); + printingPlateOutput = ConfigHelper.parseItemMap(printingPlateOutputSection); } result = new PrintingPlateRecipe(identifier, name, productionTime, input, printingPlateOutput); break; @@ -830,18 +830,18 @@ private IRecipe parseRecipe(ConfigurationSection config) { printingPlateJsonOutput = ((PrintingPlateJsonRecipe) parentRecipe).getOutput(); } } else { - printingPlateJsonOutput = parseItemMap(printingPlateJsonOutputSection); + printingPlateJsonOutput = ConfigHelper.parseItemMap(printingPlateJsonOutputSection); } result = new PrintingPlateJsonRecipe(identifier, name, productionTime, input, printingPlateJsonOutput); break; case "PRINTBOOK": - ItemMap printBookPlate = parseItemMap(config.getConfigurationSection("printingplate")); + ItemMap printBookPlate = ConfigHelper.parseItemMap(config.getConfigurationSection("printingplate")); int printBookOutputAmount = config.getInt("outputamount", 1); result = new PrintBookRecipe(identifier, name, productionTime, input, printBookPlate, printBookOutputAmount); break; case "PRINTNOTE": - ItemMap printNotePlate = parseItemMap(config.getConfigurationSection("printingplate")); + ItemMap printNotePlate = ConfigHelper.parseItemMap(config.getConfigurationSection("printingplate")); int printBookNoteAmount = config.getInt("outputamount", 1); boolean secureNote = config.getBoolean("securenote", false); String noteTitle = config.getString("title"); @@ -903,7 +903,7 @@ private static ItemStack parseFirstItem(ConfigurationSection config) { for (String key : config.getKeys(false)) { ConfigurationSection current = config.getConfigurationSection(key); - List list = parseItemMapDirectly(current).getItemStackRepresentation(); + List list = ConfigHelper.parseItemMapDirectly(current).getItemStackRepresentation(); return list.isEmpty() ? null : list.get(0); } diff --git a/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java b/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java index ba3f13e0..895202df 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java +++ b/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java @@ -1,5 +1,6 @@ package com.github.igotyou.FactoryMod; +import com.github.igotyou.FactoryMod.commands.FMCommandManager; import com.github.igotyou.FactoryMod.listeners.CitadelListener; import com.github.igotyou.FactoryMod.listeners.CompactItemListener; import com.github.igotyou.FactoryMod.listeners.FactoryModListener; @@ -10,6 +11,7 @@ public class FactoryMod extends ACivMod { private FactoryModManager manager; private static FactoryMod plugin; private FactoryModPermissionManager permissionManager; + private FMCommandManager commandManager; @Override public void onEnable() { @@ -21,6 +23,7 @@ public void onEnable() { if (manager.isCitadelEnabled()) { permissionManager = new FactoryModPermissionManager(); } + commandManager = new FMCommandManager(this); registerListeners(); info("Successfully enabled"); } diff --git a/src/main/java/com/github/igotyou/FactoryMod/FactoryModManager.java b/src/main/java/com/github/igotyou/FactoryMod/FactoryModManager.java index 50cc6776..affa8dea 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/FactoryModManager.java +++ b/src/main/java/com/github/igotyou/FactoryMod/FactoryModManager.java @@ -1,6 +1,5 @@ package com.github.igotyou.FactoryMod; -import com.github.igotyou.FactoryMod.commands.FactoryTabCompleters; import com.github.igotyou.FactoryMod.eggs.FurnCraftChestEgg; import com.github.igotyou.FactoryMod.eggs.IFactoryEgg; import com.github.igotyou.FactoryMod.eggs.PipeEgg; @@ -31,7 +30,7 @@ import org.bukkit.block.Dispenser; import org.bukkit.block.Dropper; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; /** * Manager class which handles all factories, their locations and their creation @@ -453,7 +452,6 @@ public void addFactoryEgg(Class blockStructureCla eggs.put(recipe, egg); } this.eggs.put(egg.getName().toLowerCase(), egg); - FactoryTabCompleters.addFactory(egg.getName()); } public void saveFactories() { diff --git a/src/main/java/com/github/igotyou/FactoryMod/FactoryModPlayerSettings.java b/src/main/java/com/github/igotyou/FactoryMod/FactoryModPlayerSettings.java index 0ffcaed0..4408fa49 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/FactoryModPlayerSettings.java +++ b/src/main/java/com/github/igotyou/FactoryMod/FactoryModPlayerSettings.java @@ -1,12 +1,11 @@ package com.github.igotyou.FactoryMod; +import java.util.UUID; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.playersettings.PlayerSettingAPI; -import vg.civcraft.mc.civmodcore.playersettings.gui.MenuSection; -import vg.civcraft.mc.civmodcore.playersettings.impl.EnumSetting; - -import java.util.UUID; +import vg.civcraft.mc.civmodcore.players.settings.PlayerSettingAPI; +import vg.civcraft.mc.civmodcore.players.settings.gui.MenuSection; +import vg.civcraft.mc.civmodcore.players.settings.impl.EnumSetting; public class FactoryModPlayerSettings { diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java b/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java index 9694880a..6a66fd6d 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java @@ -1,5 +1,9 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; import com.github.igotyou.FactoryMod.FactoryMod; import com.github.igotyou.FactoryMod.FactoryModManager; import com.github.igotyou.FactoryMod.factories.Factory; @@ -11,18 +15,15 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "fmco") -public class CheatOutput extends StandaloneCommand { +public class CheatOutput extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - Player player = (Player) sender; + @CommandAlias("fmco") + @CommandPermission("fm.op") + @Description("Gives you the output of the selected recipe in the factory you are looking at") + public void execute(Player sender) { Set transparent = null; List view = ((Player) sender).getLineOfSight(transparent, 10); FactoryModManager manager = FactoryMod.getInstance().getManager(); @@ -30,28 +31,21 @@ public boolean execute(CommandSender sender, String[] args) { if (exis != null && exis instanceof FurnCraftChestFactory) { FurnCraftChestFactory fcc = (FurnCraftChestFactory) exis; if (fcc.getCurrentRecipe() == null) { - player.sendMessage(ChatColor.RED + "This factory has no recipe selected"); - return true; + sender.sendMessage(ChatColor.RED + "This factory has no recipe selected"); + return; } IRecipe rec = fcc.getCurrentRecipe(); if (!(rec instanceof ProductionRecipe)) { - player.sendMessage(ChatColor.RED + "The selected recipe is not a production recipe"); - return true; + sender.sendMessage(ChatColor.RED + "The selected recipe is not a production recipe"); + return; } ProductionRecipe prod = (ProductionRecipe) rec; for (ItemStack is : prod.getOutput().getItemStackRepresentation()) { - player.getInventory().addItem(is); + sender.getInventory().addItem(is); } - player.sendMessage(ChatColor.GREEN + "Gave you all items for recipe " + ChatColor.GREEN + prod.getName()); + sender.sendMessage(ChatColor.GREEN + "Gave you all items for recipe " + ChatColor.GREEN + prod.getName()); } else { - player.sendMessage(ChatColor.RED + "You are not looking at a valid factory"); + sender.sendMessage(ChatColor.RED + "You are not looking at a valid factory"); } - return true; } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return null; - } - } diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java b/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java index 4406fbba..a60eda36 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java @@ -1,5 +1,11 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import com.github.igotyou.FactoryMod.FactoryMod; import com.github.igotyou.FactoryMod.FactoryModManager; import com.github.igotyou.FactoryMod.eggs.FurnCraftChestEgg; @@ -18,25 +24,24 @@ import org.bukkit.block.BlockState; import org.bukkit.block.Chest; import org.bukkit.block.Furnace; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "fmc") -public class Create extends StandaloneCommand { +public class Create extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { + @CommandAlias("fmc") + @CommandPermission("fm.op") + @Syntax("") + @Description("Creates a factory at the blocks you are looking at") + @CommandCompletion("@FM_Factories") + public void execute(Player sender, String factoryName) { FactoryModManager manager = FactoryMod.getInstance().getManager(); - String name = String.join(" ", args); - IFactoryEgg egg = manager.getEgg(name); + IFactoryEgg egg = manager.getEgg(factoryName); if (egg == null) { sender.sendMessage(ChatColor.RED + "This factory does not exist"); - return true; + return; } Set transparent = null; - List view = ((Player) sender).getLineOfSight(transparent, 10); + List view = sender.getLineOfSight(transparent, 10); Factory exis = manager.getFactoryAt(view.get(view.size() - 1)); if (exis != null) { manager.removeFactory(exis); @@ -48,7 +53,7 @@ public boolean execute(CommandSender sender, String[] args) { if (!fccs.isComplete()) { sender.sendMessage( ChatColor.RED + "The required block structure for this factory doesn't exist here"); - return true; + return; } BlockState chestBS = fccs.getChest().getState(); if (((Chest) chestBS).getCustomName() == null) { @@ -65,7 +70,7 @@ public boolean execute(CommandSender sender, String[] args) { } else { sender.sendMessage(ChatColor.RED + "You are not looking at the right block for this factory"); } - return true; + return; } if (egg instanceof PipeEgg) { PipeEgg fcce = (PipeEgg) egg; @@ -74,14 +79,14 @@ public boolean execute(CommandSender sender, String[] args) { if (!fccs.isComplete()) { sender.sendMessage( ChatColor.RED + "The required block structure for this factory doesn't exist here"); - return true; + return; } manager.addFactory(fcce.hatch(fccs, (Player) sender)); sender.sendMessage(ChatColor.GREEN + "Created " + egg.getName()); } else { sender.sendMessage(ChatColor.RED + "You are not looking at the right block for this factory"); } - return true; + return; } if (egg instanceof SorterEgg) { SorterEgg fcce = (SorterEgg) egg; @@ -90,7 +95,7 @@ public boolean execute(CommandSender sender, String[] args) { if (!fccs.isComplete()) { sender.sendMessage( ChatColor.RED + "The required block structure for this factory doesn't exist here"); - return true; + return; } manager.addFactory(fcce.hatch(fccs, (Player) sender)); sender.sendMessage(ChatColor.GREEN + "Created " + egg.getName()); @@ -98,12 +103,5 @@ public boolean execute(CommandSender sender, String[] args) { sender.sendMessage(ChatColor.RED + "You are not looking at the right block for this factory"); } } - - return true; - } - - @Override - public List tabComplete(CommandSender arg0, String[] args) { - return FactoryTabCompleters.completeFactory(args); } } diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/FMCommandManager.java b/src/main/java/com/github/igotyou/FactoryMod/commands/FMCommandManager.java new file mode 100644 index 00000000..d7df94a7 --- /dev/null +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/FMCommandManager.java @@ -0,0 +1,33 @@ +package com.github.igotyou.FactoryMod.commands; + +import co.aikar.commands.BukkitCommandCompletionContext; +import co.aikar.commands.CommandCompletions; +import com.github.igotyou.FactoryMod.FactoryMod; +import com.github.igotyou.FactoryMod.factories.Factory; +import javax.annotation.Nonnull; +import org.bukkit.plugin.Plugin; +import vg.civcraft.mc.civmodcore.commands.CommandManager; + +public class FMCommandManager extends CommandManager { + + public FMCommandManager(Plugin plugin) { + super(plugin); + init(); + } + + @Override + public void registerCommands() { + registerCommand(new CheatOutput()); + registerCommand(new Create()); + registerCommand(new FactoryMenu()); + registerCommand(new ItemUseMenu()); + registerCommand(new RunAmountSetterCommand()); + } + + @Override + public void registerCompletions(@Nonnull CommandCompletions completions) { + super.registerCompletions(completions); + completions.registerCompletion("FM_Factories", (context) -> FactoryMod.getInstance().getManager().getAllFactories().stream().map( + Factory::getName).toList()); + } +} diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java b/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java index 4563bf2e..929040cf 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java @@ -1,40 +1,37 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import com.github.igotyou.FactoryMod.FactoryMod; import com.github.igotyou.FactoryMod.eggs.FurnCraftChestEgg; import com.github.igotyou.FactoryMod.eggs.IFactoryEgg; import com.github.igotyou.FactoryMod.utility.FactoryModGUI; -import java.util.List; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "fm") -public class FactoryMenu extends StandaloneCommand { +public class FactoryMenu extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - Player p = (Player) sender; - if (args.length == 0 || args[0].length() == 0) { - FactoryModGUI gui = new FactoryModGUI((Player) sender); + @CommandAlias("fm") + @Syntax("[factory]") + @Description("Opens a GUI allowing you to browse through all factories") + @CommandCompletion("@FM_Factories") + public void execute(Player sender, @Optional String factoryName) { + if (factoryName == null) { + FactoryModGUI gui = new FactoryModGUI(sender); gui.showFactoryOverview(true); } else { - String concat = String.join(" ", args); - IFactoryEgg egg = FactoryMod.getInstance().getManager().getEgg(concat); + IFactoryEgg egg = FactoryMod.getInstance().getManager().getEgg(factoryName); if (egg == null) { - p.sendMessage(ChatColor.RED + "The factory " + concat + " does not exist"); - return true; + sender.sendMessage(ChatColor.RED + "The factory " + factoryName + " does not exist"); + return; } - FactoryModGUI gui = new FactoryModGUI((Player) sender); + FactoryModGUI gui = new FactoryModGUI(sender); gui.showForFactory((FurnCraftChestEgg) egg); } - return true; } - @Override - public List tabComplete(CommandSender arg0, String[] args) { - return FactoryTabCompleters.completeFactory(args); - } } diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryTabCompleters.java b/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryTabCompleters.java deleted file mode 100644 index 62fad482..00000000 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryTabCompleters.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.github.igotyou.FactoryMod.commands; - -import java.util.List; -import vg.civcraft.mc.civmodcore.command.Trie; - -public class FactoryTabCompleters { - - private static Trie factoryTrie = Trie.getNewTrie(); - private static Trie recipeTrie = Trie.getNewTrie(); - - public static void addFactory(String name) { - factoryTrie.insert(name.toLowerCase()); - } - - public static void addRecipe(String name) { - recipeTrie.insert(name.toLowerCase()); - } - - public static List completeFactory(String [] args) { - return factoryTrie.complete(args); - } - - public static List completeRecipe(String [] args) { - return recipeTrie.complete(args); - } - -} diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java b/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java index a5f78593..ba375f16 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java @@ -1,39 +1,35 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import com.github.igotyou.FactoryMod.utility.ItemUseGUI; -import java.util.Arrays; -import java.util.List; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "item") -public class ItemUseMenu extends StandaloneCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - Player p = (Player) sender; - if (args.length == 0 || args[0].length() == 0) { - ItemUseGUI gui = new ItemUseGUI((Player) sender); +public class ItemUseMenu extends BaseCommand { + + @CommandAlias("item") + @Syntax("[material]") + @Description("Opens a GUI allowing you to browse all recipes which use or output the item in your main hand") + @CommandCompletion("@materials") + public void execute(Player p, @Optional String material) { + if (material == null) { + ItemUseGUI gui = new ItemUseGUI(p); gui.showItemOverview(p.getInventory().getItemInMainHand()); } else { - String concat = String.join(" ", args); - Material mat = Material.getMaterial(concat); + Material mat = Material.getMaterial(material); if (mat == null) { - p.sendMessage(ChatColor.RED + "The item " + concat + " does not exist"); - return true; + p.sendMessage(ChatColor.RED + "The item " + material + " does not exist"); + return; } - ItemUseGUI gui = new ItemUseGUI((Player) sender); + ItemUseGUI gui = new ItemUseGUI(p); gui.showItemOverview(new ItemStack(mat)); } - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return doTabComplete(args[0], Arrays.asList(Material.values()), Material::name, false); } } diff --git a/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java b/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java index eccfeeae..ed4af0cb 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java @@ -1,55 +1,43 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import com.github.igotyou.FactoryMod.FactoryMod; import com.github.igotyou.FactoryMod.FactoryModManager; import com.github.igotyou.FactoryMod.factories.Factory; import com.github.igotyou.FactoryMod.factories.FurnCraftChestFactory; -import java.util.LinkedList; -import java.util.List; import java.util.Set; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "fmsrc") -public class RunAmountSetterCommand extends StandaloneCommand { +public class RunAmountSetterCommand extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.MAGIC - + "How the hell is this supposed to work"); - return true; - } - Player p = (Player) sender; + @CommandAlias("fmsrc") + @Syntax("") + @Description("Sets the amount of runs for the currently selected recipe in the factory you are looking at") + @CommandPermission("fm.op") + public void execute(Player sender, String runCount) { int newAmount; try { - newAmount = Integer.parseInt(args[0]); + newAmount = Integer.parseInt(runCount); } catch(NumberFormatException e) { - p.sendMessage(ChatColor.RED + args [0] + " is not a number"); - return true; + sender.sendMessage(ChatColor.RED + runCount + " is not a number"); + return; } FactoryModManager manager = FactoryMod.getInstance().getManager(); - for(Block b : p.getLineOfSight((Set )null, 15)) { + for(Block b : sender.getLineOfSight((Set )null, 15)) { Factory f = manager.getFactoryAt(b); if (f instanceof FurnCraftChestFactory) { FurnCraftChestFactory fccf = (FurnCraftChestFactory) f; fccf.setRunCount(fccf.getCurrentRecipe(), newAmount); - p.sendMessage(ChatColor.GREEN + "Set runcount for recipe " + fccf.getCurrentRecipe().getName() + " in " + fccf.getName() + " to "+ newAmount); + sender.sendMessage(ChatColor.GREEN + "Set runcount for recipe " + fccf.getCurrentRecipe().getName() + " in " + fccf.getName() + " to "+ newAmount); } } - return true; - } - - @Override - public List tabComplete(CommandSender arg0, String[] arg1) { - return new LinkedList<>(); } - - } diff --git a/src/main/java/com/github/igotyou/FactoryMod/eggs/FurnCraftChestEgg.java b/src/main/java/com/github/igotyou/FactoryMod/eggs/FurnCraftChestEgg.java index 1c69fc91..84f956c7 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/eggs/FurnCraftChestEgg.java +++ b/src/main/java/com/github/igotyou/FactoryMod/eggs/FurnCraftChestEgg.java @@ -14,7 +14,7 @@ import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class FurnCraftChestEgg implements IFactoryEgg { private String name; diff --git a/src/main/java/com/github/igotyou/FactoryMod/eggs/SorterEgg.java b/src/main/java/com/github/igotyou/FactoryMod/eggs/SorterEgg.java index 2d4e70a8..02d411d6 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/eggs/SorterEgg.java +++ b/src/main/java/com/github/igotyou/FactoryMod/eggs/SorterEgg.java @@ -16,7 +16,7 @@ import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class SorterEgg implements IFactoryEgg { private String name; @@ -55,7 +55,7 @@ public Factory hatch(MultiBlockStructure mbs, Player p) { } public Factory revive(List blocks, - Map assignments, int runTime) { + Map assignments, int runTime) { MultiBlockStructure ps = new BlockFurnaceStructure(blocks); SorterInteractionManager im = new SorterInteractionManager(); IRepairManager rm = new NoRepairDestroyOnBreakManager(); diff --git a/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java b/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java index 0a6ec007..941f3ba0 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java @@ -262,15 +262,27 @@ public void attemptToActivate(Player p, boolean onStartUp) { rm.breakIt(); return; } - //ensure enough materials for the recipe are available - if (!hasInputMaterials()) { - if (!isAutoSelect()) { - if (p != null) { - p.sendMessage(ChatColor.RED + "Not enough materials available"); + + //If Autoselect is on + if (autoSelect) { + //If the factory is in disrepair and we got autoSelect on, we want to repair it + if (rm.inDisrepair() && !(currentRecipe instanceof RepairRecipe)) { + IRecipe autoRepair = getRepairRecipe(); + //Just incase any factory for some reason cannot be repaired. + if (autoRepair == null) { + if (p != null) { + p.sendMessage(ChatColor.RED + "The factory doesn't have a repair recipe."); + } + return; + } else { + if (p != null) { + p.sendMessage(ChatColor.GOLD + "Automatically selected recipe " + autoRepair.getName()); + } + setRecipe(autoRepair); } - return; - } else { - //handle autoselect + } + if (!hasInputMaterials() || (!rm.inDisrepair() && (currentRecipe instanceof RepairRecipe))) { + //Let autoselect find something to run that isn't the repair recipe IRecipe autoSelected = getAutoSelectRecipe(); if (autoSelected == null) { if (p != null) { @@ -284,7 +296,30 @@ public void attemptToActivate(Player p, boolean onStartUp) { setRecipe(autoSelected); } } + } else { + //We are running the factory manually, so we just do the usual checks + if (!hasInputMaterials()) { + if (p != null) { + p.sendMessage(ChatColor.RED + "Not enough materials available"); + } + return; + } + //The factory is broken and needs to be repaired + if (rm.inDisrepair() && !(currentRecipe instanceof RepairRecipe)) { + if (p != null) { + p.sendMessage(ChatColor.RED + "This factory is in disrepair, you have to repair it before using it"); + } + return; + } + //The factory is at full health, so there's no reason to repair it. + if (rm.atFullHealth() && (currentRecipe instanceof RepairRecipe) ) { + if (p != null) { + p.sendMessage(ChatColor.GREEN + "This factory is already at full health"); + } + return; + } } + //ensure we have fuel if (!pm.powerAvailable(1)) { if (p != null) { @@ -297,19 +332,7 @@ public void attemptToActivate(Player p, boolean onStartUp) { } return; } - //ensure factory isnt in disrepair - if (rm.inDisrepair() && !(currentRecipe instanceof RepairRecipe)) { - if (p != null) { - p.sendMessage(ChatColor.RED + "This factory is in disrepair, you have to repair it before using it"); - } - return; - } - if (currentRecipe instanceof RepairRecipe && rm.atFullHealth()) { - if (p != null) { - p.sendMessage("This factory is already at full health!"); - } - return; - } + if (!onStartUp && currentRecipe instanceof Upgraderecipe && FactoryMod.getInstance().getManager().isCitadelEnabled()) { // only allow permitted members to upgrade the factory Reinforcement rein = ReinforcementLogic.getReinforcementAt(mbs.getCenter()); @@ -648,9 +671,28 @@ public boolean hasInputMaterials() { return currentRecipe.enoughMaterialAvailable(getInputInventory()); } + /** + * @return a recipe which the factory contains enough ressources to run except repair type recipes, + * returns null if none exists + * + */ + public IRecipe getAutoSelectRecipe() { for (IRecipe rec : recipes) { - if (rec.enoughMaterialAvailable(getInputInventory())) { + if (rec.enoughMaterialAvailable(getInventory()) && !(rec instanceof RepairRecipe)) { + return rec; + } + } + return null; + } + + /** + * @return yields a repair type recipe for repairing the factory if any exists, returns null if none exists + * + */ + public IRecipe getRepairRecipe() { + for (IRecipe rec : recipes) { + if (rec instanceof RepairRecipe) { return rec; } } diff --git a/src/main/java/com/github/igotyou/FactoryMod/factories/Pipe.java b/src/main/java/com/github/igotyou/FactoryMod/factories/Pipe.java index b0da86f2..35cb81a2 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/Pipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/Pipe.java @@ -18,7 +18,7 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class Pipe extends Factory { private List allowedMaterials; diff --git a/src/main/java/com/github/igotyou/FactoryMod/factories/Sorter.java b/src/main/java/com/github/igotyou/FactoryMod/factories/Sorter.java index b791d4de..95f57fe0 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/Sorter.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/Sorter.java @@ -20,7 +20,7 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.world.WorldUtils; public class Sorter extends Factory { @@ -156,7 +156,7 @@ public ItemMap getItemsForSide(BlockFace face) { public void removeAssignment(ItemStack is) { for (Entry entry : assignedMaterials.entrySet()) { if (entry.getValue().getAmount(is) != 0) { - entry.getValue().removeItemStackCompletly(is); + entry.getValue().removeItemStackCompletely(is); break; } } diff --git a/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java b/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java index 9cd286c7..d6b0bfa5 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java +++ b/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java @@ -10,11 +10,10 @@ import com.github.igotyou.FactoryMod.structures.FurnCraftChestStructure; import com.github.igotyou.FactoryMod.structures.MultiBlockStructure; import com.github.igotyou.FactoryMod.utility.FactoryModGUI; +import com.github.igotyou.FactoryMod.utility.IOConfigSection; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; - -import com.github.igotyou.FactoryMod.utility.IOConfigSection; import net.kyori.adventure.text.Component; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -26,15 +25,15 @@ import org.bukkit.inventory.ItemStack; import vg.civcraft.mc.citadel.ReinforcementLogic; import vg.civcraft.mc.citadel.model.Reinforcement; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ComponableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.components.Scrollbar; +import vg.civcraft.mc.civmodcore.inventory.gui.components.SlotPredicates; +import vg.civcraft.mc.civmodcore.inventory.gui.components.StaticDisplaySection; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; -import vg.civcraft.mc.civmodcore.inventorygui.components.ComponableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.components.Scrollbar; -import vg.civcraft.mc.civmodcore.inventorygui.components.SlotPredicates; -import vg.civcraft.mc.civmodcore.inventorygui.components.StaticDisplaySection; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.group.Group; import vg.civcraft.mc.namelayer.permission.PermissionType; diff --git a/src/main/java/com/github/igotyou/FactoryMod/powerManager/FurnacePowerManager.java b/src/main/java/com/github/igotyou/FactoryMod/powerManager/FurnacePowerManager.java index cb7594b4..daf8e839 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/powerManager/FurnacePowerManager.java +++ b/src/main/java/com/github/igotyou/FactoryMod/powerManager/FurnacePowerManager.java @@ -7,7 +7,7 @@ import org.bukkit.inventory.FurnaceInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; /** * Power manager for a FurnCraftChest factory, which uses a specific item in the diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/AOERepairRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/AOERepairRecipe.java index 2970a4c3..b94db2e9 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/AOERepairRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/AOERepairRecipe.java @@ -18,8 +18,8 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class AOERepairRecipe extends InputRecipe { private ItemStack essence; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/CompactingRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/CompactingRecipe.java index b41926fa..35188272 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/CompactingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/CompactingRecipe.java @@ -10,8 +10,8 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; /** * Used to compact items, which means whole or multiple stacks of an item are reduced to a single lored item, which is stackable to the same stacksize @@ -25,7 +25,7 @@ public class CompactingRecipe extends InputRecipe { private String compactedLore; public CompactingRecipe(String identifier, ItemMap input, List excludedMaterial, - String name, int productionTime, String compactedLore) { + String name, int productionTime, String compactedLore) { super(identifier, name, productionTime, input); this.excludedMaterials = excludedMaterial; this.compactedLore = compactedLore; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/DecompactingRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/DecompactingRecipe.java index 3ac9dae0..3fd01c28 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/DecompactingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/DecompactingRecipe.java @@ -10,8 +10,8 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; /** * Used to decompact itemstacks, which means a single item with compacted lore @@ -23,7 +23,7 @@ public class DecompactingRecipe extends InputRecipe { private String compactedLore; public DecompactingRecipe(String identifier, ItemMap input, String name, int productionTime, - String compactedLore) { + String compactedLore) { super(identifier, name, productionTime, input); this.compactedLore = compactedLore; } diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/DeterministicEnchantingRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/DeterministicEnchantingRecipe.java index a58b2f0b..5eb4da01 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/DeterministicEnchantingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/DeterministicEnchantingRecipe.java @@ -12,8 +12,8 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class DeterministicEnchantingRecipe extends InputRecipe { private Enchantment enchant; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/DummyParsingRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/DummyParsingRecipe.java index fa233ee4..bc7c8a4a 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/DummyParsingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/DummyParsingRecipe.java @@ -7,7 +7,7 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class DummyParsingRecipe extends InputRecipe { diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/FactoryMaterialReturnRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/FactoryMaterialReturnRecipe.java index 75cf0771..df56fc1d 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/FactoryMaterialReturnRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/FactoryMaterialReturnRecipe.java @@ -18,15 +18,15 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class FactoryMaterialReturnRecipe extends InputRecipe { private double factor; public FactoryMaterialReturnRecipe(String identifier, String name, int productionTime, - ItemMap input, double factor) { + ItemMap input, double factor) { super(identifier, name, productionTime, input); this.factor = factor; } diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/InputRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/InputRecipe.java index 29457c84..53b06890 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/InputRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/InputRecipe.java @@ -14,9 +14,9 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; -import vg.civcraft.mc.civmodcore.util.TextUtil; +import vg.civcraft.mc.civmodcore.utilities.TextUtil; /** * A recipe with any form of item input to run it @@ -168,7 +168,8 @@ public ItemStack getRecipeRepresentation() { lore.add(ChatColor.GRAY + " - " + ChatColor.AQUA + s); } lore.add(""); - lore.add(ChatColor.DARK_AQUA + "Time: " + ChatColor.GRAY + TextUtil.formatDuration(getProductionTime() * 50, TimeUnit.MILLISECONDS)); + lore.add(ChatColor.DARK_AQUA + "Time: " + ChatColor.GRAY + TextUtil + .formatDuration(getProductionTime() * 50, TimeUnit.MILLISECONDS)); im.setLore(lore); res.setItemMeta(im); return res; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/LoreEnchantRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/LoreEnchantRecipe.java index a619278f..54fc1f93 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/LoreEnchantRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/LoreEnchantRecipe.java @@ -12,8 +12,8 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class LoreEnchantRecipe extends InputRecipe { diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PlayerHeadRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PlayerHeadRecipe.java index cae1ddde..79b1d7c4 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PlayerHeadRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PlayerHeadRecipe.java @@ -13,8 +13,8 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; /*** * Outputs a player head belonging to a random player who is connected to the server when the recipe is run diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintBookRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintBookRecipe.java index 6ad5bb62..3a6bcba8 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintBookRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintBookRecipe.java @@ -1,21 +1,20 @@ package com.github.igotyou.FactoryMod.recipes; import com.github.igotyou.FactoryMod.factories.FurnCraftChestFactory; - +import com.github.igotyou.FactoryMod.utility.MultiInventoryWrapper; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; - -import com.github.igotyou.FactoryMod.utility.MultiInventoryWrapper; +import net.minecraft.nbt.NBTTagCompound; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; -import vg.civcraft.mc.civmodcore.itemHandling.TagManager; public class PrintBookRecipe extends PrintingPressRecipe { private ItemMap printingPlate; @@ -68,12 +67,14 @@ public boolean applyEffect(Inventory inputInv, Inventory outputInv, FurnCraftChe } protected ItemStack createBook(ItemStack printingPlateStack, int amount) { - TagManager printingPlateTag = new TagManager(printingPlateStack); - TagManager bookTag = printingPlateTag.getCompound("Book"); + net.minecraft.world.item.ItemStack book = CraftItemStack.asNMSCopy(printingPlateStack); + NBTTagCompound tag = book.getTag().getCompound("Book"); - ItemStack book = new ItemStack(Material.WRITTEN_BOOK, amount); + ItemStack bookItem = new ItemStack(Material.WRITTEN_BOOK, amount); + net.minecraft.world.item.ItemStack newBook = CraftItemStack.asNMSCopy(bookItem); + newBook.setTag(tag); - return bookTag.enrichWithNBT(book); + return CraftItemStack.asBukkitCopy(newBook); } @Override diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintNoteRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintNoteRecipe.java index 66054cb9..dd528e1e 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintNoteRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintNoteRecipe.java @@ -12,13 +12,13 @@ import com.github.igotyou.FactoryMod.utility.MultiInventoryWrapper; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; -import vg.civcraft.mc.civmodcore.itemHandling.TagManager; public class PrintNoteRecipe extends PrintBookRecipe { private static class BookInfo { @@ -107,10 +107,10 @@ private BookInfo getBookInfo(ItemStack printingPlateStack) { info.lines = fixedLines; info.title = bookTitle != null && bookTitle.length() > 0 ? bookTitle : this.title; - if (this.secureNote) { - TagManager printingPlateTag = new TagManager(printingPlateStack); - String serialNumber = printingPlateTag.getString("SN"); - info.lines.add(serialNumber); + if(this.secureNote) { + net.minecraft.world.item.ItemStack bookItem = CraftItemStack.asNMSCopy(printingPlateStack); + String bookSN = bookItem.getTag().getString("SN"); + info.lines.add(bookSN); } return info; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateJsonRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateJsonRecipe.java index 9c59008a..f5fe8864 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateJsonRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateJsonRecipe.java @@ -10,9 +10,9 @@ import com.google.gson.JsonSyntaxException; import java.util.Arrays; import java.util.UUID; -import net.minecraft.server.v1_16_R3.NBTTagCompound; -import net.minecraft.server.v1_16_R3.NBTTagList; -import net.minecraft.server.v1_16_R3.NBTTagString; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; @@ -21,8 +21,8 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class PrintingPlateJsonRecipe extends PrintingPlateRecipe { /* diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateRecipe.java index ece77d85..aed571c1 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateRecipe.java @@ -6,24 +6,23 @@ package com.github.igotyou.FactoryMod.recipes; import com.github.igotyou.FactoryMod.factories.FurnCraftChestFactory; +import com.github.igotyou.FactoryMod.utility.MultiInventoryWrapper; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.UUID; - -import com.github.igotyou.FactoryMod.utility.MultiInventoryWrapper; -import net.minecraft.server.v1_16_R3.NBTTagCompound; +import net.minecraft.nbt.NBTTagCompound; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; import org.bukkit.inventory.meta.BookMeta.Generation; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class PrintingPlateRecipe extends PrintingPressRecipe { public static final String itemName = "Printing Plate"; @@ -80,15 +79,8 @@ public boolean applyEffect(Inventory inputInv, Inventory outputInv, FurnCraftChe return true; } - /** - * @deprecated {@code Inventory i} isn't being used, switch to the overload without it. - */ - public static ItemStack addTags(Inventory i, String serialNumber, ItemStack plate, NBTTagCompound bookTag) { - return addTags(serialNumber, plate, bookTag); - } - public static ItemStack addTags(String serialNumber, ItemStack plate, NBTTagCompound bookTag) { - net.minecraft.server.v1_16_R3.ItemStack nmsPlate = CraftItemStack.asNMSCopy(plate); + net.minecraft.world.item.ItemStack nmsPlate = CraftItemStack.asNMSCopy(plate); NBTTagCompound plateTag = nmsPlate.getOrCreateTag(); plateTag.setString("SN", serialNumber); diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPressRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPressRecipe.java index f5c4bc8f..16fbbda3 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPressRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPressRecipe.java @@ -8,9 +8,8 @@ import java.util.List; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; -import vg.civcraft.mc.civmodcore.itemHandling.TagManager; public abstract class PrintingPressRecipe extends InputRecipe { public PrintingPressRecipe(String identifier, String name, int productionTime, ItemMap input) { @@ -19,11 +18,7 @@ public PrintingPressRecipe(String identifier, String name, int productionTime, I protected ItemStack getPrintingPlateRepresentation(ItemMap printingPlate, String name) { List out = printingPlate.getItemStackRepresentation(); - ItemStack res = out.size() == 0 ? new ItemStack(Material.STONE) : out.get(0); - TagManager tag = new TagManager(); - - res = tag.enrichWithNBT(res); - + ItemStack res = out.size() == 0 ? new ItemStack(Material.STONE) : out.get(0).clone(); ItemUtils.setDisplayName(res, name); return res; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/ProductionRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/ProductionRecipe.java index 5038e057..65de776a 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/ProductionRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/ProductionRecipe.java @@ -12,8 +12,8 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; /** * Consumes a set of materials from a container and outputs another set of diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/PylonRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/PylonRecipe.java index f93740c8..499dbb78 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PylonRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PylonRecipe.java @@ -12,8 +12,8 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class PylonRecipe extends InputRecipe { diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomEnchantingRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomEnchantingRecipe.java index 6c4aa90e..0e1d6587 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomEnchantingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomEnchantingRecipe.java @@ -13,8 +13,8 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import vg.civcraft.mc.civmodcore.inventory.items.EnchantUtils; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class RandomEnchantingRecipe extends InputRecipe { private List enchants; @@ -34,7 +34,7 @@ public RandomEnchant(Enchantment enchant, int level, double chance) { } public RandomEnchantingRecipe(String identifier, String name, int productionTime, - ItemMap input, Material tool, List enchants) { + ItemMap input, Material tool, List enchants) { super(identifier, name, productionTime, input); this.enchants = enchants; this.tool = tool; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomOutputRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomOutputRecipe.java index e1b417b0..4e07f7a8 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomOutputRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomOutputRecipe.java @@ -13,8 +13,8 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class RandomOutputRecipe extends InputRecipe { private Map outputs; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/RecipeScalingUpgradeRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/RecipeScalingUpgradeRecipe.java index 4279ca74..9dd5afda 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RecipeScalingUpgradeRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RecipeScalingUpgradeRecipe.java @@ -9,7 +9,7 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class RecipeScalingUpgradeRecipe extends InputRecipe { diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/RepairRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/RepairRecipe.java index 7eec6a10..a91d9402 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RepairRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RepairRecipe.java @@ -12,8 +12,8 @@ import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; /** * Used to repair FurnCraftChest factories. Once one of those factories is in diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/Upgraderecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/Upgraderecipe.java index 11347b37..f1b84f23 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/Upgraderecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/Upgraderecipe.java @@ -15,8 +15,8 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class Upgraderecipe extends InputRecipe { private FurnCraftChestEgg egg; diff --git a/src/main/java/com/github/igotyou/FactoryMod/recipes/WordBankRecipe.java b/src/main/java/com/github/igotyou/FactoryMod/recipes/WordBankRecipe.java index 3e5eae6c..9e911a99 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/WordBankRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/WordBankRecipe.java @@ -20,8 +20,8 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class WordBankRecipe extends InputRecipe { diff --git a/src/main/java/com/github/igotyou/FactoryMod/repairManager/PercentageHealthRepairManager.java b/src/main/java/com/github/igotyou/FactoryMod/repairManager/PercentageHealthRepairManager.java index 2b109440..13032a03 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/repairManager/PercentageHealthRepairManager.java +++ b/src/main/java/com/github/igotyou/FactoryMod/repairManager/PercentageHealthRepairManager.java @@ -5,7 +5,7 @@ import com.github.igotyou.FactoryMod.utility.LoggingUtils; import java.util.Map.Entry; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class PercentageHealthRepairManager implements IRepairManager { private int health; diff --git a/src/main/java/com/github/igotyou/FactoryMod/utility/FactoryModGUI.java b/src/main/java/com/github/igotyou/FactoryMod/utility/FactoryModGUI.java index 63f7f2b3..0eb4a27d 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/utility/FactoryModGUI.java +++ b/src/main/java/com/github/igotyou/FactoryMod/utility/FactoryModGUI.java @@ -18,20 +18,20 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.LClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ComponableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ComponableSection; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ContentAligners; +import vg.civcraft.mc.civmodcore.inventory.gui.components.InventoryComponent; +import vg.civcraft.mc.civmodcore.inventory.gui.components.Scrollbar; +import vg.civcraft.mc.civmodcore.inventory.gui.components.SlotPredicates; +import vg.civcraft.mc.civmodcore.inventory.gui.components.StaticDisplaySection; +import vg.civcraft.mc.civmodcore.inventory.gui.history.HistoryItem; +import vg.civcraft.mc.civmodcore.inventory.gui.history.HistoryTracker; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; -import vg.civcraft.mc.civmodcore.inventorygui.LClickable; -import vg.civcraft.mc.civmodcore.inventorygui.components.ComponableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.components.ComponableSection; -import vg.civcraft.mc.civmodcore.inventorygui.components.ContentAligners; -import vg.civcraft.mc.civmodcore.inventorygui.components.InventoryComponent; -import vg.civcraft.mc.civmodcore.inventorygui.components.Scrollbar; -import vg.civcraft.mc.civmodcore.inventorygui.components.SlotPredicates; -import vg.civcraft.mc.civmodcore.inventorygui.components.StaticDisplaySection; -import vg.civcraft.mc.civmodcore.inventorygui.history.HistoryItem; -import vg.civcraft.mc.civmodcore.inventorygui.history.HistoryTracker; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; public class FactoryModGUI { diff --git a/src/main/java/com/github/igotyou/FactoryMod/utility/FileHandler.java b/src/main/java/com/github/igotyou/FactoryMod/utility/FileHandler.java index 8c4a11da..65867815 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/utility/FileHandler.java +++ b/src/main/java/com/github/igotyou/FactoryMod/utility/FileHandler.java @@ -29,7 +29,7 @@ import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; import vg.civcraft.mc.civmodcore.world.WorldUtils; public class FileHandler { diff --git a/src/main/java/com/github/igotyou/FactoryMod/utility/IOConfigSection.java b/src/main/java/com/github/igotyou/FactoryMod/utility/IOConfigSection.java index 7c41c447..ee36bbf5 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/utility/IOConfigSection.java +++ b/src/main/java/com/github/igotyou/FactoryMod/utility/IOConfigSection.java @@ -3,6 +3,7 @@ import com.github.igotyou.FactoryMod.FactoryMod; import com.github.igotyou.FactoryMod.FactoryModManager; import com.github.igotyou.FactoryMod.FactoryModPlayerSettings; +import java.util.UUID; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.Style; import net.kyori.adventure.text.format.TextColor; @@ -15,13 +16,11 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitTask; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.LClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.components.StaticDisplaySection; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.LClickable; -import vg.civcraft.mc.civmodcore.inventorygui.components.StaticDisplaySection; - -import java.util.UUID; /** * @author caucow diff --git a/src/main/java/com/github/igotyou/FactoryMod/utility/ItemUseGUI.java b/src/main/java/com/github/igotyou/FactoryMod/utility/ItemUseGUI.java index 694c3ca0..05c6f290 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/utility/ItemUseGUI.java +++ b/src/main/java/com/github/igotyou/FactoryMod/utility/ItemUseGUI.java @@ -14,14 +14,14 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.LClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ComponableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.components.ContentAligners; +import vg.civcraft.mc.civmodcore.inventory.gui.components.Scrollbar; +import vg.civcraft.mc.civmodcore.inventory.gui.components.SlotPredicates; +import vg.civcraft.mc.civmodcore.inventory.gui.components.StaticDisplaySection; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; -import vg.civcraft.mc.civmodcore.inventorygui.LClickable; -import vg.civcraft.mc.civmodcore.inventorygui.components.ComponableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.components.ContentAligners; -import vg.civcraft.mc.civmodcore.inventorygui.components.Scrollbar; -import vg.civcraft.mc.civmodcore.inventorygui.components.SlotPredicates; -import vg.civcraft.mc.civmodcore.inventorygui.components.StaticDisplaySection; public class ItemUseGUI { @@ -90,12 +90,14 @@ public void showItemOverview(ItemStack item) { ItemUtils.getItemName(item))); itemAsOutput.add(new LClickable(noItems, p -> { })); } - Scrollbar itemAsInputBar = new Scrollbar(itemAsInput, 24, 8, ContentAligners.getCenteredInOrder(itemAsInput.size(), 24, 4)); + Scrollbar itemAsInputBar = new Scrollbar(itemAsInput, 24, 8, ContentAligners + .getCenteredInOrder(itemAsInput.size(), 24, 4)); itemAsInputBar.setBackwardsClickSlot(3); inventory.addComponent(itemAsInputBar, SlotPredicates.rectangle(6, 4)); IClickable dividerClick = getDividerClick(); - StaticDisplaySection middleLine = new StaticDisplaySection(dividerClick, dividerClick, dividerClick, dividerClick, dividerClick , dividerClick); + StaticDisplaySection + middleLine = new StaticDisplaySection(dividerClick, dividerClick, dividerClick, dividerClick, dividerClick , dividerClick); inventory.addComponent(middleLine, SlotPredicates.offsetRectangle(6, 1, 0, 4)); Scrollbar itemAsOutputBar = new Scrollbar(itemAsOutput, 24, 5, ContentAligners.getCenteredInOrder(itemAsOutput.size(), 24, 4)); diff --git a/src/main/java/com/github/igotyou/FactoryMod/utility/LoggingUtils.java b/src/main/java/com/github/igotyou/FactoryMod/utility/LoggingUtils.java index f4b28d8d..a08e0be3 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/utility/LoggingUtils.java +++ b/src/main/java/com/github/igotyou/FactoryMod/utility/LoggingUtils.java @@ -5,7 +5,7 @@ import org.bukkit.block.Block; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; -import vg.civcraft.mc.civmodcore.itemHandling.ItemMap; +import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class LoggingUtils { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 31544f51..090e3534 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,45 +4,9 @@ author: Maxopoly, igotyou version: ${project.version} depend: [CivModCore] softdepend: [CivMenu, NameLayer, Citadel] -commands: - fm: - permission: fm.public - description: 'Opens a GUI allowing you to browse through all factories' - usage: '/fm [factoryName]' - min-args: 0 - max-args: 10 - player-only: true - fmc: - permission: fm.op - description: 'Creates a factory at the blocks you are looking at' - usage: '/fmc ' - min-args: 0 - max-args: 10 - player-only: true - fmco: - permission: fm.op - description: 'Gives you the output of the selected recipe in the factory you are looking at' - usage: '/fmco' - min-args: 0 - max-args: 0 - player-only: true - fmsrc: - permission: fm.op - player-only: true - description: 'Sets the amount of runs for the currently selected recipe in the factory you are looking at' - usage: '/fmsrc ' - min-args: 1 - max-args: 1 - item: - permission: fm.public - description: 'Opens a GUI allowing you to browse all recipes which use or output the item in your main hand' - usage: '/item [material name]' - min-args: 0 - max-args: 1 - player-only: true permissions: fm.public: default: true fm.op: default: op -api-version: 1.13 +api-version: 1.17