Reset target of Quest Compass on quit

This commit is contained in:
PikaMug 2024-01-08 19:06:58 -05:00
parent 969bac022d
commit 3413895abf
3 changed files with 8 additions and 15 deletions

View File

@ -174,8 +174,7 @@ public class QuestRequirementsPrompt extends QuestsEditorNumericPrompt {
return ChatColor.GRAY + "(" + BukkitLang.get("noneSet") + ")"; return ChatColor.GRAY + "(" + BukkitLang.get("noneSet") + ")";
} else { } else {
return ChatColor.GRAY + "(" + ChatColor.AQUA + moneyReq + " " return ChatColor.GRAY + "(" + ChatColor.AQUA + moneyReq + " "
+ (moneyReq > 1 ? plugin.getDependencies().getVaultEconomy().currencyNamePlural() + plugin.getDependencies().getVaultEconomy().format(moneyReq) + ChatColor.GRAY + ")";
: plugin.getDependencies().getVaultEconomy().currencyNameSingular() + ChatColor.GRAY + ")");
} }
} else { } else {
return ChatColor.GRAY + "(" + BukkitLang.get("notInstalled") + ")"; return ChatColor.GRAY + "(" + BukkitLang.get("notInstalled") + ")";

View File

@ -424,6 +424,7 @@ public class BukkitQuester implements Quester {
/** /**
* Get quest progress for given quest, or default values if not found * Get quest progress for given quest, or default values if not found
*
* @param quest The quest to check * @param quest The quest to check
* @return Existing or current progress, or default * @return Existing or current progress, or default
*/ */
@ -432,12 +433,6 @@ public class BukkitQuester implements Quester {
if (questProgress.get(quest) != null) { if (questProgress.get(quest) != null) {
return questProgress.get(quest); return questProgress.get(quest);
} }
// TODO - the above should suffice since Quest extends Comparable, but test it
/*for (final Quest q : questData.keySet()) {
if (q.getId().equals(quest.getId())) {
return questData.get(q);
}
}*/
if (currentQuests.get(quest) != null) { if (currentQuests.get(quest) != null) {
addEmptiesFor(quest, currentQuests.get(quest)); addEmptiesFor(quest, currentQuests.get(quest));
} }
@ -4350,6 +4345,9 @@ public class BukkitQuester implements Quester {
*/ */
public void hardQuit(final Quest quest) { public void hardQuit(final Quest quest) {
try { try {
if (compassTargetQuestId.equals(quest.getId())) {
compassTargetQuestId = null;
}
currentQuests.remove(quest); currentQuests.remove(quest);
questProgress.remove(quest); questProgress.remove(quest);
if (!timers.isEmpty()) { if (!timers.isEmpty()) {
@ -4441,11 +4439,11 @@ public class BukkitQuester implements Quester {
* Will set to Quester's spawn location if bed spawn does not exist * Will set to Quester's spawn location if bed spawn does not exist
*/ */
public void resetCompass() { public void resetCompass() {
compassTargetQuestId = null;
final Player player = getPlayer(); final Player player = getPlayer();
if (player == null) { if (player == null) {
return; return;
} }
compassTargetQuestId = null;
if (!canUseCompass()) { if (!canUseCompass()) {
return; return;
} }
@ -4485,7 +4483,8 @@ public class BukkitQuester implements Quester {
* @param notify Whether to notify this quester of result * @param notify Whether to notify this quester of result
*/ */
public void findNextCompassTarget(final boolean notify) { public void findNextCompassTarget(final boolean notify) {
if (!canUseCompass()) { // Here we apply this method to OPs by not checking #canUseCompass
if (getPlayer() == null || !getPlayer().hasPermission("quests.compass")) {
return; return;
} }
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {

View File

@ -43,7 +43,6 @@ import me.pikamug.quests.quests.components.Planner;
import me.pikamug.quests.quests.components.Requirements; import me.pikamug.quests.quests.components.Requirements;
import me.pikamug.quests.quests.components.Rewards; import me.pikamug.quests.quests.components.Rewards;
import me.pikamug.quests.quests.components.Stage; import me.pikamug.quests.quests.components.Stage;
import me.pikamug.quests.tasks.BukkitStageTimer;
import me.pikamug.quests.util.BukkitConfigUtil; import me.pikamug.quests.util.BukkitConfigUtil;
import me.pikamug.quests.util.BukkitInventoryUtil; import me.pikamug.quests.util.BukkitInventoryUtil;
import me.pikamug.quests.util.BukkitItemUtil; import me.pikamug.quests.util.BukkitItemUtil;
@ -280,10 +279,6 @@ public class BukkitQuest implements Quest {
this, quester.getPlayer())); this, quester.getPlayer()));
} }
} }
if (quester.getPlayer().hasPermission("quests.compass")) {
quester.resetCompass();
quester.findCompassTarget();
}
if (currentStage.getDelay() < 0) { if (currentStage.getDelay() < 0) {
doNextStage(quester, allowSharedProgress); doNextStage(quester, allowSharedProgress);
} else { } else {