Skip condition notice if objective override exists

This commit is contained in:
PikaMug 2021-12-05 02:16:49 -05:00
parent 3d82e95beb
commit e68a8858e8
2 changed files with 72 additions and 3 deletions

View File

@ -21,6 +21,7 @@ import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.util.player.UserManager;
import com.herocraftonline.heroes.characters.Hero;
import me.blackvein.quests.actions.Action;
import me.blackvein.quests.conditions.Condition;
import me.blackvein.quests.events.quest.QuestUpdateCompassEvent;
import me.blackvein.quests.events.quester.QuesterPostChangeStageEvent;
import me.blackvein.quests.events.quester.QuesterPostCompleteQuestEvent;
@ -32,8 +33,10 @@ import me.blackvein.quests.util.ConfigUtil;
import me.blackvein.quests.util.InventoryUtil;
import me.blackvein.quests.util.ItemUtil;
import me.blackvein.quests.util.Lang;
import me.blackvein.quests.util.MiscUtil;
import me.blackvein.quests.util.RomanNumeral;
import me.clip.placeholderapi.PlaceholderAPI;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -265,13 +268,79 @@ public class Quest implements Comparable<Quest> {
updateCompass(quester, nextStage);
if (player.isOnline()) {
final Player p = quester.getPlayer();
final String msg = Lang.get(p, "objectives").replace("<quest>", name);
quester.sendMessage(ChatColor.GOLD + msg);
final String title = Lang.get(p, "objectives").replace("<quest>", name);
quester.sendMessage(ChatColor.GOLD + title);
plugin.showObjectives(this, quester, false);
final String stageStartMessage = quester.getCurrentStage(this).startMessage;
if (stageStartMessage != null) {
p.sendMessage(ConfigUtil.parseStringWithPossibleLineBreaks(stageStartMessage, this, p));
}
final Condition c = nextStage.getCondition();
if (c != null && nextStage.getObjectiveOverrides().isEmpty()) {
p.sendMessage(ChatColor.LIGHT_PURPLE + Lang.get("stageEditorConditions"));
if (!c.getEntitiesWhileRiding().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorRideEntity"));
for (final String e : c.getEntitiesWhileRiding()) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(e);
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getNpcsWhileRiding().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorRideNPC"));
for (final int i : c.getNpcsWhileRiding()) {
if (plugin.getDependencies().getCitizens() != null) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(CitizensAPI.getNPCRegistry()
.getById(i).getName());
} else {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(i);
}
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getPermissions().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorPermissions"));
for (final String e : c.getPermissions()) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(e);
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getItemsWhileHoldingMainHand().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorItemsInMainHand"));
for (final ItemStack is : c.getItemsWhileHoldingMainHand()) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(ItemUtil.getPrettyItemName(is
.getType().name()));
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getWorldsWhileStayingWithin().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorStayWithinWorld"));
for (final String w : c.getWorldsWhileStayingWithin()) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(w);
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getBiomesWhileStayingWithin().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorStayWithinBiome"));
for (final String b : c.getBiomesWhileStayingWithin()) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(MiscUtil
.snakeCaseToUpperCamelCase(b));
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getRegionsWhileStayingWithin().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorStayWithinRegion"));
for (final String r : c.getRegionsWhileStayingWithin()) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(r);
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
} else if (!c.getPlaceholdersCheckIdentifier().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorCheckPlaceholder"));
int index = 0;
for (final String r : c.getPlaceholdersCheckIdentifier()) {
if (c.getPlaceholdersCheckValue().size() > index) {
msg.append(ChatColor.AQUA).append("\n \u2515 ").append(r).append(ChatColor.GRAY)
.append(" = ").append(ChatColor.AQUA).append(c.getPlaceholdersCheckValue()
.get(index));
}
index++;
}
p.sendMessage(ChatColor.YELLOW + msg.toString());
}
}
}
quester.updateJournal();
if (player.isOnline()) {

View File

@ -579,7 +579,7 @@ public class Quester implements Comparable<Quester> {
p.sendMessage(ConfigUtil.parseStringWithPossibleLineBreaks(stageStartMessage, quest, getPlayer()));
}
final Condition c = stage.getCondition();
if (c != null) {
if (c != null && stage.getObjectiveOverrides().isEmpty()) {
sendMessage(ChatColor.LIGHT_PURPLE + Lang.get("stageEditorConditions"));
if (!c.getEntitiesWhileRiding().isEmpty()) {
final StringBuilder msg = new StringBuilder("- " + Lang.get("conditionEditorRideEntity"));