From a1710f8397d2733e5623c82c1150ba7c163e59d8 Mon Sep 17 00:00:00 2001 From: James Date: Thu, 25 Jun 2020 16:21:52 +0100 Subject: [PATCH] AutoCraft Update --- pom.xml | 4 +- .../minecraft/chests/ChestsPlusPlus.java | 16 ++----- .../chests/commands/RemoteChestCommand.java | 44 +++++++++++++++++++ .../minecraft/chests/misc/Messages.java | 19 ++++++++ .../chests/serialize/AutoCraftingStorage.java | 27 ++++++++++++ 5 files changed, 95 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index c378491..e6f14f3 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ org.spigotmc spigot-api - 1.15.2-R0.1-SNAPSHOT + 1.14.2-R0.1-SNAPSHOT provided @@ -65,7 +65,7 @@ org.spigotmc plugin-annotations - 1.2.2-SNAPSHOT + 1.2.3-SNAPSHOT diff --git a/src/main/java/com/jamesdpeters/minecraft/chests/ChestsPlusPlus.java b/src/main/java/com/jamesdpeters/minecraft/chests/ChestsPlusPlus.java index 1661e7e..cff9b5c 100644 --- a/src/main/java/com/jamesdpeters/minecraft/chests/ChestsPlusPlus.java +++ b/src/main/java/com/jamesdpeters/minecraft/chests/ChestsPlusPlus.java @@ -6,24 +6,16 @@ import com.jamesdpeters.minecraft.chests.listeners.ChestLinkListener; import com.jamesdpeters.minecraft.chests.listeners.HopperListener; import com.jamesdpeters.minecraft.chests.listeners.InventoryListener; import com.jamesdpeters.minecraft.chests.listeners.WorldListener; -import com.jamesdpeters.minecraft.chests.serialize.AutoCraftingStorage; -import com.jamesdpeters.minecraft.chests.serialize.Config; +import com.jamesdpeters.minecraft.chests.maventemplates.BuildConstants; import com.jamesdpeters.minecraft.chests.misc.Permissions; import com.jamesdpeters.minecraft.chests.misc.Settings; import com.jamesdpeters.minecraft.chests.misc.Stats; -import com.jamesdpeters.minecraft.chests.serialize.InventoryStorage; -import com.jamesdpeters.minecraft.chests.serialize.LinkedChest; -import com.jamesdpeters.minecraft.chests.serialize.MaterialSerializer; -import com.jamesdpeters.minecraft.chests.serialize.RecipeSerializable; -import com.jamesdpeters.minecraft.chests.serialize.SpigotConfig; +import com.jamesdpeters.minecraft.chests.serialize.*; import com.jamesdpeters.minecraft.chests.versionchecker.UpdateCheck; -import com.jamesdpeters.minecraft.chests.maventemplates.BuildConstants; import fr.minuskube.inv.InventoryManager; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.configuration.serialization.ConfigurationSerialization; import org.bukkit.permissions.PermissionDefault; import org.bukkit.plugin.java.JavaPlugin; @@ -34,11 +26,9 @@ import org.bukkit.plugin.java.annotation.plugin.ApiVersion; import org.bukkit.plugin.java.annotation.plugin.Description; import org.bukkit.plugin.java.annotation.plugin.Plugin; import org.bukkit.plugin.java.annotation.plugin.author.Author; -import org.bukkit.scheduler.BukkitRunnable; - @Plugin(name = "ChestsPlusPlus", version = BuildConstants.VERSION) -@ApiVersion(ApiVersion.Target.v1_13) +@ApiVersion(ApiVersion.Target.v1_14) @Description(value = "Minecraft Spigot mod that enhances chests and hoppers, with ChestLinks and Hopper filters!") @Author(value = "jameslfc19") @Commands(@Command(name = "chestlink", desc = "Chests++ Commands.", aliases = {"cl"}, usage = "Use /chestlink help for more info.")) diff --git a/src/main/java/com/jamesdpeters/minecraft/chests/commands/RemoteChestCommand.java b/src/main/java/com/jamesdpeters/minecraft/chests/commands/RemoteChestCommand.java index 8fca7b6..65efe71 100644 --- a/src/main/java/com/jamesdpeters/minecraft/chests/commands/RemoteChestCommand.java +++ b/src/main/java/com/jamesdpeters/minecraft/chests/commands/RemoteChestCommand.java @@ -2,6 +2,7 @@ package com.jamesdpeters.minecraft.chests.commands; import com.jamesdpeters.minecraft.chests.crafting.Crafting; import com.jamesdpeters.minecraft.chests.inventories.ChestLinkMenu; +import com.jamesdpeters.minecraft.chests.serialize.AutoCraftingStorage; import com.jamesdpeters.minecraft.chests.serialize.Config; import com.jamesdpeters.minecraft.chests.misc.Messages; import com.jamesdpeters.minecraft.chests.misc.Permissions; @@ -195,6 +196,7 @@ public class RemoteChestCommand extends ServerCommand { else Messages.MUST_LOOK_AT_CHEST(player); return true; } + } // Crafting.craft(player); } @@ -293,4 +295,46 @@ public class RemoteChestCommand extends ServerCommand { } return false; } + + private static boolean memberAutoCraftCommand(String[] args, CommandSender sender){ + Player player = (Player) sender; + if(args.length > 4){ + if(sender.hasPermission(Permissions.MEMBER)){ + if(args[2].equals("add")) { + Player toAdd = Bukkit.getPlayer(args[4]); + AutoCraftingStorage storage = Config.getAutoCraftStorage(player.getUniqueId(), args[3]); + if (storage != null && storage.addMember(toAdd)) + Messages.ADDED_MEMBER(player, storage, args[4]); + else Messages.UNABLE_TO_ADD_MEMBER(player, args[4]); + } else if(args[2].equals("remove")){ + Player toAdd = Bukkit.getPlayer(args[4]); + AutoCraftingStorage storage = Config.getAutoCraftStorage(player.getUniqueId(), args[3]); + if(storage != null && storage.removeMember(toAdd)) + Messages.REMOVE_MEMBER(player, storage, args[4]); + else Messages.UNABLE_TO_REMOVE_MEMBER(player,args[4]); + } else { + player.sendMessage(ChatColor.RED+OPTIONS.MEMBER.commandHelp); + player.sendMessage(ChatColor.RED+OPTIONS.MEMBER.description); + } + } else { + Messages.NO_PERMISSION(player); + } + return true; + } else if(args.length > 3){ + if(sender.hasPermission(Permissions.MEMBER)){ + if(args[2].equals("list")) { + AutoCraftingStorage storage = Config.getAutoCraftStorage(player.getUniqueId(), args[3]); + if(storage != null){ + Messages.LIST_MEMBERS(player,storage); + return true; + } + } + } + } else { + player.sendMessage(ChatColor.RED+OPTIONS.MEMBER.commandHelp); + player.sendMessage(ChatColor.RED+OPTIONS.MEMBER.description); + return true; + } + return false; + } } diff --git a/src/main/java/com/jamesdpeters/minecraft/chests/misc/Messages.java b/src/main/java/com/jamesdpeters/minecraft/chests/misc/Messages.java index 1d58ad2..3ff35c2 100644 --- a/src/main/java/com/jamesdpeters/minecraft/chests/misc/Messages.java +++ b/src/main/java/com/jamesdpeters/minecraft/chests/misc/Messages.java @@ -1,5 +1,6 @@ package com.jamesdpeters.minecraft.chests.misc; +import com.jamesdpeters.minecraft.chests.serialize.AutoCraftingStorage; import com.jamesdpeters.minecraft.chests.serialize.Config; import com.jamesdpeters.minecraft.chests.serialize.InventoryStorage; import org.bukkit.ChatColor; @@ -47,6 +48,11 @@ public class Messages { target.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD+TAG+" Current Members: "+Utils.prettyPrintPlayers(ChatColor.GREEN,storage.getMembers())); } + public static void ADDED_MEMBER(Player target, AutoCraftingStorage storage, String added){ + target.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD+TAG+" Succesfully added "+ChatColor.WHITE+added+ChatColor.GREEN+" to AutoCraft group "+ChatColor.WHITE+storage.getIdentifier()); + target.sendMessage(ChatColor.GREEN+""+ChatColor.BOLD+TAG+" Current Members: "+Utils.prettyPrintPlayers(ChatColor.GREEN,storage.getMembers())); + } + public static void UNABLE_TO_ADD_MEMBER(Player target, String toAdd){ target.sendMessage(ChatColor.RED+""+ChatColor.BOLD+TAG+" Unable to add player "+toAdd+" to ChestLink!"); } @@ -56,6 +62,11 @@ public class Messages { target.sendMessage(ChatColor.RED+""+ChatColor.BOLD+TAG+" Current Members: "+Utils.prettyPrintPlayers(ChatColor.RED,storage.getMembers())); } + public static void REMOVE_MEMBER(Player target, AutoCraftingStorage storage, String removed){ + target.sendMessage(ChatColor.RED+""+ChatColor.BOLD+TAG+" Succesfully removed "+ChatColor.WHITE+removed+ChatColor.RED+" from AutoCraft group "+ChatColor.WHITE+storage.getIdentifier()); + target.sendMessage(ChatColor.RED+""+ChatColor.BOLD+TAG+" Current Members: "+Utils.prettyPrintPlayers(ChatColor.RED,storage.getMembers())); + } + public static void UNABLE_TO_REMOVE_MEMBER(Player target, String toAdd){ target.sendMessage(ChatColor.RED+""+ChatColor.BOLD+TAG+" Unable to remove player "+toAdd+" from ChestLink! Were they already removed?"); } @@ -76,6 +87,14 @@ public class Messages { } } + public static void LIST_MEMBERS(Player target, AutoCraftingStorage storage){ + if(storage.getMembers() != null){ + target.sendMessage(ChatColor.GREEN+"Members of AutoCraft group "+ChatColor.WHITE+storage.getIdentifier()+": "+Utils.prettyPrintPlayers(ChatColor.GREEN,storage.getMembers())); + } else { + target.sendMessage(ChatColor.YELLOW+"There are no additional members in the group: "+ChatColor.WHITE+storage.getIdentifier()); + } + } + public static void SET_PUBLIC(Player target, InventoryStorage storage){ target.sendMessage(ChatColor.GREEN+"Publicity for ChestLink "+storage.getIdentifier()+" is set to: "+ChatColor.WHITE+storage.isPublic()); } diff --git a/src/main/java/com/jamesdpeters/minecraft/chests/serialize/AutoCraftingStorage.java b/src/main/java/com/jamesdpeters/minecraft/chests/serialize/AutoCraftingStorage.java index 481d50e..f1b408b 100644 --- a/src/main/java/com/jamesdpeters/minecraft/chests/serialize/AutoCraftingStorage.java +++ b/src/main/java/com/jamesdpeters/minecraft/chests/serialize/AutoCraftingStorage.java @@ -142,4 +142,31 @@ public class AutoCraftingStorage implements ConfigurationSerializable { virtualCraftingHolder.setUpdatingRecipe(false); virtualCraftingHolder.updateGUI(); } + + public boolean addMember(Player player){ + if(player != null){ + if(members == null) members = new ArrayList<>(); + if(bukkitMembers == null) bukkitMembers = new ArrayList<>(); + members.add(player.getUniqueId().toString()); + bukkitMembers.add(player); + return true; + } + return false; + } + + public boolean removeMember(Player player){ + if(player != null){ + if(bukkitMembers != null) bukkitMembers.remove(player); + if(members != null){ + members.remove(player.getUniqueId().toString()); + return true; + } + } + return false; + } + + public List getMembers(){ + return bukkitMembers; + } + }