mirror of
https://github.com/PikaMug/Quests.git
synced 2024-09-21 03:41:34 +02:00
Translate item names in Quest Journal, fixes #1915
This commit is contained in:
parent
38ab11e088
commit
260c66f4de
@ -35,6 +35,8 @@ public interface ISettings {
|
|||||||
void setDisableCommandFeedback(final boolean disableCommandFeedback);
|
void setDisableCommandFeedback(final boolean disableCommandFeedback);
|
||||||
boolean canGenFilesOnJoin();
|
boolean canGenFilesOnJoin();
|
||||||
void setGenFilesOnJoin(final boolean genFilesOnJoin);
|
void setGenFilesOnJoin(final boolean genFilesOnJoin);
|
||||||
|
boolean canGiveJournalItem();
|
||||||
|
void setGiveJournalItem(final boolean giveJournalItem);
|
||||||
boolean canIgnoreLockedQuests();
|
boolean canIgnoreLockedQuests();
|
||||||
void setIgnoreLockedQuests(final boolean ignoreLockedQuests);
|
void setIgnoreLockedQuests(final boolean ignoreLockedQuests);
|
||||||
int getKillDelay();
|
int getKillDelay();
|
||||||
|
@ -143,6 +143,8 @@ public interface IQuester extends Comparable<IQuester> {
|
|||||||
|
|
||||||
LinkedList<String> getCurrentObjectives(final IQuest quest, final boolean ignoreOverrides);
|
LinkedList<String> getCurrentObjectives(final IQuest quest, final boolean ignoreOverrides);
|
||||||
|
|
||||||
|
LinkedList<Objective> getCurrentObjectivesTemp(final IQuest quest, final boolean ignoreOverrides, final boolean formatItems);
|
||||||
|
|
||||||
LinkedList<String> getObjectives(final IQuest quest, final boolean ignoreOverrides);
|
LinkedList<String> getObjectives(final IQuest quest, final boolean ignoreOverrides);
|
||||||
|
|
||||||
boolean containsObjective(final IQuest quest, final String name);
|
boolean containsObjective(final IQuest quest, final String name);
|
||||||
|
@ -18,6 +18,8 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
public interface Objective {
|
public interface Objective {
|
||||||
ObjectiveType getType();
|
ObjectiveType getType();
|
||||||
|
|
||||||
|
String getMessage();
|
||||||
|
|
||||||
int getProgress();
|
int getProgress();
|
||||||
|
|
||||||
int getGoal();
|
int getGoal();
|
||||||
|
@ -132,7 +132,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.PikaMug</groupId>
|
<groupId>com.github.PikaMug</groupId>
|
||||||
<artifactId>LocaleLib</artifactId>
|
<artifactId>LocaleLib</artifactId>
|
||||||
<version>12e12cbadc</version>
|
<version>5fb19ed10c</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>xyz.upperlevel.spigot.book</groupId>
|
<groupId>xyz.upperlevel.spigot.book</groupId>
|
||||||
|
@ -510,7 +510,7 @@ public class Quester implements IQuester {
|
|||||||
}
|
}
|
||||||
final int index = getJournalIndex();
|
final int index = getJournalIndex();
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
final QuestJournal journal = new QuestJournal(this);
|
final QuestJournal journal = new QuestJournal(plugin, this);
|
||||||
getPlayer().getInventory().setItem(index, journal.toItemStack());
|
getPlayer().getInventory().setItem(index, journal.toItemStack());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1562,6 +1562,529 @@ public class Quester implements IQuester {
|
|||||||
return objectives;
|
return objectives;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current objectives for a quest, both finished and unfinished
|
||||||
|
*
|
||||||
|
* @param quest The quest to get objectives of
|
||||||
|
* @param ignoreOverrides Whether to ignore objective-overrides
|
||||||
|
* @param formatItems Whether to format item names, if applicable
|
||||||
|
* @return List of detailed objectives
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public LinkedList<Objective> getCurrentObjectivesTemp(final IQuest quest, final boolean ignoreOverrides,
|
||||||
|
final boolean formatItems) {
|
||||||
|
if (quest == null) {
|
||||||
|
plugin.getLogger().severe("Quest was null when getting objectives for " + getLastKnownName());
|
||||||
|
return new LinkedList<>();
|
||||||
|
}
|
||||||
|
if (getQuestData(quest) == null) {
|
||||||
|
plugin.getLogger().warning("Quest data was null when getting objectives for " + quest.getName());
|
||||||
|
return new LinkedList<>();
|
||||||
|
}
|
||||||
|
if (getCurrentStage(quest) == 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()) {
|
||||||
|
final LinkedList<Objective> objectives = new LinkedList<>();
|
||||||
|
for (final String s: getCurrentStage(quest).getObjectiveOverrides()) {
|
||||||
|
String message = ChatColor.GREEN + ConfigUtil.parseString(s, quest, getPlayer());
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
// TODO is this acceptable?
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.CUSTOM, message, 0, 1));
|
||||||
|
}
|
||||||
|
return objectives;
|
||||||
|
}
|
||||||
|
final QuestData data = getQuestData(quest);
|
||||||
|
final IStage stage = getCurrentStage(quest);
|
||||||
|
final LinkedList<Objective> objectives = new LinkedList<>();
|
||||||
|
for (final ItemStack goal : stage.getBlocksToBreak()) {
|
||||||
|
for (final ItemStack progress : data.blocksBroken) {
|
||||||
|
if (progress.getType().equals(goal.getType()) && progress.getDurability() == goal.getDurability()) {
|
||||||
|
final ChatColor color = progress.getAmount() < goal.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "break");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + progress.getAmount() + "/"
|
||||||
|
+ goal.getAmount());
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += " <item>" + color + color + ": " + progress.getAmount() + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(progress));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.BREAK_BLOCK, message, progress, goal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (final ItemStack goal : stage.getBlocksToDamage()) {
|
||||||
|
for (final ItemStack progress : data.blocksDamaged) {
|
||||||
|
if (progress.getType().equals(goal.getType()) && progress.getDurability() == goal.getDurability()) {
|
||||||
|
final ChatColor color = progress.getAmount() < goal.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "damage");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + progress.getAmount() + "/"
|
||||||
|
+ goal.getAmount());
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += " <item>" + color + color + ": " + progress.getAmount() + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(progress));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.DAMAGE_BLOCK, message, progress, goal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (final ItemStack goal : stage.getBlocksToPlace()) {
|
||||||
|
for (final ItemStack progress : data.blocksPlaced) {
|
||||||
|
final ChatColor color = progress.getAmount() < goal.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "place");
|
||||||
|
if (progress.getType().equals(goal.getType()) && progress.getDurability() == goal.getDurability()) {
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + progress.getAmount() + "/"
|
||||||
|
+ goal.getAmount());
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += " <item>" + color + color + ": " + progress.getAmount() + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(progress));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.PLACE_BLOCK, message, progress, goal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (final ItemStack goal : stage.getBlocksToUse()) {
|
||||||
|
for (final ItemStack progress : data.blocksUsed) {
|
||||||
|
final ChatColor color = progress.getAmount() < goal.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "use");
|
||||||
|
if (progress.getType().equals(goal.getType()) && progress.getDurability() == goal.getDurability()) {
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + progress.getAmount() + "/"
|
||||||
|
+ goal.getAmount());
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += " <item>" + color + ": " + progress.getAmount() + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(progress));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.USE_BLOCK, message, progress, goal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (final ItemStack goal : stage.getBlocksToCut()) {
|
||||||
|
for (final ItemStack progress : data.blocksCut) {
|
||||||
|
final ChatColor color = progress.getAmount() < goal.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "cut");
|
||||||
|
if (progress.getType().equals(goal.getType()) && progress.getDurability() == goal.getDurability()) {
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + progress.getAmount() + "/"
|
||||||
|
+ goal.getAmount());
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += " <item>" + color + ": " + progress.getAmount() + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(progress));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.CUT_BLOCK, message, progress, goal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int craftIndex = 0;
|
||||||
|
for (final ItemStack goal : stage.getItemsToCraft()) {
|
||||||
|
if (data.itemsCrafted.size() > craftIndex) {
|
||||||
|
final ItemStack progress = data.itemsCrafted.get(craftIndex);
|
||||||
|
final int crafted = progress.getAmount();
|
||||||
|
final int toCraft = goal.getAmount();
|
||||||
|
final ChatColor color = crafted < toCraft ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "craftItem");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + crafted + "/" + toCraft);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + crafted + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(goal));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.CRAFT_ITEM, message, progress, goal));
|
||||||
|
}
|
||||||
|
craftIndex++;
|
||||||
|
}
|
||||||
|
int smeltIndex = 0;
|
||||||
|
for (final ItemStack goal : stage.getItemsToSmelt()) {
|
||||||
|
if (data.itemsSmelted.size() > smeltIndex) {
|
||||||
|
final ItemStack progress = data.itemsSmelted.get(smeltIndex);
|
||||||
|
final int smelted = progress.getAmount();
|
||||||
|
final int toSmelt = goal.getAmount();
|
||||||
|
final ChatColor color = smelted < toSmelt ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "smeltItem");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + smelted + "/" + toSmelt);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + smelted + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(goal));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.SMELT_ITEM, message, progress, goal));
|
||||||
|
}
|
||||||
|
smeltIndex++;
|
||||||
|
}
|
||||||
|
int enchantIndex = 0;
|
||||||
|
for (final ItemStack goal : stage.getItemsToEnchant()) {
|
||||||
|
if (data.itemsEnchanted.size() > enchantIndex) {
|
||||||
|
final ItemStack progress = data.itemsEnchanted.get(enchantIndex);
|
||||||
|
final int enchanted = progress.getAmount();
|
||||||
|
final int toEnchant = goal.getAmount();
|
||||||
|
final ChatColor color = enchanted < toEnchant ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "enchItem");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + enchanted + "/" + toEnchant);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + enchanted + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(goal));
|
||||||
|
}
|
||||||
|
if (goal.getEnchantments().isEmpty()) {
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.ENCHANT_ITEM,
|
||||||
|
message.replace("<enchantment>", "")
|
||||||
|
.replace("<level>", "")
|
||||||
|
.replaceAll("\\s+", " "), progress, goal));
|
||||||
|
} else {
|
||||||
|
for (final Entry<Enchantment, Integer> e : goal.getEnchantments().entrySet()) {
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.ENCHANT_ITEM,
|
||||||
|
message.replace("<enchantment>", ItemUtil.getPrettyEnchantmentName(e.getKey()))
|
||||||
|
.replace("<level>", RomanNumeral.getNumeral(e.getValue())), progress, goal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
enchantIndex++;
|
||||||
|
}
|
||||||
|
int brewIndex = 0;
|
||||||
|
for (final ItemStack goal : stage.getItemsToBrew()) {
|
||||||
|
if (data.itemsBrewed.size() > brewIndex) {
|
||||||
|
final ItemStack progress = data.itemsBrewed.get(brewIndex);
|
||||||
|
final int brewed = progress.getAmount();
|
||||||
|
final int toBrew = goal.getAmount();
|
||||||
|
final ChatColor color = brewed < toBrew ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "brewItem");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + brewed + "/" + toBrew);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + brewed + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(goal));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.BREW_ITEM, message, progress, goal));
|
||||||
|
}
|
||||||
|
brewIndex++;
|
||||||
|
}
|
||||||
|
int consumeIndex = 0;
|
||||||
|
for (final ItemStack goal : stage.getItemsToConsume()) {
|
||||||
|
if (data.itemsConsumed.size() > consumeIndex) {
|
||||||
|
final ItemStack progress = data.itemsConsumed.get(consumeIndex);
|
||||||
|
final int consumed = progress.getAmount();
|
||||||
|
final int toConsume = goal.getAmount();
|
||||||
|
final ChatColor color = consumed < toConsume ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "consumeItem");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + consumed + "/" + toConsume);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + consumed + "/" + goal.getAmount();
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(goal));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.CONSUME_ITEM, message, progress, goal));
|
||||||
|
}
|
||||||
|
consumeIndex++;
|
||||||
|
}
|
||||||
|
int deliverIndex = 0;
|
||||||
|
for (final ItemStack goal : stage.getItemsToDeliver()) {
|
||||||
|
if (data.itemsDelivered.size() > deliverIndex) {
|
||||||
|
final ItemStack progress = data.itemsDelivered.get(deliverIndex);
|
||||||
|
final int delivered = progress.getAmount();
|
||||||
|
final int toDeliver = goal.getAmount();
|
||||||
|
final Integer npc = stage.getItemDeliveryTargets().get(deliverIndex);
|
||||||
|
final ChatColor color = delivered < toDeliver ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "deliver").replace("<npc>", depends.getNPCName(npc));
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + delivered + "/" + toDeliver);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + delivered + "/" + toDeliver;
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
if (formatItems) {
|
||||||
|
message = message.replace("<item>", ItemUtil.getName(goal));
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.DELIVER_ITEM, message, progress, goal));
|
||||||
|
}
|
||||||
|
deliverIndex++;
|
||||||
|
}
|
||||||
|
int interactIndex = 0;
|
||||||
|
for (final Integer n : stage.getCitizensToInteract()) {
|
||||||
|
boolean interacted = false;
|
||||||
|
if (data.citizensInteracted.size() > interactIndex) {
|
||||||
|
interacted = data.citizensInteracted.get(interactIndex);
|
||||||
|
final ChatColor color = !interacted ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "talkTo")
|
||||||
|
.replace("<npc>", depends.getNPCName(n));
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.TALK_TO_NPC, message, 0, 1));
|
||||||
|
}
|
||||||
|
interactIndex++;
|
||||||
|
}
|
||||||
|
int npcKillIndex = 0;
|
||||||
|
for (final Integer n : stage.getCitizensToKill()) {
|
||||||
|
int npcKilled = 0;
|
||||||
|
if (data.citizensNumKilled.size() > npcKillIndex) {
|
||||||
|
npcKilled = data.citizensNumKilled.get(npcKillIndex);
|
||||||
|
}
|
||||||
|
final int toNpcKill = stage.getCitizenNumToKill().get(npcKillIndex);
|
||||||
|
final ChatColor color = npcKilled < toNpcKill ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "kill");
|
||||||
|
if (message.contains("<mob>")) {
|
||||||
|
message = message.replace("<mob>", depends.getNPCName(n));
|
||||||
|
} else {
|
||||||
|
message += " " + depends.getNPCName(n);
|
||||||
|
}
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + npcKilled + "/" + toNpcKill);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + npcKilled + "/" + toNpcKill;
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.KILL_NPC, message, npcKilled, toNpcKill));
|
||||||
|
npcKillIndex++;
|
||||||
|
}
|
||||||
|
int mobKillIndex = 0;
|
||||||
|
for (final EntityType e : stage.getMobsToKill()) {
|
||||||
|
int mobKilled = 0;
|
||||||
|
if (data.mobNumKilled.size() > mobKillIndex) {
|
||||||
|
mobKilled = data.mobNumKilled.get(mobKillIndex);
|
||||||
|
}
|
||||||
|
final int toMobKill = stage.getMobNumToKill().get(mobKillIndex);
|
||||||
|
final ChatColor color = mobKilled < toMobKill ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + "";
|
||||||
|
if (stage.getLocationsToKillWithin().isEmpty()) {
|
||||||
|
message += Lang.get(getPlayer(), "kill");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + mobKilled + "/" + toMobKill);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += ChatColor.AQUA + " <mob>" + color + ": " + mobKilled + "/" + toMobKill;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message += Lang.get(getPlayer(), "killAtLocation").replace("<location>",
|
||||||
|
stage.getKillNames().get(stage.getMobsToKill().indexOf(e)));
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + mobKilled + "/" + toMobKill);
|
||||||
|
} else {
|
||||||
|
message += color + ": " + mobKilled + "/" + toMobKill;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
message = message.replace("<mob>", MiscUtil.getProperMobName(e));
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.KILL_MOB, message, mobKilled, toMobKill));
|
||||||
|
mobKillIndex++;
|
||||||
|
}
|
||||||
|
int tameIndex = 0;
|
||||||
|
for (final int toTame : stage.getMobNumToTame()) {
|
||||||
|
int tamed = 0;
|
||||||
|
if (data.mobsTamed.size() > tameIndex) {
|
||||||
|
tamed = data.mobsTamed.get(tameIndex);
|
||||||
|
}
|
||||||
|
final ChatColor color = tamed < toTame ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "tame");
|
||||||
|
if (!message.contains("<mob>")) {
|
||||||
|
message += " <mob>";
|
||||||
|
}
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + tamed + "/" + toTame);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + tamed + "/" + toTame;
|
||||||
|
}
|
||||||
|
message = message.replace("<mob>", MiscUtil.getProperMobName(stage.getMobsToTame().get(tameIndex)));
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.TAME_MOB, message, tamed, toTame));
|
||||||
|
tameIndex++;
|
||||||
|
}
|
||||||
|
if (stage.getFishToCatch() != null) {
|
||||||
|
final int caught = data.getFishCaught();
|
||||||
|
final int toCatch = stage.getFishToCatch();
|
||||||
|
final ChatColor color = caught < toCatch ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "catchFish");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + caught + "/" + toCatch);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + caught + "/" + toCatch;
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.CATCH_FISH, message, caught, toCatch));
|
||||||
|
}
|
||||||
|
if (stage.getCowsToMilk() != null) {
|
||||||
|
final int milked = data.getCowsMilked();
|
||||||
|
final int toMilk = stage.getCowsToMilk();
|
||||||
|
final ChatColor color = milked < toMilk ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "milkCow");
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + milked + "/" + toMilk);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + milked + "/" + toMilk;
|
||||||
|
}
|
||||||
|
if (depends.getPlaceholderApi() != null) {
|
||||||
|
message = PlaceholderAPI.setPlaceholders(getPlayer(), message);
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.MILK_COW, message, milked, toMilk));
|
||||||
|
}
|
||||||
|
int shearIndex = 0;
|
||||||
|
for (final int toShear : stage.getSheepNumToShear()) {
|
||||||
|
int sheared = 0;
|
||||||
|
if (data.sheepSheared.size() > shearIndex) {
|
||||||
|
sheared = data.sheepSheared.get(shearIndex);
|
||||||
|
}
|
||||||
|
final ChatColor color = sheared < toShear ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(getPlayer(), "shearSheep");
|
||||||
|
message = message.replace("<color>", MiscUtil.getPrettyDyeColorName(stage.getSheepToShear()
|
||||||
|
.get(shearIndex)));
|
||||||
|
if (message.contains("<count>")) {
|
||||||
|
message = message.replace("<count>", "" + color + sheared + "/" + toShear);
|
||||||
|
} else {
|
||||||
|
// Legacy
|
||||||
|
message += color + ": " + sheared + "/" + toShear;
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.SHEAR_SHEEP, message, sheared, toShear));
|
||||||
|
shearIndex++;
|
||||||
|
}
|
||||||
|
if (stage.getPlayersToKill() != null) {
|
||||||
|
final int killed = data.getPlayersKilled();
|
||||||
|
final int toKill = stage.getPlayersToKill();
|
||||||
|
final ChatColor color = data.getPlayersKilled() < stage.getPlayersToKill() ? ChatColor.GREEN
|
||||||
|
: ChatColor.GRAY;
|
||||||
|
String message = color + Lang.get(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(getPlayer(), message);
|
||||||
|
}
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.KILL_PLAYER, message, killed, toKill));
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
String message = color + Lang.get(getPlayer(), "goTo");
|
||||||
|
message = message.replace("<location>", stage.getLocationNames().get(i));
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.REACH_LOCATION, message, 0, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int passIndex = 0;
|
||||||
|
for (final String s : stage.getPasswordDisplays()) {
|
||||||
|
boolean said = false;
|
||||||
|
if (data.passwordsSaid.size() > passIndex) {
|
||||||
|
said = data.passwordsSaid.get(passIndex);
|
||||||
|
}
|
||||||
|
final ChatColor color = !said ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + s;
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.PASSWORD, message, 0, 1));
|
||||||
|
passIndex++;
|
||||||
|
}
|
||||||
|
int customIndex = 0;
|
||||||
|
for (final ICustomObjective co : stage.getCustomObjectives()) {
|
||||||
|
int cleared = 0;
|
||||||
|
if (data.customObjectiveCounts.size() > customIndex) {
|
||||||
|
cleared = data.customObjectiveCounts.get(customIndex);
|
||||||
|
}
|
||||||
|
final int toClear = stage.getCustomObjectiveCounts().get(customIndex);
|
||||||
|
final ChatColor color = cleared < toClear ? ChatColor.GREEN : ChatColor.GRAY;
|
||||||
|
String message = color + co.getDisplay();
|
||||||
|
for (final Entry<String,Object> prompt : co.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 ne) {
|
||||||
|
plugin.getLogger().severe("Unable to gather display for " + co.getName() + " on "
|
||||||
|
+ quest.getName());
|
||||||
|
ne.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (co.canShowCount()) {
|
||||||
|
message = message.replace("%count%", cleared + "/" + toClear);
|
||||||
|
}
|
||||||
|
message = ConfigUtil.parseString(message);
|
||||||
|
objectives.add(new BukkitObjective(ObjectiveType.CUSTOM, message, cleared, toClear));
|
||||||
|
customIndex++;
|
||||||
|
}
|
||||||
|
return objectives;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get current objectives for a quest, both finished and unfinished
|
* Get current objectives for a quest, both finished and unfinished
|
||||||
*
|
*
|
||||||
|
@ -244,6 +244,7 @@ public class Settings implements ISettings {
|
|||||||
consoleLogging = config.getInt("console-logging", 1);
|
consoleLogging = config.getInt("console-logging", 1);
|
||||||
disableCommandFeedback = config.getBoolean("disable-command-feedback", true);
|
disableCommandFeedback = config.getBoolean("disable-command-feedback", true);
|
||||||
genFilesOnJoin = config.getBoolean("generate-files-on-join", true);
|
genFilesOnJoin = config.getBoolean("generate-files-on-join", true);
|
||||||
|
giveJournalItem = config.getBoolean("give-journal-item", false);
|
||||||
ignoreLockedQuests = config.getBoolean("ignore-locked-quests", false);
|
ignoreLockedQuests = config.getBoolean("ignore-locked-quests", false);
|
||||||
killDelay = config.getInt("kill-delay", 600);
|
killDelay = config.getInt("kill-delay", 600);
|
||||||
if (Objects.requireNonNull(config.getString("language")).equalsIgnoreCase("en")) {
|
if (Objects.requireNonNull(config.getString("language")).equalsIgnoreCase("en")) {
|
||||||
|
@ -80,7 +80,7 @@ public class QuestsJournalCommand extends QuestsSubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.getSettings().canGiveJournalItem()) {
|
if (!plugin.getSettings().canGiveJournalItem()) {
|
||||||
final QuestJournal journal = new QuestJournal(quester);
|
final QuestJournal journal = new QuestJournal(plugin, quester);
|
||||||
BookUtil.openPlayer(player, journal.toItemStack());
|
BookUtil.openPlayer(player, journal.toItemStack());
|
||||||
} else {
|
} else {
|
||||||
final Inventory inv = player.getInventory();
|
final Inventory inv = player.getInventory();
|
||||||
@ -90,7 +90,7 @@ public class QuestsJournalCommand extends QuestsSubCommand {
|
|||||||
Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalPutAway")
|
Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalPutAway")
|
||||||
.replace("<journal>", Lang.get(player, "journalTitle")));
|
.replace("<journal>", Lang.get(player, "journalTitle")));
|
||||||
} else if (player.getItemInHand().getType().equals(Material.AIR)) {
|
} else if (player.getItemInHand().getType().equals(Material.AIR)) {
|
||||||
final QuestJournal journal = new QuestJournal(quester);
|
final QuestJournal journal = new QuestJournal(plugin, quester);
|
||||||
player.setItemInHand(journal.toItemStack());
|
player.setItemInHand(journal.toItemStack());
|
||||||
Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
|
Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
|
||||||
.replace("<journal>", Lang.get(player, "journalTitle")));
|
.replace("<journal>", Lang.get(player, "journalTitle")));
|
||||||
@ -98,7 +98,7 @@ public class QuestsJournalCommand extends QuestsSubCommand {
|
|||||||
final ItemStack[] arr = inv.getContents();
|
final ItemStack[] arr = inv.getContents();
|
||||||
for (int i = 0; i < arr.length; i++) {
|
for (int i = 0; i < arr.length; i++) {
|
||||||
if (arr[i] == null) {
|
if (arr[i] == null) {
|
||||||
final QuestJournal journal = new QuestJournal(quester);
|
final QuestJournal journal = new QuestJournal(plugin, quester);
|
||||||
inv.setItem(i, journal.toItemStack());
|
inv.setItem(i, journal.toItemStack());
|
||||||
Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
|
Lang.send(player, ChatColor.YELLOW + Lang.get(player, "journalTaken")
|
||||||
.replace("<journal>", Lang.get(player, "journalTitle")));
|
.replace("<journal>", Lang.get(player, "journalTitle")));
|
||||||
|
@ -12,81 +12,86 @@
|
|||||||
|
|
||||||
package me.blackvein.quests.item;
|
package me.blackvein.quests.item;
|
||||||
|
|
||||||
import me.blackvein.quests.quests.IQuest;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.player.IQuester;
|
import me.blackvein.quests.player.IQuester;
|
||||||
|
import me.blackvein.quests.quests.IQuest;
|
||||||
|
import me.blackvein.quests.quests.Objective;
|
||||||
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
|
import net.md_5.bungee.api.chat.TranslatableComponent;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.BookMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import xyz.upperlevel.spigot.book.BookUtil;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class QuestJournal {
|
public class QuestJournal {
|
||||||
|
|
||||||
|
final Quests plugin;
|
||||||
final IQuester owner;
|
final IQuester owner;
|
||||||
ItemStack journal = new ItemStack(Material.WRITTEN_BOOK);
|
final ItemStack journal;
|
||||||
|
|
||||||
public QuestJournal(final IQuester owner) {
|
public QuestJournal(Quests plugin, final IQuester owner) {
|
||||||
|
this.plugin = plugin;
|
||||||
this.owner = owner;
|
this.owner = owner;
|
||||||
final BookMeta book = (BookMeta) journal.getItemMeta();
|
final Player player = owner.getPlayer();
|
||||||
if (book != null) {
|
final String title = ChatColor.LIGHT_PURPLE + Lang.get(player, "journalTitle");
|
||||||
|
journal = BookUtil.writtenBook()
|
||||||
|
.author(player.getName())
|
||||||
|
.title(title)
|
||||||
|
.pages(getPages())
|
||||||
|
.build();
|
||||||
|
if (journal.getItemMeta() != null) {
|
||||||
|
ItemMeta meta = journal.getItemMeta();
|
||||||
|
meta.setDisplayName(title);
|
||||||
|
journal.setItemMeta(meta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<BaseComponent[]> getPages() {
|
||||||
|
if (owner.getCurrentQuestsTemp().isEmpty()) {
|
||||||
final Player player = owner.getPlayer();
|
final Player player = owner.getPlayer();
|
||||||
final String title = Lang.get(player, "journalTitle");
|
final String title = Lang.get(player, "journalTitle");
|
||||||
book.setDisplayName(ChatColor.LIGHT_PURPLE + title);
|
return Collections.singletonList(new BookUtil.PageBuilder().add(new TextComponent(ChatColor.DARK_RED
|
||||||
book.setTitle(ChatColor.LIGHT_PURPLE + title);
|
+ Lang.get(player, "journalNoQuests").replace("<journal>", title))).build());
|
||||||
book.setAuthor(player.getName());
|
} else {
|
||||||
if (owner.getCurrentQuestsTemp().isEmpty()) {
|
final List<BaseComponent[]> pages = new LinkedList<>();
|
||||||
book.addPage(ChatColor.DARK_RED + Lang.get(player, "journalNoQuests").replace("<journal>", title));
|
final List<IQuest> sortedList = owner.getCurrentQuestsTemp().keySet().stream()
|
||||||
} else {
|
.sorted(Comparator.comparing(IQuest::getName))
|
||||||
int currentLength = 0;
|
.collect(Collectors.toList());
|
||||||
int currentLines = 0;
|
for (final IQuest quest : sortedList) {
|
||||||
StringBuilder page = new StringBuilder();
|
final TextComponent title = new TextComponent(quest.getName());
|
||||||
final List<IQuest> sortedList = owner.getCurrentQuestsTemp().keySet().stream()
|
title.setColor(net.md_5.bungee.api.ChatColor.DARK_PURPLE);
|
||||||
.sorted(Comparator.comparing(IQuest::getName))
|
title.setBold(true);
|
||||||
.collect(Collectors.toList());
|
final BookUtil.PageBuilder builder = new BookUtil.PageBuilder().add(title).newLine();
|
||||||
for (final IQuest quest : sortedList) {
|
for (final Objective obj : owner.getCurrentObjectivesTemp(quest, false, false)) {
|
||||||
if ((currentLength + quest.getName().length() > 240) || (currentLines
|
if (obj.getMessage() != null && obj.getMessage().contains("<item>")) {
|
||||||
+ ((quest.getName().length() % 19) == 0 ? (quest.getName().length() / 19)
|
final String[] split = obj.getMessage().split("<item>");
|
||||||
: ((quest.getName().length() / 19) + 1))) > 13) {
|
builder.add(split[0]);
|
||||||
book.addPage(page.toString());
|
if (plugin.getSettings().canTranslateNames() && obj.getItemGoal() != null) {
|
||||||
page.append(ChatColor.DARK_PURPLE).append(ChatColor.BOLD).append(quest.getName()).append("\n");
|
final TranslatableComponent tc = new TranslatableComponent(plugin.getLocaleManager()
|
||||||
currentLength = quest.getName().length();
|
.queryItemStack(obj.getItemGoal()));
|
||||||
currentLines = (quest.getName().length() % 19) == 0 ? (quest.getName().length() / 19)
|
tc.setColor(net.md_5.bungee.api.ChatColor.DARK_AQUA);
|
||||||
: (quest.getName().length() + 1);
|
builder.add(tc);
|
||||||
} else {
|
} else {
|
||||||
page.append(ChatColor.DARK_PURPLE).append(ChatColor.BOLD).append(quest.getName()).append("\n");
|
builder.add(ItemUtil.getName(obj.getItemGoal()));
|
||||||
currentLength += quest.getName().length();
|
|
||||||
currentLines += (quest.getName().length() / 19);
|
|
||||||
}
|
|
||||||
if (owner.getCurrentObjectives(quest, false) != null) {
|
|
||||||
for (final String obj : owner.getCurrentObjectives(quest, false)) {
|
|
||||||
// Length/Line check
|
|
||||||
if ((currentLength + obj.length() > 240) || (currentLines + ((obj.length() % 19)
|
|
||||||
== 0 ? (obj.length() / 19) : ((obj.length() / 19) + 1))) > 13) {
|
|
||||||
book.addPage(page.toString());
|
|
||||||
page = new StringBuilder(obj + "\n");
|
|
||||||
currentLength = obj.length();
|
|
||||||
currentLines = (obj.length() % 19) == 0 ? (obj.length() / 19) : (obj.length() + 1);
|
|
||||||
} else {
|
|
||||||
page.append(obj).append("\n");
|
|
||||||
currentLength += obj.length();
|
|
||||||
currentLines += (obj.length() / 19);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
builder.add(split[1]).newLine();
|
||||||
|
} else {
|
||||||
|
builder.add(obj.getMessage()).newLine();
|
||||||
}
|
}
|
||||||
if (currentLines < 13)
|
|
||||||
page.append("\n");
|
|
||||||
book.addPage(page.toString());
|
|
||||||
page = new StringBuilder();
|
|
||||||
currentLines = 0;
|
|
||||||
currentLength = 0;
|
|
||||||
}
|
}
|
||||||
|
pages.add(builder.build());
|
||||||
}
|
}
|
||||||
journal.setItemMeta(book);
|
return pages;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,22 +18,48 @@ import me.blackvein.quests.enums.ObjectiveType;
|
|||||||
|
|
||||||
public class BukkitObjective implements Objective {
|
public class BukkitObjective implements Objective {
|
||||||
private final ObjectiveType type;
|
private final ObjectiveType type;
|
||||||
|
private final String message;
|
||||||
private final int progress;
|
private final int progress;
|
||||||
private final int goal;
|
private final int goal;
|
||||||
private final ItemStack progressStack;
|
private final ItemStack progressStack;
|
||||||
private final ItemStack goalStack;
|
private final ItemStack goalStack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link #BukkitObjective(ObjectiveType, String, int, int)} with null message
|
||||||
|
*/
|
||||||
public BukkitObjective(final ObjectiveType type, final int progress, final int goal) {
|
public BukkitObjective(final ObjectiveType type, final int progress, final int goal) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.message = null;
|
||||||
this.progress = progress;
|
this.progress = progress;
|
||||||
this.goal = goal;
|
this.goal = goal;
|
||||||
this.progressStack = null;
|
this.progressStack = null;
|
||||||
this.goalStack = null;
|
this.goalStack = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link #BukkitObjective(ObjectiveType, String, ItemStack, ItemStack)} with null message
|
||||||
|
*/
|
||||||
public BukkitObjective(final ObjectiveType type, final ItemStack progress, final ItemStack goal) {
|
public BukkitObjective(final ObjectiveType type, final ItemStack progress, final ItemStack goal) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.message = null;
|
||||||
|
this.progress = progress.getAmount();
|
||||||
|
this.goal = goal.getAmount();
|
||||||
|
this.progressStack = progress;
|
||||||
|
this.goalStack = goal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BukkitObjective(final ObjectiveType type, final String message, final int progress, final int goal) {
|
||||||
|
this.type = type;
|
||||||
|
this.message = message;
|
||||||
|
this.progress = progress;
|
||||||
|
this.goal = goal;
|
||||||
|
this.progressStack = null;
|
||||||
|
this.goalStack = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BukkitObjective(final ObjectiveType type, final String message, final ItemStack progress, final ItemStack goal) {
|
||||||
|
this.type = type;
|
||||||
|
this.message = message;
|
||||||
this.progress = progress.getAmount();
|
this.progress = progress.getAmount();
|
||||||
this.goal = goal.getAmount();
|
this.goal = goal.getAmount();
|
||||||
this.progressStack = progress;
|
this.progressStack = progress;
|
||||||
@ -44,6 +70,10 @@ public class BukkitObjective implements Objective {
|
|||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMessage() {
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
public int getProgress() {
|
public int getProgress() {
|
||||||
return progress;
|
return progress;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ confirm-accept: true
|
|||||||
console-logging: 2
|
console-logging: 2
|
||||||
disable-command-feedback: false
|
disable-command-feedback: false
|
||||||
generate-files-on-join: true
|
generate-files-on-join: true
|
||||||
|
give-journal-item: false
|
||||||
ignore-locked-quests: false
|
ignore-locked-quests: false
|
||||||
kill-delay: 600
|
kill-delay: 600
|
||||||
language: en-US
|
language: en-US
|
||||||
|
Loading…
Reference in New Issue
Block a user