From 280e3bb13f6cc10690860d97fe2c6d75e913e087 Mon Sep 17 00:00:00 2001 From: Cola Date: Wed, 30 Jun 2021 19:51:50 +0100 Subject: [PATCH 01/12] v2.6.0 - 1.17 & Java 16 --- pom.xml | 22 ++++++----- .../igotyou/FactoryMod/ConfigParser.java | 11 +++--- .../github/igotyou/FactoryMod/FactoryMod.java | 18 +++++++++ .../igotyou/FactoryMod/FactoryModManager.java | 4 +- .../FactoryMod/commands/CheatOutput.java | 26 ++++++------- .../igotyou/FactoryMod/commands/Create.java | 37 ++++++++----------- .../FactoryMod/commands/FactoryMenu.java | 31 +++++++--------- .../commands/FactoryTabCompleters.java | 27 -------------- .../FactoryMod/commands/ItemUseMenu.java | 33 +++++++---------- .../commands/RunAmountSetterCommand.java | 33 +++++++---------- .../FactoryMod/eggs/FurnCraftChestEgg.java | 2 +- .../igotyou/FactoryMod/eggs/SorterEgg.java | 4 +- .../igotyou/FactoryMod/factories/Pipe.java | 2 +- .../igotyou/FactoryMod/factories/Sorter.java | 4 +- .../FurnCraftChestInteractionManager.java | 6 +-- .../powerManager/FurnacePowerManager.java | 2 +- .../FactoryMod/recipes/AOERepairRecipe.java | 2 +- .../FactoryMod/recipes/CompactingRecipe.java | 4 +- .../recipes/DecompactingRecipe.java | 4 +- .../DeterministicEnchantingRecipe.java | 2 +- .../recipes/DummyParsingRecipe.java | 2 +- .../recipes/FactoryMaterialReturnRecipe.java | 4 +- .../FactoryMod/recipes/InputRecipe.java | 7 ++-- .../FactoryMod/recipes/LoreEnchantRecipe.java | 2 +- .../FactoryMod/recipes/PlayerHeadRecipe.java | 2 +- .../FactoryMod/recipes/PrintBookRecipe.java | 15 +++++--- .../FactoryMod/recipes/PrintNoteRecipe.java | 12 +++--- .../recipes/PrintingPlateJsonRecipe.java | 8 ++-- .../recipes/PrintingPlateRecipe.java | 8 ++-- .../recipes/PrintingPressRecipe.java | 9 +---- .../FactoryMod/recipes/ProductionRecipe.java | 2 +- .../FactoryMod/recipes/PylonRecipe.java | 2 +- .../recipes/RandomEnchantingRecipe.java | 4 +- .../recipes/RandomOutputRecipe.java | 2 +- .../recipes/RecipeScalingUpgradeRecipe.java | 2 +- .../FactoryMod/recipes/RepairRecipe.java | 2 +- .../FactoryMod/recipes/Upgraderecipe.java | 2 +- .../FactoryMod/recipes/WordBankRecipe.java | 2 +- .../PercentageHealthRepairManager.java | 2 +- .../FactoryMod/utility/FactoryModGUI.java | 26 ++++++------- .../FactoryMod/utility/FileHandler.java | 2 +- .../FactoryMod/utility/ItemUseGUI.java | 20 +++++----- .../FactoryMod/utility/LoggingUtils.java | 2 +- src/main/resources/plugin.yml | 30 +-------------- 44 files changed, 193 insertions(+), 250 deletions(-) delete mode 100644 src/main/java/com/github/igotyou/FactoryMod/commands/FactoryTabCompleters.java diff --git a/pom.xml b/pom.xml index ec9517ef..66307ee9 100644 --- a/pom.xml +++ b/pom.xml @@ -13,33 +13,33 @@ com.github.igotyou FactoryMod jar - 2.5.1 + 2.6.0 FactoryMod https://github.com/Civclassic/FactoryMod - com.destroystokyo.paper + io.papermc.paper paper - 1.16.5-R0.1-SNAPSHOT + 1.17-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.2 + 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 a5cd5038..9084ce30 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java +++ b/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java @@ -1,9 +1,10 @@ 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.utilities.ConfigParsing.parseItemMap; +import static vg.civcraft.mc.civmodcore.utilities.ConfigParsing.parseItemMapDirectly; +import static vg.civcraft.mc.civmodcore.utilities.ConfigParsing.parseTime; +import static vg.civcraft.mc.civmodcore.utilities.ConfigParsing.parseTimeAsTicks; + import com.github.igotyou.FactoryMod.eggs.FurnCraftChestEgg; import com.github.igotyou.FactoryMod.eggs.IFactoryEgg; @@ -58,7 +59,7 @@ 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.inventory.items.ItemMap; public class ConfigParser { private FactoryMod plugin; diff --git a/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java b/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java index ba3f13e0..9cb07088 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java +++ b/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java @@ -1,15 +1,22 @@ package com.github.igotyou.FactoryMod; +import com.github.igotyou.FactoryMod.commands.CheatOutput; +import com.github.igotyou.FactoryMod.commands.Create; +import com.github.igotyou.FactoryMod.commands.FactoryMenu; +import com.github.igotyou.FactoryMod.commands.ItemUseMenu; +import com.github.igotyou.FactoryMod.commands.RunAmountSetterCommand; import com.github.igotyou.FactoryMod.listeners.CitadelListener; import com.github.igotyou.FactoryMod.listeners.CompactItemListener; import com.github.igotyou.FactoryMod.listeners.FactoryModListener; import com.github.igotyou.FactoryMod.utility.FactoryModPermissionManager; import vg.civcraft.mc.civmodcore.ACivMod; +import vg.civcraft.mc.civmodcore.commands.CommandManager; public class FactoryMod extends ACivMod { private FactoryModManager manager; private static FactoryMod plugin; private FactoryModPermissionManager permissionManager; + private CommandManager commandManager; @Override public void onEnable() { @@ -21,6 +28,9 @@ public void onEnable() { if (manager.isCitadelEnabled()) { permissionManager = new FactoryModPermissionManager(); } + commandManager = new CommandManager(this); + commandManager.init(); + registerCommands(); registerListeners(); info("Successfully enabled"); } @@ -54,4 +64,12 @@ private void registerListeners() { plugin.getServer().getPluginManager().registerEvents(new CitadelListener(), plugin); } } + + private void registerCommands() { + commandManager.registerCommand(new CheatOutput()); + commandManager.registerCommand(new Create()); + commandManager.registerCommand(new FactoryMenu()); + commandManager.registerCommand(new ItemUseMenu()); + commandManager.registerCommand(new RunAmountSetterCommand()); + } } diff --git a/src/main/java/com/github/igotyou/FactoryMod/FactoryModManager.java b/src/main/java/com/github/igotyou/FactoryMod/FactoryModManager.java index ab631abe..9fe70c66 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 @@ -420,7 +419,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/commands/CheatOutput.java b/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java index 9694880a..fc7c5c5e 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.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; @@ -14,14 +18,13 @@ 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 { +@CommandAlias("fmco") +public class CheatOutput extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/fmco") + @Description("Gives you the output of the selected recipe in the factory you are looking at") + public void execute(CommandSender sender) { Player player = (Player) sender; Set transparent = null; List view = ((Player) sender).getLineOfSight(transparent, 10); @@ -31,12 +34,12 @@ public boolean execute(CommandSender sender, String[] args) { FurnCraftChestFactory fcc = (FurnCraftChestFactory) exis; if (fcc.getCurrentRecipe() == null) { player.sendMessage(ChatColor.RED + "This factory has no recipe selected"); - return true; + return; } IRecipe rec = fcc.getCurrentRecipe(); if (!(rec instanceof ProductionRecipe)) { player.sendMessage(ChatColor.RED + "The selected recipe is not a production recipe"); - return true; + return; } ProductionRecipe prod = (ProductionRecipe) rec; for (ItemStack is : prod.getOutput().getItemStackRepresentation()) { @@ -46,12 +49,5 @@ public boolean execute(CommandSender sender, String[] args) { } else { player.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..d0157c39 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,9 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +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; @@ -20,20 +24,18 @@ 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 { +@CommandAlias("fmc") +public class Create extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/fmc ") + @Description("Creates a factory at the blocks you are looking at") + public void execute(CommandSender 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); @@ -48,7 +50,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 +67,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 +76,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 +92,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 +100,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/FactoryMenu.java b/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java index 4563bf2e..ccbf3239 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.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 { +@CommandAlias("fm") +public class FactoryMenu extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/fm ") + @Description("Opens a GUI allowing you to browse through all factories") + public void execute(CommandSender sender, @Optional String factoryName) { Player p = (Player) sender; - if (args.length == 0 || args[0].length() == 0) { + if (factoryName == null) { FactoryModGUI gui = new FactoryModGUI((Player) 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; + p.sendMessage(ChatColor.RED + "The factory " + factoryName + " does not exist"); + return; } FactoryModGUI gui = new FactoryModGUI((Player) 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..6899a923 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,34 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +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) { +@CommandAlias("item") +public class ItemUseMenu extends BaseCommand { + @Syntax("/item") + @Description("Opens a GUI allowing you to browse all recipes which use or output the item in your main hand") + public void execute(CommandSender sender, @Optional String material) { Player p = (Player) sender; - if (args.length == 0 || args[0].length() == 0) { + if (material == null) { ItemUseGUI gui = new ItemUseGUI((Player) sender); 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); 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..1330c595 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java @@ -1,38 +1,39 @@ package com.github.igotyou.FactoryMod.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +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 { +@CommandAlias("fmsrc") +public class RunAmountSetterCommand extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { + @Syntax("/fmsrc ") + @Description("Sets the amount of runs for the currently selected recipe in the factory you are looking at") + public void execute(CommandSender sender, String runCount) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.MAGIC + "How the hell is this supposed to work"); - return true; + return; } Player p = (Player) sender; 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; + p.sendMessage(ChatColor.RED + runCount + " is not a number"); + return; } FactoryModManager manager = FactoryMod.getInstance().getManager(); for(Block b : p.getLineOfSight((Set )null, 15)) { @@ -43,13 +44,5 @@ public boolean execute(CommandSender sender, String[] args) { p.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/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 84a78a9e..fa7361c6 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java +++ b/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java @@ -22,10 +22,10 @@ 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.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.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 4618e81c..aba3d4ff 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/powerManager/FurnacePowerManager.java +++ b/src/main/java/com/github/igotyou/FactoryMod/powerManager/FurnacePowerManager.java @@ -5,7 +5,7 @@ import org.bukkit.block.Furnace; import org.bukkit.inventory.FurnaceInventory; 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 668fb6cc..4ab8610a 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/AOERepairRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/AOERepairRecipe.java @@ -16,8 +16,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 70edaa31..def0be49 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/CompactingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/CompactingRecipe.java @@ -8,8 +8,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 @@ -23,7 +23,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 bf40ff23..a2ae18ea 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/DecompactingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/DecompactingRecipe.java @@ -8,8 +8,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 @@ -21,7 +21,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 15a5ed0f..85cf44f2 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/DeterministicEnchantingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/DeterministicEnchantingRecipe.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; 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 9c3a3d69..9a5784df 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/DummyParsingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/DummyParsingRecipe.java @@ -5,7 +5,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 1e4aca3d..d31917ac 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/FactoryMaterialReturnRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/FactoryMaterialReturnRecipe.java @@ -16,15 +16,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 d9344751..ae9c1e5e 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 d9ee9305..5cb3d3e1 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/LoreEnchantRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/LoreEnchantRecipe.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; 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 77987fee..4d6761fd 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PlayerHeadRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PlayerHeadRecipe.java @@ -11,8 +11,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 ba813585..0476435e 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintBookRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintBookRecipe.java @@ -4,15 +4,16 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +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; @@ -66,12 +67,14 @@ public boolean applyEffect(Inventory i, FurnCraftChestFactory fccf) { } 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 e7942f0a..d7d73d67 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintNoteRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintNoteRecipe.java @@ -10,13 +10,13 @@ import java.util.List; 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 { @@ -42,7 +42,7 @@ public PrintNoteRecipe( String identifier, String name, int productionTime, - ItemMap input, + ItemMap input, ItemMap printingPlate, int outputAmount, boolean secureNote, @@ -107,9 +107,9 @@ private BookInfo getBookInfo(ItemStack printingPlateStack) { 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); + 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 fc13db26..374465b1 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateJsonRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateJsonRecipe.java @@ -9,9 +9,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; @@ -20,8 +20,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 aafd3bd4..86c552a3 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PrintingPlateRecipe.java @@ -10,18 +10,18 @@ import java.util.LinkedList; import java.util.List; import java.util.UUID; -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"; @@ -78,7 +78,7 @@ public boolean applyEffect(Inventory i, FurnCraftChestFactory fccf) { } public static ItemStack addTags(Inventory i, 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 1d3819c9..6d2ee8cf 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/ProductionRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/ProductionRecipe.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; /** * 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 3ebb141e..537bd806 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/PylonRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/PylonRecipe.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; 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 41329934..75b40eff 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomEnchantingRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomEnchantingRecipe.java @@ -11,8 +11,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; @@ -32,7 +32,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 21cf4e22..ca5863e9 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomOutputRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RandomOutputRecipe.java @@ -11,8 +11,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 f622e8f8..07baa0f6 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RecipeScalingUpgradeRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RecipeScalingUpgradeRecipe.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 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 7b65eca8..d411d7f5 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/RepairRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/RepairRecipe.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 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 867b96f1..7b2738ed 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/Upgraderecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/Upgraderecipe.java @@ -13,8 +13,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 5e6f4e10..439b21cf 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/recipes/WordBankRecipe.java +++ b/src/main/java/com/github/igotyou/FactoryMod/recipes/WordBankRecipe.java @@ -18,8 +18,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 5978f938..90f9b213 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/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..c864e135 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,41 +5,13 @@ 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' + description: '' 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 From 80f57cb056b25aa9d64581f029abfd6b01b35e77 Mon Sep 17 00:00:00 2001 From: Cola Date: Wed, 30 Jun 2021 21:55:49 +0100 Subject: [PATCH 02/12] POM fix --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 66307ee9..9bbc639f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.github.civclassic civclassic-parent - 1.0.0 + 1.0.1 com.github.igotyou From edacf21bb204527c917dbcba98b5759411f49fd9 Mon Sep 17 00:00:00 2001 From: Cola Date: Thu, 1 Jul 2021 01:58:28 +0100 Subject: [PATCH 03/12] Fix commands Fmcreate tab completion broke, FM GUI failing to parse correctly --- .../github/igotyou/FactoryMod/FactoryMod.java | 21 ++---------- .../FactoryMod/commands/CheatOutput.java | 6 ++-- .../igotyou/FactoryMod/commands/Create.java | 8 +++-- .../FactoryMod/commands/FMCommandManager.java | 33 +++++++++++++++++++ .../FactoryMod/commands/FactoryMenu.java | 6 ++-- .../FactoryMod/commands/ItemUseMenu.java | 7 ++-- .../commands/RunAmountSetterCommand.java | 6 ++-- 7 files changed, 58 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/github/igotyou/FactoryMod/commands/FMCommandManager.java diff --git a/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java b/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java index 9cb07088..895202df 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java +++ b/src/main/java/com/github/igotyou/FactoryMod/FactoryMod.java @@ -1,22 +1,17 @@ package com.github.igotyou.FactoryMod; -import com.github.igotyou.FactoryMod.commands.CheatOutput; -import com.github.igotyou.FactoryMod.commands.Create; -import com.github.igotyou.FactoryMod.commands.FactoryMenu; -import com.github.igotyou.FactoryMod.commands.ItemUseMenu; -import com.github.igotyou.FactoryMod.commands.RunAmountSetterCommand; +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; import com.github.igotyou.FactoryMod.utility.FactoryModPermissionManager; import vg.civcraft.mc.civmodcore.ACivMod; -import vg.civcraft.mc.civmodcore.commands.CommandManager; public class FactoryMod extends ACivMod { private FactoryModManager manager; private static FactoryMod plugin; private FactoryModPermissionManager permissionManager; - private CommandManager commandManager; + private FMCommandManager commandManager; @Override public void onEnable() { @@ -28,9 +23,7 @@ public void onEnable() { if (manager.isCitadelEnabled()) { permissionManager = new FactoryModPermissionManager(); } - commandManager = new CommandManager(this); - commandManager.init(); - registerCommands(); + commandManager = new FMCommandManager(this); registerListeners(); info("Successfully enabled"); } @@ -64,12 +57,4 @@ private void registerListeners() { plugin.getServer().getPluginManager().registerEvents(new CitadelListener(), plugin); } } - - private void registerCommands() { - commandManager.registerCommand(new CheatOutput()); - commandManager.registerCommand(new Create()); - commandManager.registerCommand(new FactoryMenu()); - commandManager.registerCommand(new ItemUseMenu()); - commandManager.registerCommand(new RunAmountSetterCommand()); - } } 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 fc7c5c5e..c186d3bb 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java @@ -2,8 +2,8 @@ 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; @@ -19,10 +19,10 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -@CommandAlias("fmco") public class CheatOutput extends BaseCommand { - @Syntax("/fmco") + @CommandAlias("fmco") + @CommandPermission("fm.op") @Description("Gives you the output of the selected recipe in the factory you are looking at") public void execute(CommandSender sender) { Player player = (Player) sender; 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 d0157c39..b54f98d9 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java @@ -2,6 +2,8 @@ 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; @@ -25,11 +27,13 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandAlias("fmc") public class Create extends BaseCommand { - @Syntax("/fmc ") + @CommandAlias("fmc") + @CommandPermission("fm.op") + @Syntax("") @Description("Creates a factory at the blocks you are looking at") + @CommandCompletion("@FM_Factories") public void execute(CommandSender sender, String factoryName) { FactoryModManager manager = FactoryMod.getInstance().getManager(); IFactoryEgg egg = manager.getEgg(factoryName); 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 ccbf3239..b940cb84 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java @@ -2,6 +2,7 @@ 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; @@ -13,11 +14,12 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandAlias("fm") public class FactoryMenu extends BaseCommand { - @Syntax("/fm ") + @CommandAlias("fm") + @Syntax("[factory]") @Description("Opens a GUI allowing you to browse through all factories") + @CommandCompletion("@FM_Factories") public void execute(CommandSender sender, @Optional String factoryName) { Player p = (Player) sender; if (factoryName == null) { 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 6899a923..62f398bf 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java @@ -2,6 +2,7 @@ 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; @@ -12,10 +13,12 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -@CommandAlias("item") public class ItemUseMenu extends BaseCommand { - @Syntax("/item") + + @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(CommandSender sender, @Optional String material) { Player p = (Player) sender; if (material == null) { 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 1330c595..53ddcf2e 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java @@ -2,6 +2,7 @@ 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; @@ -15,11 +16,12 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandAlias("fmsrc") public class RunAmountSetterCommand extends BaseCommand { - @Syntax("/fmsrc ") + @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(CommandSender sender, String runCount) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.MAGIC From ba5c683eae5f90cc53155a959c83129ef10ac34b Mon Sep 17 00:00:00 2001 From: Cola Date: Fri, 2 Jul 2021 15:23:21 +0100 Subject: [PATCH 04/12] item command fix & plugin.yml change --- .../igotyou/FactoryMod/commands/ItemUseMenu.java | 8 +++----- src/main/resources/plugin.yml | 10 +--------- 2 files changed, 4 insertions(+), 14 deletions(-) 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 62f398bf..ba375f16 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/ItemUseMenu.java @@ -9,7 +9,6 @@ import com.github.igotyou.FactoryMod.utility.ItemUseGUI; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -19,10 +18,9 @@ public class ItemUseMenu extends BaseCommand { @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(CommandSender sender, @Optional String material) { - Player p = (Player) sender; + public void execute(Player p, @Optional String material) { if (material == null) { - ItemUseGUI gui = new ItemUseGUI((Player) sender); + ItemUseGUI gui = new ItemUseGUI(p); gui.showItemOverview(p.getInventory().getItemInMainHand()); } else { Material mat = Material.getMaterial(material); @@ -30,7 +28,7 @@ public void execute(CommandSender sender, @Optional String material) { 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)); } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c864e135..090e3534 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,17 +4,9 @@ author: Maxopoly, igotyou version: ${project.version} depend: [CivModCore] softdepend: [CivMenu, NameLayer, Citadel] -commands: - fmsrc: - permission: fm.op - player-only: true - description: '' - usage: '/fmsrc ' - min-args: 1 - max-args: 1 permissions: fm.public: default: true fm.op: default: op -api-version: 1.13 +api-version: 1.17 From 2e3b454e1cd947730b3b343e80a905e2873b70ae Mon Sep 17 00:00:00 2001 From: Cola Date: Sat, 3 Jul 2021 22:03:36 +0100 Subject: [PATCH 05/12] Change autoselect to not repair when factory is not in disrepair --- .../factories/FurnCraftChestFactory.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) 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 facad425..11e24fd5 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java @@ -175,16 +175,33 @@ public void attemptToActivate(Player p, boolean onStartUp) { } //ensure factory isnt in disrepair if (rm.inDisrepair() && !(currentRecipe instanceof RepairRecipe)) { + setRecipe(getAutoSelectRecipe()); if (p != null) { - p.sendMessage(ChatColor.RED + "This factory is in disrepair, you have to repair it before using it"); + p.sendMessage(ChatColor.GOLD + "Automatically selected recipe " + currentRecipe.getName()); } - return; + if (!(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 (hasInputMaterials()) { + activate(); + return; + } + } if (currentRecipe instanceof RepairRecipe && rm.atFullHealth()) { + setRecipe(getAutoSelectRecipe()); if (p != null) { - p.sendMessage("This factory is already at full health!"); + p.sendMessage(ChatColor.GOLD + "Automatically selected recipe " + currentRecipe.getName()); + } + if (currentRecipe instanceof RepairRecipe) { + if (p != null) { + p.sendMessage("This factory is already at full health!"); + } + return; } - return; } if (!onStartUp && currentRecipe instanceof Upgraderecipe && FactoryMod.getInstance().getManager().isCitadelEnabled()) { // only allow permitted members to upgrade the factory @@ -511,6 +528,12 @@ public boolean hasInputMaterials() { public IRecipe getAutoSelectRecipe() { for (IRecipe rec : recipes) { + if (rec instanceof RepairRecipe) { + if (getRepairManager().inDisrepair()) { + return rec; + } + continue; + } if (rec.enoughMaterialAvailable(getInventory())) { return rec; } From 99423287ee1be487b7d05e4357473f8ef77b19fc Mon Sep 17 00:00:00 2001 From: EvilAsuramaru Date: Sun, 4 Jul 2021 14:00:21 +0200 Subject: [PATCH 06/12] fixing the repair recipe disaster --- .../factories/FurnCraftChestFactory.java | 78 +++++++++++++------ 1 file changed, 56 insertions(+), 22 deletions(-) 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 facad425..0fe34608 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java @@ -138,15 +138,19 @@ 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) { + 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) { @@ -160,7 +164,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) { @@ -173,19 +200,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()); @@ -509,9 +524,28 @@ public boolean hasInputMaterials() { return currentRecipe.enoughMaterialAvailable(getInventory()); } + /** + * @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(getInventory())) { + 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; } } From ac11c87ebc1bdeedd0f1c3704637549f43adb36b Mon Sep 17 00:00:00 2001 From: EvilAsuramaru Date: Sun, 4 Jul 2021 14:22:21 +0200 Subject: [PATCH 07/12] adding checks around automatic repair, since theoretically you can have a factory without repair recipe --- .../FactoryMod/factories/FurnCraftChestFactory.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 0fe34608..97217ea2 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java @@ -145,7 +145,15 @@ public void attemptToActivate(Player p, boolean onStartUp) { if (rm.inDisrepair() && !(currentRecipe instanceof RepairRecipe)) { IRecipe autoRepair = getRepairRecipe(); //Just incase any factory for some reason cannot be repaired. - if (autoRepair != null) { + 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); } } From 25dc7704f7be4541051e0dd7941b5492048c01b7 Mon Sep 17 00:00:00 2001 From: Cola Date: Sat, 3 Jul 2021 22:03:36 +0100 Subject: [PATCH 08/12] Revert "Change autoselect to not repair when factory is not in disrepair" This reverts commit 2e3b454e1cd947730b3b343e80a905e2873b70ae. --- .../factories/FurnCraftChestFactory.java | 31 +++---------------- 1 file changed, 4 insertions(+), 27 deletions(-) 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 11e24fd5..facad425 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java +++ b/src/main/java/com/github/igotyou/FactoryMod/factories/FurnCraftChestFactory.java @@ -175,33 +175,16 @@ public void attemptToActivate(Player p, boolean onStartUp) { } //ensure factory isnt in disrepair if (rm.inDisrepair() && !(currentRecipe instanceof RepairRecipe)) { - setRecipe(getAutoSelectRecipe()); if (p != null) { - p.sendMessage(ChatColor.GOLD + "Automatically selected recipe " + currentRecipe.getName()); + p.sendMessage(ChatColor.RED + "This factory is in disrepair, you have to repair it before using it"); } - if (!(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 (hasInputMaterials()) { - activate(); - return; - } - + return; } if (currentRecipe instanceof RepairRecipe && rm.atFullHealth()) { - setRecipe(getAutoSelectRecipe()); if (p != null) { - p.sendMessage(ChatColor.GOLD + "Automatically selected recipe " + currentRecipe.getName()); - } - if (currentRecipe instanceof RepairRecipe) { - if (p != null) { - p.sendMessage("This factory is already at full health!"); - } - return; + 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 @@ -528,12 +511,6 @@ public boolean hasInputMaterials() { public IRecipe getAutoSelectRecipe() { for (IRecipe rec : recipes) { - if (rec instanceof RepairRecipe) { - if (getRepairManager().inDisrepair()) { - return rec; - } - continue; - } if (rec.enoughMaterialAvailable(getInventory())) { return rec; } From 4b2f348b0610a8f306e10d3f2b126164329c1774 Mon Sep 17 00:00:00 2001 From: Cola Date: Mon, 5 Jul 2021 20:39:27 +0100 Subject: [PATCH 09/12] Latest CMC --- .../igotyou/FactoryMod/ConfigParser.java | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java b/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java index 9084ce30..19a4e30d 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java +++ b/src/main/java/com/github/igotyou/FactoryMod/ConfigParser.java @@ -1,9 +1,7 @@ package com.github.igotyou.FactoryMod; -import static vg.civcraft.mc.civmodcore.utilities.ConfigParsing.parseItemMap; -import static vg.civcraft.mc.civmodcore.utilities.ConfigParsing.parseItemMapDirectly; -import static vg.civcraft.mc.civmodcore.utilities.ConfigParsing.parseTime; -import static vg.civcraft.mc.civmodcore.utilities.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; @@ -59,6 +57,7 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; import vg.civcraft.mc.civmodcore.inventory.items.ItemMap; public class ConfigParser { @@ -116,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 { @@ -302,7 +301,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 { @@ -314,7 +313,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 { @@ -348,7 +347,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 { @@ -386,7 +385,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 { @@ -426,7 +425,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 { @@ -464,7 +463,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); @@ -536,7 +535,7 @@ private IRecipe parseRecipe(ConfigurationSection config) { input = ((InputRecipe) parentRecipe).getInput(); } } else { - input = parseItemMap(inputSection); + input = ConfigHelper.parseItemMap(inputSection); } switch (type) { case "PRODUCTION": @@ -552,7 +551,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")); @@ -636,7 +635,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"); @@ -657,7 +656,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"); @@ -692,7 +691,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 @@ -726,7 +725,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; @@ -758,7 +757,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"); @@ -812,7 +811,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; @@ -826,18 +825,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"); @@ -899,7 +898,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); } From 017b71428782ba3fbc4ba41587af64e55249ed91 Mon Sep 17 00:00:00 2001 From: Cola Date: Sun, 18 Jul 2021 23:59:13 +0100 Subject: [PATCH 10/12] 1.17.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9bbc639f..9d567a4d 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ io.papermc.paper paper - 1.17-R0.1-SNAPSHOT + 1.17.1-R0.1-SNAPSHOT provided From f802b0bfc213a3f78e34323ad43aab188ee07f2a Mon Sep 17 00:00:00 2001 From: Cola Date: Wed, 1 Sep 2021 00:36:55 +0100 Subject: [PATCH 11/12] Hopefully working 1.17 i/o changes --- .../igotyou/FactoryMod/FactoryModPlayerSettings.java | 9 ++++----- .../FurnCraftChestInteractionManager.java | 8 ++++++-- .../igotyou/FactoryMod/recipes/PrintBookRecipe.java | 2 +- .../FactoryMod/recipes/PrintingPlateRecipe.java | 6 ++---- .../igotyou/FactoryMod/utility/IOConfigSection.java | 11 +++++------ 5 files changed, 18 insertions(+), 18 deletions(-) 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/interactionManager/FurnCraftChestInteractionManager.java b/src/main/java/com/github/igotyou/FactoryMod/interactionManager/FurnCraftChestInteractionManager.java index 9d4d4c3a..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; @@ -28,6 +27,11 @@ 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.namelayer.NameAPI; 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 ee4e1b64..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,7 +1,7 @@ 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; 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 59c446ab..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,6 +6,7 @@ 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; @@ -78,10 +79,7 @@ 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) { + public static ItemStack addTags(String serialNumber, ItemStack plate, NBTTagCompound bookTag) { net.minecraft.world.item.ItemStack nmsPlate = CraftItemStack.asNMSCopy(plate); NBTTagCompound plateTag = nmsPlate.getOrCreateTag(); 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 From 025f68a364ee370b2c102c87790e11edf1a3d937 Mon Sep 17 00:00:00 2001 From: Cola Date: Wed, 1 Sep 2021 01:01:01 +0100 Subject: [PATCH 12/12] Only players can use these commands --- .../igotyou/FactoryMod/commands/CheatOutput.java | 14 ++++++-------- .../igotyou/FactoryMod/commands/Create.java | 5 ++--- .../igotyou/FactoryMod/commands/FactoryMenu.java | 10 ++++------ .../commands/RunAmountSetterCommand.java | 15 ++++----------- 4 files changed, 16 insertions(+), 28 deletions(-) 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 c186d3bb..6a66fd6d 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/CheatOutput.java @@ -15,7 +15,6 @@ 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; @@ -24,8 +23,7 @@ public class CheatOutput extends BaseCommand { @CommandAlias("fmco") @CommandPermission("fm.op") @Description("Gives you the output of the selected recipe in the factory you are looking at") - public void execute(CommandSender sender) { - Player player = (Player) sender; + public void execute(Player sender) { Set transparent = null; List view = ((Player) sender).getLineOfSight(transparent, 10); FactoryModManager manager = FactoryMod.getInstance().getManager(); @@ -33,21 +31,21 @@ public void execute(CommandSender sender) { if (exis != null && exis instanceof FurnCraftChestFactory) { FurnCraftChestFactory fcc = (FurnCraftChestFactory) exis; if (fcc.getCurrentRecipe() == null) { - player.sendMessage(ChatColor.RED + "This factory has no recipe selected"); + 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"); + 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"); } } } 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 b54f98d9..a60eda36 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/Create.java @@ -24,7 +24,6 @@ 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; public class Create extends BaseCommand { @@ -34,7 +33,7 @@ public class Create extends BaseCommand { @Syntax("") @Description("Creates a factory at the blocks you are looking at") @CommandCompletion("@FM_Factories") - public void execute(CommandSender sender, String factoryName) { + public void execute(Player sender, String factoryName) { FactoryModManager manager = FactoryMod.getInstance().getManager(); IFactoryEgg egg = manager.getEgg(factoryName); if (egg == null) { @@ -42,7 +41,7 @@ public void execute(CommandSender sender, String factoryName) { 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); 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 b940cb84..929040cf 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/FactoryMenu.java @@ -11,7 +11,6 @@ import com.github.igotyou.FactoryMod.eggs.IFactoryEgg; import com.github.igotyou.FactoryMod.utility.FactoryModGUI; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class FactoryMenu extends BaseCommand { @@ -20,18 +19,17 @@ public class FactoryMenu extends BaseCommand { @Syntax("[factory]") @Description("Opens a GUI allowing you to browse through all factories") @CommandCompletion("@FM_Factories") - public void execute(CommandSender sender, @Optional String factoryName) { - Player p = (Player) sender; + public void execute(Player sender, @Optional String factoryName) { if (factoryName == null) { - FactoryModGUI gui = new FactoryModGUI((Player) sender); + FactoryModGUI gui = new FactoryModGUI(sender); gui.showFactoryOverview(true); } else { IFactoryEgg egg = FactoryMod.getInstance().getManager().getEgg(factoryName); if (egg == null) { - p.sendMessage(ChatColor.RED + "The factory " + factoryName + " does not exist"); + 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); } } 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 53ddcf2e..ed4af0cb 100644 --- a/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java +++ b/src/main/java/com/github/igotyou/FactoryMod/commands/RunAmountSetterCommand.java @@ -13,7 +13,6 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class RunAmountSetterCommand extends BaseCommand { @@ -22,28 +21,22 @@ public class RunAmountSetterCommand extends BaseCommand { @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(CommandSender sender, String runCount) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.MAGIC - + "How the hell is this supposed to work"); - return; - } - Player p = (Player) sender; + public void execute(Player sender, String runCount) { int newAmount; try { newAmount = Integer.parseInt(runCount); } catch(NumberFormatException e) { - p.sendMessage(ChatColor.RED + runCount + " is not a number"); + 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); } } }