+ public static HashMap<UUID, List<Integer>> slotsBuffer = new HashMap<UUID, List<Integer>>();
+
+ public static List<UUID> cooldown = new ArrayList<UUID>();
+
+ private HashMap<UUID, List<Entry<Integer, ItemStack>>> toBeKeeped = new HashMap<UUID, List<Entry<Integer, ItemStack>>>(); //will reset if player didnt respawn in time
+
+ public void sendCooldownMessage(Player player, String msg) {
+ if(!cooldown.contains(player.getUniqueId())) {
+ player.sendMessage(msg);
+ cooldown.add(player.getUniqueId());
+ Timer.cooldown(player);
+ }
+ }
+
+ @EventHandler
+ public void onPlayerDropItem(PlayerDropItemEvent event) {
+ sendCooldownMessage(player, ADMain.prefix + ChatColor.BLUE + "Item is in the filter list! You will not be able to drop items the filtered list until you remove it with /antidrop remove.");
+ sendCooldownMessage(player, ADMain.prefix + ChatColor.BLUE + "Slot is locked! If you want to unlock it, do /antidrop lockslot and click on the slot you want to unlock.");
+ sendCooldownMessage(player, ADMain.prefix + ChatColor.BLUE + "Item is in the filter list! You will not be able to remove the items in the filtered list from inventory until you remove it with /antidrop remove.");
+ sendCooldownMessage(player, ADMain.prefix + ChatColor.BLUE + "Slot is locked! If you want to unlock it, do /antidrop lockslot and click on the slot you want to unlock.");
+ public static HashMap<String, ItemStack> checks = new HashMap<String, ItemStack>();
+ public static HashMap<String, ItemStack> checkOffs = new HashMap<String, ItemStack>();
+ public static ItemStack locked;
+ public static ItemStack submit;
+ //Player -> List of filters(List of things to be filtered by this filter(Entry of filter types and values()))
+ public static HashMap<UUID, List<List<Entry<String, Object>>>> filterParam = new HashMap<UUID, List<List<Entry<String, Object>>>>();
+ public static HashMap<UUID, List<Integer>> slotParam = new HashMap<UUID, List<Integer>>();
+
+ public static Enchantment glow = null;
+
+ public static void initItems() { //known bug: any items thats same as the checking items is gonna break the system in some ways //probably will not fix
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ locked = new ItemStack(Material.STAINED_GLASS_PANE);
+ locked.setDurability((short) 14);
+ locked = setItemValue(locked, ChatColor.RED + "Locked", Arrays.asList(ChatColor.GRAY + "Any Items in this slot will be locked", ChatColor.GRAY + "and will not be able to be moved", ChatColor.GRAY + "or dropped until you unlocked it."), ConfigHandler.glow);
+ ItemStack checkBase = new ItemStack(Material.WOOL, 1);
+ checkBase.setDurability((short) 5);
+ checks = new HashMap<String, ItemStack>();
+ checks.put("Name", setItemValue(checkBase, ChatColor.AQUA + "Name check", Arrays.asList(ChatColor.DARK_BLUE + "The filter will prevent the dropping of any", ChatColor.DARK_BLUE + "items with the same name in your inventory."), ConfigHandler.glow));
+ checks.put("Lore", setItemValue(checkBase, ChatColor.AQUA + "Lore check", Arrays.asList(ChatColor.DARK_BLUE + "The filter will prevent the dropping of any", ChatColor.DARK_BLUE + "items with the same lore in your inventory."), ConfigHandler.glow));
+ checks.put("Exact", setItemValue(checkBase, ChatColor.AQUA + "Exact Item", Arrays.asList(ChatColor.DARK_BLUE + "The filter will prevent the dropping of any items", ChatColor.DARK_BLUE + "that is exactly the same in your inventory",
+ ChatColor.DARK_BLUE + "Great for items with custom properties like books and banners.",
+ ChatColor.DARK_BLUE + "Note: Item amount is ignored."), ConfigHandler.glow));
+ checks.put("Type", setItemValue(checkBase, ChatColor.AQUA + "Type check", Arrays.asList(ChatColor.DARK_BLUE + "The filter will prevent the dropping of any items", ChatColor.DARK_BLUE + "that is the same material in your inventory."), ConfigHandler.glow));
+ checks.put("Damage", setItemValue(checkBase, ChatColor.AQUA + "Damage check", Arrays.asList(ChatColor.DARK_BLUE + "The filter will prevent the dropping of any", ChatColor.DARK_BLUE + "items with the same damage value in your inventory.",
+ ChatColor.DARK_BLUE + "Useful for if you want to keep items",
+ ChatColor.DARK_BLUE + "like specific color of wool only."), ConfigHandler.glow));
+ if(!ConfigHandler.disableCheck.isEmpty()) {
+ for(int i = 0; i < ConfigHandler.disableCheck.size(); i++) {