mirror of
https://github.com/PikaMug/Quests.git
synced 2025-02-16 20:41:20 +01:00
Supply external conversation hooks, part 40
This commit is contained in:
parent
d064a14574
commit
fe327f4a20
@ -19,6 +19,7 @@ import me.blackvein.quests.actions.Action;
|
||||
import me.blackvein.quests.actions.ActionFactory;
|
||||
import me.blackvein.quests.conditions.Condition;
|
||||
import me.blackvein.quests.conditions.ConditionFactory;
|
||||
import me.blackvein.quests.convo.QuestsStringPrompt;
|
||||
import me.blackvein.quests.convo.npcs.NpcOfferQuestPrompt;
|
||||
import me.blackvein.quests.exceptions.ActionFormatException;
|
||||
import me.blackvein.quests.exceptions.ConditionFormatException;
|
||||
@ -67,7 +68,6 @@ import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.ConversationFactory;
|
||||
import org.bukkit.conversations.ConversationPrefix;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -80,6 +80,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
@ -561,18 +562,22 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
}
|
||||
}
|
||||
|
||||
private class QuestAcceptPrompt extends StringPrompt {
|
||||
public class QuestAcceptPrompt extends QuestsStringPrompt {
|
||||
|
||||
@Override
|
||||
public String getPromptText(final ConversationContext context) {
|
||||
public @Nonnull String getPromptText(final ConversationContext context) {
|
||||
return ChatColor.YELLOW + Lang.get((Player) context.getForWhom(), "acceptQuest") + " " + ChatColor.GREEN
|
||||
+ Lang.get("yesWord") + " / " + Lang.get("noWord");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Prompt acceptInput(final ConversationContext context, final String s) {
|
||||
public Prompt acceptInput(final ConversationContext context, final String input) {
|
||||
if (input == null) {
|
||||
getLogger().severe("Ended conversation because input for " + getName() + "was null");
|
||||
return Prompt.END_OF_CONVERSATION;
|
||||
}
|
||||
final Player player = (Player) context.getForWhom();
|
||||
if (s != null && s.equalsIgnoreCase(Lang.get(player, "yesWord"))) {
|
||||
if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase(Lang.get(player, "yesWord"))) {
|
||||
Quester quester = getQuester(player.getUniqueId());
|
||||
if (quester == null) {
|
||||
// Must be new player
|
||||
@ -597,7 +602,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Prompt.END_OF_CONVERSATION;
|
||||
} else if (s != null && s.equalsIgnoreCase(Lang.get("noWord"))) {
|
||||
} else if (input.equalsIgnoreCase("2") || input.equalsIgnoreCase(Lang.get("noWord"))) {
|
||||
Lang.send(player, ChatColor.YELLOW + Lang.get("cancelled"));
|
||||
return Prompt.END_OF_CONVERSATION;
|
||||
} else {
|
||||
|
@ -12,29 +12,32 @@
|
||||
|
||||
package me.blackvein.quests.convo.npcs;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.LinkedList;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.conversations.StringPrompt;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import me.blackvein.quests.Quest;
|
||||
import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import me.blackvein.quests.convo.QuestsStringPrompt;
|
||||
import me.blackvein.quests.util.Lang;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.conversations.ConversationContext;
|
||||
import org.bukkit.conversations.Prompt;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class NpcOfferQuestPrompt extends StringPrompt {
|
||||
import javax.annotation.Nonnull;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.LinkedList;
|
||||
|
||||
public class NpcOfferQuestPrompt extends QuestsStringPrompt {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public String getPromptText(final ConversationContext context) {
|
||||
public @Nonnull String getPromptText(final ConversationContext context) {
|
||||
final Quests plugin = (Quests)context.getPlugin();
|
||||
final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId());
|
||||
final LinkedList<Quest> quests = (LinkedList<Quest>) context.getSessionData("npcQuests");
|
||||
final String npc = (String) context.getSessionData("npc");
|
||||
if (plugin == null || quests == null || npc == null) {
|
||||
return ChatColor.RED + "Bad offer";
|
||||
}
|
||||
final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId());
|
||||
final String text = Lang.get("questNPCListTitle").replace("<npc>", npc);
|
||||
String menu = text + "\n";
|
||||
for (int i = 1; i <= quests.size(); i++) {
|
||||
@ -58,8 +61,11 @@ public class NpcOfferQuestPrompt extends StringPrompt {
|
||||
@Override
|
||||
public Prompt acceptInput(final ConversationContext context, final String input) {
|
||||
final Quests plugin = (Quests)context.getPlugin();
|
||||
final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId());
|
||||
final LinkedList<Quest> quests = (LinkedList<Quest>) context.getSessionData("npcQuests");
|
||||
if (plugin == null || quests == null) {
|
||||
return Prompt.END_OF_CONVERSATION;
|
||||
}
|
||||
final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId());
|
||||
int numInput = -1;
|
||||
try {
|
||||
numInput = Integer.parseInt(input);
|
||||
@ -109,62 +115,6 @@ public class NpcOfferQuestPrompt extends StringPrompt {
|
||||
plugin.getConversationFactory().buildConversation(player).begin();
|
||||
}
|
||||
}
|
||||
/*Player player = quester.getPlayer();
|
||||
if (!quester.getCompletedQuests().contains(q.getName())) {
|
||||
if (quester.getCurrentQuests().size() < plugin.getSettings().getMaxQuests()
|
||||
|| plugin.getSettings().getMaxQuests() < 1) {
|
||||
if (q.testRequirements(quester)) {
|
||||
quester.setQuestToTake(q.getName());
|
||||
String s = extracted(plugin, quester);
|
||||
for (String msg : s.split("<br>")) {
|
||||
player.sendMessage(msg);
|
||||
}
|
||||
if (!plugin.getSettings().canAskConfirmation()) {
|
||||
quester.takeQuest(q, false);
|
||||
} else {
|
||||
plugin.getConversationFactory().buildConversation((Conversable) player).begin();
|
||||
}
|
||||
} else {
|
||||
for (String msg : q.getRequirements().getDetailsOverride()) {
|
||||
player.sendMessage(msg);
|
||||
}
|
||||
}
|
||||
} else if (quester.getCurrentQuests().containsKey(q) == false) {
|
||||
String msg = Lang.get("questMaxAllowed");
|
||||
msg = msg.replace("<number>", String.valueOf(plugin.getSettings().getMaxQuests()));
|
||||
player.sendMessage(ChatColor.YELLOW + msg);
|
||||
}
|
||||
} else if (quester.getCompletedQuests().contains(q.getName())) {
|
||||
if (quester.getCurrentQuests().size() < plugin.getSettings().getMaxQuests()
|
||||
|| plugin.getSettings().getMaxQuests() < 1) {
|
||||
if (quester.getRemainingCooldown(q) > 0 && !q.getPlanner().getOverride()) {
|
||||
String early = Lang.get("questTooEarly");
|
||||
early = early.replace("<quest>", ChatColor.AQUA + q.getName() + ChatColor.YELLOW);
|
||||
early = early.replace("<time>", ChatColor.DARK_PURPLE
|
||||
+ MiscUtil.getTime(quester.getRemainingCooldown(q)) + ChatColor.YELLOW);
|
||||
player.sendMessage(ChatColor.YELLOW + early);
|
||||
} else if (q.getPlanner().getCooldown() < 0) {
|
||||
String completed = Lang.get("questAlreadyCompleted");
|
||||
completed = completed.replace("<quest>", ChatColor.AQUA + q.getName() + ChatColor.YELLOW);
|
||||
player.sendMessage(ChatColor.YELLOW + completed);
|
||||
} else {
|
||||
quester.setQuestToTake(q.getName());
|
||||
String s = extracted(plugin, quester);
|
||||
for (String msg : s.split("<br>")) {
|
||||
player.sendMessage(msg);
|
||||
}
|
||||
if (!plugin.getSettings().canAskConfirmation()) {
|
||||
quester.takeQuest(q, false);
|
||||
} else {
|
||||
plugin.getConversationFactory().buildConversation((Conversable) player).begin();
|
||||
}
|
||||
}
|
||||
} else if (quester.getCurrentQuests().containsKey(q) == false) {
|
||||
String msg = Lang.get("questMaxAllowed");
|
||||
msg = msg.replace("<number>", String.valueOf(plugin.getSettings().getMaxQuests()));
|
||||
player.sendMessage(ChatColor.YELLOW + msg);
|
||||
}
|
||||
}*/
|
||||
return Prompt.END_OF_CONVERSATION;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user