aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src
diff options
context:
space:
mode:
authorKrakenied <krakenied1@gmail.com>2025-07-20 17:05:45 +0200
committerKrakenied <46192742+Krakenied@users.noreply.github.com>2025-07-29 00:06:46 +0200
commit6ae10141943803d662aecac402a15c2b7d0b453a (patch)
tree8837cccc4781f633bdfcc6bbe5083444cf6a688e /bukkit/src
parent009f4c86651a96ddd9dbfd0a18b11ae472adae0f (diff)
Add goal placeholder
Closes https://github.com/LMBishop/Quests/issues/788
Diffstat (limited to 'bukkit/src')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java7
2 files changed, 14 insertions, 1 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java
index 3da9db44..f4a778ea 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java
@@ -11,6 +11,7 @@ import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress;
import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.common.quest.Category;
import com.leonardobishop.quests.common.quest.Quest;
+import com.leonardobishop.quests.common.quest.Task;
import me.clip.placeholderapi.expansion.Cacheable;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
@@ -76,7 +77,7 @@ public class QuestsPlaceholders extends PlaceholderExpansion implements Cacheabl
if (qPlayer == null) return Messages.PLACEHOLDERAPI_DATA_NOT_LOADED.getMessageLegacyColor();
String split = args[args.length - 1];
- String result = "null";
+ String result;
if (!args[0].contains(":") && !args[0].equalsIgnoreCase("tracked")) {
if (args.length > 1 && split.equals(args[1])) split = ",";
@@ -233,6 +234,11 @@ public class QuestsPlaceholders extends PlaceholderExpansion implements Cacheabl
case "c":
result = String.valueOf(questProgress.getTaskProgress(t[1]).isCompleted() ? Messages.PLACEHOLDERAPI_TRUE.getMessageLegacyColor() : Messages.PLACEHOLDERAPI_FALSE.getMessageLegacyColor());
break;
+ case "goal":
+ case "g":
+ final Task task = quest.getTaskById(t[1]);
+ result = (task != null ? String.valueOf(plugin.getTaskTypeManager().getTaskType(task.getType()).getGoal(task)) : "0");
+ break;
default:
return args[0] + "_" + args[1] + "_" + args[2] + " is not a valid placeholder";
}
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 3ca75a16..ea6cb339 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
@@ -14,6 +14,8 @@ import com.leonardobishop.quests.common.quest.Quest;
import com.leonardobishop.quests.common.quest.Task;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
+import org.jspecify.annotations.NonNull;
+import org.jspecify.annotations.Nullable;
public final class PlaytimeTaskType extends BukkitTaskType {
@@ -104,4 +106,9 @@ public final class PlaytimeTaskType extends BukkitTaskType {
// this.poll.cancel();
// }
}
+
+ @Override
+ public @Nullable Object getGoal(final @NonNull Task task) {
+ return task.getConfigValue("minutes");
+ }
}