aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/com
diff options
context:
space:
mode:
authornicuch <nicuch100@gmail.com>2020-01-11 00:30:35 +0200
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2020-01-11 22:53:27 +0000
commit1917f427fca9466702086b75d110e4efc2f01ff3 (patch)
treea1fcb1f5ebd66daaa11e73f429926d5a09c4e96c /src/main/java/com
parent505c4b6c6500d233d80c7c58ac08ff8db3e98e5f (diff)
Everything
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/leonardobishop/quests/QuestsAPI.java7
-rw-r--r--src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java8
-rw-r--r--src/main/java/com/leonardobishop/quests/bstats/Metrics.java21
-rw-r--r--src/main/java/com/leonardobishop/quests/commands/CommandQuests.java34
-rw-r--r--src/main/java/com/leonardobishop/quests/events/EventInventory.java23
-rw-r--r--src/main/java/com/leonardobishop/quests/events/EventPlayerJoin.java9
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/Items.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/Options.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/misc/QMenuCancel.java8
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/misc/QMenuCategory.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/misc/QMenuDaily.java21
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/misc/QMenuQuest.java8
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/misc/creator/QMenuCreator.java15
-rw-r--r--src/main/java/com/leonardobishop/quests/player/QPlayer.java23
-rw-r--r--src/main/java/com/leonardobishop/quests/player/QPlayerManager.java6
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/Category.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/Quest.java22
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/QuestManager.java5
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/Task.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/ConfigValue.java6
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/TaskType.java4
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/BuildingCertainTaskType.java7
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java10
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/DealDamageTaskType.java7
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FarmingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/FishingTaskType.java2
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java11
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MilkingTaskType.java1
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MiningCertainTaskType.java7
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlaytimeTaskType.java47
30 files changed, 157 insertions, 171 deletions
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<String, ConfigLoadError> brokenFiles = new HashMap<>();
- private Quests plugin;
+ private final Map<String, ConfigLoadError> 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("<MAIN CONFIG> config.yml", ConfigLoadError.MALFORMED_YAML);
plugin.setBrokenConfig(true);
@@ -136,7 +136,7 @@ public class QuestsConfigLoader {
List<String> cLoreStarted = config.getStringList(path + ".lore-started");
String name;
- Material type = null;
+ Material type;
int data = 0;
List<String> 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<Integer, String> slotsToQuestIds = new HashMap<>();
- private QMenuQuest superMenu;
- private QPlayer owner;
- private Quest quest;
+ private final HashMap<Integer, String> 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<Integer, QMenuQuest> slotsToMenuQuest = new HashMap<>();
- private QPlayer owner;
+ private final HashMap<Integer, QMenuQuest> 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<Integer, String> slotsToQuestIds = new HashMap<>();
+ private final HashMap<Integer, String> 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<String, String> 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<Integer, String> slotsToQuestIds = new HashMap<>();
+ private final HashMap<Integer, String> 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<UUID, QPlayer> qPlayers = new HashMap<>();
+ private final Map<UUID, QPlayer> 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<String> registeredQuestIds = new ArrayList<>();
+ private final List<String> 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<Quest> {
private Map<String, Task> tasks = new HashMap<>();
//TODO: maybe store by <tasktypename (string), list<task>> since we never get task by id, but always get tasks by type.
- private String id;
- private QItemStack displayItem;
- private List<String> rewards;
- private List<String> requirements;
- private List<String> rewardString;
- private List<String> startString;
- private boolean repeatable;
- private boolean cooldownEnabled;
- private int cooldown;
- private int sortOrder;
+ private final String id;
+ private final QItemStack displayItem;
+ private final List<String> rewards;
+ private final List<String> requirements;
+ private final List<String> rewardString;
+ private final List<String> 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<Quest> {
@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<String, Object> configValues = new HashMap<>();
+ private final Map<String, Object> 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<String, Object> 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<Quest> quests = new ArrayList<>();
- private String type;
+ private final List<Quest> 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);
}
-
}