summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorfatpigsarefat <fatpigsarefat@outlook.com>2018-07-27 01:25:36 +0100
committerfatpigsarefat <fatpigsarefat@outlook.com>2018-07-27 01:25:36 +0100
commit67d534ae3adc5878f1829a0b62c24e4d09573313 (patch)
tree6d5f7a176782d09753e7aa8b3c063cc9ae72f0f0 /src
parent88d42efc287ec5dbbf9a1592d0301e9a48f738a6 (diff)
Brewing task type completed.
- Added BrewingTaskType "brewing" - Added example brewing config to the config - Changed version to 2.0.13 - Started work on BrewingCertainTaskType "brewingcertain"
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/fatpigsarefat/quests/Quests.java3
-rw-r--r--src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingCertainTaskType.java114
-rw-r--r--src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingTaskType.java100
-rw-r--r--src/main/resources/config.yml27
4 files changed, 244 insertions, 0 deletions
diff --git a/src/main/java/me/fatpigsarefat/quests/Quests.java b/src/main/java/me/fatpigsarefat/quests/Quests.java
index 7904738b..371ffb5c 100644
--- a/src/main/java/me/fatpigsarefat/quests/Quests.java
+++ b/src/main/java/me/fatpigsarefat/quests/Quests.java
@@ -120,6 +120,9 @@ public class Quests extends JavaPlugin {
taskTypeManager.registerTaskType(new ShearingTaskType());
taskTypeManager.registerTaskType(new PositionTaskType());
taskTypeManager.registerTaskType(new PlaytimeTaskType());
+ taskTypeManager.registerTaskType(new BrewingTaskType());
+ // TODO: FIX
+ // taskTypeManager.registerTaskType(new BrewingCertainTaskType());
if (Bukkit.getPluginManager().isPluginEnabled("ASkyBlock")) {
taskTypeManager.registerTaskType(new ASkyBlockLevelType());
}
diff --git a/src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingCertainTaskType.java b/src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingCertainTaskType.java
new file mode 100644
index 00000000..f2065146
--- /dev/null
+++ b/src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingCertainTaskType.java
@@ -0,0 +1,114 @@
+// TODO: fix
+//
+//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.ConfigValue;
+//import me.fatpigsarefat.quests.quests.tasktypes.TaskType;
+//import org.bukkit.Bukkit;
+//import org.bukkit.Location;
+//import org.bukkit.Material;
+//import org.bukkit.entity.Player;
+//import org.bukkit.event.EventHandler;
+//import org.bukkit.event.EventPriority;
+//import org.bukkit.event.block.Action;
+//import org.bukkit.event.inventory.BrewEvent;
+//import org.bukkit.event.player.PlayerInteractEvent;
+//import org.bukkit.inventory.ItemStack;
+//
+//import java.util.ArrayList;
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.UUID;
+//
+//public final class BrewingCertainTaskType extends TaskType {
+//
+// private List<ConfigValue> creatorConfigValues = new ArrayList<>();
+// private HashMap<Location, UUID> brewingStands = new HashMap<>();
+//
+// public BrewingCertainTaskType() {
+// super("brewingcertain", "fatpigsarefat", "Brew a certain type of potion.");
+// this.creatorConfigValues.add(new ConfigValue("amount", true, "Amount of potions to be brewed."));
+// this.creatorConfigValues.add(new ConfigValue("potion", true, "ID of potion to be brewed."));
+// }
+//
+// @Override
+// public List<ConfigValue> getCreatorConfigValues() {
+// return creatorConfigValues;
+// }
+//
+// @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+// public void onBlockPlace(PlayerInteractEvent event) {
+// if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
+// if (event.getClickedBlock().getType() == Material.BREWING_STAND) {
+// brewingStands.put(event.getClickedBlock().getLocation(), event.getPlayer().getUniqueId());
+// }
+// }
+// }
+//
+// @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+// public void onBlockPlace(BrewEvent event) {
+// UUID uuid;
+// if ((uuid = brewingStands.get(event.getBlock().getLocation())) != null) {
+// Player player = Bukkit.getPlayer(uuid);
+//
+// if (player == null) {
+// return;
+// }
+//
+// QPlayer qPlayer = Quests.getPlayerManager().getPlayer(player.getUniqueId());
+// QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
+//
+// for (Quest quest : super.getRegisteredQuests()) {
+// if (questProgressFile.hasStartedQuest(quest)) {
+// QuestProgress questProgress = questProgressFile.getQuestProgress(quest);
+//
+// for (Task task : quest.getTasksOfType(super.getType())) {
+// TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
+//
+// if (taskProgress.isCompleted()) {
+// continue;
+// }
+//
+// int potionsNeeded = (int) task.getConfigValue("amount");
+//
+// int progress;
+// if (taskProgress.getProgress() == null) {
+// progress = 0;
+// } else {
+// progress = (int) taskProgress.getProgress();
+// }
+//
+// int potionType = (int) task.getConfigValue("potion");
+//
+// ItemStack potion1 = event.getContents().getItem(0);
+// if (potion1.getDurability() != potionType) {
+// potion1 = null;
+// }
+// ItemStack potion2 = event.getContents().getItem(1);
+// if (potion2.getDurability() != potionType) {
+// potion2 = null;
+// }
+// ItemStack potion3 = event.getContents().getItem(2);
+// if (potion3.getDurability() != potionType) {
+// potion3 = null;
+// }
+//
+// taskProgress.setProgress(progress + (potion1 == null ? 0 : 1) + (potion2 == null ? 0 : 1) + (potion3 == null ? 0 : 1));
+//
+// if (((int) taskProgress.getProgress()) >= potionsNeeded) {
+// taskProgress.setCompleted(true);
+// }
+// }
+// }
+// }
+// }
+// }
+//
+//}
diff --git a/src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingTaskType.java b/src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingTaskType.java
new file mode 100644
index 00000000..129c1c84
--- /dev/null
+++ b/src/main/java/me/fatpigsarefat/quests/quests/tasktypes/types/BrewingTaskType.java
@@ -0,0 +1,100 @@
+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.ConfigValue;
+import me.fatpigsarefat.quests.quests.tasktypes.TaskType;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.block.Action;
+import org.bukkit.event.inventory.BrewEvent;
+import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.inventory.ItemStack;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.UUID;
+
+public final class BrewingTaskType extends TaskType {
+
+ private List<ConfigValue> creatorConfigValues = new ArrayList<>();
+ private HashMap<Location, UUID> brewingStands = new HashMap<>();
+
+ public BrewingTaskType() {
+ super("brewing", "fatpigsarefat", "Brew a potion.");
+ this.creatorConfigValues.add(new ConfigValue("amount", true, "Amount of potions to be brewed."));
+ }
+
+ @Override
+ public List<ConfigValue> getCreatorConfigValues() {
+ return creatorConfigValues;
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onBlockPlace(PlayerInteractEvent event) {
+ if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
+ if (event.getClickedBlock().getType() == Material.BREWING_STAND) {
+ brewingStands.put(event.getClickedBlock().getLocation(), event.getPlayer().getUniqueId());
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onBlockPlace(BrewEvent event) {
+ UUID uuid;
+ if ((uuid = brewingStands.get(event.getBlock().getLocation())) != null) {
+ Player player = Bukkit.getPlayer(uuid);
+
+ if (player == null) {
+ return;
+ }
+
+ QPlayer qPlayer = Quests.getPlayerManager().getPlayer(player.getUniqueId());
+ QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
+
+ for (Quest quest : super.getRegisteredQuests()) {
+ if (questProgressFile.hasStartedQuest(quest)) {
+ QuestProgress questProgress = questProgressFile.getQuestProgress(quest);
+
+ for (Task task : quest.getTasksOfType(super.getType())) {
+ TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
+
+ if (taskProgress.isCompleted()) {
+ continue;
+ }
+
+ int potionsNeeded = (int) task.getConfigValue("amount");
+
+ int progress;
+ if (taskProgress.getProgress() == null) {
+ progress = 0;
+ } else {
+ progress = (int) taskProgress.getProgress();
+ }
+
+ ItemStack potion1 = event.getContents().getItem(0);
+ ItemStack potion2 = event.getContents().getItem(1);
+ ItemStack potion3 = event.getContents().getItem(2);
+
+ taskProgress.setProgress(progress + (potion1 == null ? 0 : 1) + (potion2 == null ? 0 : 1) + (potion3 == null ? 0 : 1));
+
+ if (((int) taskProgress.getProgress()) >= potionsNeeded) {
+ taskProgress.setCompleted(true);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index a2931b90..a293351d 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -690,6 +690,33 @@ quests:
enabled: true
time: 1440
+ brewing:
+ tasks:
+ brewing:
+ type: "brewing"
+ amount: 10
+ display:
+ name: "&cBrewer"
+ lore-normal:
+ - "&7This quest requires you to:"
+ - "&7 - Brew 10 potions."
+ - ""
+ - "&7Rewards:"
+ - "&7 - $500 added to your in-game balance."
+ lore-started:
+ - ""
+ - "&7Your current progression:"
+ - "&7 - {brewing:progress}/10 potions brewed."
+ type: "BREWING_STAND_ITEM"
+ rewards:
+ - "eco give {player} 500"
+ options:
+ category: "medium"
+ repeatable: true
+ cooldown:
+ enabled: true
+ time: 1440
+
askyblock:
tasks:
islandlevel: