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;
+ }
+
}