From 9aa600d33ef7537b472a552601a3b8204ce8a07d Mon Sep 17 00:00:00 2001 From: Krakenied Date: Wed, 11 Oct 2023 12:09:07 +0200 Subject: Add cancel commands Partially closes https://github.com/LMBishop/Quests/issues/558 --- .../leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java | 2 ++ .../quests/bukkit/questcontroller/NormalQuestController.java | 8 ++++++++ 2 files changed, 10 insertions(+) (limited to 'bukkit') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java index 4ae992c9..5160ee73 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java @@ -267,6 +267,7 @@ public class BukkitQuestsLoader implements QuestsLoader { List rewardString = config.getStringList("rewardstring"); List startString = config.getStringList("startstring"); List startCommands = config.getStringList("startcommands"); + List cancelCommands = config.getStringList("cancelcommands"); boolean repeatable = config.getBoolean("options.repeatable", false); boolean cooldown = config.getBoolean("options.cooldown.enabled", false); boolean timeLimit = config.getBoolean("options.time-limit.enabled", false); @@ -297,6 +298,7 @@ public class BukkitQuestsLoader implements QuestsLoader { .withRewardString(rewardString) .withStartString(startString) .withStartCommands(startCommands) + .withCancelCommands(cancelCommands) .withPlaceholders(placeholders) .withProgressPlaceholders(progressPlaceholders) .withCooldown(cooldownTime) diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java index 56b37f9a..01cc2788 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java @@ -294,6 +294,14 @@ public class NormalQuestController implements QuestController { Bukkit.getPluginManager().callEvent(questCancelEvent); // PlayerCancelQuestEvent -- end Messages.send(questCancelEvent.getQuestCancelMessage(), player); + for (String s : quest.getCancelCommands()) { + s = s.replace("{player}", player.getName()); + if (plugin.getConfig().getBoolean("options.quests-use-placeholderapi")) { + Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), plugin.getPlaceholderAPIProcessor().apply(player, s)); + } else { + Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), s); + } + } SoundUtils.playSoundForPlayer(player, plugin.getQuestsConfig().getString("options.sounds.quest-cancel")); } if (config.getBoolean("options.allow-quest-track") -- cgit v1.2.3-70-g09d2