mirror of https://github.com/PikaMug/Quests.git
Increment objective index before continue
This commit is contained in:
parent
9b3736be87
commit
fc2d558e5c
|
@ -1544,14 +1544,15 @@ public class Quester implements IQuester {
|
|||
plugin.getLogger().warning("Quest data was null when getting objectives for " + quest.getName());
|
||||
return new LinkedList<>();
|
||||
}
|
||||
if (getCurrentStage(quest) == null) {
|
||||
final IStage stage = getCurrentStage(quest);
|
||||
if (stage == null) {
|
||||
//plugin.getLogger().warning("Current stage was null when getting objectives for " + quest.getName());
|
||||
return new LinkedList<>();
|
||||
}
|
||||
final IDependencies depends = plugin.getDependencies();
|
||||
if (!ignoreOverrides && !getCurrentStage(quest).getObjectiveOverrides().isEmpty()) {
|
||||
if (!ignoreOverrides && !stage.getObjectiveOverrides().isEmpty()) {
|
||||
final LinkedList<BukkitObjective> objectives = new LinkedList<>();
|
||||
for (final String s: getCurrentStage(quest).getObjectiveOverrides()) {
|
||||
for (final String s: stage.getObjectiveOverrides()) {
|
||||
String message = ChatColor.GREEN + ConfigUtil.parseString(s, quest, getPlayer());
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||
|
@ -1562,7 +1563,6 @@ public class Quester implements IQuester {
|
|||
return objectives;
|
||||
}
|
||||
final QuestData data = getQuestData(quest);
|
||||
final IStage stage = getCurrentStage(quest);
|
||||
final LinkedList<BukkitObjective> objectives = new LinkedList<>();
|
||||
for (final ItemStack goal : stage.getBlocksToBreak()) {
|
||||
for (final ItemStack progress : data.blocksBroken) {
|
||||
|
|
|
@ -28,6 +28,7 @@ import me.blackvein.quests.convo.misc.NpcOfferQuestPrompt;
|
|||
import me.blackvein.quests.dependencies.DenizenTrigger;
|
||||
import me.blackvein.quests.dependencies.IDependencies;
|
||||
import me.blackvein.quests.entity.BukkitQuestMob;
|
||||
import me.blackvein.quests.entity.CountableMob;
|
||||
import me.blackvein.quests.entity.QuestMob;
|
||||
import me.blackvein.quests.events.misc.MiscPostQuestAcceptEvent;
|
||||
import me.blackvein.quests.exceptions.ActionFormatException;
|
||||
|
@ -47,9 +48,11 @@ import me.blackvein.quests.listeners.ZnpcsListener;
|
|||
import me.blackvein.quests.logging.QuestsLog4JFilter;
|
||||
import me.blackvein.quests.module.ICustomObjective;
|
||||
import me.blackvein.quests.player.IQuester;
|
||||
import me.blackvein.quests.quests.BukkitObjective;
|
||||
import me.blackvein.quests.quests.BukkitQuestFactory;
|
||||
import me.blackvein.quests.quests.IQuest;
|
||||
import me.blackvein.quests.quests.IStage;
|
||||
import me.blackvein.quests.quests.Objective;
|
||||
import me.blackvein.quests.quests.Options;
|
||||
import me.blackvein.quests.quests.Planner;
|
||||
import me.blackvein.quests.quests.QuestFactory;
|
||||
|
@ -1087,6 +1090,113 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
}
|
||||
}
|
||||
|
||||
public void showObjectivesTemp(final IQuest quest, final IQuester quester, final boolean ignoreOverrides) {
|
||||
Quester q = (Quester)quester;
|
||||
final IStage stage = quester.getCurrentStage(quest);
|
||||
if (stage == null) {
|
||||
getLogger().warning("Current stage was null when showing objectives for " + quest.getName());
|
||||
return;
|
||||
}
|
||||
if (!ignoreOverrides && !stage.getObjectiveOverrides().isEmpty()) {
|
||||
for (final String s: stage.getObjectiveOverrides()) {
|
||||
String message = (s.trim().length() > 0 ? "- " : "") + ChatColor.GREEN + ConfigUtil
|
||||
.parseString(s, quest, quester.getPlayer());
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
return;
|
||||
}
|
||||
for (BukkitObjective objective : q.getCurrentObjectivesTemp(quest, false, false)) {
|
||||
final String message = "- " + objective.getMessage();
|
||||
if (objective.getProgressAsItem() != null && objective.getGoalAsItem() != null) {
|
||||
ItemStack progress = objective.getProgressAsItem();
|
||||
ItemStack goal = objective.getGoalAsItem();
|
||||
if (!settings.canShowCompletedObjs() && progress.getAmount() >= goal.getAmount()) {
|
||||
continue;
|
||||
}
|
||||
if (getSettings().canTranslateNames() && goal.hasItemMeta()) {
|
||||
// Bukkit version is 1.9+
|
||||
localeManager.sendMessage(quester.getPlayer(), message, goal.getType(), goal.getDurability(),
|
||||
goal.getEnchantments(), goal.getItemMeta());
|
||||
} else if (getSettings().canTranslateNames() && !goal.hasItemMeta()
|
||||
&& Material.getMaterial("LINGERING_POTION") == null) {
|
||||
// Bukkit version is below 1.9
|
||||
localeManager.sendMessage(quester.getPlayer(), message, goal.getType(), goal.getDurability(),
|
||||
goal.getEnchantments());
|
||||
} else {
|
||||
if (goal.getEnchantments().isEmpty()) {
|
||||
quester.sendMessage(message.replace("<item>", ItemUtil.getName(goal))
|
||||
.replace("<enchantment>", "")
|
||||
.replace("<level>", "")
|
||||
.replaceAll("\\s+", " "));
|
||||
} else {
|
||||
for (final Entry<Enchantment, Integer> e : goal.getEnchantments().entrySet()) {
|
||||
quester.sendMessage(message.replace("<item>", ItemUtil.getName(goal))
|
||||
.replace("<enchantment>", ItemUtil.getPrettyEnchantmentName(e.getKey()))
|
||||
.replace("<level>", RomanNumeral.getNumeral(e.getValue())));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (objective.getProgressAsMob() != null && objective.getGoalAsMob() != null) {
|
||||
CountableMob progress = objective.getProgressAsMob();
|
||||
CountableMob goal = objective.getGoalAsMob();
|
||||
if (!settings.canShowCompletedObjs() && progress.getCount() >= goal.getCount()) {
|
||||
continue;
|
||||
}
|
||||
if (getSettings().canTranslateNames()) {
|
||||
localeManager.sendMessage(quester.getPlayer(), message, goal.getEntityType(), null);
|
||||
} else {
|
||||
quester.sendMessage(message.replace("<mob>", MiscUtil.getProperMobName(goal.getEntityType())));
|
||||
}
|
||||
} else {
|
||||
if (!settings.canShowCompletedObjs() && objective.getProgress() >= objective.getGoal()) {
|
||||
continue;
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
}
|
||||
final QuestData data = quester.getQuestData(quest);
|
||||
if (data == null) {
|
||||
getLogger().warning("Quest data was null when showing objectives for " + quest.getName());
|
||||
return;
|
||||
}
|
||||
int customIndex = 0;
|
||||
for (final ICustomObjective customObjective : stage.getCustomObjectives()) {
|
||||
int progress = data.customObjectiveCounts.size() > customIndex
|
||||
? data.customObjectiveCounts.get(customIndex) : 0;
|
||||
final int goal = stage.getCustomObjectiveCounts().get(customIndex);
|
||||
final ChatColor color = progress < goal ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
customIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = "- " + color + customObjective.getDisplay();
|
||||
for (final Entry<String,Object> prompt : customObjective.getData()) {
|
||||
final String replacement = "%" + prompt.getKey() + "%";
|
||||
try {
|
||||
for (final Entry<String, Object> e : stage.getCustomObjectiveData()) {
|
||||
if (e.getKey().equals(prompt.getKey())) {
|
||||
if (message.contains(replacement)) {
|
||||
message = message.replace(replacement, ((String) e.getValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (final NullPointerException npe) {
|
||||
getLogger().severe("Unable to fetch display for " + customObjective.getName() + " on "
|
||||
+ quest.getName());
|
||||
npe.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (customObjective.canShowCount()) {
|
||||
message = message.replace("%count%", progress + "/" + goal);
|
||||
}
|
||||
quester.sendMessage(ConfigUtil.parseString(message));
|
||||
customIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show applicable objectives for the current stage of a player's quest.<p>
|
||||
*
|
||||
|
@ -1107,7 +1217,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
return;
|
||||
}
|
||||
final IStage stage = quester.getCurrentStage(quest);
|
||||
if (quester.getCurrentStage(quest) == null) {
|
||||
if (stage == null) {
|
||||
getLogger().warning("Current stage was null when showing objectives for " + quest.getName());
|
||||
return;
|
||||
}
|
||||
|
@ -1257,6 +1367,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int amt = is.getAmount();
|
||||
final ChatColor color = crafted < amt ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
craftIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "craftItem");
|
||||
|
@ -1286,6 +1397,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int amt = is.getAmount();
|
||||
final ChatColor color = smelted < amt ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
smeltIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "smeltItem");
|
||||
|
@ -1315,6 +1427,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int amt = is.getAmount();
|
||||
final ChatColor color = enchanted < amt ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
enchantIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "enchItem");
|
||||
|
@ -1361,6 +1474,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int amt = is.getAmount();
|
||||
final ChatColor color = brewed < amt ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
brewIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "brewItem");
|
||||
|
@ -1396,6 +1510,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int amt = is.getAmount();
|
||||
final ChatColor color = consumed < amt ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
consumeIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "consumeItem");
|
||||
|
@ -1432,6 +1547,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final UUID npc = stage.getItemDeliveryTargets().get(deliverIndex);
|
||||
final ChatColor color = delivered < toDeliver ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
deliverIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "deliver")
|
||||
|
@ -1461,6 +1577,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
}
|
||||
final ChatColor color = !interacted ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
interactIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "talkTo")
|
||||
|
@ -1480,6 +1597,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int toNpcKill = stage.getNpcNumToKill().get(npcKillIndex);
|
||||
final ChatColor color = npcKilled < toNpcKill ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
npcKillIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "kill");
|
||||
|
@ -1509,6 +1627,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int toMobKill = stage.getMobNumToKill().get(mobKillIndex);
|
||||
final ChatColor color = mobKilled < toMobKill ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
mobKillIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- ";
|
||||
|
@ -1547,6 +1666,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
}
|
||||
final ChatColor color = tamed < toTame ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
tameIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "tame");
|
||||
|
@ -1609,6 +1729,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
}
|
||||
final ChatColor color = sheared < toShear ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
shearIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "shearSheep");
|
||||
|
@ -1661,6 +1782,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
}
|
||||
final ChatColor color = !said ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
passIndex++;
|
||||
continue;
|
||||
}
|
||||
final String message = color + "- " + s;
|
||||
|
@ -1676,6 +1798,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
|||
final int toClear = stage.getCustomObjectiveCounts().get(customIndex);
|
||||
final ChatColor color = cleared < toClear ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
customIndex++;
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + co.getDisplay();
|
||||
|
|
Loading…
Reference in New Issue