From cfb37b97e4c16ce2ce5319f21fa35bf17af746df Mon Sep 17 00:00:00 2001 From: nicuch Date: Sat, 11 Jan 2020 00:30:35 +0200 Subject: Everything --- pom.xml | 9 +++-- .../java/com/leonardobishop/quests/QuestsAPI.java | 7 +--- .../leonardobishop/quests/QuestsConfigLoader.java | 8 ++-- .../com/leonardobishop/quests/bstats/Metrics.java | 21 +++++----- .../quests/commands/CommandQuests.java | 34 +++++++--------- .../quests/events/EventInventory.java | 23 ++++++----- .../quests/events/EventPlayerJoin.java | 9 +---- .../java/com/leonardobishop/quests/obj/Items.java | 2 +- .../com/leonardobishop/quests/obj/Options.java | 2 +- .../quests/obj/misc/QMenuCancel.java | 8 ++-- .../quests/obj/misc/QMenuCategory.java | 4 +- .../leonardobishop/quests/obj/misc/QMenuDaily.java | 21 +++++++--- .../leonardobishop/quests/obj/misc/QMenuQuest.java | 8 ++-- .../quests/obj/misc/creator/QMenuCreator.java | 15 +++---- .../com/leonardobishop/quests/player/QPlayer.java | 23 +++++++---- .../quests/player/QPlayerManager.java | 6 +-- .../com/leonardobishop/quests/quests/Category.java | 2 +- .../com/leonardobishop/quests/quests/Quest.java | 22 +++++----- .../leonardobishop/quests/quests/QuestManager.java | 5 ++- .../com/leonardobishop/quests/quests/Task.java | 4 +- .../quests/quests/tasktypes/ConfigValue.java | 6 +-- .../quests/quests/tasktypes/TaskType.java | 4 +- .../tasktypes/types/BuildingCertainTaskType.java | 7 +--- .../tasktypes/types/CitizensDeliverTaskType.java | 10 ++--- .../quests/tasktypes/types/DealDamageTaskType.java | 7 ++-- .../quests/tasktypes/types/FarmingTaskType.java | 2 +- .../quests/tasktypes/types/FishingTaskType.java | 2 - .../quests/tasktypes/types/InventoryTaskType.java | 11 ++--- .../quests/tasktypes/types/MilkingTaskType.java | 1 + .../tasktypes/types/MiningCertainTaskType.java | 7 +--- .../quests/tasktypes/types/PlaytimeTaskType.java | 47 ++++++++++------------ 31 files changed, 163 insertions(+), 174 deletions(-) diff --git a/pom.xml b/pom.xml index 007660d8..5c6b2a71 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,8 @@ Quests - ${version} + ${project.version} + UTF-8 @@ -109,6 +110,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.8.1 8 8 @@ -118,17 +120,18 @@ org.apache.maven.plugins maven-antrun-plugin + 1.8 replace prepare-package - + - + run diff --git a/src/main/java/com/leonardobishop/quests/QuestsAPI.java b/src/main/java/com/leonardobishop/quests/QuestsAPI.java index d36fece3..aaacea55 100644 --- a/src/main/java/com/leonardobishop/quests/QuestsAPI.java +++ b/src/main/java/com/leonardobishop/quests/QuestsAPI.java @@ -3,6 +3,7 @@ package com.leonardobishop.quests; import com.leonardobishop.quests.player.QPlayerManager; import com.leonardobishop.quests.quests.QuestManager; import com.leonardobishop.quests.quests.tasktypes.TaskTypeManager; +import org.bukkit.Bukkit; /** * This contains some methods from the main Quests class which @@ -16,11 +17,7 @@ import com.leonardobishop.quests.quests.tasktypes.TaskTypeManager; */ public class QuestsAPI { - private static Quests plugin; - - protected static void initialise(Quests plugin) { - QuestsAPI.plugin = plugin; - } + private final static Quests plugin = (Quests) Bukkit.getPluginManager().getPlugin("Quests") ; public static QuestManager getQuestManager() { return plugin.getQuestManager(); diff --git a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java index 3b45b523..24a2f19f 100644 --- a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java +++ b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java @@ -20,8 +20,8 @@ import java.util.logging.Level; public class QuestsConfigLoader { - private Map brokenFiles = new HashMap<>(); - private Quests plugin; + private final Map brokenFiles = new HashMap<>(); + private final Quests plugin; public QuestsConfigLoader(Quests plugin) { this.plugin = plugin; @@ -36,7 +36,7 @@ public class QuestsConfigLoader { // test CONFIG file integrity try { YamlConfiguration config = new YamlConfiguration(); - config.load(new File(String.valueOf(plugin.getDataFolder() + File.separator + "config.yml"))); + config.load(new File(plugin.getDataFolder() + File.separator + "config.yml")); } catch (Exception ex) { brokenFiles.put("
config.yml", ConfigLoadError.MALFORMED_YAML); plugin.setBrokenConfig(true); @@ -136,7 +136,7 @@ public class QuestsConfigLoader { List cLoreStarted = config.getStringList(path + ".lore-started"); String name; - Material type = null; + Material type; int data = 0; List loreNormal = new ArrayList<>(); if (cLoreNormal != null) { diff --git a/src/main/java/com/leonardobishop/quests/bstats/Metrics.java b/src/main/java/com/leonardobishop/quests/bstats/Metrics.java index 88ae12f3..c2fdf1ae 100644 --- a/src/main/java/com/leonardobishop/quests/bstats/Metrics.java +++ b/src/main/java/com/leonardobishop/quests/bstats/Metrics.java @@ -288,7 +288,7 @@ public class Metrics { if (logFailedRequests) { this.plugin.getLogger().log(Level.SEVERE, "Encountered unexpected exception", e); } - continue; // continue looping since we cannot do any other thing. + // continue looping since we cannot do any other thing. } } } catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { } @@ -299,17 +299,14 @@ public class Metrics { data.add("plugins", pluginData); // Create a new thread for the connection to the bStats server - new Thread(new Runnable() { - @Override - public void run() { - try { - // Send the data - sendData(plugin, data); - } catch (Exception e) { - // Something went wrong! :( - if (logFailedRequests) { - plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); - } + new Thread(() -> { + try { + // Send the data + sendData(plugin, data); + } catch (Exception e) { + // Something went wrong! :( + if (logFailedRequests) { + plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); } } }).start(); diff --git a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java index d7299fdb..159ebb41 100644 --- a/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java +++ b/src/main/java/com/leonardobishop/quests/commands/CommandQuests.java @@ -16,19 +16,20 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; import java.util.Map; import java.util.UUID; public class CommandQuests implements CommandExecutor { - private Quests plugin; + private final Quests plugin; public CommandQuests(Quests plugin) { this.plugin = plugin; } + @SuppressWarnings("deprecation") + @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (plugin.isBrokenConfig()) { sender.sendMessage(ChatColor.RED + "The main config must be in tact before quests can be used. Quests has failed to load the following files:"); @@ -80,17 +81,14 @@ public class CommandQuests implements CommandExecutor { return true; } else if (args[1].equalsIgnoreCase("update")) { sender.sendMessage(ChatColor.GRAY + "Checking for updates..."); - new BukkitRunnable() { - @Override - public void run() { - plugin.getUpdater().check(); - if (plugin.getUpdater().isUpdateReady()) { - sender.sendMessage(plugin.getUpdater().getMessage()); - } else { - sender.sendMessage(ChatColor.GRAY + "No updates were found."); - } + Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { + plugin.getUpdater().check(); + if (plugin.getUpdater().isUpdateReady()) { + sender.sendMessage(plugin.getUpdater().getMessage()); + } else { + sender.sendMessage(ChatColor.GRAY + "No updates were found."); } - }.runTaskAsynchronously(plugin); + }); return true; } } else if (args.length == 3) { @@ -134,14 +132,12 @@ public class CommandQuests implements CommandExecutor { showAdminHelp(sender, "opengui"); return true; } else if (args[1].equalsIgnoreCase("moddata")) { - Player player; - OfflinePlayer ofp; + OfflinePlayer ofp = Bukkit.getOfflinePlayer(args[3]); UUID uuid; String name; - if ((player = Bukkit.getPlayer(args[3])) != null) { - uuid = player.getUniqueId(); - name = player.getName(); - } else if ((ofp = Bukkit.getOfflinePlayer(args[3])) != null) { + // Player.class is a superclass for OfflinePlayer. + // getofflinePlayer return a player regardless if exists or not + if (ofp != null) { uuid = ofp.getUniqueId(); name = ofp.getName(); } else { @@ -226,7 +222,7 @@ public class CommandQuests implements CommandExecutor { Quest quest = plugin.getQuestManager().getQuestById(args[4]); if (quest == null) { sender.sendMessage(Messages.COMMAND_QUEST_START_DOESNTEXIST.getMessage().replace("{quest}", args[4])); - success = true; + //success = true; return true; } if (args[2].equalsIgnoreCase("reset")) { diff --git a/src/main/java/com/leonardobishop/quests/events/EventInventory.java b/src/main/java/com/leonardobishop/quests/events/EventInventory.java index a791500e..1ac57ed7 100644 --- a/src/main/java/com/leonardobishop/quests/events/EventInventory.java +++ b/src/main/java/com/leonardobishop/quests/events/EventInventory.java @@ -13,6 +13,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryType; import java.util.ArrayList; import java.util.HashMap; @@ -34,7 +35,7 @@ public class EventInventory implements Listener { /** * Add a player to the tracker so the event can watch them in the menu. * - * @param uuid UUID of player to track + * @param uuid UUID of player to track * @param qMenu The menu they have open */ public static void track(UUID uuid, QMenu qMenu) { @@ -46,6 +47,10 @@ public class EventInventory implements Listener { // check if the player has a quest menu open if (tracker.containsKey(event.getWhoClicked().getUniqueId())) { event.setCancelled(true); + if (event.getClickedInventory() == null) + return; //The player clicked outside the inventory + if (event.getClickedInventory().getType() == InventoryType.PLAYER) + return; //The clicked inventory is a player inventory type QMenu qMenu = tracker.get(event.getWhoClicked().getUniqueId()); // **** MENU TYPE: QUESTS IN CATEGORY/ALL QUESTS **** @@ -58,18 +63,20 @@ public class EventInventory implements Listener { event.getWhoClicked().openInventory(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() - 1)); } else if (qMenuQuest.getPageNextLocation() == event.getSlot()) { + if (!event.getClickedInventory().equals(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() + 1))) + return; buffer.add(event.getWhoClicked().getUniqueId()); event.getWhoClicked().openInventory(qMenuQuest.toInventory(qMenuQuest.getCurrentPage() + 1)); - // return to QMenuCategory (category listing) + // return to QMenuCategory (category listing) } else if (Options.CATEGORIES_ENABLED.getBooleanValue() && qMenuQuest.getBackButtonLocation() == event.getSlot()) { QMenuCategory qMenuCategory = qMenuQuest.getSuperMenu(); buffer.add(event.getWhoClicked().getUniqueId()); event.getWhoClicked().openInventory(qMenuCategory.toInventory(1)); tracker.put(event.getWhoClicked().getUniqueId(), qMenuCategory); - // handle when player wishes to start a quest by matching the slot they clicked to a predetermined - // map which maps quests to slots so you do not have to compare the item stack + // handle when player wishes to start a quest by matching the slot they clicked to a predetermined + // map which maps quests to slots so you do not have to compare the item stack } else if (event.getSlot() < qMenuQuest.getPageSize() && qMenuQuest.getSlotsToMenu().containsKey(event.getSlot() + (((qMenuQuest .getCurrentPage()) - 1) * qMenuQuest.getPageSize()))) { if (Options.QUEST_AUTOSTART.getBooleanValue()) return; @@ -88,7 +95,7 @@ public class EventInventory implements Listener { } } - // **** MENU TYPE: CATEGORY LISTING **** + // **** MENU TYPE: CATEGORY LISTING **** } else if (qMenu instanceof QMenuCategory) { QMenuCategory qMenuCategory = (QMenuCategory) qMenu; @@ -101,7 +108,7 @@ public class EventInventory implements Listener { } } - // **** MENU TYPE: CANCELLING QUEST MENU **** + // **** MENU TYPE: CANCELLING QUEST MENU **** } else if (qMenu instanceof QMenuCancel) { QMenuCancel qMenuCancel = (QMenuCancel) qMenu; @@ -126,9 +133,7 @@ public class EventInventory implements Listener { // an anticipated menu change if (buffer.contains(event.getPlayer().getUniqueId())) { buffer.remove(event.getPlayer().getUniqueId()); - } else if (tracker.containsKey(event.getPlayer().getUniqueId())) { - tracker.remove(event.getPlayer().getUniqueId()); - } + } else tracker.remove(event.getPlayer().getUniqueId()); } } diff --git a/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java b/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java index 3ddf18cd..904bf619 100644 --- a/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java +++ b/src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java @@ -2,10 +2,10 @@ package com.leonardobishop.quests.events; import com.leonardobishop.quests.Quests; import com.leonardobishop.quests.obj.Messages; +import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.scheduler.BukkitRunnable; import java.util.UUID; @@ -26,12 +26,7 @@ public class EventPlayerJoin implements Listener { } if (plugin.getUpdater().isUpdateReady() && event.getPlayer().hasPermission("quests.admin")) { // delay for a bit so they actually see the message - new BukkitRunnable() { - @Override - public void run() { - event.getPlayer().sendMessage(plugin.getUpdater().getMessage()); - } - }.runTaskLater(plugin, 50L); + Bukkit.getScheduler().runTaskLater(this.plugin, () -> event.getPlayer().sendMessage(plugin.getUpdater().getMessage()), 50L); } } diff --git a/src/main/java/com/leonardobishop/quests/obj/Items.java b/src/main/java/com/leonardobishop/quests/obj/Items.java index d26ae1eb..43647515 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Items.java +++ b/src/main/java/com/leonardobishop/quests/obj/Items.java @@ -16,7 +16,7 @@ public enum Items { QUEST_CANCEL_YES("gui.quest-cancel-yes"), QUEST_CANCEL_NO("gui.quest-cancel-no"); - String path; + private final String path; Items(String path) { this.path = path; diff --git a/src/main/java/com/leonardobishop/quests/obj/Options.java b/src/main/java/com/leonardobishop/quests/obj/Options.java index 84230a7b..404c7fed 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Options.java +++ b/src/main/java/com/leonardobishop/quests/obj/Options.java @@ -22,7 +22,7 @@ public enum Options { ALLOW_QUEST_CANCEL("options.allow-quest-cancel"), QUEST_AUTOSTART("options.quest-autostart"); - private String path; + private final String path; Options(String path) { this.path = path; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java index f705fe53..b00af493 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java @@ -17,10 +17,10 @@ import java.util.Map; public class QMenuCancel implements QMenu { - private HashMap slotsToQuestIds = new HashMap<>(); - private QMenuQuest superMenu; - private QPlayer owner; - private Quest quest; + private final HashMap slotsToQuestIds = new HashMap<>(); + private final QMenuQuest superMenu; + private final QPlayer owner; + private final Quest quest; public QMenuCancel(QPlayer owner, QMenuQuest superMenu, Quest quest) { this.owner = owner; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java index 38da8d09..3418831f 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java @@ -18,8 +18,8 @@ import java.util.List; public class QMenuCategory implements QMenu { private final int pageSize = 45; - private HashMap slotsToMenuQuest = new HashMap<>(); - private QPlayer owner; + private final HashMap slotsToMenuQuest = new HashMap<>(); + private final QPlayer owner; public QMenuCategory(QPlayer owner) { this.owner = owner; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java index 6c0f21e8..220f288a 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java @@ -15,13 +15,13 @@ import java.util.Map; public class QMenuDaily implements QMenu { - private HashMap slotsToQuestIds = new HashMap<>(); + private final HashMap slotsToQuestIds = new HashMap<>(); private int backButtonLocation = -1; private boolean backButtonEnabled = true; - private QMenuCategory superMenu; + private final QMenuCategory superMenu; private String categoryName; private final int pageSize = 45; - private QPlayer owner; + private final QPlayer owner; public QMenuDaily(QPlayer owner, QMenuCategory superMenu) { this.owner = owner; @@ -58,7 +58,7 @@ public class QMenuDaily implements QMenu { int pageMax = pageSize * page; String title = Options.GUITITLE_DAILY_QUESTS.toString(); - Inventory inventory = Bukkit.createInventory(null, 27, title); + // Inventory inventory = Bukkit.createInventory(null, 27, title); //TODO daily quests @@ -95,8 +95,8 @@ public class QMenuDaily implements QMenu { // } // invSlot++; // } - - return inventory; +// return inventory; + return Bukkit.createInventory(null, 27, title); } public ItemStack replaceItemStack(ItemStack is, Map placeholders) { @@ -114,4 +114,13 @@ public class QMenuDaily implements QMenu { newItemStack.setItemMeta(ism); return newItemStack; } + + //Implement too + public QMenuCategory getSuperMenu() { + return this.superMenu; + } + + public int getPageSize() { + return this.pageSize; + } } diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java index 4d9c00fa..6e4cdb6d 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java @@ -19,16 +19,16 @@ import java.util.concurrent.TimeUnit; */ public class QMenuQuest implements QMenu { - private HashMap slotsToQuestIds = new HashMap<>(); + private final HashMap slotsToQuestIds = new HashMap<>(); private int backButtonLocation = -1; private int pagePrevLocation = -1; private int pageNextLocation = -1; private int currentPage = -1; private boolean backButtonEnabled = true; - private QMenuCategory superMenu; - private String categoryName; + private final QMenuCategory superMenu; + private final String categoryName; private final int pageSize = 45; - private QPlayer owner; + private final QPlayer owner; public QMenuQuest(QPlayer owner, String categoryName, QMenuCategory superMenu) { this.owner = owner; diff --git a/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java b/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java index 235bc23e..eb5300e7 100644 --- a/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java +++ b/src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java @@ -1,21 +1,15 @@ package com.leonardobishop.quests.obj.misc.creator; -import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.obj.misc.QMenu; +import com.leonardobishop.quests.player.QPlayer; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; public class QMenuCreator implements QMenu { - private QPlayer owner; + private final QPlayer owner; public QMenuCreator(QPlayer owner) { this.owner = owner; @@ -34,7 +28,7 @@ public class QMenuCreator implements QMenu { public Inventory toInventory(int page) { String title = "Quest Creator"; - Inventory inventory = Bukkit.createInventory(null, 9, title); +// Inventory inventory = Bukkit.createInventory(null, 9, title); // // ItemStack newQuest = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5); // ItemMeta newQuestM = newQuest.getItemMeta(); @@ -63,8 +57,9 @@ public class QMenuCreator implements QMenu { // inventory.setItem(2, newQuest); // inventory.setItem(4, editQuest); // inventory.setItem(6, removeQuest); +// return inventory; - return inventory; + return Bukkit.createInventory(null, 9, title); } } diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayer.java b/src/main/java/com/leonardobishop/quests/player/QPlayer.java index c2f0d0d9..b93f0ae5 100644 --- a/src/main/java/com/leonardobishop/quests/player/QPlayer.java +++ b/src/main/java/com/leonardobishop/quests/player/QPlayer.java @@ -11,17 +11,14 @@ import com.leonardobishop.quests.quests.Quest; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; public class QPlayer { - private UUID uuid; - private QuestProgressFile questProgressFile; + private final UUID uuid; + private final QuestProgressFile questProgressFile; private boolean onlyDataLoaded; - private Quests plugin; + private final Quests plugin; public QPlayer(UUID uuid, QuestProgressFile questProgressFile, Quests plugin) { this(uuid, questProgressFile, false, plugin); @@ -151,4 +148,16 @@ public class QPlayer { public QuestProgressFile setQuestProgressFile() { return questProgressFile; } + + @Override //Used by java GC + public boolean equals(Object o) { + if (!(o instanceof QPlayer)) return false; + QPlayer qPlayer = (QPlayer) o; + return this.uuid == qPlayer.getUuid(); + } + + @Override //Used by java GC + public int hashCode() { + return uuid.hashCode() * 73; //uuid hash * prime number + } } diff --git a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java index 27790f76..dbb41885 100644 --- a/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java +++ b/src/main/java/com/leonardobishop/quests/player/QPlayerManager.java @@ -11,13 +11,13 @@ import java.util.*; public class QPlayerManager { - private Quests plugin; + private final Quests plugin; public QPlayerManager(Quests plugin) { this.plugin = plugin; } - private Map qPlayers = new HashMap<>(); + private final Map qPlayers = new HashMap<>(); public void addPlayer(QPlayer qPlayer) { qPlayers.put(qPlayer.getUuid(), qPlayer); @@ -49,7 +49,7 @@ public class QPlayerManager { File file = new File(plugin.getDataFolder() + File.separator + "playerdata" + File.separator + uuid.toString() + ".yml"); if (file.exists()) { YamlConfiguration data = YamlConfiguration.loadConfiguration(file); - if (data.contains("quest-progress")) { + if (data.isConfigurationSection("quest-progress")) { //Same job as "isSet" + it checks if is CfgSection for (String id : data.getConfigurationSection("quest-progress").getKeys(false)) { boolean started = data.getBoolean("quest-progress." + id + ".started"); boolean completed = data.getBoolean("quest-progress." + id + ".completed"); diff --git a/src/main/java/com/leonardobishop/quests/quests/Category.java b/src/main/java/com/leonardobishop/quests/quests/Category.java index 8b4a69e5..dd2683ed 100644 --- a/src/main/java/com/leonardobishop/quests/quests/Category.java +++ b/src/main/java/com/leonardobishop/quests/quests/Category.java @@ -10,7 +10,7 @@ public class Category { private String id; private ItemStack displayItem; private boolean permissionRequired; - private List registeredQuestIds = new ArrayList<>(); + private final List registeredQuestIds = new ArrayList<>(); public Category(String id, ItemStack displayItem, boolean permissionRequired) { this.id = id; diff --git a/src/main/java/com/leonardobishop/quests/quests/Quest.java b/src/main/java/com/leonardobishop/quests/quests/Quest.java index a54a06bd..ab02bd19 100644 --- a/src/main/java/com/leonardobishop/quests/quests/Quest.java +++ b/src/main/java/com/leonardobishop/quests/quests/Quest.java @@ -9,16 +9,16 @@ public class Quest implements Comparable { private Map tasks = new HashMap<>(); //TODO: maybe store by > since we never get task by id, but always get tasks by type. - private String id; - private QItemStack displayItem; - private List rewards; - private List requirements; - private List rewardString; - private List startString; - private boolean repeatable; - private boolean cooldownEnabled; - private int cooldown; - private int sortOrder; + private final String id; + private final QItemStack displayItem; + private final List rewards; + private final List requirements; + private final List rewardString; + private final List startString; + private final boolean repeatable; + private final boolean cooldownEnabled; + private final int cooldown; + private final int sortOrder; private boolean permissionRequired; private String categoryid; @@ -115,6 +115,6 @@ public class Quest implements Comparable { @Override public int compareTo(Quest quest) { - return(sortOrder - quest.sortOrder); + return (sortOrder - quest.sortOrder); } } diff --git a/src/main/java/com/leonardobishop/quests/quests/QuestManager.java b/src/main/java/com/leonardobishop/quests/quests/QuestManager.java index e26a99e3..35c13efc 100644 --- a/src/main/java/com/leonardobishop/quests/quests/QuestManager.java +++ b/src/main/java/com/leonardobishop/quests/quests/QuestManager.java @@ -6,7 +6,7 @@ import java.util.*; public class QuestManager { - private Quests plugin; + private final Quests plugin; public QuestManager(Quests plugin) { this.plugin = plugin; @@ -40,4 +40,7 @@ public class QuestManager { return null; } + public Quests getPlugin() { + return this.plugin; + } } diff --git a/src/main/java/com/leonardobishop/quests/quests/Task.java b/src/main/java/com/leonardobishop/quests/quests/Task.java index 55b6845f..eb9cd1b4 100644 --- a/src/main/java/com/leonardobishop/quests/quests/Task.java +++ b/src/main/java/com/leonardobishop/quests/quests/Task.java @@ -5,7 +5,7 @@ import java.util.Map; public class Task { - private Map configValues = new HashMap<>(); + private final Map configValues = new HashMap<>(); private String id; private String type; @@ -24,7 +24,7 @@ public class Task { } public Object getConfigValue(String key) { - return configValues.getOrDefault(key, null); + return configValues.getOrDefault(key, null); //??? this will return null without the need of `OrDefault(key, null)` } public Map getConfigValues() { diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/ConfigValue.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/ConfigValue.java index e4bfb08e..4232da32 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/ConfigValue.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/ConfigValue.java @@ -5,9 +5,9 @@ package com.leonardobishop.quests.quests.tasktypes; */ public final class ConfigValue { - private String key; - private boolean required; - private String description; + private final String key; + private final boolean required; + private final String description; public ConfigValue(String key, boolean required, String description) { this.key = key; diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java index d3d00962..66ce2938 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java @@ -15,8 +15,8 @@ import java.util.List; */ public abstract class TaskType implements Listener { - private List quests = new ArrayList<>(); - private String type; + private final List quests = new ArrayList<>(); + private final String type; private String author; private String description; diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java index a4b0d1d5..cc46906f 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java @@ -85,6 +85,7 @@ public final class BuildingCertainTaskType extends TaskType { } } + @SuppressWarnings("deprecation") private boolean matchBlock(Task task, Block block) { Material material; Object configBlock = task.getConfigValue("block"); @@ -97,11 +98,7 @@ public final class BuildingCertainTaskType extends TaskType { short blockData = block.getData(); if (blockType.equals(material)) { - if (configData != null && (((int) blockData) != ((int) configData))) { - return false; - } else { - return true; - } + return configData == null || (((int) blockData) == ((int) configData)); } return false; } diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java index 8510c30b..16bcdf2a 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java @@ -10,6 +10,7 @@ import com.leonardobishop.quests.quests.Task; import com.leonardobishop.quests.quests.tasktypes.ConfigValue; import com.leonardobishop.quests.quests.tasktypes.TaskType; import net.citizensnpcs.api.event.NPCRightClickEvent; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; @@ -17,7 +18,6 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.inventory.ItemStack; -import org.bukkit.scheduler.BukkitRunnable; import java.util.ArrayList; import java.util.List; @@ -42,14 +42,10 @@ public final class CitizensDeliverTaskType extends TaskType { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onNPCClick(NPCRightClickEvent event) { - new BukkitRunnable() { - @Override - public void run() { - checkInventory(event.getClicker(), event.getNPC().getName()); - } - }.runTaskLater(Quests.get(), 1L); + Bukkit.getScheduler().runTaskLater(Quests.get(), () -> checkInventory(event.getClicker(), event.getNPC().getName()), 1L); } + @SuppressWarnings("deprecation") private void checkInventory(Player player, String citizenName) { QPlayer qPlayer = Quests.get().getPlayerManager().getPlayer(player.getUniqueId()); if (qPlayer == null) { diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java index 8a9677c0..b587a1e1 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java @@ -55,10 +55,9 @@ public final class DealDamageTaskType extends TaskType { continue; } - Double progressDamage; + double progressDamage; int damageNeeded = (int) task.getConfigValue("amount"); - Double damageNeededDouble = (double) damageNeeded; - + if (taskProgress.getProgress() == null) { progressDamage = 0.0; } else { @@ -67,7 +66,7 @@ public final class DealDamageTaskType extends TaskType { taskProgress.setProgress(progressDamage + damage); - if (((double) taskProgress.getProgress()) >= damageNeededDouble) { + if (((double) taskProgress.getProgress()) >= (double) damageNeeded) { taskProgress.setCompleted(true); } } diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java index b96a57ea..ce612417 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java @@ -9,7 +9,6 @@ import com.leonardobishop.quests.quests.Quest; import com.leonardobishop.quests.quests.Task; import com.leonardobishop.quests.quests.tasktypes.ConfigValue; import com.leonardobishop.quests.quests.tasktypes.TaskType; -import org.apache.commons.lang.StringUtils; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -34,6 +33,7 @@ public final class FarmingTaskType extends TaskType { return creatorConfigValues; } + @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onBlockBreak(BlockBreakEvent event) { //TODO: finish this diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java index 0c04a98a..c724dec1 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java @@ -9,8 +9,6 @@ import com.leonardobishop.quests.quests.Quest; import com.leonardobishop.quests.quests.Task; import com.leonardobishop.quests.quests.tasktypes.ConfigValue; import com.leonardobishop.quests.quests.tasktypes.TaskType; -import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java index 97710a96..c30aacaf 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java @@ -10,7 +10,7 @@ import com.leonardobishop.quests.quests.Quest; import com.leonardobishop.quests.quests.Task; import com.leonardobishop.quests.quests.tasktypes.ConfigValue; import com.leonardobishop.quests.quests.tasktypes.TaskType; -import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -40,14 +40,10 @@ public final class InventoryTaskType extends TaskType { return creatorConfigValues; } + @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onItemPickup(PlayerPickupItemEvent event) { - new BukkitRunnable() { - @Override - public void run() { - checkInventory(event.getPlayer()); - } - }.runTaskLater(Quests.get(), 1L); + Bukkit.getScheduler().runTaskLater(Quests.get(), () -> this.checkInventory(event.getPlayer()), 1L); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @@ -60,6 +56,7 @@ public final class InventoryTaskType extends TaskType { }.runTaskLater(Quests.get(), 1L); } + @SuppressWarnings("deprecation") private void checkInventory(Player player) { QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId()); if (qPlayer == null) { diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java index beeae684..0f9cf1d2 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java @@ -33,6 +33,7 @@ public final class MilkingTaskType extends TaskType { return creatorConfigValues; } + @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onMilk(PlayerInteractEntityEvent event) { if (!(event.getRightClicked() instanceof Cow) || (event.getPlayer().getItemInHand().getType() != Material.BUCKET)) { diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java index eebabd98..486c21d5 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java @@ -87,6 +87,7 @@ public final class MiningCertainTaskType extends TaskType { } } + @SuppressWarnings("deprecation") private boolean matchBlock(Task task, Block block) { Material material; Object configBlock = task.getConfigValue("block"); @@ -99,11 +100,7 @@ public final class MiningCertainTaskType extends TaskType { short blockData = block.getData(); if (blockType.equals(material)) { - if (configData != null && (((int) blockData) != ((int) configData))) { - return false; - } else { - return true; - } + return configData == null || (((int) blockData) == ((int) configData)); } return false; } diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java index e1fb9020..6ad6dd4c 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java @@ -11,7 +11,6 @@ import com.leonardobishop.quests.quests.Task; import com.leonardobishop.quests.quests.tasktypes.TaskType; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; public final class PlaytimeTaskType extends TaskType { @@ -21,35 +20,31 @@ public final class PlaytimeTaskType extends TaskType { } public void playTime() { - new BukkitRunnable() { - @Override - public void run() { - for (Player player : Bukkit.getOnlinePlayers()) { - QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId()); - QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); - for (Quest quest : PlaytimeTaskType.super.getRegisteredQuests()) { - if (questProgressFile.hasStartedQuest(quest)) { - QuestProgress questProgress = questProgressFile.getQuestProgress(quest); - for (Task task : quest.getTasksOfType(PlaytimeTaskType.super.getType())) { - TaskProgress taskProgress = questProgress.getTaskProgress(task.getId()); - if (taskProgress.isCompleted()) { - continue; - } - int minutes = (int) task.getConfigValue("minutes"); - if (taskProgress.getProgress() == null) { - taskProgress.setProgress(1); - } else { - taskProgress.setProgress((int) taskProgress.getProgress() + 1); - } - if (((int) taskProgress.getProgress()) >= minutes) { - taskProgress.setCompleted(true); - } + Bukkit.getScheduler().runTaskTimer(Quests.get(), () -> { + for (Player player : Bukkit.getOnlinePlayers()) { + QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId()); + QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile(); + for (Quest quest : PlaytimeTaskType.super.getRegisteredQuests()) { + if (questProgressFile.hasStartedQuest(quest)) { + QuestProgress questProgress = questProgressFile.getQuestProgress(quest); + for (Task task : quest.getTasksOfType(PlaytimeTaskType.super.getType())) { + TaskProgress taskProgress = questProgress.getTaskProgress(task.getId()); + if (taskProgress.isCompleted()) { + continue; + } + int minutes = (int) task.getConfigValue("minutes"); + if (taskProgress.getProgress() == null) { + taskProgress.setProgress(1); + } else { + taskProgress.setProgress((int) taskProgress.getProgress() + 1); + } + if (((int) taskProgress.getProgress()) >= minutes) { + taskProgress.setCompleted(true); } } } } } - }.runTaskTimer(Quests.get(), 1200L, 1200L); + }, 1200L, 1200L); } - } -- cgit v1.2.3-70-g09d2