summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorfatpigsarefat <fatpigsarefat@users.noreply.github.com>2018-05-11 21:44:44 +0100
committerGitHub <noreply@github.com>2018-05-11 21:44:44 +0100
commitde3316d17c13d5bbcc57a2b9d150af662fe527c1 (patch)
tree7e97b98fa00d4823269d5afda6d1d126bb9d4461 /src
parent17223162568567440fb9536f9b47c5765ecf687f (diff)
parent994917215ca8b7c91e81f80e7bfac5be8aa9cd76 (diff)
Merge pull request #12 from Reinatix/master
Playtime Quest
Diffstat (limited to 'src')
-rw-r--r--src/me/fatpigsarefat/quests/Quests.java1
-rw-r--r--src/me/fatpigsarefat/quests/quests/tasktypes/types/PlaytimeTaskType.java54
2 files changed, 55 insertions, 0 deletions
diff --git a/src/me/fatpigsarefat/quests/Quests.java b/src/me/fatpigsarefat/quests/Quests.java
index 8a730a36..1b926d0f 100644
--- a/src/me/fatpigsarefat/quests/Quests.java
+++ b/src/me/fatpigsarefat/quests/Quests.java
@@ -119,6 +119,7 @@ public class Quests extends JavaPlugin {
taskTypeManager.registerTaskType(new MilkingTaskType());
taskTypeManager.registerTaskType(new ShearingTaskType());
taskTypeManager.registerTaskType(new PositionTaskType());
+ taskTypeManager.registerTaskType(new PlayerkillingTaskType());
if (Bukkit.getPluginManager().isPluginEnabled("ASkyBlock")) {
taskTypeManager.registerTaskType(new ASkyBlockLevelType());
}
diff --git a/src/me/fatpigsarefat/quests/quests/tasktypes/types/PlaytimeTaskType.java b/src/me/fatpigsarefat/quests/quests/tasktypes/types/PlaytimeTaskType.java
new file mode 100644
index 00000000..6268b9de
--- /dev/null
+++ b/src/me/fatpigsarefat/quests/quests/tasktypes/types/PlaytimeTaskType.java
@@ -0,0 +1,54 @@
+package me.fatpigsarefat.quests.quests.tasktypes.types;
+
+import me.fatpigsarefat.quests.Quests;
+import me.fatpigsarefat.quests.player.QPlayer;
+import me.fatpigsarefat.quests.player.questprogressfile.QuestProgress;
+import me.fatpigsarefat.quests.player.questprogressfile.QuestProgressFile;
+import me.fatpigsarefat.quests.player.questprogressfile.TaskProgress;
+import me.fatpigsarefat.quests.quests.Quest;
+import me.fatpigsarefat.quests.quests.Task;
+import me.fatpigsarefat.quests.quests.tasktypes.TaskType;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.scheduler.BukkitRunnable;
+
+public final class PlaytimeTaskType extends TaskType {
+
+ public PlaytimeTaskType() {
+ super("playtime", "Reinatix", "Track the amount of playing time a user has been on");
+ playTime();
+ }
+
+ public void playTime() {
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ QPlayer qPlayer = Quests.getPlayerManager().getPlayer(player.getUniqueId());
+ QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
+ for (Quest quest : PlaytimeTaskType.super.getRegisteredQuests()) {
+ if (questProgressFile.hasStartedQuest(quest)) {
+ QuestProgress questProgress = questProgressFile.getQuestProgress(quest);
+ for (Task task : quest.getTasksOfType(PlaytimeTaskType.super.getType())) {
+ TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
+ if (taskProgress.isCompleted()) {
+ continue;
+ }
+ int minutes = (int) task.getConfigValue("minutes");
+ if (taskProgress.getProgress() == null) {
+ taskProgress.setProgress(1);
+ } else {
+ taskProgress.setProgress((int) taskProgress.getProgress() + 1);
+ }
+ if (((int) taskProgress.getProgress()) >= minutes) {
+ taskProgress.setCompleted(true);
+ }
+ }
+ }
+ }
+ }
+ }
+ }.runTaskTimer(Quests.getInstance(), 1200L, 1200L);
+ }
+
+}