summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElikill58 <arpetzouille@gmail.com>2023-08-01 23:32:05 +0200
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2023-08-26 15:11:43 +0100
commit95d5363daf5c0f521f2da69821f5a95cbe790a5d (patch)
tree1bc3614126f6fbd235f9def864e9b289c4d96913
parent0de183871237b87833f9426d7b8a6fcb083f5842 (diff)
Add bossbar and full track advancement
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java13
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java67
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java17
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java34
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BlockshearingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InteractTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ReplenishingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmithingTaskType.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EcoBossesKillingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlayerPointsEarnTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusInteractionTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java41
-rw-r--r--bukkit/src/main/resources/resources/bukkit/config.yml6
48 files changed, 232 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);
diff --git a/bukkit/src/main/resources/resources/bukkit/config.yml b/bukkit/src/main/resources/resources/bukkit/config.yml
index e15732ad..715de4a4 100644
--- a/bukkit/src/main/resources/resources/bukkit/config.yml
+++ b/bukkit/src/main/resources/resources/bukkit/config.yml
@@ -36,6 +36,12 @@ options:
trim-gui-size: true
# Enable/disable titles
titles-enabled: true
+ # Enable/disable BossBars
+ bossbar:
+ progress: true
+ complete: true
+ # Time in seconds of bossbar showed
+ time: 10
# Allow players to have multiple active quests.
# You can set the default number of quests using the 'default' rank below.
# To grant different quest limits to different people, you can define a 'quest-rank'