mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-12 13:43:57 +01:00
Configurable progress sharing level for multiplayer quests, fixes #679
This commit is contained in:
parent
9015571680
commit
ed0beae1ec
@ -17,6 +17,7 @@ public class Options {
|
||||
private boolean allowQuitting = true;
|
||||
private boolean useDungeonsXLPlugin = false;
|
||||
private boolean usePartiesPlugin = true;
|
||||
private int shareProgressLevel = 1;
|
||||
|
||||
public boolean getAllowCommands() {
|
||||
return allowCommands;
|
||||
@ -49,4 +50,12 @@ public class Options {
|
||||
public void setUsePartiesPlugin(boolean usePartiesPlugin) {
|
||||
this.usePartiesPlugin = usePartiesPlugin;
|
||||
}
|
||||
|
||||
public int getShareProgressLevel() {
|
||||
return shareProgressLevel;
|
||||
}
|
||||
|
||||
public void setShareProgressLevel(int shareProgressLevel) {
|
||||
this.shareProgressLevel = shareProgressLevel;
|
||||
}
|
||||
}
|
@ -14,9 +14,9 @@ package me.blackvein.quests;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
@ -27,7 +27,6 @@ import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
|
||||
import com.alessiodp.parties.api.interfaces.Party;
|
||||
import com.codisimus.plugins.phatloots.PhatLootsAPI;
|
||||
import com.codisimus.plugins.phatloots.loot.CommandLoot;
|
||||
import com.codisimus.plugins.phatloots.loot.LootBundle;
|
||||
@ -37,7 +36,6 @@ import com.herocraftonline.heroes.characters.Hero;
|
||||
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
||||
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
||||
|
||||
import de.erethon.dungeonsxl.player.DGroup;
|
||||
import me.blackvein.quests.actions.Action;
|
||||
import me.blackvein.quests.events.quester.QuesterPostChangeStageEvent;
|
||||
import me.blackvein.quests.events.quester.QuesterPostCompleteQuestEvent;
|
||||
@ -185,36 +183,6 @@ public class Quest {
|
||||
if (q.getCurrentStage(this).finishEvent != null) {
|
||||
q.getCurrentStage(this).finishEvent.fire(q, this);
|
||||
}
|
||||
if (plugin.getDependencies().getPartiesApi() != null) {
|
||||
if (opts.getUsePartiesPlugin()) {
|
||||
Party party = plugin.getDependencies().getPartiesApi().getParty(plugin.getDependencies().getPartiesApi().getPartyPlayer(q.getUUID()).getPartyName());
|
||||
if (party != null) {
|
||||
for (UUID id : party.getMembers()) {
|
||||
if (!id.equals(q.getUUID())) {
|
||||
if (plugin.getQuester(id).getCurrentQuests().containsKey(this)) {
|
||||
completeQuest(plugin.getQuester(id));
|
||||
}
|
||||
}
|
||||
}
|
||||
plugin.getLogger().info("Quest \'" + name + "\' was completed by party " + party.getName() + " (" + party.getMembers().size() + " members)");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (plugin.getDependencies().getDungeonsApi() != null) {
|
||||
if (opts.getUseDungeonsXLPlugin()) {
|
||||
DGroup group = DGroup.getByPlayer(q.getPlayer());
|
||||
if (group != null) {
|
||||
for (UUID id : group.getPlayers().getUniqueIds()) {
|
||||
if (!id.equals(q.getUUID())) {
|
||||
if (plugin.getQuester(id).getCurrentQuests().containsKey(this)) {
|
||||
completeQuest(plugin.getQuester(id));
|
||||
}
|
||||
}
|
||||
}
|
||||
plugin.getLogger().info("Quest \'" + name + "\' was completed by group " + group.getName() + " (" + group.getPlayers().size() + " players)");
|
||||
}
|
||||
}
|
||||
}
|
||||
completeQuest(q);
|
||||
} else {
|
||||
try {
|
||||
@ -225,6 +193,22 @@ public class Quest {
|
||||
} catch (InvalidStageException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// Multiplayer
|
||||
try {
|
||||
if (opts.getShareProgressLevel() == 3) {
|
||||
List<Quester> mq = q.getMultiplayerQuesters(this);
|
||||
if (mq != null) {
|
||||
for (Quester qq : mq) {
|
||||
if (qq.getCurrentQuests().containsKey(this)) {
|
||||
setStage(qq, qq.currentQuests.get(this) + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (InvalidStageException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (q.getQuestData(this) != null) {
|
||||
q.getQuestData(this).delayStartTime = 0;
|
||||
@ -692,6 +676,18 @@ public class Quest {
|
||||
q.findCompassTarget();
|
||||
QuesterPostCompleteQuestEvent postEvent = new QuesterPostCompleteQuestEvent(q, this);
|
||||
plugin.getServer().getPluginManager().callEvent(postEvent);
|
||||
|
||||
// Multiplayer
|
||||
if (opts.getShareProgressLevel() == 4) {
|
||||
List<Quester> mq = q.getMultiplayerQuesters(this);
|
||||
if (mq != null) {
|
||||
for (Quester qq : mq) {
|
||||
if (qq.getCurrentQuests().containsKey(this)) {
|
||||
completeQuest(qq);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -387,8 +387,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
||||
return new CreateMenuPrompt();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new SetNpcStartPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
@ -816,6 +815,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
||||
boolean allowQuittingOpt = true;
|
||||
boolean useDungeonsXLPluginOpt = false;
|
||||
boolean usePartiesPluginOpt = true;
|
||||
Integer shareProgressLevelOpt = 1;
|
||||
if (cc.getSessionData(CK.Q_START_NPC) != null) {
|
||||
npcStart = (Integer) cc.getSessionData(CK.Q_START_NPC);
|
||||
}
|
||||
@ -942,6 +942,9 @@ public class QuestFactory implements ConversationAbandonedListener {
|
||||
if (cc.getSessionData(CK.OPT_USE_PARTIES_PLUGIN) != null) {
|
||||
usePartiesPluginOpt = (Boolean) cc.getSessionData(CK.OPT_USE_PARTIES_PLUGIN);
|
||||
}
|
||||
if (cc.getSessionData(CK.OPT_SHARE_PROGRESS_LEVEL) != null) {
|
||||
shareProgressLevelOpt = (Integer) cc.getSessionData(CK.OPT_SHARE_PROGRESS_LEVEL);
|
||||
}
|
||||
cs.set("name", name);
|
||||
cs.set("npc-giver-id", npcStart);
|
||||
cs.set("block-start", blockStart);
|
||||
@ -1408,6 +1411,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
||||
sch.set("allow-quitting", allowQuittingOpt);
|
||||
sch.set("use-dungeonsxl-plugin", useDungeonsXLPluginOpt);
|
||||
sch.set("use-parties-plugin", usePartiesPluginOpt);
|
||||
sch.set("share-progress-level", shareProgressLevelOpt);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@ -1524,6 +1528,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
||||
cc.setSessionData(CK.OPT_ALLOW_QUITTING, opt.getAllowQuitting());
|
||||
cc.setSessionData(CK.OPT_USE_DUNGEONSXL_PLUGIN, opt.getUseDungeonsXLPlugin());
|
||||
cc.setSessionData(CK.OPT_USE_PARTIES_PLUGIN, opt.getUsePartiesPlugin());
|
||||
cc.setSessionData(CK.OPT_SHARE_PROGRESS_LEVEL, opt.getShareProgressLevel());
|
||||
// Stages (Objectives)
|
||||
int index = 1;
|
||||
for (Stage stage : q.getStages()) {
|
||||
|
@ -46,6 +46,9 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BookMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import com.alessiodp.parties.api.interfaces.Party;
|
||||
|
||||
import de.erethon.dungeonsxl.player.DGroup;
|
||||
import me.blackvein.quests.events.quester.QuesterPostStartQuestEvent;
|
||||
import me.blackvein.quests.events.quester.QuesterPreStartQuestEvent;
|
||||
import me.blackvein.quests.timers.StageTimer;
|
||||
@ -1050,6 +1053,18 @@ public class Quester {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Multiplayer
|
||||
if (quest.getOptions().getShareProgressLevel() == 1) {
|
||||
List<Quester> mq = getMultiplayerQuesters(quest);
|
||||
if (mq != null) {
|
||||
for (Quester q : mq) {
|
||||
if (q.getCurrentQuests().containsKey(quest)) {
|
||||
q.breakBlock(quest, m);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1740,19 +1755,11 @@ public class Quester {
|
||||
EntityType mob, String extra, NPC npc, Location location, DyeColor color, String pass, CustomObjective co) {
|
||||
Player p = getPlayer();
|
||||
if (getCurrentStage(quest).objectiveOverride != null) {
|
||||
if (testComplete(quest)) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + getCurrentStage(quest).objectiveOverride;
|
||||
p.sendMessage(message);
|
||||
quest.nextStage(this);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (objective.equalsIgnoreCase("password")) {
|
||||
} else if (objective.equalsIgnoreCase("password")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + pass;
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("breakBlock")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "break") + " <item>";
|
||||
message = message + " " + goal.getAmount() + "/" + goal.getAmount();
|
||||
@ -1761,9 +1768,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(increment)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("damageBlock")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "damage") + " <item>";
|
||||
message = message + " " + goal.getAmount() + "/" + goal.getAmount();
|
||||
@ -1772,9 +1776,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(increment)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("placeBlock")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "place") + " <item>";
|
||||
message = message + " " + goal.getAmount() + "/" + goal.getAmount();
|
||||
@ -1783,9 +1784,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(increment)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("useBlock")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "use") + " <item>";
|
||||
message = message + " " + goal.getAmount() + "/" + goal.getAmount();
|
||||
@ -1794,9 +1792,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(increment)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("cutBlock")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "cut") + " <item>";
|
||||
message = message + " " + goal.getAmount() + "/" + goal.getAmount();
|
||||
@ -1805,9 +1800,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(increment)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("craftItem")) {
|
||||
ItemStack is = getCurrentStage(quest).itemsToCraft.get(getCurrentStage(quest).itemsToCraft.indexOf(goal));
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "craft") + " <item> "
|
||||
@ -1817,9 +1809,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(is)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("smeltItem")) {
|
||||
ItemStack is = getCurrentStage(quest).itemsToSmelt.get(getCurrentStage(quest).itemsToSmelt.indexOf(goal));
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "smelt") + " <item> "
|
||||
@ -1829,9 +1818,6 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(is)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("enchantItem")) {
|
||||
String obj = Lang.get(p, "enchantItem");
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + obj;
|
||||
@ -1849,9 +1835,6 @@ public class Quester {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(increment))
|
||||
.replace("<enchantment>", enchantment.getName()));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("deliverItem")) {
|
||||
String obj = Lang.get(p, "deliver");
|
||||
obj = obj.replace("<npc>", plugin.getNPCName(getCurrentStage(quest).itemDeliveryTargets.get(getCurrentStage(quest).itemsToDeliver.indexOf(goal))));
|
||||
@ -1862,16 +1845,10 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<item>", ItemUtil.getName(is)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("catchFish")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "catchFish") + " ";
|
||||
message = message + " " + getCurrentStage(quest).fishToCatch + "/" + getCurrentStage(quest).fishToCatch;
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("killMob")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "kill") + " <mob>";
|
||||
message = message + " " + getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(mob)) + "/" + getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(mob));
|
||||
@ -1880,31 +1857,19 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<mob>", MiscUtil.getProperMobName(mob)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("killPlayer")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "killPlayer");
|
||||
message = message + " " + getCurrentStage(quest).playersToKill + "/" + getCurrentStage(quest).playersToKill;
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("talkToNPC")) {
|
||||
String obj = Lang.get(p, "talkTo");
|
||||
obj = obj.replace("<npc>", plugin.getNPCName(npc.getId()));
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + obj;
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("killNPC")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "kill") + " " + npc.getName();
|
||||
message = message + " " + getCurrentStage(quest).citizenNumToKill.get(getCurrentStage(quest).citizensToKill.indexOf(npc.getId())) + "/" + getCurrentStage(quest).citizenNumToKill.get(getCurrentStage(quest).citizensToKill.indexOf(npc.getId()));
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("tameMob")) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + Lang.get(p, "tame") + " <mob>";
|
||||
message = message + " " + getCurrentStage(quest).mobsToTame.get(mob) + "/" + getCurrentStage(quest).mobsToTame.get(mob);
|
||||
@ -1913,26 +1878,17 @@ public class Quester {
|
||||
} else {
|
||||
p.sendMessage(message.replace("<mob>", MiscUtil.getProperMobName(mob)));
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("shearSheep")) {
|
||||
String obj = Lang.get(p, "shearSheep");
|
||||
obj = obj.replace("<color>", color.name().toLowerCase());
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + obj;
|
||||
message = message + " " + getCurrentStage(quest).sheepToShear.get(color) + "/" + getCurrentStage(quest).sheepToShear.get(color);
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (objective.equalsIgnoreCase("reachLocation")) {
|
||||
String obj = Lang.get(p, "goTo");
|
||||
obj = obj.replace("<location>", getCurrentStage(quest).locationNames.get(getCurrentStage(quest).locationsToReach.indexOf(location)));
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + obj;
|
||||
p.sendMessage(message);
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
} else if (co != null) {
|
||||
String message = ChatColor.GREEN + "(" + Lang.get(p, "completed") + ") " + co.getDisplay();
|
||||
int index = -1;
|
||||
@ -1954,17 +1910,29 @@ public class Quester {
|
||||
message = message.replace("%count%", getCurrentStage(quest).customObjectiveCounts.get(index) + "/" + getCurrentStage(quest).customObjectiveCounts.get(index));
|
||||
}
|
||||
p.sendMessage(message);
|
||||
}
|
||||
if (testComplete(quest)) {
|
||||
quest.nextStage(this);
|
||||
}
|
||||
|
||||
// Multiplayer
|
||||
if (quest.getOptions().getShareProgressLevel() == 2) {
|
||||
List<Quester> mq = getMultiplayerQuesters(quest);
|
||||
if (mq != null) {
|
||||
for (Quester q : mq) {
|
||||
if (q.getCurrentQuests().containsKey(quest)) {
|
||||
quest.nextStage(q);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a quest has been marked as complete
|
||||
* Check whether this Quester has completed all objectives for their current stage
|
||||
*
|
||||
* @param quest The quest being checked
|
||||
* @return true if marked complete
|
||||
* @param quest The quest with the current stage being checked
|
||||
* @return true if all stage objectives are marked complete
|
||||
*/
|
||||
public boolean testComplete(Quest quest) {
|
||||
for (String s : getObjectives(quest, true)) {
|
||||
@ -3029,6 +2997,47 @@ public class Quester {
|
||||
return playerAmount >= is.getAmount();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of follow Questers in a party or group
|
||||
*
|
||||
* @param quest The quest which uses a linked plugin, i.e. Parties or DungeonsXL
|
||||
* @return null if quest is null, no linked plugins, or party/group is null
|
||||
*/
|
||||
public List<Quester> getMultiplayerQuesters(Quest quest) {
|
||||
if (quest == null) {
|
||||
return null;
|
||||
}
|
||||
if (plugin.getDependencies().getPartiesApi() != null) {
|
||||
if (quest.getOptions().getUsePartiesPlugin()) {
|
||||
Party party = plugin.getDependencies().getPartiesApi().getParty(plugin.getDependencies().getPartiesApi().getPartyPlayer(getUUID()).getPartyName());
|
||||
if (party != null) {
|
||||
List<Quester> mq = new LinkedList<Quester>();
|
||||
for (UUID id : party.getMembers()) {
|
||||
if (!id.equals(getUUID())) {
|
||||
mq.add(plugin.getQuester(id));
|
||||
}
|
||||
}
|
||||
return mq;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (plugin.getDependencies().getDungeonsApi() != null) {
|
||||
if (quest.getOptions().getUseDungeonsXLPlugin()) {
|
||||
DGroup group = DGroup.getByPlayer(getPlayer());
|
||||
if (group != null) {
|
||||
List<Quester> mq = new LinkedList<Quester>();
|
||||
for (UUID id : group.getPlayers()) {
|
||||
if (!id.equals(getUUID())) {
|
||||
mq.add(plugin.getQuester(id));
|
||||
}
|
||||
}
|
||||
return mq;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// I'm not sure why these methods are here. They've been in the class for a long time but aren't used anywhere?
|
||||
|
||||
/*public static String checkPlacement(Inventory inv, int rawSlot) {
|
||||
|
@ -1814,6 +1814,9 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
if (config.contains("quests." + questKey + ".options.use-parties-plugin")) {
|
||||
opts.setUsePartiesPlugin(config.getBoolean("quests." + questKey + ".options.use-parties-plugin"));
|
||||
}
|
||||
if (config.contains("quests." + questKey + ".options.share-progress-level")) {
|
||||
opts.setShareProgressLevel(config.getInt("quests." + questKey + ".options.share-progress-level"));
|
||||
}
|
||||
}
|
||||
|
||||
private void skipQuestProcess(String[] msgs) throws SkipQuest {
|
||||
|
@ -1651,7 +1651,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
try {
|
||||
inp = Integer.parseInt(input);
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorNotANumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new MobPrompt();
|
||||
}
|
||||
if (inp == types.size() + 1) {
|
||||
@ -1889,7 +1889,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
questMob.setSpawnAmounts(i);
|
||||
return new QuestMobPrompt(mobIndex, questMob);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("eventEditorNotANumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new MobAmountPrompt(mobIndex, questMob);
|
||||
}
|
||||
}
|
||||
@ -2174,7 +2174,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
}
|
||||
effDurations.add(l / 50L);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("eventEditorNotANumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", s));
|
||||
return new PotionDurationsPrompt();
|
||||
}
|
||||
}
|
||||
@ -2205,7 +2205,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
}
|
||||
magAmounts.add(i);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("eventEditorNotANumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", s));
|
||||
return new PotionMagnitudesPrompt();
|
||||
}
|
||||
}
|
||||
@ -2234,8 +2234,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
context.setSessionData(CK.E_HUNGER, (Integer) i);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new HungerPrompt();
|
||||
}
|
||||
} else {
|
||||
@ -2264,8 +2263,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
context.setSessionData(CK.E_SATURATION, (Integer) i);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new SaturationPrompt();
|
||||
}
|
||||
} else {
|
||||
@ -2294,8 +2292,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
||||
context.setSessionData(CK.E_HEALTH, (Integer) i);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new HealthPrompt();
|
||||
}
|
||||
} else {
|
||||
|
@ -82,7 +82,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
if (cmd.getName().equalsIgnoreCase("quest")) {
|
||||
return questCommandHandler(cs, args);
|
||||
} else if (cmd.getName().equalsIgnoreCase("quests")) {
|
||||
return questActionsCommandHandler(cs, args);
|
||||
return questsCommandHandler(cs, args);
|
||||
} else if (cmd.getName().equalsIgnoreCase("questadmin")) {
|
||||
return questAdminCommandHandler(cs, args);
|
||||
}
|
||||
@ -196,7 +196,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
showQuestDetails(cs, args);
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
@ -206,7 +206,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean questActionsCommandHandler(final CommandSender cs, String[] args) {
|
||||
private boolean questsCommandHandler(final CommandSender cs, String[] args) {
|
||||
if (cs instanceof Player) {
|
||||
if (args.length == 0) {
|
||||
questsHelp(cs);
|
||||
@ -419,7 +419,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
cs.sendMessage(ChatColor.YELLOW + Lang.get("questNotFound"));
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -443,7 +443,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("duplicateEditor"));
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -457,7 +457,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("duplicateEditor"));
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -649,7 +649,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
player.sendMessage(ChatColor.YELLOW + Lang.get(player, "noActiveQuest"));
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "NoPermission"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -742,7 +742,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "NoPermission"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "noPermission"));
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.YELLOW + Lang.get(player, "questTakeDisabled"));
|
||||
@ -768,7 +768,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
plugin.listQuests((Player) cs, page);
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -777,7 +777,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
Player p = (Player) cs;
|
||||
printHelp(p);
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -839,7 +839,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin")) {
|
||||
printAdminHelp(cs);
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -851,7 +851,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
msg = msg.replace("<number>", ChatColor.DARK_PURPLE + String.valueOf(plugin.getQuests().size()) + ChatColor.GOLD);
|
||||
cs.sendMessage(ChatColor.GOLD + msg);
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -887,7 +887,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("unknownError"));
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -922,7 +922,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -958,7 +958,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
quester.saveData();
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -994,7 +994,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
quester.saveData();
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1051,7 +1051,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1126,7 +1126,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
thread.start();
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1166,7 +1166,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1224,7 +1224,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1264,7 +1264,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1306,7 +1306,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
} catch (NullPointerException npe) {
|
||||
npe.printStackTrace();
|
||||
@ -1353,7 +1353,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
temp2.add(quester);
|
||||
plugin.setQuesters(temp2);
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1361,7 +1361,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
if (cs.hasPermission("quests.admin.*") && cs.hasPermission("quests.admin.stats")) {
|
||||
questsStats(cs, args);
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1390,7 +1390,7 @@ public class CmdExecutor implements CommandExecutor {
|
||||
quester.saveData();
|
||||
quester.updateJournal();
|
||||
} else {
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("NoPermission"));
|
||||
cs.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -462,8 +462,7 @@ public class CreateStagePrompt extends FixedSetPrompt {
|
||||
context.setSessionData(pref + CK.S_PLAYER_KILL, i);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new KillPlayerPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
@ -652,7 +651,7 @@ public class CreateStagePrompt extends FixedSetPrompt {
|
||||
}
|
||||
radii.add(i);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new ReachRadiiPrompt();
|
||||
}
|
||||
}
|
||||
@ -1133,7 +1132,7 @@ public class CreateStagePrompt extends FixedSetPrompt {
|
||||
int i = Integer.parseInt(input);
|
||||
stageDelay = i * 1000;
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new DelayPrompt();
|
||||
}
|
||||
if (stageDelay < 1000) {
|
||||
@ -1405,7 +1404,7 @@ public class CreateStagePrompt extends FixedSetPrompt {
|
||||
return new CreateStagePrompt(plugin, stageNum, questFactory);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new CustomObjectiveCountPrompt();
|
||||
}
|
||||
}
|
||||
|
@ -435,7 +435,7 @@ public class ItemStackPrompt extends FixedSetPrompt {
|
||||
return new ItemStackPrompt(oldPrompt);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
cc.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("itemCreateNotNumber"));
|
||||
cc.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new LevelPrompt(enchantment);
|
||||
}
|
||||
}
|
||||
|
@ -370,7 +370,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
||||
}
|
||||
mobAmounts.add(i);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new MobAmountsPrompt();
|
||||
}
|
||||
}
|
||||
@ -490,8 +490,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
||||
context.setSessionData(pref + CK.S_FISH, i);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new FishPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
@ -648,7 +647,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
||||
}
|
||||
mobAmounts.add(i);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new TameAmountsPrompt();
|
||||
}
|
||||
}
|
||||
@ -798,7 +797,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
||||
}
|
||||
shearAmounts.add(i);
|
||||
} catch (NumberFormatException e) {
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED + Lang.get("stageEditorInvalidNumber"));
|
||||
player.sendMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new ShearAmountsPrompt();
|
||||
}
|
||||
}
|
||||
|
@ -92,6 +92,35 @@ public class OptionsPrompt extends FixedSetPrompt {
|
||||
}
|
||||
}
|
||||
|
||||
private class NumberPrompt extends StringPrompt {
|
||||
|
||||
@Override
|
||||
public String getPromptText(ConversationContext context) {
|
||||
String text = Lang.get("optNumberPrompt");
|
||||
text += "\n" + ChatColor.GRAY + "\u2515 " + ChatColor.GOLD + "1" + ChatColor.RESET + " = " + ChatColor.GOLD + Lang.get("everything");
|
||||
text += "\n" + ChatColor.GRAY + "\u2515 " + ChatColor.GOLD + "2" + ChatColor.RESET + " = " + ChatColor.GOLD + Lang.get("objectives");;
|
||||
text += "\n" + ChatColor.GRAY + "\u2515 " + ChatColor.GOLD + "3" + ChatColor.RESET + " = " + ChatColor.GOLD + Lang.get("stageEditorStages");
|
||||
text += "\n" + ChatColor.GRAY + "\u2515 " + ChatColor.GOLD + "4" + ChatColor.RESET + " = " + ChatColor.GOLD + Lang.get("quests");
|
||||
return ChatColor.YELLOW + text;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Prompt acceptInput(ConversationContext context, String input) {
|
||||
if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false && input.equalsIgnoreCase(Lang.get("cmdClear")) == false) {
|
||||
try {
|
||||
int i = Integer.parseInt(input);
|
||||
context.setSessionData(tempKey, i);
|
||||
} catch (Exception e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
context.setSessionData(tempKey, null);
|
||||
return tempPrompt;
|
||||
}
|
||||
return tempPrompt;
|
||||
}
|
||||
}
|
||||
|
||||
private class GeneralPrompt extends StringPrompt {
|
||||
|
||||
@Override
|
||||
@ -166,7 +195,16 @@ public class OptionsPrompt extends FixedSetPrompt {
|
||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("optUsePartiesPlugin") + " ("
|
||||
+ (partiesOpt ? ChatColor.GREEN + String.valueOf(partiesOpt) : ChatColor.RED + String.valueOf(partiesOpt)) + ChatColor.YELLOW + ")\n";
|
||||
}
|
||||
text += ChatColor.GREEN + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
||||
if (context.getSessionData(CK.OPT_SHARE_PROGRESS_LEVEL) == null) {
|
||||
int defaultOpt = new Options().getShareProgressLevel();
|
||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("optShareProgressLevel") + " ("
|
||||
+ ChatColor.AQUA + String.valueOf(defaultOpt) + ChatColor.YELLOW + ")\n";
|
||||
} else {
|
||||
int shareOpt = (Integer) context.getSessionData(CK.OPT_SHARE_PROGRESS_LEVEL);
|
||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("optShareProgressLevel") + " ("
|
||||
+ ChatColor.AQUA + String.valueOf(shareOpt) + ChatColor.YELLOW + ")\n";
|
||||
}
|
||||
text += ChatColor.GREEN + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
||||
return text;
|
||||
}
|
||||
|
||||
@ -181,6 +219,10 @@ public class OptionsPrompt extends FixedSetPrompt {
|
||||
tempPrompt = new MultiplayerPrompt();
|
||||
return new TrueFalsePrompt();
|
||||
} else if (input.equalsIgnoreCase("3")) {
|
||||
tempKey = CK.OPT_SHARE_PROGRESS_LEVEL;
|
||||
tempPrompt = new MultiplayerPrompt();
|
||||
return new NumberPrompt();
|
||||
} else if (input.equalsIgnoreCase("4")) {
|
||||
tempKey = null;
|
||||
tempPrompt = null;
|
||||
try {
|
||||
|
@ -130,8 +130,7 @@ public class PlannerPrompt extends FixedSetPrompt {
|
||||
context.setSessionData(CK.PLN_REPEAT_CYCLE, delay);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new RepeatPrompt();
|
||||
}
|
||||
return new PlannerPrompt(plugin, factory);
|
||||
@ -164,8 +163,7 @@ public class PlannerPrompt extends FixedSetPrompt {
|
||||
context.setSessionData(CK.PLN_COOLDOWN, delay);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new CooldownPrompt();
|
||||
}
|
||||
return new PlannerPrompt(plugin, factory);
|
||||
|
@ -211,8 +211,7 @@ public class RequirementsPrompt extends FixedSetPrompt {
|
||||
return new MoneyPrompt();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new MoneyPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
@ -242,8 +241,7 @@ public class RequirementsPrompt extends FixedSetPrompt {
|
||||
return new QuestPointsPrompt();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new QuestPointsPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
|
@ -210,8 +210,7 @@ public class RewardsPrompt extends FixedSetPrompt {
|
||||
return new MoneyPrompt();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new MoneyPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
@ -241,8 +240,7 @@ public class RewardsPrompt extends FixedSetPrompt {
|
||||
return new ExperiencePrompt();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new ExperiencePrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
@ -272,8 +270,7 @@ public class RewardsPrompt extends FixedSetPrompt {
|
||||
return new QuestPointsPrompt();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
context.getForWhom().sendRawMessage(ChatColor.LIGHT_PURPLE + input + " " + ChatColor.RED
|
||||
+ Lang.get("stageEditorInvalidNumber"));
|
||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNotANumber").replace("<input>", input));
|
||||
return new QuestPointsPrompt();
|
||||
}
|
||||
} else if (input.equalsIgnoreCase(Lang.get("cmdClear"))) {
|
||||
|
@ -134,6 +134,7 @@ public class CK {
|
||||
public static final String OPT_ALLOW_QUITTING = "allowQuittingOpt";
|
||||
public static final String OPT_USE_DUNGEONSXL_PLUGIN = "useDungeonsXLPluginOpt";
|
||||
public static final String OPT_USE_PARTIES_PLUGIN = "usePartiesPluginOpt";
|
||||
public static final String OPT_SHARE_PROGRESS_LEVEL = "shareProgressLevelOpt";
|
||||
// Events
|
||||
public static final String E_OLD_EVENT = "oldEvent";
|
||||
public static final String E_NAME = "evtName";
|
||||
|
@ -255,7 +255,6 @@ stageEditorInvalidEnchantment: "is not a valid enchantment name!"
|
||||
stageEditorInvalidNPC: "is not a valid NPC ID!"
|
||||
stageEditorInvalidMob: "is not a valid mob name!"
|
||||
stageEditorInvalidItemName: "is not a valid item name!"
|
||||
stageEditorInvalidNumber: "is not a number!"
|
||||
stageEditorInvalidDye: "is not a valid dye color!"
|
||||
stageEditorInvalidEvent: "is not a valid action name!"
|
||||
stageEditorDuplicateEvent: "Action is already in the list!"
|
||||
@ -351,7 +350,6 @@ eventEditorSetItemAmounts: "Set item amounts"
|
||||
eventEditorNoNames: "No names set"
|
||||
eventEditorMustSetNames: "You must set item names first!"
|
||||
eventEditorInvalidName: "is not a valid item name!"
|
||||
eventEditorNotANumber: "is not a number!"
|
||||
eventEditorStorm: "Action Storm"
|
||||
eventEditorSetWorld: "Set world"
|
||||
eventEditorSetDuration: "Set duration"
|
||||
@ -485,11 +483,13 @@ plnTooLate: "<quest> was last active <time> ago."
|
||||
optGeneral: "General"
|
||||
optMultiplayer: "Multiplayer"
|
||||
optBooleanPrompt: "Enter '<true>' or '<false>', <clear>, <cancel>"
|
||||
optNumberPrompt: "Enter a level (number) for tracking progress, <clear>, <cancel>"
|
||||
optAllowCommands: "Allow commands during quest"
|
||||
optAllowQuitting: "Allow quitting during quest"
|
||||
optCommandsDenied: "You cannot use commands during <quest>."
|
||||
optUseDungeonsXLPlugin: "Use DungeonsXL plugin"
|
||||
optUsePartiesPlugin: "Use Parties plugin"
|
||||
optShareProgressLevel: "Level of progress sharing"
|
||||
rewSetMoney: "Set money reward"
|
||||
rewSetQuestPoints: "Set Quest Points reward"
|
||||
rewSetItems: "Set item rewards"
|
||||
@ -552,7 +552,6 @@ itemCreateInvalidName: "Invalid item name!"
|
||||
itemCreateInvalidDurab: "Invalid item durability!"
|
||||
itemCreateInvalidEnch: "Invalid enchantment name!"
|
||||
itemCreateInvalidInput: "Invalid input!"
|
||||
itemCreateNotNumber: "Input was not a number!"
|
||||
itemCreateNoNameAmount: "You must set a name and amount first!"
|
||||
itemCreateCriticalError: "A critical error has occurred."
|
||||
dateCreateEnterDay: "Enter a day (max. 31), <cancel>"
|
||||
@ -717,7 +716,6 @@ disableNPCGUI: "<npc> will no longer provide a GUI Quest Display."
|
||||
invalidMinimum: "Input must be at least <number>!"
|
||||
invalidRange: "Input must be between <least> and <greatest>!"
|
||||
invalidOption: "Invalid option!"
|
||||
invalidNumber: "Invalid number."
|
||||
invalidStageNum: "Invalid stage number for Quest <quest>"
|
||||
noCurrentQuest: "<player> does not currently have any active Quests."
|
||||
playerNotFound: "Player not found."
|
||||
@ -835,6 +833,8 @@ questPoints: "Quest Points"
|
||||
accepted: "Accepted"
|
||||
complete: "Complete"
|
||||
redoable: "Redoable"
|
||||
objectives: "Objectives"
|
||||
everything: "Everything"
|
||||
usage: "Usage"
|
||||
redoableEvery: "Redoable every <time>."
|
||||
requirements: "Requirements"
|
||||
|
Loading…
Reference in New Issue
Block a user