diff options
Diffstat (limited to 'bukkit/src/main/java')
47 files changed, 226 insertions, 20 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 8bfcd00b..b6cde9d8 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -3,6 +3,9 @@ package com.leonardobishop.quests.bukkit; import com.leonardobishop.quests.bukkit.command.QuestsCommandSwitcher; import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; import com.leonardobishop.quests.bukkit.config.BukkitQuestsLoader; +import com.leonardobishop.quests.bukkit.hook.bossbar.BossBar; +import com.leonardobishop.quests.bukkit.hook.bossbar.BossBar_Bukkit; +import com.leonardobishop.quests.bukkit.hook.bossbar.BossBar_Nothing; import com.leonardobishop.quests.bukkit.hook.coreprotect.AbstractCoreProtectHook; import com.leonardobishop.quests.bukkit.hook.coreprotect.CoreProtectHook; import com.leonardobishop.quests.bukkit.hook.essentials.AbstractEssentialsHook; @@ -99,6 +102,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { private AbstractPlayerBlockTrackerHook playerBlockTrackerHook; private ItemGetter itemGetter; private Title titleHandle; + private BossBar bossBarHandle; private VersionSpecificHandler versionSpecificHandler; private LogHistory logHistory; @@ -216,6 +220,11 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { } else { titleHandle = new Title_Bukkit(); } + // (bossbar) + if(version <= 8) + bossBarHandle = new BossBar_Nothing(); + else + bossBarHandle = new BossBar_Bukkit(this); // (itemstacks) if (version <= 12) { itemGetter = new ItemGetter_Late_1_8(); @@ -619,6 +628,10 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { public Title getTitleHandle() { return titleHandle; } + + public BossBar getBossBarHandle() { + return bossBarHandle; + } public VersionSpecificHandler getVersionSpecificHandler() { return versionSpecificHandler; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar.java new file mode 100644 index 00000000..04103697 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar.java @@ -0,0 +1,11 @@ +package com.leonardobishop.quests.bukkit.hook.bossbar; + +import org.bukkit.entity.Player; + +public interface BossBar { + + void sendBossBar(Player p, String questKey, String title, int time); + + void sendBossBar(Player p, String questKey, String title, int progress, int time); + +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java new file mode 100644 index 00000000..d46fa59e --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java @@ -0,0 +1,67 @@ +package com.leonardobishop.quests.bukkit.hook.bossbar; + +import java.util.HashMap; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; + +import org.bukkit.Bukkit; +import org.bukkit.NamespacedKey; +import org.bukkit.boss.BarColor; +import org.bukkit.boss.BarStyle; +import org.bukkit.entity.Player; + +import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; + +public class BossBar_Bukkit implements BossBar { + + private BukkitQuestsPlugin plugin; + private final ConcurrentHashMap<NamespacedKey, Long> players = new ConcurrentHashMap<>(); + + public BossBar_Bukkit(BukkitQuestsPlugin plugin) { + this.plugin = plugin; + plugin.getScheduler().runTaskTimer(() -> { + for (Entry<NamespacedKey, Long> entry : new HashMap<>(players).entrySet()) { + if (entry.getValue() < System.currentTimeMillis()) { + NamespacedKey key = entry.getKey(); + players.remove(key); + org.bukkit.boss.BossBar oldBar = Bukkit.getBossBar(key); + if(oldBar != null) { // if exist + oldBar.removeAll(); // remove all players on it + Bukkit.removeBossBar(key); // remove it + } + } + } + }, 20, 20); + } + + @Override + public void sendBossBar(Player p, String questKey, String title, int time) { + NamespacedKey spaceKey = getKeyFor(p, questKey); + org.bukkit.boss.BossBar bar = Bukkit.getBossBar(spaceKey); + if (bar == null) {// if none exist + bar = Bukkit.createBossBar(spaceKey, title, BarColor.BLUE, BarStyle.SOLID); + } else { + bar.setTitle(title); + } + players.put(spaceKey, System.currentTimeMillis() + time * 1000); + bar.addPlayer(p); // be sure it see it + } + + @Override + public void sendBossBar(Player p, String questKey, String title, int percent, int time) { + NamespacedKey spaceKey = getKeyFor(p, questKey); + org.bukkit.boss.BossBar bar = Bukkit.getBossBar(spaceKey); + if (bar == null) {// if none exist + bar = Bukkit.createBossBar(spaceKey, title, BarColor.BLUE, BarStyle.SOLID); + } else { + bar.setTitle(title); + } + players.put(spaceKey, System.currentTimeMillis() + time * 1000); + bar.setProgress(((double) percent) / 100); + bar.addPlayer(p); // be sure it see it + } + + private NamespacedKey getKeyFor(Player p, String questKey) { + return new NamespacedKey(plugin, "bossbar_" + p.getName().toLowerCase() + "_" + questKey.toLowerCase().replace(" ", "")); + } +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java new file mode 100644 index 00000000..36a13fc7 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java @@ -0,0 +1,17 @@ +package com.leonardobishop.quests.bukkit.hook.bossbar; + +import org.bukkit.entity.Player; + +public class BossBar_Nothing implements BossBar { + + @Override + public void sendBossBar(Player p, String questKey, String title, int time) { + // old versions as 1.8 + } + + @Override + public void sendBossBar(Player p, String questKey, String title, int progress, int time) { + // old versions as 1.8 + } + +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java index 48439fed..3a4171c7 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java @@ -7,6 +7,7 @@ import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile; +import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; import com.leonardobishop.quests.common.quest.Quest; import org.bukkit.Bukkit; import org.bukkit.enchantments.Enchantment; @@ -130,6 +131,39 @@ public class QItemStack { return is; } + public static String processPlaceholders(String s, TaskProgress taskProgress) { + Matcher m = Pattern.compile("\\{([^}]+)}").matcher(s); + while (m.find()) { + String[] parts = m.group(1).split(":"); + if (parts.length > 1) { + if (taskProgress == null) { + continue; + } + if (parts[1].equals("progress")) { + Object progress = taskProgress.getProgress(); + String str; + if (progress instanceof Float || progress instanceof Double || progress instanceof BigDecimal) { + str = String.format("%.2f", progress); + } else { + str = String.valueOf(progress); + } + + s = s.replace("{" + m.group(1) + "}", (progress == null ? String.valueOf(0) : str)); + } + if (parts[1].equals("complete")) { + String str; + if (taskProgress.isCompleted()) { + str = Chat.legacyColor(Messages.UI_PLACEHOLDERS_TRUE.getMessageLegacyColor()); + } else { + str = Chat.legacyColor(Messages.UI_PLACEHOLDERS_FALSE.getMessageLegacyColor()); + } + s = s.replace("{" + m.group(1) + "}", str); + } + } + } + return s; + } + public static String processPlaceholders(String s, QuestProgress questProgress) { Matcher m = Pattern.compile("\\{([^}]+)}").matcher(s); while (m.find()) { diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BlockshearingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BlockshearingTaskType.java index 843d9059..e7278f80 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BlockshearingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BlockshearingTaskType.java @@ -61,6 +61,7 @@ public final class BlockshearingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java index f6e26577..4a7cca81 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java @@ -111,6 +111,7 @@ public final class BreedingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java index 4d04396e..7f04e9ab 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java @@ -114,8 +114,7 @@ public final class BrewingTaskType extends BukkitTaskType { } } - int progress = TaskUtils.getIntegerTaskProgress(taskProgress); - taskProgress.setProgress(progress + eventAmount); + int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress, eventAmount); super.debug("Updating task progress (now " + (progress + eventAmount) + ")", quest.getId(), task.getId(), player.getUniqueId()); int amount = (int) task.getConfigValue("amount"); @@ -125,6 +124,7 @@ public final class BrewingTaskType extends BukkitTaskType { taskProgress.setProgress(amount); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java index dcca71de..d2da4cf5 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java @@ -56,6 +56,7 @@ public abstract class BucketInteractionTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java index d42bb28f..6629a205 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java @@ -65,6 +65,7 @@ public final class BuildingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java index 8d8d9673..7dc98ba2 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java @@ -82,6 +82,7 @@ public final class ConsumeTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java index 132199df..4819afc0 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java @@ -102,8 +102,7 @@ public final class CraftingTaskType extends BukkitTaskType { continue; } - int progress = TaskUtils.getIntegerTaskProgress(taskProgress); - taskProgress.setProgress(progress + eventAmount); + int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress, eventAmount); super.debug("Updating task progress (now " + (progress + eventAmount) + ")", quest.getId(), task.getId(), player.getUniqueId()); int amount = (int) task.getConfigValue("amount"); @@ -113,6 +112,7 @@ public final class CraftingTaskType extends BukkitTaskType { taskProgress.setProgress(amount); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java index b3e0019e..3cc987df 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java @@ -70,6 +70,7 @@ public final class DealDamageTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java index fd21701f..4ac621b9 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java @@ -109,6 +109,7 @@ public final class EnchantingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java index 63d5ea8b..32e26ac7 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java @@ -46,16 +46,15 @@ public final class ExpEarnTaskType extends BukkitTaskType { int expNeeded = (int) task.getConfigValue("amount"); - int progress = TaskUtils.getIntegerTaskProgress(taskProgress); - int newProgress = progress + amountEarned; - taskProgress.setProgress(newProgress); - super.debug("Updating task progress (now " + (newProgress) + ")", quest.getId(), task.getId(), player.getUniqueId()); + int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress, amountEarned); + super.debug("Updating task progress (now " + (progress) + ")", quest.getId(), task.getId(), player.getUniqueId()); - if (newProgress >= expNeeded) { + if (progress >= expNeeded) { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); - taskProgress.setProgress(newProgress); + taskProgress.setProgress(expNeeded); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java index a6c17dc5..6b96298b 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java @@ -89,6 +89,7 @@ public final class FarmingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java index f0658990..b521cbe4 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java @@ -95,6 +95,7 @@ public final class FishingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InteractTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InteractTaskType.java index 8b0ae178..aabc5664 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InteractTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InteractTaskType.java @@ -105,6 +105,7 @@ public final class InteractTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } }
\ No newline at end of file diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java index c124e112..161a6f36 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java @@ -164,6 +164,7 @@ public final class InventoryTaskType extends BukkitTaskType { } } } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java index b29a4609..753dc2d9 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java @@ -58,6 +58,7 @@ public final class MilkingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java index 0d83c579..9112ad88 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java @@ -104,6 +104,7 @@ public final class MiningTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); }; boolean coreProtectEnabled = TaskUtils.getConfigBoolean(task, "check-coreprotect"); diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java index 7a8fb631..c7e40053 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java @@ -130,6 +130,7 @@ public final class MobkillingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java index 85370518..bf000abf 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java @@ -57,6 +57,7 @@ public final class PlayerkillingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), killer.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(killer, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java index 82377c78..35ee99a6 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java @@ -66,6 +66,7 @@ public final class PlaytimeTaskType extends BukkitTaskType { PlaytimeTaskType.super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ReplenishingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ReplenishingTaskType.java index 4c881c5e..254b611b 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ReplenishingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ReplenishingTaskType.java @@ -81,6 +81,7 @@ public final class ReplenishingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java index a059426b..ecf4716c 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java @@ -69,6 +69,7 @@ public final class ShearingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java index 2c0eda5e..e37dde32 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java @@ -120,8 +120,7 @@ public final class SmeltingTaskType extends BukkitTaskType { } } - int progress = TaskUtils.getIntegerTaskProgress(taskProgress); - taskProgress.setProgress(progress + eventAmount); + int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress, eventAmount); super.debug("Updating task progress (now " + (progress + eventAmount) + ")", quest.getId(), task.getId(), player.getUniqueId()); int amount = (int) task.getConfigValue("amount"); @@ -131,6 +130,7 @@ public final class SmeltingTaskType extends BukkitTaskType { taskProgress.setProgress(amount); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmithingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmithingTaskType.java index 3f2218a1..6c0404dc 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmithingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmithingTaskType.java @@ -93,8 +93,7 @@ public final class SmithingTaskType extends BukkitTaskType { continue; } - int progress = TaskUtils.getIntegerTaskProgress(taskProgress); - taskProgress.setProgress(progress + eventAmount); + int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress, eventAmount); super.debug("Updating task progress (now " + (progress + eventAmount) + ")", quest.getId(), task.getId(), player.getUniqueId()); int amount = (int) task.getConfigValue("amount"); @@ -104,6 +103,7 @@ public final class SmithingTaskType extends BukkitTaskType { taskProgress.setProgress(amount); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java index e330e587..32604b45 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java @@ -67,6 +67,7 @@ public final class TamingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java index f6dacc60..42ecfce7 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java @@ -106,6 +106,7 @@ public final class WalkingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java index fbeef4bb..59fccb20 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java @@ -51,6 +51,7 @@ public final class ASkyBlockLevelTaskType extends BukkitTaskType { taskProgress.setProgress(islandLevelNeeded); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java index beeaec29..4f62cbb1 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java @@ -72,6 +72,7 @@ public final class BentoBoxLevelTaskType extends BukkitTaskType { taskProgress.setProgress(newLevel); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java index 3996bc23..6a21b4f6 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java @@ -152,6 +152,7 @@ public final class CitizensDeliverTaskType extends BukkitTaskType { } } } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EcoBossesKillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EcoBossesKillingTaskType.java index 851acec4..9b3c394e 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EcoBossesKillingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EcoBossesKillingTaskType.java @@ -57,6 +57,7 @@ public final class EcoBossesKillingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), killer.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(killer, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java index f3a80e7f..6112d69c 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java @@ -95,6 +95,7 @@ public final class EssentialsBalanceTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java index 9afe074c..9f752bea 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java @@ -69,6 +69,7 @@ public final class EssentialsMoneyEarnTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java index 6969fbc7..84f77c0a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java @@ -64,6 +64,7 @@ public final class FabledSkyblockLevelTaskType extends BukkitTaskType { taskProgress.setProgress(islandLevelNeeded); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } 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 index d0b30b1e..2314ad2b 100644 --- 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 @@ -67,6 +67,7 @@ public final class IridiumSkyblockValueTaskType extends BukkitTaskType { taskProgress.setProgress(islandValueNeeded); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java index aa8d92fc..ffe4005e 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java @@ -128,6 +128,7 @@ public final class MythicMobsKillingTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java index 1b0abc97..5b317165 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java @@ -55,6 +55,7 @@ public final class NuVotifierVoteTaskType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlayerPointsEarnTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlayerPointsEarnTaskType.java index 4d833c39..be25f1a9 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlayerPointsEarnTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlayerPointsEarnTaskType.java @@ -61,6 +61,7 @@ public final class PlayerPointsEarnTaskType extends BukkitTaskType { taskProgress.setProgress(amount); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusInteractionTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusInteractionTaskType.java index 04e61c27..fc0f0f25 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusInteractionTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusInteractionTaskType.java @@ -121,6 +121,7 @@ public abstract class ShopGUIPlusInteractionTaskType extends BukkitTaskType { taskProgress.setProgress(amountNeeded); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java index a5996713..d2fc069a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java @@ -59,6 +59,7 @@ public final class SuperiorSkyblockLevelType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java index 72641099..e00ac372 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java @@ -59,6 +59,7 @@ public final class SuperiorSkyblockWorthType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java index 10aa720e..e3b7898d 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java @@ -55,6 +55,7 @@ public final class VotingPluginVoteType extends BukkitTaskType { super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId()); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java index 339010b3..5db451ce 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java @@ -50,6 +50,7 @@ public final class uSkyBlockLevelTaskType extends BukkitTaskType { taskProgress.setProgress(islandLevelNeeded); taskProgress.setCompleted(true); } + TaskUtils.sendTrackAdvancement(player, quest, taskProgress); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java index c9b8a320..424bec75 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java @@ -3,6 +3,7 @@ package com.leonardobishop.quests.bukkit.util; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.item.ParsedQuestItem; import com.leonardobishop.quests.bukkit.item.QuestItem; +import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStack; import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType; import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.bukkit.util.constraint.TaskConstraint; @@ -15,6 +16,11 @@ import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; import com.leonardobishop.quests.common.quest.Quest; import com.leonardobishop.quests.common.quest.Task; import com.leonardobishop.quests.common.tasktype.TaskType; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.bukkit.ChatColor; import org.bukkit.DyeColor; import org.bukkit.Material; import org.bukkit.block.Block; @@ -28,10 +34,7 @@ import org.bukkit.material.Colorable; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - +@SuppressWarnings("deprecation") public class TaskUtils { public static final String TASK_ATTRIBUTION_STRING = "<built-in>"; @@ -111,7 +114,7 @@ public class TaskUtils { public static double getDecimalTaskProgress(TaskProgress taskProgress) { double progress; - if (taskProgress.getProgress() == null) { + if (taskProgress.getProgress() == null || !(taskProgress.getProgress() instanceof Double)) { progress = 0.0; } else { progress = (double) taskProgress.getProgress(); @@ -121,7 +124,7 @@ public class TaskUtils { public static int getIntegerTaskProgress(TaskProgress taskProgress) { int progress; - if (taskProgress.getProgress() == null) { + if (taskProgress.getProgress() == null || !(taskProgress.getProgress() instanceof Integer)) { progress = 0; } else { progress = (int) taskProgress.getProgress(); @@ -135,11 +138,37 @@ public class TaskUtils { return progress; } + public static int incrementIntegerTaskProgress(TaskProgress taskProgress, int amount) { + int progress = getIntegerTaskProgress(taskProgress) + amount; + taskProgress.setProgress(progress); + return progress; + } + public static int decrementIntegerTaskProgress(TaskProgress taskProgress) { int progress = getIntegerTaskProgress(taskProgress); taskProgress.setProgress(--progress); return progress; } + + public static void sendTrackAdvancement(Player player, Quest q, TaskProgress progress) { + String title = q.getPlaceholders().get("progress"); + if(title == null) + return; + title = ChatColor.translateAlternateColorCodes('&', QItemStack.processPlaceholders(title, progress)); + if (plugin.getQuestsConfig().getBoolean("options.gui-use-placeholderapi")) { + title = plugin.getPlaceholderAPIProcessor().apply(player, title); + } + int progressAmount = getIntegerTaskProgress(progress); + if(progressAmount > 0) { // if has value + progressAmount = (progressAmount * 100) / (int) q.getTaskById(progress.getTaskId()).getConfigValue("amount"); // convert into percent + } + if((plugin.getConfig().getBoolean("options.bossbar.complete", true) && progress.isCompleted()) || plugin.getConfig().getBoolean("options.bossbar.progress", true)) { + if(progressAmount > 0) + plugin.getBossBarHandle().sendBossBar(player, q.getId(), title, progressAmount, plugin.getConfig().getInt("options.bossbar.time", 10)); + else + plugin.getBossBarHandle().sendBossBar(player, q.getId(), title, plugin.getConfig().getInt("options.bossbar.time", 10)); + } + } public static List<PendingTask> getApplicableTasks(Player player, QPlayer qPlayer, TaskType type) { return getApplicableTasks(player, qPlayer, type, TaskConstraintSet.NONE); |
