mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-15 07:05:51 +01:00
Supply external conversation hooks, part 4. Per #570
This commit is contained in:
parent
419469d4fa
commit
88e8abcead
@ -63,10 +63,19 @@ public class Dependencies {
|
|||||||
return worldGuardApi;
|
return worldGuardApi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get mcMMO Classic plugin
|
||||||
|
*
|
||||||
|
* @deprecated Use {@link #getMcmmoClassic()}
|
||||||
|
*/
|
||||||
public mcMMO getMcmmo() {
|
public mcMMO getMcmmo() {
|
||||||
return mcmmo;
|
return mcmmo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public mcMMO getMcmmoClassic() {
|
||||||
|
return mcmmo;
|
||||||
|
}
|
||||||
|
|
||||||
public Heroes getHeroes() {
|
public Heroes getHeroes() {
|
||||||
return heroes;
|
return heroes;
|
||||||
}
|
}
|
||||||
|
@ -47,8 +47,10 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import com.sk89q.worldguard.protection.managers.RegionManager;
|
import com.sk89q.worldguard.protection.managers.RegionManager;
|
||||||
|
|
||||||
import me.blackvein.quests.actions.Action;
|
import me.blackvein.quests.actions.Action;
|
||||||
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenCreateMenuEvent;
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenCreatePromptEvent;
|
||||||
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenMainMenuEvent;
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenExitPromptEvent;
|
||||||
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenMainPromptEvent;
|
||||||
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenSavePromptEvent;
|
||||||
import me.blackvein.quests.prompts.GUIDisplayPrompt;
|
import me.blackvein.quests.prompts.GUIDisplayPrompt;
|
||||||
import me.blackvein.quests.prompts.OptionsPrompt;
|
import me.blackvein.quests.prompts.OptionsPrompt;
|
||||||
import me.blackvein.quests.prompts.RequirementsPrompt;
|
import me.blackvein.quests.prompts.RequirementsPrompt;
|
||||||
@ -176,7 +178,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext context) {
|
public String getPromptText(ConversationContext context) {
|
||||||
QuestsEditorPostOpenMainMenuEvent event = new QuestsEditorPostOpenMainMenuEvent(context);
|
QuestsEditorPostOpenMainPromptEvent event = new QuestsEditorPostOpenMainPromptEvent(context);
|
||||||
plugin.getServer().getPluginManager().callEvent(event);
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
String text = ChatColor.GOLD + getTitle() + "\n";
|
String text = ChatColor.GOLD + getTitle() + "\n";
|
||||||
for (int i = 1; i <= maxNumber; i++) {
|
for (int i = 1; i <= maxNumber; i++) {
|
||||||
@ -231,7 +233,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getTitle(ConversationContext context) {
|
public String getTitle(ConversationContext context) {
|
||||||
return Lang.get("quest") + ": " + ChatColor.AQUA + context.getSessionData(CK.Q_NAME);
|
return ChatColor.GOLD + Lang.get("quest") + ": " + ChatColor.AQUA + context.getSessionData(CK.Q_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatColor getNumberColor(ConversationContext context, int number) {
|
public ChatColor getNumberColor(ConversationContext context, int number) {
|
||||||
@ -410,7 +412,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext context) {
|
public String getPromptText(ConversationContext context) {
|
||||||
QuestsEditorPostOpenCreateMenuEvent event = new QuestsEditorPostOpenCreateMenuEvent(context);
|
QuestsEditorPostOpenCreatePromptEvent event = new QuestsEditorPostOpenCreatePromptEvent(context);
|
||||||
plugin.getServer().getPluginManager().callEvent(event);
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
String text = ChatColor.GOLD + "- " + getTitle(context) + ChatColor.GOLD + " -\n";
|
String text = ChatColor.GOLD + "- " + getTitle(context) + ChatColor.GOLD + " -\n";
|
||||||
@ -782,12 +784,49 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SavePrompt extends StringPrompt {
|
public class SavePrompt extends StringPrompt {
|
||||||
|
private final int maxNumber = 2;
|
||||||
|
|
||||||
|
public int getMaxNumber() {
|
||||||
|
return maxNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChatColor getNumberColor(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
return ChatColor.GREEN;
|
||||||
|
case 2:
|
||||||
|
return ChatColor.RED;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSelectionText(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
return ChatColor.GREEN + Lang.get("yesWord");
|
||||||
|
case 2:
|
||||||
|
return ChatColor.RED + Lang.get("noWord");
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQueryText(ConversationContext context) {
|
||||||
|
return ChatColor.YELLOW + Lang.get("questEditorSave") + " \"" + ChatColor.AQUA + context.getSessionData(CK.Q_NAME) + ChatColor.YELLOW + "\"?\n";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext context) {
|
public String getPromptText(ConversationContext context) {
|
||||||
String text = ChatColor.GREEN + "1 - " + Lang.get("yesWord") + "\n" + "2 - " + Lang.get("noWord");
|
QuestsEditorPostOpenSavePromptEvent event = new QuestsEditorPostOpenSavePromptEvent(QuestFactory.this, context);
|
||||||
return ChatColor.YELLOW + Lang.get("questEditorSave") + " \"" + ChatColor.AQUA + context.getSessionData(CK.Q_NAME) + ChatColor.YELLOW + "\"?\n" + text;
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
String text = getQueryText(context);
|
||||||
|
for (int i = 1; i <= maxNumber; i++) {
|
||||||
|
text += getNumberColor(context, i) + "" + ChatColor.BOLD + i + ChatColor.RESET + " - " + getSelectionText(context, i) + "\n";
|
||||||
|
}
|
||||||
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -837,13 +876,49 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ExitPrompt extends StringPrompt {
|
public class ExitPrompt extends StringPrompt {
|
||||||
|
private final int maxNumber = 2;
|
||||||
|
|
||||||
|
public int getMaxNumber() {
|
||||||
|
return maxNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChatColor getNumberColor(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
return ChatColor.GREEN;
|
||||||
|
case 2:
|
||||||
|
return ChatColor.RED;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSelectionText(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
return ChatColor.GREEN + Lang.get("yesWord");
|
||||||
|
case 2:
|
||||||
|
return ChatColor.RED + Lang.get("noWord");
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQueryText(ConversationContext context) {
|
||||||
|
return ChatColor.YELLOW + Lang.get("questEditorExited") + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext context) {
|
public String getPromptText(ConversationContext context) {
|
||||||
String text = ChatColor.GREEN + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.GREEN + " - " + Lang.get("yesWord") + "\n"
|
QuestsEditorPostOpenExitPromptEvent event = new QuestsEditorPostOpenExitPromptEvent(QuestFactory.this, context);
|
||||||
+ ChatColor.RED + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.RED + " - " + Lang.get("noWord");
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
return ChatColor.YELLOW + Lang.get("questEditorExited") + "\n" + text;
|
|
||||||
|
String text = getQueryText(context);
|
||||||
|
for (int i = 1; i <= maxNumber; i++) {
|
||||||
|
text += getNumberColor(context, i) + "" + ChatColor.BOLD + i + ChatColor.RESET + " - " + getSelectionText(context, i) + "\n";
|
||||||
|
}
|
||||||
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1662,7 +1662,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
if (config.contains("quests." + questKey + ".rewards.mcmmo-levels")) {
|
if (config.contains("quests." + questKey + ".rewards.mcmmo-levels")) {
|
||||||
if (Quests.checkList(config.getList("quests." + questKey + ".rewards.mcmmo-levels"), Integer.class)) {
|
if (Quests.checkList(config.getList("quests." + questKey + ".rewards.mcmmo-levels"), Integer.class)) {
|
||||||
for (String skill : config.getStringList("quests." + questKey + ".rewards.mcmmo-skills")) {
|
for (String skill : config.getStringList("quests." + questKey + ".rewards.mcmmo-skills")) {
|
||||||
if (depends.getMcmmo() == null) {
|
if (depends.getMcmmoClassic() == null) {
|
||||||
skipQuestProcess("" + skill + " in mcmmo-skills: Reward in Quest " + quest.getName() + " requires the mcMMO plugin!");
|
skipQuestProcess("" + skill + " in mcmmo-skills: Reward in Quest " + quest.getName() + " requires the mcMMO plugin!");
|
||||||
} else if (Quests.getMcMMOSkill(skill) == null) {
|
} else if (Quests.getMcMMOSkill(skill) == null) {
|
||||||
skipQuestProcess("" + skill + " in mcmmo-skills: Reward in Quest " + quest.getName() + " is not a valid mcMMO skill name!");
|
skipQuestProcess("" + skill + " in mcmmo-skills: Reward in Quest " + quest.getName() + " is not a valid mcMMO skill name!");
|
||||||
|
@ -3,10 +3,10 @@ package me.blackvein.quests.events.editor.quests;
|
|||||||
import org.bukkit.conversations.ConversationContext;
|
import org.bukkit.conversations.ConversationContext;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
public class QuestsEditorPostOpenMainMenuEvent extends QuestsEditorEvent {
|
public class QuestsEditorPostOpenCreatePromptEvent extends QuestsEditorEvent {
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
public QuestsEditorPostOpenMainMenuEvent(ConversationContext context) {
|
public QuestsEditorPostOpenCreatePromptEvent(ConversationContext context) {
|
||||||
super(context);
|
super(context);
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
@ -5,11 +5,11 @@ import org.bukkit.event.HandlerList;
|
|||||||
|
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
|
|
||||||
public class QuestsEditorPostOpenGUIDisplayMenuEvent extends QuestsEditorEvent {
|
public class QuestsEditorPostOpenExitPromptEvent extends QuestsEditorEvent {
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
private final QuestFactory factory;
|
private final QuestFactory factory;
|
||||||
|
|
||||||
public QuestsEditorPostOpenGUIDisplayMenuEvent(QuestFactory factory, ConversationContext context) {
|
public QuestsEditorPostOpenExitPromptEvent(QuestFactory factory, ConversationContext context) {
|
||||||
super(context);
|
super(context);
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.factory = factory;
|
this.factory = factory;
|
@ -0,0 +1,30 @@
|
|||||||
|
package me.blackvein.quests.events.editor.quests;
|
||||||
|
|
||||||
|
import org.bukkit.conversations.ConversationContext;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.QuestFactory;
|
||||||
|
|
||||||
|
public class QuestsEditorPostOpenGUIDisplayPromptEvent extends QuestsEditorEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final QuestFactory factory;
|
||||||
|
|
||||||
|
public QuestsEditorPostOpenGUIDisplayPromptEvent(QuestFactory factory, ConversationContext context) {
|
||||||
|
super(context);
|
||||||
|
this.context = context;
|
||||||
|
this.factory = factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestFactory getQuestFactory() {
|
||||||
|
return factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -3,10 +3,10 @@ package me.blackvein.quests.events.editor.quests;
|
|||||||
import org.bukkit.conversations.ConversationContext;
|
import org.bukkit.conversations.ConversationContext;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
public class QuestsEditorPostOpenCreateMenuEvent extends QuestsEditorEvent {
|
public class QuestsEditorPostOpenMainPromptEvent extends QuestsEditorEvent {
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
|
||||||
public QuestsEditorPostOpenCreateMenuEvent(ConversationContext context) {
|
public QuestsEditorPostOpenMainPromptEvent(ConversationContext context) {
|
||||||
super(context);
|
super(context);
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package me.blackvein.quests.events.editor.quests;
|
||||||
|
|
||||||
|
import org.bukkit.conversations.ConversationContext;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.QuestFactory;
|
||||||
|
|
||||||
|
public class QuestsEditorPostOpenRequirementsPromptEvent extends QuestsEditorEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final QuestFactory factory;
|
||||||
|
|
||||||
|
public QuestsEditorPostOpenRequirementsPromptEvent(QuestFactory factory, ConversationContext context) {
|
||||||
|
super(context);
|
||||||
|
this.context = context;
|
||||||
|
this.factory = factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestFactory getQuestFactory() {
|
||||||
|
return factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package me.blackvein.quests.events.editor.quests;
|
||||||
|
|
||||||
|
import org.bukkit.conversations.ConversationContext;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.QuestFactory;
|
||||||
|
|
||||||
|
public class QuestsEditorPostOpenSavePromptEvent extends QuestsEditorEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final QuestFactory factory;
|
||||||
|
|
||||||
|
public QuestsEditorPostOpenSavePromptEvent(QuestFactory factory, ConversationContext context) {
|
||||||
|
super(context);
|
||||||
|
this.context = context;
|
||||||
|
this.factory = factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestFactory getQuestFactory() {
|
||||||
|
return factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -7,11 +7,11 @@ import org.bukkit.event.HandlerList;
|
|||||||
/**
|
/**
|
||||||
* Called when the initial Quests Editor menu is opened by a player
|
* Called when the initial Quests Editor menu is opened by a player
|
||||||
*/
|
*/
|
||||||
public class QuestsEditorPreOpenMainMenuEvent extends QuestsEditorEvent implements Cancellable {
|
public class QuestsEditorPreOpenMainPromptEvent extends QuestsEditorEvent implements Cancellable {
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
private boolean cancel = false;
|
private boolean cancel = false;
|
||||||
|
|
||||||
public QuestsEditorPreOpenMainMenuEvent(ConversationContext context) {
|
public QuestsEditorPreOpenMainPromptEvent(ConversationContext context) {
|
||||||
super(context);
|
super(context);
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
@ -30,7 +30,7 @@ import me.blackvein.quests.Quester;
|
|||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.Requirements;
|
import me.blackvein.quests.Requirements;
|
||||||
import me.blackvein.quests.Stage;
|
import me.blackvein.quests.Stage;
|
||||||
import me.blackvein.quests.events.editor.quests.QuestsEditorPreOpenMainMenuEvent;
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPreOpenMainPromptEvent;
|
||||||
import me.blackvein.quests.events.quest.QuestQuitEvent;
|
import me.blackvein.quests.events.quest.QuestQuitEvent;
|
||||||
import me.blackvein.quests.exceptions.InvalidStageException;
|
import me.blackvein.quests.exceptions.InvalidStageException;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
@ -454,7 +454,7 @@ public class CmdExecutor implements CommandExecutor {
|
|||||||
Conversable c = (Conversable) cs;
|
Conversable c = (Conversable) cs;
|
||||||
if (!c.isConversing()) {
|
if (!c.isConversing()) {
|
||||||
Conversation cn = plugin.getQuestFactory().getConversationFactory().buildConversation(c);
|
Conversation cn = plugin.getQuestFactory().getConversationFactory().buildConversation(c);
|
||||||
QuestsEditorPreOpenMainMenuEvent event = new QuestsEditorPreOpenMainMenuEvent(cn.getContext());
|
QuestsEditorPreOpenMainPromptEvent event = new QuestsEditorPreOpenMainPromptEvent(cn.getContext());
|
||||||
plugin.getServer().getPluginManager().callEvent(event);
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -9,7 +9,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import me.blackvein.quests.Quest;
|
import me.blackvein.quests.Quest;
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenGUIDisplayMenuEvent;
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenGUIDisplayPromptEvent;
|
||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
@ -30,7 +30,7 @@ public class GUIDisplayPrompt extends NumericPrompt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return Lang.get("questGUITitle");
|
return ChatColor.GOLD + Lang.get("questGUITitle");
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatColor getNumberColor(ConversationContext context, int number) {
|
public ChatColor getNumberColor(ConversationContext context, int number) {
|
||||||
@ -61,7 +61,7 @@ public class GUIDisplayPrompt extends NumericPrompt {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext context) {
|
public String getPromptText(ConversationContext context) {
|
||||||
QuestsEditorPostOpenGUIDisplayMenuEvent event = new QuestsEditorPostOpenGUIDisplayMenuEvent(questFactory, context);
|
QuestsEditorPostOpenGUIDisplayPromptEvent event = new QuestsEditorPostOpenGUIDisplayPromptEvent(questFactory, context);
|
||||||
plugin.getServer().getPluginManager().callEvent(event);
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
if (context.getSessionData("tempStack") != null) {
|
if (context.getSessionData("tempStack") != null) {
|
||||||
@ -83,7 +83,7 @@ public class GUIDisplayPrompt extends NumericPrompt {
|
|||||||
}
|
}
|
||||||
context.setSessionData("tempStack", null);
|
context.setSessionData("tempStack", null);
|
||||||
}
|
}
|
||||||
String text = ChatColor.GOLD + getTitle() + "\n";
|
String text = getTitle() + "\n";
|
||||||
if (context.getSessionData(CK.Q_GUIDISPLAY) != null) {
|
if (context.getSessionData(CK.Q_GUIDISPLAY) != null) {
|
||||||
ItemStack stack = (ItemStack) context.getSessionData(CK.Q_GUIDISPLAY);
|
ItemStack stack = (ItemStack) context.getSessionData(CK.Q_GUIDISPLAY);
|
||||||
text += " " + ChatColor.RESET + ItemUtil.getDisplayString(stack) + "\n";
|
text += " " + ChatColor.RESET + ItemUtil.getDisplayString(stack) + "\n";
|
||||||
|
@ -22,6 +22,7 @@ import java.util.Map;
|
|||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.conversations.ConversationContext;
|
import org.bukkit.conversations.ConversationContext;
|
||||||
import org.bukkit.conversations.FixedSetPrompt;
|
import org.bukkit.conversations.FixedSetPrompt;
|
||||||
|
import org.bukkit.conversations.NumericPrompt;
|
||||||
import org.bukkit.conversations.Prompt;
|
import org.bukkit.conversations.Prompt;
|
||||||
import org.bukkit.conversations.StringPrompt;
|
import org.bukkit.conversations.StringPrompt;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@ -33,159 +34,279 @@ import me.blackvein.quests.CustomRequirement;
|
|||||||
import me.blackvein.quests.Quest;
|
import me.blackvein.quests.Quest;
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
|
import me.blackvein.quests.events.editor.quests.QuestsEditorPostOpenRequirementsPromptEvent;
|
||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
import me.blackvein.quests.util.MiscUtil;
|
import me.blackvein.quests.util.MiscUtil;
|
||||||
|
|
||||||
public class RequirementsPrompt extends FixedSetPrompt {
|
public class RequirementsPrompt extends NumericPrompt {
|
||||||
|
|
||||||
private Quests plugin;
|
private Quests plugin;
|
||||||
private final QuestFactory factory;
|
private final QuestFactory factory;
|
||||||
|
private final int maxNumber = 11;
|
||||||
|
|
||||||
public RequirementsPrompt(Quests plugin, QuestFactory qf) {
|
public RequirementsPrompt(Quests plugin, QuestFactory qf) {
|
||||||
super("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11");
|
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
factory = qf;
|
factory = qf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
public int getMaxNumber() {
|
||||||
@Override
|
return maxNumber;
|
||||||
public String getPromptText(ConversationContext context) {
|
}
|
||||||
String text;
|
|
||||||
String lang = Lang.get("requirementsTitle");
|
public String getTitle(ConversationContext context) {
|
||||||
lang = lang.replaceAll("<quest>", ChatColor.AQUA + (String) context.getSessionData(CK.Q_NAME) + ChatColor.DARK_AQUA);
|
return ChatColor.DARK_AQUA + Lang.get("requirementsTitle").replaceAll("<quest>", ChatColor.AQUA + (String) context.getSessionData(CK.Q_NAME) + ChatColor.DARK_AQUA);
|
||||||
text = ChatColor.DARK_AQUA + lang + "\n";
|
}
|
||||||
if (context.getSessionData(CK.REQ_MONEY) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetMoney") + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
public ChatColor getNumberColor(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
return ChatColor.BLUE;
|
||||||
|
case 7:
|
||||||
|
if (plugin.getDependencies().getMcmmoClassic() != null) {
|
||||||
|
return ChatColor.BLUE;
|
||||||
} else {
|
} else {
|
||||||
int moneyReq = (Integer) context.getSessionData(CK.REQ_MONEY);
|
return ChatColor.GRAY;
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetMoney") + ChatColor.GRAY + " (" + ChatColor.AQUA + moneyReq + " " + (moneyReq > 1 ? plugin.getCurrency(true) : plugin.getCurrency(false)) + ChatColor.GRAY + ")\n";
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_QUEST_POINTS) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetQuestPoints") + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetQuestPoints") + ChatColor.GRAY + " (" + ChatColor.AQUA + context.getSessionData(CK.REQ_QUEST_POINTS) + " " + Lang.get("questPoints") + ChatColor.GRAY + ")\n";
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_ITEMS) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetItem") + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetItem") + "\n";
|
|
||||||
LinkedList<ItemStack> items = (LinkedList<ItemStack>) context.getSessionData(CK.REQ_ITEMS);
|
|
||||||
for (int i = 0; i < items.size(); i++) {
|
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getName(items.get(i)) + ChatColor.GRAY + " x " + ChatColor.AQUA + items.get(i).getAmount() + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_PERMISSION) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetPerms") + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetPerms") + "\n";
|
|
||||||
List<String> perms = (List<String>) context.getSessionData(CK.REQ_PERMISSION);
|
|
||||||
for (String s : perms) {
|
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + s + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_QUEST) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "5" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetQuest") + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "5" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetQuest") + "\n";
|
|
||||||
List<String> qs = (List<String>) context.getSessionData(CK.REQ_QUEST);
|
|
||||||
for (String s : qs) {
|
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + s + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_QUEST_BLOCK) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "6" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetQuestBlocks") + " " + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "6" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetQuestBlocks") + "\n";
|
|
||||||
List<String> qs = (List<String>) context.getSessionData(CK.REQ_QUEST_BLOCK);
|
|
||||||
for (String s : qs) {
|
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + s + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (plugin.getDependencies().getMcmmo() != null) {
|
|
||||||
if (context.getSessionData(CK.REQ_MCMMO_SKILLS) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "7" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetMcMMO") + " " + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "7" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetMcMMO") + "\n";
|
|
||||||
List<String> skills = (List<String>) context.getSessionData(CK.REQ_MCMMO_SKILLS);
|
|
||||||
List<Integer> amounts = (List<Integer>) context.getSessionData(CK.REQ_MCMMO_SKILL_AMOUNTS);
|
|
||||||
for (String s : skills) {
|
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.DARK_GREEN + s + ChatColor.RESET + ChatColor.YELLOW + " " + Lang.get("mcMMOLevel") + " " + ChatColor.GREEN + amounts.get(skills.indexOf(s)) + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
text += ChatColor.GRAY + "" + ChatColor.BOLD + "7" + ChatColor.RESET + ChatColor.GRAY + " - " + Lang.get("reqSetMcMMO") + " (" + Lang.get("notInstalled") + ")\n";
|
|
||||||
}
|
}
|
||||||
|
case 8:
|
||||||
if (plugin.getDependencies().getHeroes() != null) {
|
if (plugin.getDependencies().getHeroes() != null) {
|
||||||
if (context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) == null && context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) == null) {
|
return ChatColor.BLUE;
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "8" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetHeroes") + " " + ChatColor.GRAY + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "8" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("reqSetHeroes") + "\n";
|
return ChatColor.GRAY;
|
||||||
if (context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) != null) {
|
|
||||||
text += ChatColor.AQUA + " " + Lang.get("reqHeroesPrimaryDisplay") + " " + ChatColor.BLUE + (String) context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) + "\n";
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) != null) {
|
|
||||||
text += ChatColor.AQUA + " " + Lang.get("reqHeroesSecondaryDisplay") + " " + ChatColor.BLUE + (String) context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
text += ChatColor.GRAY + "" + ChatColor.BOLD + "8" + ChatColor.RESET + ChatColor.GRAY + " - " + Lang.get("reqSetHeroes") + " (" + Lang.get("notInstalled") + ")\n";
|
|
||||||
}
|
|
||||||
if (context.getSessionData(CK.REQ_CUSTOM) == null) {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "9 - " + ChatColor.RESET + ChatColor.ITALIC + ChatColor.DARK_PURPLE + Lang.get("reqSetCustom") + " (" + Lang.get("noneSet") + ")\n";
|
|
||||||
} else {
|
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "9 - " + ChatColor.RESET + ChatColor.ITALIC + ChatColor.DARK_PURPLE + Lang.get("reqSetCustom") + "\n";
|
|
||||||
LinkedList<String> customReqs = (LinkedList<String>) context.getSessionData(CK.REQ_CUSTOM);
|
|
||||||
for (String s : customReqs) {
|
|
||||||
text += ChatColor.RESET + "" + ChatColor.DARK_PURPLE + " - " + ChatColor.LIGHT_PURPLE + s + "\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
case 9:
|
||||||
|
case 10:
|
||||||
if (context.getSessionData(CK.REQ_MONEY) == null && context.getSessionData(CK.REQ_QUEST_POINTS) == null && context.getSessionData(CK.REQ_QUEST_BLOCK) == null
|
if (context.getSessionData(CK.REQ_MONEY) == null && context.getSessionData(CK.REQ_QUEST_POINTS) == null && context.getSessionData(CK.REQ_QUEST_BLOCK) == null
|
||||||
&& context.getSessionData(CK.REQ_ITEMS) == null && context.getSessionData(CK.REQ_PERMISSION) == null && context.getSessionData(CK.REQ_QUEST) == null
|
&& context.getSessionData(CK.REQ_ITEMS) == null && context.getSessionData(CK.REQ_PERMISSION) == null && context.getSessionData(CK.REQ_QUEST) == null
|
||||||
&& context.getSessionData(CK.REQ_QUEST_BLOCK) == null && context.getSessionData(CK.REQ_MCMMO_SKILLS) == null && context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) == null
|
&& context.getSessionData(CK.REQ_QUEST_BLOCK) == null && context.getSessionData(CK.REQ_MCMMO_SKILLS) == null && context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) == null
|
||||||
&& context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) == null && context.getSessionData(CK.REQ_CUSTOM) == null) {
|
&& context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) == null && context.getSessionData(CK.REQ_CUSTOM) == null) {
|
||||||
text += ChatColor.GRAY + "" + ChatColor.BOLD + "10 - " + ChatColor.RESET + ChatColor.GRAY + Lang.get("reqSetFail") + " (" + Lang.get("reqNone") + ")\n";
|
return ChatColor.GRAY;
|
||||||
} else if (context.getSessionData(CK.Q_FAIL_MESSAGE) == null) {
|
} else if (context.getSessionData(CK.Q_FAIL_MESSAGE) == null) {
|
||||||
text += ChatColor.RED + "" + ChatColor.BOLD + "10 - " + ChatColor.RESET + ChatColor.RED + Lang.get("reqSetFail") + " (" + Lang.get("questRequiredNoneSet") + ")\n";
|
return ChatColor.RED;
|
||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "10 - " + ChatColor.RESET + ChatColor.YELLOW + Lang.get("reqSetFail") + ChatColor.GRAY + " (" + ChatColor.AQUA + "\"" + context.getSessionData(CK.Q_FAIL_MESSAGE) + "\"" + ChatColor.GRAY + ")\n";
|
return ChatColor.BLUE;
|
||||||
|
}
|
||||||
|
case 11:
|
||||||
|
return ChatColor.GREEN;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSelectionText(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetMoney");
|
||||||
|
case 2:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetQuestPoints");
|
||||||
|
case 3:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetItem");
|
||||||
|
case 4:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetPerms");
|
||||||
|
case 5:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetQuest");
|
||||||
|
case 6:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetQuestBlocks");
|
||||||
|
case 7:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetMcMMO");
|
||||||
|
case 8:
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetHeroes");
|
||||||
|
case 9:
|
||||||
|
return ChatColor.DARK_PURPLE + Lang.get("reqSetCustom");
|
||||||
|
case 10:
|
||||||
|
if (context.getSessionData(CK.REQ_MONEY) == null && context.getSessionData(CK.REQ_QUEST_POINTS) == null && context.getSessionData(CK.REQ_QUEST_BLOCK) == null
|
||||||
|
&& context.getSessionData(CK.REQ_ITEMS) == null && context.getSessionData(CK.REQ_PERMISSION) == null && context.getSessionData(CK.REQ_QUEST) == null
|
||||||
|
&& context.getSessionData(CK.REQ_QUEST_BLOCK) == null && context.getSessionData(CK.REQ_MCMMO_SKILLS) == null && context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) == null
|
||||||
|
&& context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) == null && context.getSessionData(CK.REQ_CUSTOM) == null) {
|
||||||
|
return ChatColor.GRAY + Lang.get("reqSetFail");
|
||||||
|
} else if (context.getSessionData(CK.Q_FAIL_MESSAGE) == null) {
|
||||||
|
return ChatColor.RED + Lang.get("reqSetFail");
|
||||||
|
} else {
|
||||||
|
return ChatColor.YELLOW + Lang.get("reqSetFail");
|
||||||
|
}
|
||||||
|
case 11:
|
||||||
|
return ChatColor.YELLOW + Lang.get("done");
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public String getAdditionalText(ConversationContext context, int number) {
|
||||||
|
switch (number) {
|
||||||
|
case 1:
|
||||||
|
if (context.getSessionData(CK.REQ_MONEY) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
int moneyReq = (Integer) context.getSessionData(CK.REQ_MONEY);
|
||||||
|
return ChatColor.GRAY + "(" + ChatColor.AQUA + moneyReq + " " + (moneyReq > 1 ? plugin.getCurrency(true) : plugin.getCurrency(false)) + ChatColor.GRAY + ")";
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
if (context.getSessionData(CK.REQ_QUEST_POINTS) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
return ChatColor.GRAY + "(" + ChatColor.AQUA + context.getSessionData(CK.REQ_QUEST_POINTS) + " " + Lang.get("questPoints") + ChatColor.GRAY + ")";
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
if (context.getSessionData(CK.REQ_ITEMS) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
LinkedList<ItemStack> items = (LinkedList<ItemStack>) context.getSessionData(CK.REQ_ITEMS);
|
||||||
|
for (int i = 0; i < items.size(); i++) {
|
||||||
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getName(items.get(i)) + ChatColor.GRAY + " x " + ChatColor.AQUA + items.get(i).getAmount();
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
case 4:
|
||||||
|
if (context.getSessionData(CK.REQ_PERMISSION) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
List<String> perms = (List<String>) context.getSessionData(CK.REQ_PERMISSION);
|
||||||
|
for (String s : perms) {
|
||||||
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + s;
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
case 5:
|
||||||
|
if (context.getSessionData(CK.REQ_QUEST) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
List<String> qs = (List<String>) context.getSessionData(CK.REQ_QUEST);
|
||||||
|
for (String s : qs) {
|
||||||
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + s;
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
case 6:
|
||||||
|
if (context.getSessionData(CK.REQ_QUEST_BLOCK) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
List<String> qs = (List<String>) context.getSessionData(CK.REQ_QUEST_BLOCK);
|
||||||
|
for (String s : qs) {
|
||||||
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + s;
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
case 7:
|
||||||
|
if (plugin.getDependencies().getMcmmoClassic() != null) {
|
||||||
|
if (context.getSessionData(CK.REQ_MCMMO_SKILLS) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
List<String> skills = (List<String>) context.getSessionData(CK.REQ_MCMMO_SKILLS);
|
||||||
|
List<Integer> amounts = (List<Integer>) context.getSessionData(CK.REQ_MCMMO_SKILL_AMOUNTS);
|
||||||
|
for (String s : skills) {
|
||||||
|
text += ChatColor.GRAY + " - " + ChatColor.DARK_GREEN + s + ChatColor.RESET + ChatColor.YELLOW + " " + Lang.get("mcMMOLevel") + " " + ChatColor.GREEN + amounts.get(skills.indexOf(s));
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("notInstalled") + ")";
|
||||||
|
}
|
||||||
|
case 8:
|
||||||
|
if (plugin.getDependencies().getHeroes() != null) {
|
||||||
|
if (context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) == null && context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")\n";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
if (context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) != null) {
|
||||||
|
text += ChatColor.AQUA + " " + Lang.get("reqHeroesPrimaryDisplay") + " " + ChatColor.BLUE + (String) context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS);
|
||||||
|
}
|
||||||
|
if (context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) != null) {
|
||||||
|
text += ChatColor.AQUA + " " + Lang.get("reqHeroesSecondaryDisplay") + " " + ChatColor.BLUE + (String) context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS);
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("notInstalled") + ")";
|
||||||
|
}
|
||||||
|
case 9:
|
||||||
|
if (context.getSessionData(CK.REQ_CUSTOM) == null) {
|
||||||
|
return ChatColor.GRAY + "(" + Lang.get("noneSet") + ")";
|
||||||
|
} else {
|
||||||
|
String text = "";
|
||||||
|
LinkedList<String> customReqs = (LinkedList<String>) context.getSessionData(CK.REQ_CUSTOM);
|
||||||
|
for (String s : customReqs) {
|
||||||
|
text += ChatColor.RESET + "" + ChatColor.DARK_PURPLE + " - " + ChatColor.LIGHT_PURPLE + s;
|
||||||
|
}
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
case 10:
|
||||||
|
if (context.getSessionData(CK.REQ_MONEY) == null && context.getSessionData(CK.REQ_QUEST_POINTS) == null && context.getSessionData(CK.REQ_QUEST_BLOCK) == null
|
||||||
|
&& context.getSessionData(CK.REQ_ITEMS) == null && context.getSessionData(CK.REQ_PERMISSION) == null && context.getSessionData(CK.REQ_QUEST) == null
|
||||||
|
&& context.getSessionData(CK.REQ_QUEST_BLOCK) == null && context.getSessionData(CK.REQ_MCMMO_SKILLS) == null && context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) == null
|
||||||
|
&& context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) == null && context.getSessionData(CK.REQ_CUSTOM) == null) {
|
||||||
|
return ChatColor.GRAY + Lang.get("reqSetFail") + " (" + Lang.get("reqNone") + ")";
|
||||||
|
} else if (context.getSessionData(CK.Q_FAIL_MESSAGE) == null) {
|
||||||
|
return ChatColor.RED + "(" + Lang.get("questRequiredNoneSet") + ")";
|
||||||
|
} else {
|
||||||
|
return ChatColor.GRAY + "(" + ChatColor.AQUA + "\"" + context.getSessionData(CK.Q_FAIL_MESSAGE) + "\"" + ChatColor.GRAY + ")";
|
||||||
|
}
|
||||||
|
case 11:
|
||||||
|
case 12:
|
||||||
|
case 13:
|
||||||
|
case 14:
|
||||||
|
case 15:
|
||||||
|
return "";
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPromptText(ConversationContext context) {
|
||||||
|
QuestsEditorPostOpenRequirementsPromptEvent event = new QuestsEditorPostOpenRequirementsPromptEvent(factory, context);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
String text = getTitle(context) + "\n";
|
||||||
|
for (int i = 1; i <= maxNumber; i++) {
|
||||||
|
text += getNumberColor(context, i) + "" + ChatColor.BOLD + i + ChatColor.RESET + " - " + getSelectionText(context, i) + " " + getAdditionalText(context, i) + "\n";
|
||||||
}
|
}
|
||||||
text += ChatColor.GREEN + "" + ChatColor.BOLD + "11" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Prompt acceptValidatedInput(ConversationContext context, String input) {
|
protected Prompt acceptValidatedInput(ConversationContext context, Number input) {
|
||||||
if (input.equalsIgnoreCase("1")) {
|
switch (input.intValue()) {
|
||||||
|
case 1:
|
||||||
return new MoneyPrompt();
|
return new MoneyPrompt();
|
||||||
} else if (input.equalsIgnoreCase("2")) {
|
case 2:
|
||||||
return new QuestPointsPrompt();
|
return new QuestPointsPrompt();
|
||||||
} else if (input.equalsIgnoreCase("3")) {
|
case 3:
|
||||||
return new ItemListPrompt();
|
return new ItemListPrompt();
|
||||||
} else if (input.equalsIgnoreCase("4")) {
|
case 4:
|
||||||
return new PermissionsPrompt();
|
return new PermissionsPrompt();
|
||||||
} else if (input.equalsIgnoreCase("5")) {
|
case 5:
|
||||||
return new QuestListPrompt(true);
|
return new QuestListPrompt(true);
|
||||||
} else if (input.equalsIgnoreCase("6")) {
|
case 6:
|
||||||
return new QuestListPrompt(false);
|
return new QuestListPrompt(false);
|
||||||
} else if (input.equalsIgnoreCase("7")) {
|
case 7:
|
||||||
if (plugin.getDependencies().getMcmmo() != null) {
|
if (plugin.getDependencies().getMcmmoClassic() != null) {
|
||||||
return new mcMMOPrompt();
|
return new mcMMOPrompt();
|
||||||
} else {
|
} else {
|
||||||
return new RequirementsPrompt(plugin, factory);
|
return new RequirementsPrompt(plugin, factory);
|
||||||
}
|
}
|
||||||
} else if (input.equalsIgnoreCase("8")) {
|
case 8:
|
||||||
if (plugin.getDependencies().getHeroes() != null) {
|
if (plugin.getDependencies().getHeroes() != null) {
|
||||||
return new HeroesPrompt();
|
return new HeroesPrompt();
|
||||||
} else {
|
} else {
|
||||||
return new RequirementsPrompt(plugin, factory);
|
return new RequirementsPrompt(plugin, factory);
|
||||||
}
|
}
|
||||||
} else if (input.equalsIgnoreCase("9")) {
|
case 9:
|
||||||
return new CustomRequirementsPrompt();
|
return new CustomRequirementsPrompt();
|
||||||
} else if (input.equalsIgnoreCase("10")) {
|
case 10:
|
||||||
return new FailMessagePrompt();
|
return new FailMessagePrompt();
|
||||||
} else if (input.equalsIgnoreCase("11")) {
|
case 11:
|
||||||
if (context.getSessionData(CK.REQ_MONEY) != null || context.getSessionData(CK.REQ_QUEST_POINTS) != null || context.getSessionData(CK.REQ_ITEMS) != null || context.getSessionData(CK.REQ_PERMISSION) != null || context.getSessionData(CK.REQ_QUEST) != null || context.getSessionData(CK.REQ_QUEST_BLOCK) != null || context.getSessionData(CK.REQ_MCMMO_SKILLS) != null || context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) != null || context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) != null || context.getSessionData(CK.REQ_CUSTOM) != null) {
|
if (context.getSessionData(CK.REQ_MONEY) != null || context.getSessionData(CK.REQ_QUEST_POINTS) != null || context.getSessionData(CK.REQ_ITEMS) != null || context.getSessionData(CK.REQ_PERMISSION) != null || context.getSessionData(CK.REQ_QUEST) != null || context.getSessionData(CK.REQ_QUEST_BLOCK) != null || context.getSessionData(CK.REQ_MCMMO_SKILLS) != null || context.getSessionData(CK.REQ_HEROES_PRIMARY_CLASS) != null || context.getSessionData(CK.REQ_HEROES_SECONDARY_CLASS) != null || context.getSessionData(CK.REQ_CUSTOM) != null) {
|
||||||
if (context.getSessionData(CK.Q_FAIL_MESSAGE) == null) {
|
if (context.getSessionData(CK.Q_FAIL_MESSAGE) == null) {
|
||||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNoMessage"));
|
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("reqNoMessage"));
|
||||||
@ -193,9 +314,10 @@ public class RequirementsPrompt extends FixedSetPrompt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return factory.returnToMenu();
|
return factory.returnToMenu();
|
||||||
}
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class MoneyPrompt extends StringPrompt {
|
private class MoneyPrompt extends StringPrompt {
|
||||||
|
|
||||||
@ -355,9 +477,9 @@ public class RequirementsPrompt extends FixedSetPrompt {
|
|||||||
String text = ChatColor.GOLD + Lang.get("itemRequirementsTitle") + "\n";
|
String text = ChatColor.GOLD + Lang.get("itemRequirementsTitle") + "\n";
|
||||||
if (context.getSessionData(CK.REQ_ITEMS) == null) {
|
if (context.getSessionData(CK.REQ_ITEMS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorDeliveryAddItem") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorDeliveryAddItem") + "\n";
|
||||||
text += ChatColor.GRAY + "2 - " + Lang.get("reqSetRemoveItems") + " (" + Lang.get("reqNoItemsSet") + ")\n";
|
text += ChatColor.GRAY + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.GRAY + " - " + Lang.get("reqSetRemoveItems") + " (" + Lang.get("reqNoItemsSet") + ")\n";
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("clear") + "\n";
|
text += ChatColor.RED + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("clear") + "\n";
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
text += ChatColor.GREEN + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
||||||
} else {
|
} else {
|
||||||
for (ItemStack is : getItems(context)) {
|
for (ItemStack is : getItems(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ItemUtil.getDisplayString(is) + "\n";
|
text += ChatColor.GRAY + " - " + ItemUtil.getDisplayString(is) + "\n";
|
||||||
@ -371,8 +493,8 @@ public class RequirementsPrompt extends FixedSetPrompt {
|
|||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + (b.equals(Boolean.TRUE) ? Lang.get("yesWord") : Lang.get("noWord")) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + (b.equals(Boolean.TRUE) ? Lang.get("yesWord") : Lang.get("noWord")) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("clear") + "\n";
|
text += ChatColor.RED + "" + ChatColor.BOLD + "3" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("clear") + "\n";
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
text += ChatColor.GREEN + "" + ChatColor.BOLD + "4" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("done");
|
||||||
}
|
}
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ public class RewardsPrompt extends FixedSetPrompt {
|
|||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + perm + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + perm + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (plugin.getDependencies().getMcmmo() != null) {
|
if (plugin.getDependencies().getMcmmoClassic() != null) {
|
||||||
if (context.getSessionData(CK.REW_MCMMO_SKILLS) == null) {
|
if (context.getSessionData(CK.REW_MCMMO_SKILLS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "7" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("rewSetMcMMO") + " (" + Lang.get("noneSet") + ")\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "7" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("rewSetMcMMO") + " (" + Lang.get("noneSet") + ")\n";
|
||||||
} else {
|
} else {
|
||||||
@ -171,7 +171,7 @@ public class RewardsPrompt extends FixedSetPrompt {
|
|||||||
} else if (input.equalsIgnoreCase("6")) {
|
} else if (input.equalsIgnoreCase("6")) {
|
||||||
return new PermissionsPrompt();
|
return new PermissionsPrompt();
|
||||||
} else if (input.equalsIgnoreCase("7")) {
|
} else if (input.equalsIgnoreCase("7")) {
|
||||||
if (plugin.getDependencies().getMcmmo() != null) {
|
if (plugin.getDependencies().getMcmmoClassic() != null) {
|
||||||
return new mcMMOListPrompt();
|
return new mcMMOListPrompt();
|
||||||
} else {
|
} else {
|
||||||
return new RewardsPrompt(plugin, factory);
|
return new RewardsPrompt(plugin, factory);
|
||||||
|
Loading…
Reference in New Issue
Block a user