mirror of
https://github.com/PikaMug/Quests.git
synced 2025-02-08 16:41:21 +01:00
*Multiple lines of text.
*add extra text to description and finish text.
This commit is contained in:
parent
cfb567f59c
commit
83bdc7b458
@ -1,225 +1,231 @@
|
|||||||
package me.blackvein.quests;
|
package me.blackvein.quests;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import net.citizensnpcs.api.CitizensAPI;
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
import net.citizensnpcs.api.event.NPCDeathEvent;
|
import net.citizensnpcs.api.event.NPCDeathEvent;
|
||||||
import net.citizensnpcs.api.event.NPCRightClickEvent;
|
import net.citizensnpcs.api.event.NPCRightClickEvent;
|
||||||
import net.citizensnpcs.api.npc.NPC;
|
import net.citizensnpcs.api.npc.NPC;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.conversations.Conversable;
|
import org.bukkit.conversations.Conversable;
|
||||||
import org.bukkit.conversations.Conversation;
|
import org.bukkit.conversations.Conversation;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class NpcListener implements Listener {
|
public class NpcListener implements Listener {
|
||||||
|
|
||||||
final Quests plugin;
|
final Quests plugin;
|
||||||
|
|
||||||
public NpcListener(Quests newPlugin) {
|
public NpcListener(Quests newPlugin) {
|
||||||
|
|
||||||
plugin = newPlugin;
|
plugin = newPlugin;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onNPCRightClick(NPCRightClickEvent evt) {
|
public void onNPCRightClick(NPCRightClickEvent evt) {
|
||||||
|
|
||||||
if (evt.getClicker().isConversing() == false) {
|
if (evt.getClicker().isConversing() == false) {
|
||||||
|
|
||||||
final Player player = evt.getClicker();
|
final Player player = evt.getClicker();
|
||||||
final Quester quester = plugin.getQuester(player.getName());
|
final Quester quester = plugin.getQuester(player.getName());
|
||||||
boolean delivery = false;
|
boolean delivery = false;
|
||||||
|
|
||||||
if (quester.hasObjective("deliverItem") && player.getItemInHand() != null) {
|
if (quester.hasObjective("deliverItem") && player.getItemInHand() != null) {
|
||||||
|
|
||||||
ItemStack hand = player.getItemInHand();
|
ItemStack hand = player.getItemInHand();
|
||||||
|
|
||||||
ItemStack found = null;
|
ItemStack found = null;
|
||||||
|
|
||||||
for(ItemStack is : quester.currentStage.itemsToDeliver){
|
for(ItemStack is : quester.currentStage.itemsToDeliver){
|
||||||
|
|
||||||
if(ItemUtil.compareItems(is, hand, true) == 0){
|
if(ItemUtil.compareItems(is, hand, true) == 0){
|
||||||
found = is;
|
found = is;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found != null) {
|
if (found != null) {
|
||||||
|
|
||||||
NPC clicked = evt.getNPC();
|
NPC clicked = evt.getNPC();
|
||||||
|
|
||||||
for (NPC n : quester.currentStage.itemDeliveryTargets) {
|
for (NPC n : quester.currentStage.itemDeliveryTargets) {
|
||||||
if (n.getId() == clicked.getId()) {
|
if (n.getId() == clicked.getId()) {
|
||||||
quester.deliverItem(hand);
|
quester.deliverItem(hand);
|
||||||
delivery = true;
|
delivery = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.questNPCs.contains(evt.getNPC()) && delivery == false) {
|
if (plugin.questNPCs.contains(evt.getNPC()) && delivery == false) {
|
||||||
|
|
||||||
if (plugin.checkQuester(player.getName()) == false) {
|
if (plugin.checkQuester(player.getName()) == false) {
|
||||||
if (quester.hasObjective("talkToNPC")) {
|
if (quester.hasObjective("talkToNPC")) {
|
||||||
|
|
||||||
quester.interactWithNPC(evt.getNPC());
|
quester.interactWithNPC(evt.getNPC());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
LinkedList<Quest> npcQuests = new LinkedList<Quest>();
|
LinkedList<Quest> npcQuests = new LinkedList<Quest>();
|
||||||
|
|
||||||
for (Quest q : plugin.getQuests()) {
|
for (Quest q : plugin.getQuests()) {
|
||||||
|
|
||||||
if (q.npcStart != null && q.npcStart.getId() == evt.getNPC().getId()) {
|
if (q.npcStart != null && q.npcStart.getId() == evt.getNPC().getId()) {
|
||||||
npcQuests.add(q);
|
npcQuests.add(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (npcQuests.isEmpty() == false && npcQuests.size() > 1) {
|
if (npcQuests.isEmpty() == false && npcQuests.size() > 1) {
|
||||||
|
|
||||||
Conversation c = plugin.NPCConversationFactory.buildConversation((Conversable) player);
|
Conversation c = plugin.NPCConversationFactory.buildConversation((Conversable) player);
|
||||||
c.getContext().setSessionData("quests", npcQuests);
|
c.getContext().setSessionData("quests", npcQuests);
|
||||||
c.getContext().setSessionData("npc", evt.getNPC().getName());
|
c.getContext().setSessionData("npc", evt.getNPC().getName());
|
||||||
c.begin();
|
c.begin();
|
||||||
|
|
||||||
} else if (npcQuests.size() == 1) {
|
} else if (npcQuests.size() == 1) {
|
||||||
|
|
||||||
Quest q = npcQuests.get(0);
|
Quest q = npcQuests.get(0);
|
||||||
|
|
||||||
if (!quester.completedQuests.contains(q.name)) {
|
if (!quester.completedQuests.contains(q.name)) {
|
||||||
|
|
||||||
if (quester.currentQuest == null) {
|
if (quester.currentQuest == null) {
|
||||||
|
|
||||||
quester.questToTake = q.name;
|
quester.questToTake = q.name;
|
||||||
|
|
||||||
String s = extracted(quester);
|
String s = extracted(quester);
|
||||||
player.sendMessage(s);
|
|
||||||
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
for (String msg : s.split("<br>")) {
|
||||||
|
player.sendMessage(msg);
|
||||||
} else if (quester.currentQuest.equals(q) == false) {
|
}
|
||||||
|
|
||||||
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
||||||
|
|
||||||
}
|
} else if (quester.currentQuest.equals(q) == false) {
|
||||||
|
|
||||||
} else if (quester.completedQuests.contains(q.name)) {
|
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
||||||
|
|
||||||
if (quester.currentQuest == null) {
|
}
|
||||||
|
|
||||||
if (quester.getDifference(q) > 0) {
|
} else if (quester.completedQuests.contains(q.name)) {
|
||||||
player.sendMessage(ChatColor.YELLOW + "You may not take " + ChatColor.AQUA + q.name + ChatColor.YELLOW + " again for another " + ChatColor.DARK_PURPLE + Quests.getTime(quester.getDifference(q)) + ChatColor.YELLOW + ".");
|
|
||||||
} else if (q.redoDelay < 0) {
|
if (quester.currentQuest == null) {
|
||||||
player.sendMessage(ChatColor.YELLOW + "You have already completed " + ChatColor.AQUA + q.name + ChatColor.YELLOW + ".");
|
|
||||||
} else {
|
if (quester.getDifference(q) > 0) {
|
||||||
quester.questToTake = q.name;
|
player.sendMessage(ChatColor.YELLOW + "You may not take " + ChatColor.AQUA + q.name + ChatColor.YELLOW + " again for another " + ChatColor.DARK_PURPLE + Quests.getTime(quester.getDifference(q)) + ChatColor.YELLOW + ".");
|
||||||
String s = extracted(quester);
|
} else if (q.redoDelay < 0) {
|
||||||
|
player.sendMessage(ChatColor.YELLOW + "You have already completed " + ChatColor.AQUA + q.name + ChatColor.YELLOW + ".");
|
||||||
player.sendMessage(s);
|
} else {
|
||||||
|
quester.questToTake = q.name;
|
||||||
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
String s = extracted(quester);
|
||||||
}
|
|
||||||
|
for (String msg : s.split("<br>")) {
|
||||||
} else if (quester.currentQuest.equals(q) == false) {
|
player.sendMessage(msg);
|
||||||
|
}
|
||||||
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
|
||||||
|
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} else if (quester.currentQuest.equals(q) == false) {
|
||||||
|
|
||||||
}
|
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
@EventHandler
|
|
||||||
public void onNPCDeath(NPCDeathEvent evt) {
|
}
|
||||||
|
|
||||||
if (evt.getNPC().getBukkitEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) {
|
}
|
||||||
|
}
|
||||||
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) evt.getNPC().getBukkitEntity().getLastDamageCause();
|
|
||||||
Entity damager = damageEvent.getDamager();
|
@EventHandler
|
||||||
|
public void onNPCDeath(NPCDeathEvent evt) {
|
||||||
if (damager != null) {
|
|
||||||
|
if (evt.getNPC().getBukkitEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) {
|
||||||
if (damager instanceof Projectile) {
|
|
||||||
|
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) evt.getNPC().getBukkitEntity().getLastDamageCause();
|
||||||
Projectile p = (Projectile) damager;
|
Entity damager = damageEvent.getDamager();
|
||||||
if (p.getShooter() instanceof Player) {
|
|
||||||
|
if (damager != null) {
|
||||||
Player player = (Player) p.getShooter();
|
|
||||||
boolean okay = true;
|
if (damager instanceof Projectile) {
|
||||||
|
|
||||||
if (plugin.citizens != null) {
|
Projectile p = (Projectile) damager;
|
||||||
if (CitizensAPI.getNPCRegistry().isNPC(player)) {
|
if (p.getShooter() instanceof Player) {
|
||||||
okay = false;
|
|
||||||
}
|
Player player = (Player) p.getShooter();
|
||||||
}
|
boolean okay = true;
|
||||||
|
|
||||||
if (okay) {
|
if (plugin.citizens != null) {
|
||||||
|
if (CitizensAPI.getNPCRegistry().isNPC(player)) {
|
||||||
Quester quester = plugin.getQuester(player.getName());
|
okay = false;
|
||||||
if (quester.hasObjective("killNPC")) {
|
}
|
||||||
quester.killNPC(evt.getNPC());
|
}
|
||||||
}
|
|
||||||
|
if (okay) {
|
||||||
}
|
|
||||||
}
|
Quester quester = plugin.getQuester(player.getName());
|
||||||
|
if (quester.hasObjective("killNPC")) {
|
||||||
} else if (damager instanceof Player) {
|
quester.killNPC(evt.getNPC());
|
||||||
|
}
|
||||||
boolean okay = true;
|
|
||||||
|
}
|
||||||
if (plugin.citizens != null) {
|
}
|
||||||
if (plugin.citizens.getNPCRegistry().isNPC(damager)) {
|
|
||||||
okay = false;
|
} else if (damager instanceof Player) {
|
||||||
}
|
|
||||||
}
|
boolean okay = true;
|
||||||
|
|
||||||
if (okay) {
|
if (plugin.citizens != null) {
|
||||||
|
if (plugin.citizens.getNPCRegistry().isNPC(damager)) {
|
||||||
Player player = (Player) damager;
|
okay = false;
|
||||||
Quester quester = plugin.getQuester(player.getName());
|
}
|
||||||
if (quester.hasObjective("killNPC")) {
|
}
|
||||||
quester.killNPC(evt.getNPC());
|
|
||||||
}
|
if (okay) {
|
||||||
|
|
||||||
}
|
Player player = (Player) damager;
|
||||||
}
|
Quester quester = plugin.getQuester(player.getName());
|
||||||
|
if (quester.hasObjective("killNPC")) {
|
||||||
}
|
quester.killNPC(evt.getNPC());
|
||||||
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String extracted(final Quester quester) {
|
}
|
||||||
return MessageFormat.format("{0}- {1}{2}{3} -\n\n{4}{5}\n",
|
|
||||||
ChatColor.GOLD,
|
}
|
||||||
ChatColor.DARK_PURPLE,
|
|
||||||
quester.questToTake,
|
}
|
||||||
ChatColor.GOLD,
|
|
||||||
ChatColor.RESET, plugin.getQuest(quester.questToTake).description);
|
private String extracted(final Quester quester) {
|
||||||
}
|
return MessageFormat.format("{0}- {1}{2}{3} -\n\n{4}{5}\n",
|
||||||
|
ChatColor.GOLD,
|
||||||
|
ChatColor.DARK_PURPLE,
|
||||||
|
quester.questToTake,
|
||||||
|
ChatColor.GOLD,
|
||||||
|
ChatColor.RESET, plugin.getQuest(quester.questToTake).description);
|
||||||
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
@ -173,7 +173,13 @@ public class Quest {
|
|||||||
q.reset();
|
q.reset();
|
||||||
q.completedQuests.add(name);
|
q.completedQuests.add(name);
|
||||||
String none = ChatColor.GRAY + "- (None)";
|
String none = ChatColor.GRAY + "- (None)";
|
||||||
player.sendMessage(Quests.parseString(finished, q.currentQuest));
|
|
||||||
|
String ps = Quests.parseString(finished, q.currentQuest);
|
||||||
|
|
||||||
|
for (String msg : ps.split("<br>")) {
|
||||||
|
player.sendMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
if(moneyReward > 0 && Quests.economy != null){
|
if(moneyReward > 0 && Quests.economy != null){
|
||||||
Quests.economy.depositPlayer(q.name, moneyReward);
|
Quests.economy.depositPlayer(q.name, moneyReward);
|
||||||
none = null;
|
none = null;
|
||||||
|
@ -611,6 +611,12 @@ public class QuestFactory implements ConversationAbandonedListener, ColorUtil {
|
|||||||
public Prompt acceptInput(ConversationContext context, String input) {
|
public Prompt acceptInput(ConversationContext context, String input) {
|
||||||
|
|
||||||
if (input.equalsIgnoreCase("cancel") == false) {
|
if (input.equalsIgnoreCase("cancel") == false) {
|
||||||
|
if (input.startsWith("++")) {
|
||||||
|
if (context.getSessionData(CK.Q_ASK_MESSAGE) != null) {
|
||||||
|
context.setSessionData(CK.Q_ASK_MESSAGE, context.getSessionData(CK.Q_ASK_MESSAGE) + " " + input.substring(2));
|
||||||
|
return new CreateMenuPrompt();
|
||||||
|
}
|
||||||
|
}
|
||||||
context.setSessionData(CK.Q_ASK_MESSAGE, input);
|
context.setSessionData(CK.Q_ASK_MESSAGE, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -632,6 +638,12 @@ public class QuestFactory implements ConversationAbandonedListener, ColorUtil {
|
|||||||
public Prompt acceptInput(ConversationContext context, String input) {
|
public Prompt acceptInput(ConversationContext context, String input) {
|
||||||
|
|
||||||
if (input.equalsIgnoreCase("cancel") == false) {
|
if (input.equalsIgnoreCase("cancel") == false) {
|
||||||
|
if (input.startsWith("++")) {
|
||||||
|
if (context.getSessionData(CK.Q_FINISH_MESSAGE) != null) {
|
||||||
|
context.setSessionData(CK.Q_FINISH_MESSAGE, context.getSessionData(CK.Q_FINISH_MESSAGE) + " " + input.substring(2));
|
||||||
|
return new CreateMenuPrompt();
|
||||||
|
}
|
||||||
|
}
|
||||||
context.setSessionData(CK.Q_FINISH_MESSAGE, input);
|
context.setSessionData(CK.Q_FINISH_MESSAGE, input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,8 +222,8 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener,
|
|||||||
loadEvents();
|
loadEvents();
|
||||||
log.log(Level.INFO, "[Quests] " + quests.size() + " Quest(s) loaded.");
|
log.log(Level.INFO, "[Quests] " + quests.size() + " Quest(s) loaded.");
|
||||||
log.log(Level.INFO, "[Quests] " + events.size() + " Event(s) loaded.");
|
log.log(Level.INFO, "[Quests] " + events.size() + " Event(s) loaded.");
|
||||||
|
questers.putAll(getOnlineQuesters());
|
||||||
if (snoop) {
|
if (snoop) {
|
||||||
questers.putAll(getOnlineQuesters());
|
|
||||||
snoop();
|
snoop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -779,6 +779,11 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener,
|
|||||||
+ RESET + getQuest(quester.questToTake).description + "\n";
|
+ RESET + getQuest(quester.questToTake).description + "\n";
|
||||||
|
|
||||||
cs.sendMessage(s);
|
cs.sendMessage(s);
|
||||||
|
|
||||||
|
for (String msg : s.split("<br>")) {
|
||||||
|
cs.sendMessage(msg);
|
||||||
|
}
|
||||||
|
|
||||||
conversationFactory.buildConversation((Conversable) cs).begin();
|
conversationFactory.buildConversation((Conversable) cs).begin();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,150 +1,154 @@
|
|||||||
package me.blackvein.quests.prompts;
|
package me.blackvein.quests.prompts;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import me.blackvein.quests.ColorUtil;
|
import me.blackvein.quests.ColorUtil;
|
||||||
import me.blackvein.quests.Quest;
|
import me.blackvein.quests.Quest;
|
||||||
import me.blackvein.quests.Quester;
|
import me.blackvein.quests.Quester;
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.conversations.Conversable;
|
import org.bukkit.conversations.Conversable;
|
||||||
import org.bukkit.conversations.ConversationContext;
|
import org.bukkit.conversations.ConversationContext;
|
||||||
import org.bukkit.conversations.Prompt;
|
import org.bukkit.conversations.Prompt;
|
||||||
import org.bukkit.conversations.StringPrompt;
|
import org.bukkit.conversations.StringPrompt;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class QuestAcceptPrompt extends StringPrompt implements ColorUtil {
|
public class QuestAcceptPrompt extends StringPrompt implements ColorUtil {
|
||||||
|
|
||||||
final Quests plugin;
|
final Quests plugin;
|
||||||
Quester quester;
|
Quester quester;
|
||||||
LinkedList<Quest> quests;
|
LinkedList<Quest> quests;
|
||||||
|
|
||||||
public QuestAcceptPrompt(Quests plugin) {
|
public QuestAcceptPrompt(Quests plugin) {
|
||||||
|
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext cc) {
|
public String getPromptText(ConversationContext cc) {
|
||||||
|
|
||||||
quests = (LinkedList<Quest>) cc.getSessionData("quests");
|
quests = (LinkedList<Quest>) cc.getSessionData("quests");
|
||||||
quester = plugin.getQuester(((Player) cc.getForWhom()).getName());
|
quester = plugin.getQuester(((Player) cc.getForWhom()).getName());
|
||||||
|
|
||||||
String npc = (String) cc.getSessionData("npc");
|
String npc = (String) cc.getSessionData("npc");
|
||||||
String menu = YELLOW + "- " + GOLD + "Quests" + " | " + npc + YELLOW + " -\n";
|
String menu = YELLOW + "- " + GOLD + "Quests" + " | " + npc + YELLOW + " -\n";
|
||||||
for (int i = 1; i <= quests.size(); i++) {
|
for (int i = 1; i <= quests.size(); i++) {
|
||||||
|
|
||||||
Quest quest = quests.get(i - 1);
|
Quest quest = quests.get(i - 1);
|
||||||
if (quester.completedQuests.contains(quest.getName())) {
|
if (quester.completedQuests.contains(quest.getName())) {
|
||||||
menu += DARKGREEN + "" + BOLD + "" + i + ". " + RESET + "" + GREEN + "" + ITALIC + quest.getName() + RESET + "" + GREEN + " (Completed)\n";
|
menu += DARKGREEN + "" + BOLD + "" + i + ". " + RESET + "" + GREEN + "" + ITALIC + quest.getName() + RESET + "" + GREEN + " (Completed)\n";
|
||||||
} else {
|
} else {
|
||||||
menu += GOLD + "" + BOLD + "" + i + ". " + RESET + "" + YELLOW + "" + ITALIC + quest.getName() + "\n";
|
menu += GOLD + "" + BOLD + "" + i + ". " + RESET + "" + YELLOW + "" + ITALIC + quest.getName() + "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
menu += GOLD + "" + BOLD + "" + (quests.size() + 1) + ". " + RESET + "" + ColorUtil.GRAY + "Cancel\n";
|
menu += GOLD + "" + BOLD + "" + (quests.size() + 1) + ". " + RESET + "" + ColorUtil.GRAY + "Cancel\n";
|
||||||
menu += WHITE + "Enter an option";
|
menu += WHITE + "Enter an option";
|
||||||
|
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Prompt acceptInput(ConversationContext cc, String input) {
|
public Prompt acceptInput(ConversationContext cc, String input) {
|
||||||
|
|
||||||
int numInput = -1;
|
int numInput = -1;
|
||||||
try {
|
try {
|
||||||
numInput = Integer.parseInt(input);
|
numInput = Integer.parseInt(input);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//Continue
|
//Continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input.equalsIgnoreCase("Cancel") || numInput == (quests.size() + 1)) {
|
if (input.equalsIgnoreCase("Cancel") || numInput == (quests.size() + 1)) {
|
||||||
cc.getForWhom().sendRawMessage(YELLOW + "Cancelled.");
|
cc.getForWhom().sendRawMessage(YELLOW + "Cancelled.");
|
||||||
return Prompt.END_OF_CONVERSATION;
|
return Prompt.END_OF_CONVERSATION;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Quest q = null;
|
Quest q = null;
|
||||||
|
|
||||||
for (Quest quest : quests) {
|
for (Quest quest : quests) {
|
||||||
|
|
||||||
if (quest.getName().equalsIgnoreCase(input) || StringUtils.containsIgnoreCase(quest.getName(), input) || numInput == (quests.indexOf(quest) + 1)) {
|
if (quest.getName().equalsIgnoreCase(input) || StringUtils.containsIgnoreCase(quest.getName(), input) || numInput == (quests.indexOf(quest) + 1)) {
|
||||||
q = quest;
|
q = quest;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (q == null) {
|
if (q == null) {
|
||||||
cc.getForWhom().sendRawMessage(RED + "Invalid Selection!");
|
cc.getForWhom().sendRawMessage(RED + "Invalid Selection!");
|
||||||
return new QuestAcceptPrompt(plugin);
|
return new QuestAcceptPrompt(plugin);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Player player = quester.getPlayer();
|
Player player = quester.getPlayer();
|
||||||
|
|
||||||
if (!quester.completedQuests.contains(q.name)) {
|
if (!quester.completedQuests.contains(q.name)) {
|
||||||
|
|
||||||
if (quester.currentQuest == null) {
|
if (quester.currentQuest == null) {
|
||||||
|
|
||||||
if(q.testRequirements(quester)){
|
if(q.testRequirements(quester)){
|
||||||
|
|
||||||
quester.questToTake = q.name;
|
quester.questToTake = q.name;
|
||||||
|
|
||||||
String s = extracted(quester);
|
String s = extracted(quester);
|
||||||
player.sendMessage(s);
|
|
||||||
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
for (String msg : s.split("<br>")) {
|
||||||
|
player.sendMessage(msg);
|
||||||
}else{
|
}
|
||||||
player.sendMessage(q.failRequirements);
|
|
||||||
}
|
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
||||||
|
|
||||||
} else if (quester.currentQuest.equals(q) == false) {
|
}else{
|
||||||
|
player.sendMessage(q.failRequirements);
|
||||||
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
}
|
||||||
|
|
||||||
}
|
} else if (quester.currentQuest.equals(q) == false) {
|
||||||
|
|
||||||
} else if (quester.completedQuests.contains(q.name)) {
|
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
||||||
|
|
||||||
if (quester.currentQuest == null) {
|
}
|
||||||
|
|
||||||
if (quester.getDifference(q) > 0) {
|
} else if (quester.completedQuests.contains(q.name)) {
|
||||||
player.sendMessage(ChatColor.YELLOW + "You may not take " + ChatColor.AQUA + q.name + ChatColor.YELLOW + " again for another " + ChatColor.DARK_PURPLE + Quests.getTime(quester.getDifference(q)) + ChatColor.YELLOW + ".");
|
|
||||||
} else if (q.redoDelay < 0) {
|
if (quester.currentQuest == null) {
|
||||||
player.sendMessage(ChatColor.YELLOW + "You have already completed " + ChatColor.AQUA + q.name + ChatColor.YELLOW + ".");
|
|
||||||
} else {
|
if (quester.getDifference(q) > 0) {
|
||||||
quester.questToTake = q.name;
|
player.sendMessage(ChatColor.YELLOW + "You may not take " + ChatColor.AQUA + q.name + ChatColor.YELLOW + " again for another " + ChatColor.DARK_PURPLE + Quests.getTime(quester.getDifference(q)) + ChatColor.YELLOW + ".");
|
||||||
String s = extracted(quester);
|
} else if (q.redoDelay < 0) {
|
||||||
|
player.sendMessage(ChatColor.YELLOW + "You have already completed " + ChatColor.AQUA + q.name + ChatColor.YELLOW + ".");
|
||||||
player.sendMessage(s);
|
} else {
|
||||||
|
quester.questToTake = q.name;
|
||||||
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
String s = extracted(quester);
|
||||||
}
|
|
||||||
|
player.sendMessage(s);
|
||||||
} else if (quester.currentQuest.equals(q) == false) {
|
|
||||||
|
plugin.conversationFactory.buildConversation((Conversable) player).begin();
|
||||||
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
}
|
||||||
|
|
||||||
}
|
} else if (quester.currentQuest.equals(q) == false) {
|
||||||
|
|
||||||
}
|
player.sendMessage(ChatColor.YELLOW + "You may only have one active Quest.");
|
||||||
|
|
||||||
return Prompt.END_OF_CONVERSATION;
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Prompt.END_OF_CONVERSATION;
|
||||||
}
|
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private String extracted(final Quester quester) {
|
}
|
||||||
return MessageFormat.format("{0}- {1}{2}{3} -\n\n{4}{5}\n",
|
|
||||||
ChatColor.GOLD,
|
}
|
||||||
ChatColor.DARK_PURPLE,
|
|
||||||
quester.questToTake,
|
private String extracted(final Quester quester) {
|
||||||
ChatColor.GOLD,
|
return MessageFormat.format("{0}- {1}{2}{3} -\n\n{4}{5}\n",
|
||||||
ChatColor.RESET, plugin.getQuest(quester.questToTake).description);
|
ChatColor.GOLD,
|
||||||
}
|
ChatColor.DARK_PURPLE,
|
||||||
}
|
quester.questToTake,
|
||||||
|
ChatColor.GOLD,
|
||||||
|
ChatColor.RESET, plugin.getQuest(quester.questToTake).description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user