mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-21 18:15:32 +01:00
NEW show completed objectives setting, fixes #1946
This commit is contained in:
parent
0d106297ad
commit
7f2430441a
@ -53,6 +53,8 @@ public interface ISettings {
|
||||
void setEffect(final String effect);
|
||||
String getRedoEffect();
|
||||
void setRedoEffect(final String redoEffect);
|
||||
boolean canShowCompletedObjs();
|
||||
void setShowCompletedObjs(final boolean showCompletedObjs);
|
||||
boolean canShowQuestReqs();
|
||||
void setShowQuestReqs(final boolean showQuestReqs);
|
||||
boolean canShowQuestTitles();
|
||||
|
@ -1081,7 +1081,7 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
}
|
||||
|
||||
/**
|
||||
* Show all of a player's objectives for the current stage of a quest.<p>
|
||||
* Show applicable objectives for the current stage of a player's quest.<p>
|
||||
*
|
||||
* Respects PlaceholderAPI and translations, when enabled.
|
||||
*
|
||||
@ -1120,6 +1120,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
for (final ItemStack e2 : data.blocksBroken) {
|
||||
if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
|
||||
final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "break");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
|
||||
@ -1142,6 +1145,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
for (final ItemStack e2 : data.blocksDamaged) {
|
||||
if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
|
||||
final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "damage");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
|
||||
@ -1164,6 +1170,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
for (final ItemStack e2 : data.blocksPlaced) {
|
||||
if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
|
||||
final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "place");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
|
||||
@ -1186,6 +1195,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
for (final ItemStack e2 : data.blocksUsed) {
|
||||
if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
|
||||
final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "use");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
|
||||
@ -1208,6 +1220,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
for (final ItemStack e2 : data.blocksCut) {
|
||||
if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
|
||||
final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "cut");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
|
||||
@ -1234,6 +1249,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "craftItem");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + crafted + "/" + is.getAmount());
|
||||
@ -1260,6 +1278,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "smeltItem");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + smelted + "/" + is.getAmount());
|
||||
@ -1286,6 +1307,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "enchItem");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + enchanted + "/" + is.getAmount());
|
||||
@ -1329,6 +1353,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "brewItem");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + brewed + "/" + is.getAmount());
|
||||
@ -1361,6 +1388,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "consumeItem");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + consumed + "/" + is.getAmount());
|
||||
@ -1394,6 +1424,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
final int toDeliver = is.getAmount();
|
||||
final UUID npc = stage.getItemDeliveryTargets().get(deliverIndex);
|
||||
final ChatColor color = delivered < toDeliver ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "deliver")
|
||||
.replace("<npc>", depends.getNPCName(npc));
|
||||
if (message.contains("<count>")) {
|
||||
@ -1420,6 +1453,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
interacted = data.npcsInteracted.get(interactIndex);
|
||||
}
|
||||
final ChatColor color = !interacted ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "talkTo")
|
||||
.replace("<npc>", depends.getNPCName(uuid));
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
@ -1436,6 +1472,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "kill");
|
||||
if (message.contains("<mob>")) {
|
||||
message = message.replace("<mob>", depends.getNPCName(uuid));
|
||||
@ -1462,6 +1501,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- ";
|
||||
if (stage.getLocationsToKillWithin().isEmpty()) {
|
||||
message += Lang.get(quester.getPlayer(), "kill");
|
||||
@ -1497,6 +1539,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
tamed = data.mobsTamed.get(tameIndex);
|
||||
}
|
||||
final ChatColor color = tamed < toTame ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "tame");
|
||||
if (!message.contains("<mob>")) {
|
||||
message += " <mob>";
|
||||
@ -1517,31 +1562,37 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
}
|
||||
if (stage.getFishToCatch() != null) {
|
||||
final ChatColor color = data.getFishCaught() < stage.getFishToCatch() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "catchFish");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + data.getFishCaught() + "/" + stage.getFishToCatch());
|
||||
} else {
|
||||
// Legacy
|
||||
message += color + ": " + data.getFishCaught() + "/" + stage.getFishToCatch();
|
||||
if (settings.canShowCompletedObjs()
|
||||
|| (!settings.canShowCompletedObjs() && color.equals(ChatColor.GREEN))) {
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "catchFish");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + data.getFishCaught() + "/" + stage.getFishToCatch());
|
||||
} else {
|
||||
// Legacy
|
||||
message += color + ": " + data.getFishCaught() + "/" + stage.getFishToCatch();
|
||||
}
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
if (stage.getCowsToMilk() != null) {
|
||||
final ChatColor color = data.getCowsMilked() < stage.getCowsToMilk() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "milkCow");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + data.getCowsMilked() + "/" + stage.getCowsToMilk());
|
||||
} else {
|
||||
// Legacy
|
||||
message += color + ": " + data.getCowsMilked() + "/" + stage.getCowsToMilk();
|
||||
if (settings.canShowCompletedObjs()
|
||||
|| (!settings.canShowCompletedObjs() && color.equals(ChatColor.GREEN))) {
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "milkCow");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + data.getCowsMilked() + "/" + stage.getCowsToMilk());
|
||||
} else {
|
||||
// Legacy
|
||||
message += color + ": " + data.getCowsMilked() + "/" + stage.getCowsToMilk();
|
||||
}
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
int shearIndex = 0;
|
||||
for (final int toShear : stage.getSheepNumToShear()) {
|
||||
@ -1550,6 +1601,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
sheared = data.sheepSheared.get(shearIndex);
|
||||
}
|
||||
final ChatColor color = sheared < toShear ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "shearSheep");
|
||||
message = message.replace("<color>", MiscUtil.getPrettyDyeColorName(stage.getSheepToShear()
|
||||
.get(shearIndex)));
|
||||
@ -1565,22 +1619,28 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
if (stage.getPlayersToKill() != null) {
|
||||
final ChatColor color = data.getPlayersKilled() < stage.getPlayersToKill() ? ChatColor.GREEN
|
||||
: ChatColor.GRAY;
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "killPlayer");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + data.getPlayersKilled() + "/"
|
||||
+ stage.getPlayersToKill());
|
||||
} else {
|
||||
// Legacy
|
||||
message += color + ": " + data.getPlayersKilled() + "/" + stage.getPlayersToKill();
|
||||
if (settings.canShowCompletedObjs()
|
||||
|| (!settings.canShowCompletedObjs() && color.equals(ChatColor.GREEN))) {
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "killPlayer");
|
||||
if (message.contains("<count>")) {
|
||||
message = message.replace("<count>", "" + color + data.getPlayersKilled() + "/"
|
||||
+ stage.getPlayersToKill());
|
||||
} else {
|
||||
// Legacy
|
||||
message += color + ": " + data.getPlayersKilled() + "/" + stage.getPlayersToKill();
|
||||
}
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
if (depends.getPlaceholderApi() != null) {
|
||||
message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
|
||||
}
|
||||
quester.sendMessage(message);
|
||||
}
|
||||
for (int i = 0 ; i < stage.getLocationsToReach().size(); i++) {
|
||||
if (i < data.locationsReached.size()) {
|
||||
final ChatColor color = !data.locationsReached.get(i) ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + Lang.get(quester.getPlayer(), "goTo");
|
||||
message = message.replace("<location>", stage.getLocationNames().get(i));
|
||||
quester.sendMessage(message);
|
||||
@ -1593,6 +1653,9 @@ public class Quests extends JavaPlugin implements QuestsAPI {
|
||||
said = data.passwordsSaid.get(passIndex);
|
||||
}
|
||||
final ChatColor color = !said ? ChatColor.GREEN : ChatColor.GRAY;
|
||||
if (!settings.canShowCompletedObjs() && color.equals(ChatColor.GRAY)) {
|
||||
continue;
|
||||
}
|
||||
final String message = color + "- " + s;
|
||||
quester.sendMessage(message);
|
||||
passIndex++;
|
||||
@ -1605,6 +1668,9 @@ 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)) {
|
||||
continue;
|
||||
}
|
||||
String message = color + "- " + co.getDisplay();
|
||||
for (final Entry<String,Object> prompt : co.getData()) {
|
||||
final String replacement = "%" + prompt.getKey() + "%";
|
||||
|
@ -42,6 +42,7 @@ public class Settings implements ISettings {
|
||||
private boolean npcEffects = true;
|
||||
private String effect = "note";
|
||||
private String redoEffect = "angry_villager";
|
||||
private boolean showCompletedObjs = true;
|
||||
private boolean showQuestReqs = true;
|
||||
private boolean showQuestTitles = true;
|
||||
private int strictPlayerMovement = 0;
|
||||
@ -175,6 +176,12 @@ public class Settings implements ISettings {
|
||||
public void setRedoEffect(final String redoEffect) {
|
||||
this.redoEffect = redoEffect;
|
||||
}
|
||||
public boolean canShowCompletedObjs() {
|
||||
return showCompletedObjs;
|
||||
}
|
||||
public void setShowCompletedObjs(final boolean showCompletedObjs) {
|
||||
this.showCompletedObjs = showCompletedObjs;
|
||||
}
|
||||
public boolean canShowQuestReqs() {
|
||||
return showQuestReqs;
|
||||
}
|
||||
@ -255,6 +262,7 @@ public class Settings implements ISettings {
|
||||
npcEffects = config.getBoolean("npc-effects.enabled", true);
|
||||
effect = config.getString("npc-effects.new-quest", "note");
|
||||
redoEffect = config.getString("npc-effects.redo-quest", "angry_villager");
|
||||
showCompletedObjs = config.getBoolean("show-completed-objectives", true);
|
||||
showQuestReqs = config.getBoolean("show-requirements", true);
|
||||
showQuestTitles = config.getBoolean("show-titles", true);
|
||||
strictPlayerMovement = config.getInt("strict-player-movement", 0);
|
||||
|
@ -75,6 +75,10 @@ public class QuestJournal {
|
||||
title.setBold(true);
|
||||
final BookUtil.PageBuilder builder = new BookUtil.PageBuilder().add(title).newLine();
|
||||
for (final BukkitObjective obj : ((Quester)owner).getCurrentObjectivesTemp(quest, false, false)) {
|
||||
if (!plugin.getSettings().canShowCompletedObjs()
|
||||
&& obj.getMessage().startsWith(ChatColor.GRAY.toString())) {
|
||||
continue;
|
||||
}
|
||||
if (obj.getMessage() != null) {
|
||||
String[] split = null;
|
||||
if (obj.getMessage().contains("<item>") && obj.getGoalAsItem() != null) {
|
||||
|
@ -19,6 +19,7 @@ npc-effects:
|
||||
enabled: true
|
||||
new-quest: note
|
||||
redo-quest: heart
|
||||
show-completed-objectives: true
|
||||
show-requirements: true
|
||||
show-titles: true
|
||||
storage-data:
|
||||
|
Loading…
Reference in New Issue
Block a user