diff options
Diffstat (limited to 'bukkit/src/main')
3 files changed, 84 insertions, 90 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java index bcc86d2a..48a9d0ef 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -56,6 +56,7 @@ import com.leonardobishop.quests.bukkit.tasktype.type.dependent.CitizensDeliverT import com.leonardobishop.quests.bukkit.tasktype.type.dependent.CitizensInteractTaskType; import com.leonardobishop.quests.bukkit.tasktype.type.dependent.EssentialsBalanceTaskType; import com.leonardobishop.quests.bukkit.tasktype.type.dependent.EssentialsMoneyEarnTaskType; +import com.leonardobishop.quests.bukkit.tasktype.type.dependent.IridiumSkyblockValueTaskType; import com.leonardobishop.quests.bukkit.tasktype.type.dependent.MythicMobsKillingType; import com.leonardobishop.quests.bukkit.tasktype.type.dependent.PlaceholderAPIEvaluateTaskType; import com.leonardobishop.quests.bukkit.tasktype.type.dependent.ShopGUIPlusBuyCertainTaskType; @@ -284,9 +285,9 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { BentoBoxLevelTaskType.register(this, taskTypeManager); } //TODO FIX -// if (Bukkit.getPluginManager().isPluginEnabled("IridiumSkyblock")) { -// taskTypeManager.registerTaskType(new IridiumSkyblockValueType()); -// } + if (Bukkit.getPluginManager().isPluginEnabled("IridiumSkyblock")) { + taskTypeManager.registerTaskType(new IridiumSkyblockValueTaskType(this)); + } if (Bukkit.getPluginManager().isPluginEnabled("uSkyBlock")) { taskTypeManager.registerTaskType(new uSkyBlockLevelTaskType(this)); } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java new file mode 100644 index 00000000..5885f645 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java @@ -0,0 +1,80 @@ +package com.leonardobishop.quests.bukkit.tasktype.type.dependent; + +import com.iridium.iridiumskyblock.Island; +import com.iridium.iridiumskyblock.api.IslandWorthCalculatedEvent; +import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; +import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType; +import com.leonardobishop.quests.bukkit.util.TaskUtils; +import com.leonardobishop.quests.common.config.ConfigProblem; +import com.leonardobishop.quests.common.player.QPlayer; +import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; +import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; +import com.leonardobishop.quests.common.quest.Quest; +import com.leonardobishop.quests.common.quest.Task; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +//TODO update to latest ver +public final class IridiumSkyblockValueTaskType extends BukkitTaskType { + + private final BukkitQuestsPlugin plugin; + + public IridiumSkyblockValueTaskType(BukkitQuestsPlugin plugin) { + super("iridiumskyblock_value", TaskUtils.TASK_ATTRIBUTION_STRING, "Reach a certain island value for Iridium Skyblock."); + this.plugin = plugin; + } + + @Override + public List<ConfigProblem> validateConfig(String root, HashMap<String, Object> config) { + ArrayList<ConfigProblem> problems = new ArrayList<>(); + if (TaskUtils.configValidateExists(root + ".value", config.get("value"), problems, "value", super.getType())) + TaskUtils.configValidateInt(root + ".value", config.get("value"), problems, false, false, "value"); + return problems; + } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onIslandLevel(IslandWorthCalculatedEvent event) { + Island island = event.getIsland(); + for (String player : island.members) { + UUID uuid; + try { + uuid = UUID.fromString(player); + } catch (Exception e) { + continue; + } + QPlayer qPlayer = plugin.getPlayerManager().getPlayer(uuid); + if (qPlayer == null) { + continue; + } + + for (Quest quest : IridiumSkyblockValueTaskType.super.getRegisteredQuests()) { + if (qPlayer.hasStartedQuest(quest)) { + QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest); + + for (Task task : quest.getTasksOfType(IridiumSkyblockValueTaskType.super.getType())) { + TaskProgress taskProgress = questProgress.getTaskProgress(task.getId()); + + if (taskProgress.isCompleted()) { + continue; + } + + int islandValueNeeded = (int) task.getConfigValue("value"); + + taskProgress.setProgress(event.getIslandWorth()); + + if (((double) taskProgress.getProgress()) >= islandValueNeeded) { + taskProgress.setCompleted(true); + } + } + } + } + } + + } + +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueType.java deleted file mode 100644 index 35934250..00000000 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueType.java +++ /dev/null @@ -1,87 +0,0 @@ -//package com.leonardobishop.quests.bukkit.tasktype.type.dependent; -// -//import com.iridium.iridiumskyblock.Island; -//import com.iridium.iridiumskyblock.api.IslandWorthCalculatedEvent; -//import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType; -//import com.leonardobishop.quests.util.QuestsConfigLoader; -//import com.leonardobishop.quests.api.QuestsAPI; -//import com.leonardobishop.quests.player.QPlayer; -//import com.leonardobishop.quests.player.questprogressfile.QuestProgress; -//import com.leonardobishop.quests.player.questprogressfile.TaskProgress; -//import com.leonardobishop.quests.quest.Quest; -//import com.leonardobishop.quests.quest.Task; -//import com.leonardobishop.quests.tasktype.ConfigValue; -//import com.leonardobishop.quests.tasktype.TaskType; -//import com.leonardobishop.quests.tasktype.TaskUtils; -//import org.bukkit.event.EventHandler; -//import org.bukkit.event.EventPriority; -// -//import java.util.ArrayList; -//import java.util.HashMap; -//import java.util.List; -//import java.util.UUID; -// -//TODO update to latest ver -//public final class IridiumSkyblockValueType extends BukkitTaskType { -// -// private List<ConfigValue> creatorConfigValues = new ArrayList<>(); -// -// public IridiumSkyblockValueType() { -// super("iridiumskyblock_value", TaskUtils.TASK_ATTRIBUTION_STRING, "Reach a certain island value for Iridium Skyblock."); -// this.creatorConfigValues.add(new ConfigValue("value", true, "Minimum island value needed.")); -// } -// -// @Override -// public List<QuestsConfigLoader.ConfigProblem> detectProblemsInConfig(String root, HashMap<String, Object> config) { -// ArrayList<QuestsConfigLoader.ConfigProblem> problems = new ArrayList<>(); -// if (TaskUtils.configValidateExists(root + ".value", config.get("value"), problems, "value", super.getType())) -// TaskUtils.configValidateInt(root + ".value", config.get("value"), problems, false, false, "value"); -// return problems; -// } -// -// @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) -// public void onIslandLevel(IslandWorthCalculatedEvent event) { -// Island island = event.getIsland(); -// for (String player : island.members) { -// UUID uuid; -// try { -// uuid = UUID.fromString(player); -// } catch (Exception e) { -// continue; -// } -// QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(uuid); -// if (qPlayer == null) { -// continue; -// } -// -// for (Quest quest : IridiumSkyblockValueType.super.getRegisteredQuests()) { -// if (qPlayer.hasStartedQuest(quest)) { -// QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest); -// -// for (Task task : quest.getTasksOfType(IridiumSkyblockValueType.super.getType())) { -// TaskProgress taskProgress = questProgress.getTaskProgress(task.getId()); -// -// if (taskProgress.isCompleted()) { -// continue; -// } -// -// int islandValueNeeded = (int) task.getConfigValue("value"); -// -// taskProgress.setProgress(event.getIslandWorth()); -// -// if (((double) taskProgress.getProgress()) >= islandValueNeeded) { -// taskProgress.setCompleted(true); -// } -// } -// } -// } -// } -// -// } -// -// @Override -// public List<ConfigValue> getCreatorConfigValues() { -// return creatorConfigValues; -// } -// -//} |
