diff options
| author | Reinatix <reinatix@gmail.com> | 2018-05-11 16:30:35 -0400 |
|---|---|---|
| committer | Reinatix <reinatix@gmail.com> | 2018-05-11 16:30:35 -0400 |
| commit | 994917215ca8b7c91e81f80e7bfac5be8aa9cd76 (patch) | |
| tree | 7e97b98fa00d4823269d5afda6d1d126bb9d4461 /src/me | |
| parent | 17223162568567440fb9536f9b47c5765ecf687f (diff) | |
Closes #5
Diffstat (limited to 'src/me')
| -rw-r--r-- | src/me/fatpigsarefat/quests/Quests.java | 1 | ||||
| -rw-r--r-- | src/me/fatpigsarefat/quests/quests/tasktypes/types/PlaytimeTaskType.java | 54 |
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); + } + +} |
