From dca5b954c717b8924902f2a0f3955438c137cbce Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Wed, 25 May 2022 03:58:53 +0200 Subject: [PATCH] Added QuestComplete event and tried to update to 1.18.2 --- build.gradle.kts | 2 +- settings.gradle.kts | 2 +- .../com/alttd/altitudequests/AQuests.java | 2 + .../subcommands/CommandCreateScruff.java | 13 +++---- .../altitudequests/config/LocalConfig.java | 5 ++- .../altitudequests/events/MineBlocks.java | 2 +- .../altitudequests/events/QuestComplete.java | 15 +++++++ .../objects/QuestCompleteEvent.java | 39 +++++++++++++++++++ .../objects/quests/MineQuest.java | 9 ++++- src/main/resources/plugin.yml | 4 +- 10 files changed, 78 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/alttd/altitudequests/events/QuestComplete.java create mode 100644 src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java diff --git a/build.gradle.kts b/build.gradle.kts index b97e6b3..8c59c3b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -44,5 +44,5 @@ tasks { } dependencies { - compileOnly("com.alttd:Galaxy-API:1.18.1-R0.1-SNAPSHOT") + compileOnly("com.alttd:Galaxy-API:1.18.2-R0.1-SNAPSHOT") } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index ffb8ee6..f6d83df 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,4 @@ -rootProject.name = "AltitudeQuests" +rootProject.name = "AQuest" dependencyResolutionManagement { repositories { diff --git a/src/main/java/com/alttd/altitudequests/AQuests.java b/src/main/java/com/alttd/altitudequests/AQuests.java index b225810..4d7f086 100644 --- a/src/main/java/com/alttd/altitudequests/AQuests.java +++ b/src/main/java/com/alttd/altitudequests/AQuests.java @@ -1,5 +1,6 @@ package com.alttd.altitudequests; +import com.alttd.altitudequests.commands.CommandManager; import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.config.DatabaseConfig; import com.alttd.altitudequests.config.LocalConfig; @@ -29,6 +30,7 @@ public final class AQuests extends JavaPlugin { LocalConfig.reload(); registerEvents(); + CommandManager commandManager = new CommandManager(); Logger.info("--------------------------------------------------"); Logger.info("AQuest started"); diff --git a/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandCreateScruff.java b/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandCreateScruff.java index c2f02e8..e9a516d 100644 --- a/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandCreateScruff.java +++ b/src/main/java/com/alttd/altitudequests/commands/subcommands/CommandCreateScruff.java @@ -1,23 +1,22 @@ package com.alttd.altitudequests.commands.subcommands; import com.alttd.altitudequests.commands.SubCommand; -import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.config.LocalConfig; import com.alttd.altitudequests.config.MessagesConfig; -import com.alttd.altitudequests.util.Logger; import com.alttd.altitudequests.util.Utilities; -import net.kyori.adventure.text.minimessage.Template; -import net.kyori.adventure.text.minimessage.template.TemplateResolver; import org.bukkit.Bukkit; import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.CommandSender; -import org.bukkit.entity.*; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; import org.bukkit.event.entity.CreatureSpawnEvent; -import java.text.ParseException; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; public class CommandCreateScruff extends SubCommand { diff --git a/src/main/java/com/alttd/altitudequests/config/LocalConfig.java b/src/main/java/com/alttd/altitudequests/config/LocalConfig.java index 2809d0f..27b532f 100644 --- a/src/main/java/com/alttd/altitudequests/config/LocalConfig.java +++ b/src/main/java/com/alttd/altitudequests/config/LocalConfig.java @@ -18,7 +18,10 @@ public class LocalConfig extends AbstractConfig{ public static UUID activeNPC = null; private static void loadActiveNPC() { - activeNPC = UUID.fromString(config.getString("active-npc", null)); + String string = config.getString("active-npc", null); + if (string == null) + return; + activeNPC = UUID.fromString(string); } public static void removeActiveNPC() { diff --git a/src/main/java/com/alttd/altitudequests/events/MineBlocks.java b/src/main/java/com/alttd/altitudequests/events/MineBlocks.java index 78301ae..2e8bedf 100644 --- a/src/main/java/com/alttd/altitudequests/events/MineBlocks.java +++ b/src/main/java/com/alttd/altitudequests/events/MineBlocks.java @@ -20,7 +20,7 @@ public class MineBlocks implements Listener { if (quest == null || quest.isDone()) return; if (quest instanceof MineQuest mineQuest) - mineQuest.mine(event.getBlock()); + mineQuest.mine(event.getBlock(), player); } } diff --git a/src/main/java/com/alttd/altitudequests/events/QuestComplete.java b/src/main/java/com/alttd/altitudequests/events/QuestComplete.java new file mode 100644 index 0000000..e5e0066 --- /dev/null +++ b/src/main/java/com/alttd/altitudequests/events/QuestComplete.java @@ -0,0 +1,15 @@ +package com.alttd.altitudequests.events; + +import com.alttd.altitudequests.objects.QuestCompleteEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +public class QuestComplete implements Listener { + + @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) + public void onQuestComplete(QuestCompleteEvent event) { + event.getPlayer().sendMiniMessage("You completed a quest gj.", null); + } + +} diff --git a/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java b/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java new file mode 100644 index 0000000..9ed0427 --- /dev/null +++ b/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java @@ -0,0 +1,39 @@ +package com.alttd.altitudequests.objects; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +public class QuestCompleteEvent extends Event{ + private static final HandlerList handlers = new HandlerList(); + final private Player player; + final private Quest quest; + final boolean daily; + + public QuestCompleteEvent(Player player, Quest quest, boolean daily) { + this.player = player; + this.quest = quest; + this.daily = daily; + } + + public Player getPlayer() { + return player; + } + + public Quest getQuest() { + return quest; + } + + public boolean isDaily() { + return daily; + } + + public @NotNull HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java b/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java index f495058..116181c 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java @@ -3,7 +3,9 @@ package com.alttd.altitudequests.objects.quests; import com.alttd.altitudequests.config.QuestsConfig; import com.alttd.altitudequests.objects.MineQuestObject; import com.alttd.altitudequests.objects.Quest; +import com.alttd.altitudequests.objects.QuestCompleteEvent; import org.bukkit.block.Block; +import org.bukkit.entity.Player; import java.util.Optional; @@ -34,11 +36,14 @@ public class MineQuest extends Quest { return isDone; } - public void mine(Block block) { + public void mine(Block block, Player player) { if (!isDone && !block.getType().equals(mineQuestObject.getMaterial())) return; mined += 1; - if (mined == mineQuestObject.getAmount()) + if (mined == mineQuestObject.getAmount()) { isDone = true; + QuestCompleteEvent event = new QuestCompleteEvent(player, this, true); + event.callEvent(); + } } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index bb30ecd..cf45ce8 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ -name: AltitudeQuests +name: AQuests version: '${version}' -main: com.alttd.altitudequests.AltitudeQuests +main: com.alttd.altitudequests.AQuests api-version: 1.18 authors: [ Teriuihi ] description: A plugin to run quests on a server