diff --git a/api/src/main/java/me/blackvein/quests/QuestData.java b/api/src/main/java/me/blackvein/quests/QuestData.java index b21a2806d..5a4b5463f 100644 --- a/api/src/main/java/me/blackvein/quests/QuestData.java +++ b/api/src/main/java/me/blackvein/quests/QuestData.java @@ -12,6 +12,7 @@ package me.blackvein.quests; +import me.blackvein.quests.player.IQuester; import org.bukkit.inventory.ItemStack; import java.util.Collection; @@ -22,9 +23,9 @@ import java.util.LinkedList; */ public class QuestData { - private final Quester quester; + private final IQuester quester; - public QuestData(final Quester quester) { + public QuestData(final IQuester quester) { this.quester = quester; } diff --git a/api/src/main/java/me/blackvein/quests/Quester.java b/api/src/main/java/me/blackvein/quests/Quester.java deleted file mode 100644 index 29c2acd8b..000000000 --- a/api/src/main/java/me/blackvein/quests/Quester.java +++ /dev/null @@ -1,228 +0,0 @@ -package me.blackvein.quests; - -import me.blackvein.quests.enums.ObjectiveType; -import net.citizensnpcs.api.npc.NPC; -import org.bukkit.DyeColor; -import org.bukkit.Location; -import org.bukkit.OfflinePlayer; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.inventory.ItemStack; - -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentSkipListSet; -import java.util.function.BiFunction; -import java.util.function.Function; - -public interface Quester extends Comparable { - UUID getUUID(); - - void setUUID(final UUID id); - - String getQuestIdToTake(); - - void setQuestIdToTake(final String questIdToTake); - - String getLastKnownName(); - - void setLastKnownName(final String lastKnownName); - - int getQuestPoints(); - - void setQuestPoints(final int questPoints); - - /** - * Get compass target quest. Returns null if not set - * - * @return Quest or null - */ - Quest getCompassTarget(); - - /** - * Set compass target quest. Does not update in-game - * - * @param quest The target quest - */ - void setCompassTarget(final Quest quest); - - ConcurrentHashMap getTimers(); - - void setTimers(final ConcurrentHashMap timers); - - void removeTimer(final Integer timerId); - - ConcurrentHashMap getCurrentQuests(); - - void setCurrentQuests(final ConcurrentHashMap currentQuests); - - ConcurrentSkipListSet getCompletedQuests(); - - void setCompletedQuests(final ConcurrentSkipListSet completedQuests); - - ConcurrentHashMap getCompletedTimes(); - - void setCompletedTimes(final ConcurrentHashMap completedTimes); - - ConcurrentHashMap getAmountsCompleted(); - - void setAmountsCompleted(final ConcurrentHashMap amountsCompleted); - - ConcurrentHashMap getQuestData(); - - void setQuestData(final ConcurrentHashMap questData); - - Player getPlayer(); - - OfflinePlayer getOfflinePlayer(); - - void sendMessage(final String message); - - Stage getCurrentStage(final Quest quest); - - QuestData getQuestData(final Quest quest); - - boolean hasJournal(); - - ItemStack getJournal(); - - int getJournalIndex(); - - void updateJournal(); - - void takeQuest(final Quest quest, final boolean ignoreRequirements); - - void quitQuest(final Quest quest, final String message); - - void quitQuest(final Quest quest, final String[] messages); - - LinkedList getCurrentRequirements(final Quest quest, final boolean ignoreOverrides); - - LinkedList getCurrentObjectives(final Quest quest, final boolean ignoreOverrides); - - LinkedList getObjectives(final Quest quest, final boolean ignoreOverrides); - - boolean containsObjective(final Quest quest, final String name); - - boolean hasCustomObjective(final Quest quest, final String name); - - void breakBlock(final Quest quest, final ItemStack itemStack); - - void damageBlock(final Quest quest, final ItemStack itemStack); - - void placeBlock(final Quest quest, final ItemStack itemStack); - - void useBlock(final Quest quest, final ItemStack itemStack); - - void cutBlock(final Quest quest, final ItemStack itemStack); - - void craftItem(final Quest quest, final ItemStack itemStack); - - void smeltItem(final Quest quest, final ItemStack itemStack); - - void enchantBook(final Quest quest, final ItemStack itemStack, - final Map enchantsToAdd); - - void enchantItem(final Quest quest, final ItemStack itemStack); - - void brewItem(final Quest quest, final ItemStack itemStack); - - void consumeItem(final Quest quest, final ItemStack itemStack); - - void deliverToNPC(final Quest quest, final NPC npc, final ItemStack itemStack); - - void interactWithNPC(final Quest quest, final NPC npc); - - void killNPC(final Quest quest, final NPC npc); - - void milkCow(final Quest quest); - - void catchFish(final Quest quest); - - void killMob(final Quest quest, final Location killedLocation, final EntityType entityType); - - void killPlayer(final Quest quest, final Player player); - - void reachLocation(final Quest quest, final Location location); - - void tameMob(final Quest quest, final EntityType entityType); - - void shearSheep(final Quest quest, final DyeColor color); - - void sayPassword(final Quest quest, final AsyncPlayerChatEvent evt); - - void finishObjective(final Quest quest, final Objective objective, final EntityType mob, - final String extra, final NPC npc, final Location location, final DyeColor color, - final String pass, final CustomObjective co); - - boolean testComplete(final Quest quest); - - void addEmptiesFor(final Quest quest, final int stage); - - boolean saveData(); - - long getCompletionDifference(final Quest quest); - - long getRemainingCooldown(final Quest quest); - - FileConfiguration getBaseData(); - - boolean hasData(); - - boolean hasBaseData(); - - void startStageTimer(final Quest quest); - - void stopStageTimer(final Quest quest); - - long getStageTime(final Quest quest); - - void checkQuest(final Quest quest); - - void showGUIDisplay(final NPC npc, final LinkedList quests); - - void hardQuit(final Quest quest); - - void hardRemove(final Quest quest); - - void hardClear(); - - void hardStagePut(final Quest key, final Integer val); - - void hardDataPut(final Quest key, final QuestData val); - - boolean canUseCompass(); - - void resetCompass(); - - void findCompassTarget(); - - void findNextCompassTarget(final boolean notify); - - boolean hasItem(final ItemStack is); - - Set dispatchMultiplayerEverything(final Quest quest, final ObjectiveType type, - final BiFunction fun); - - Set dispatchMultiplayerObjectives(final Quest quest, final Stage currentStage, - final Function fun); - - List getMultiplayerQuesters(final Quest quest); - - boolean offerQuest(final Quest quest, final boolean giveReason); - - boolean canAcceptOffer(final Quest quest, final boolean giveReason); - - boolean meetsCondition(final Quest quest, final boolean giveReason); - - boolean isSelectingBlock(); - - boolean isInRegion(final String regionID); -} diff --git a/api/src/main/java/me/blackvein/quests/QuestsAPI.java b/api/src/main/java/me/blackvein/quests/QuestsAPI.java index eed7b7392..3c098f51c 100644 --- a/api/src/main/java/me/blackvein/quests/QuestsAPI.java +++ b/api/src/main/java/me/blackvein/quests/QuestsAPI.java @@ -1,9 +1,15 @@ package me.blackvein.quests; -import me.blackvein.quests.actions.Action; +import me.blackvein.quests.actions.IAction; import me.blackvein.quests.actions.ActionFactory; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.conditions.ICondition; import me.blackvein.quests.conditions.ConditionFactory; +import me.blackvein.quests.config.ISettings; +import me.blackvein.quests.dependencies.IDependencies; +import me.blackvein.quests.module.ICustomObjective; +import me.blackvein.quests.player.IQuester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.QuestFactory; import org.bukkit.command.CommandExecutor; import org.bukkit.conversations.ConversationFactory; import org.bukkit.plugin.Plugin; @@ -19,29 +25,29 @@ public interface QuestsAPI extends Plugin { String getDetectedServerSoftwareVersion(); - Dependencies getDependencies(); + IDependencies getDependencies(); - Settings getSettings(); + ISettings getSettings(); - List getCustomObjectives(); + List getCustomObjectives(); List getCustomRewards(); List getCustomRequirements(); - Collection getLoadedQuests(); + Collection getLoadedQuests(); - Collection getLoadedActions(); + Collection getLoadedActions(); - Collection getLoadedConditions(); + Collection getLoadedConditions(); - Quester getQuester(final UUID id); + IQuester getQuester(final UUID id); - Collection getOnlineQuesters(); + Collection getOnlineQuesters(); - Collection getOfflineQuesters(); + Collection getOfflineQuesters(); - void setOfflineQuesters(final Collection questers); + void setOfflineQuesters(final Collection questers); LinkedList getQuestNpcIds(); diff --git a/api/src/main/java/me/blackvein/quests/actions/ActionFactory.java b/api/src/main/java/me/blackvein/quests/actions/ActionFactory.java index 0f098185c..925264957 100644 --- a/api/src/main/java/me/blackvein/quests/actions/ActionFactory.java +++ b/api/src/main/java/me/blackvein/quests/actions/ActionFactory.java @@ -38,7 +38,7 @@ public interface ActionFactory { Prompt returnToMenu(final ConversationContext context); - void loadData(final Action event, final ConversationContext context); + void loadData(final IAction event, final ConversationContext context); void clearData(final ConversationContext context); diff --git a/api/src/main/java/me/blackvein/quests/actions/Action.java b/api/src/main/java/me/blackvein/quests/actions/IAction.java similarity index 91% rename from api/src/main/java/me/blackvein/quests/actions/Action.java rename to api/src/main/java/me/blackvein/quests/actions/IAction.java index eca82f50a..be92b99ba 100644 --- a/api/src/main/java/me/blackvein/quests/actions/Action.java +++ b/api/src/main/java/me/blackvein/quests/actions/IAction.java @@ -1,7 +1,7 @@ package me.blackvein.quests.actions; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.entity.QuestMob; import org.bukkit.Effect; import org.bukkit.Location; @@ -12,7 +12,7 @@ import org.bukkit.potion.PotionEffect; import java.util.LinkedList; import java.util.Map; -public interface Action extends Comparable { +public interface IAction extends Comparable { String getName(); void setName(final String name); @@ -105,5 +105,5 @@ public interface Action extends Comparable { void setDenizenScript(final String scriptName); - void fire(final Quester quester, final Quest quest); + void fire(final IQuester quester, final IQuest quest); } diff --git a/api/src/main/java/me/blackvein/quests/conditions/ConditionFactory.java b/api/src/main/java/me/blackvein/quests/conditions/ConditionFactory.java index 61a575a9f..c4a207674 100644 --- a/api/src/main/java/me/blackvein/quests/conditions/ConditionFactory.java +++ b/api/src/main/java/me/blackvein/quests/conditions/ConditionFactory.java @@ -15,7 +15,7 @@ public interface ConditionFactory { Prompt returnToMenu(final ConversationContext context); - void loadData(final Condition condition, final ConversationContext context); + void loadData(final ICondition condition, final ConversationContext context); void clearData(final ConversationContext context); diff --git a/api/src/main/java/me/blackvein/quests/conditions/Condition.java b/api/src/main/java/me/blackvein/quests/conditions/ICondition.java similarity index 87% rename from api/src/main/java/me/blackvein/quests/conditions/Condition.java rename to api/src/main/java/me/blackvein/quests/conditions/ICondition.java index a56b5e77b..f01f4124a 100644 --- a/api/src/main/java/me/blackvein/quests/conditions/Condition.java +++ b/api/src/main/java/me/blackvein/quests/conditions/ICondition.java @@ -1,12 +1,12 @@ package me.blackvein.quests.conditions; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import org.bukkit.inventory.ItemStack; import java.util.LinkedList; -public interface Condition extends Comparable { +public interface ICondition extends Comparable { String getName(); void setName(final String name); @@ -51,5 +51,5 @@ public interface Condition extends Comparable { void setPlaceholdersCheckValue(final LinkedList placeholdersCheckValue); - boolean check(final Quester quester, final Quest quest); + boolean check(final IQuester quester, final IQuest quest); } diff --git a/api/src/main/java/me/blackvein/quests/Settings.java b/api/src/main/java/me/blackvein/quests/config/ISettings.java similarity index 96% rename from api/src/main/java/me/blackvein/quests/Settings.java rename to api/src/main/java/me/blackvein/quests/config/ISettings.java index a48fa4e1d..79dd2877a 100644 --- a/api/src/main/java/me/blackvein/quests/Settings.java +++ b/api/src/main/java/me/blackvein/quests/config/ISettings.java @@ -1,6 +1,6 @@ -package me.blackvein.quests; +package me.blackvein.quests.config; -public interface Settings { +public interface ISettings { int getAcceptTimeout(); void setAcceptTimeout(final int acceptTimeout); boolean canAllowCommands(); diff --git a/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorNumericPrompt.java b/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorNumericPrompt.java index a1ac84dff..b8d6658ac 100644 --- a/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorNumericPrompt.java +++ b/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorNumericPrompt.java @@ -12,7 +12,7 @@ package me.blackvein.quests.convo.quests; -import me.blackvein.quests.QuestFactory; +import me.blackvein.quests.quests.QuestFactory; import me.blackvein.quests.QuestsAPI; import me.blackvein.quests.convo.QuestsNumericPrompt; import org.bukkit.ChatColor; diff --git a/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorStringPrompt.java b/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorStringPrompt.java index ee32df0bf..b0a83b124 100644 --- a/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorStringPrompt.java +++ b/api/src/main/java/me/blackvein/quests/convo/quests/QuestsEditorStringPrompt.java @@ -12,7 +12,7 @@ package me.blackvein.quests.convo.quests; -import me.blackvein.quests.QuestFactory; +import me.blackvein.quests.quests.QuestFactory; import me.blackvein.quests.QuestsAPI; import me.blackvein.quests.convo.QuestsStringPrompt; import org.bukkit.conversations.ConversationContext; diff --git a/api/src/main/java/me/blackvein/quests/Dependencies.java b/api/src/main/java/me/blackvein/quests/dependencies/IDependencies.java similarity index 89% rename from api/src/main/java/me/blackvein/quests/Dependencies.java rename to api/src/main/java/me/blackvein/quests/dependencies/IDependencies.java index e6c6ca867..f60e81c41 100644 --- a/api/src/main/java/me/blackvein/quests/Dependencies.java +++ b/api/src/main/java/me/blackvein/quests/dependencies/IDependencies.java @@ -1,4 +1,4 @@ -package me.blackvein.quests; +package me.blackvein.quests.dependencies; import com.alessiodp.parties.api.interfaces.PartiesAPI; import com.codisimus.plugins.phatloots.PhatLoots; @@ -6,6 +6,7 @@ import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.mcMMO; import com.herocraftonline.heroes.Heroes; import com.herocraftonline.heroes.characters.Hero; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.reflect.denizen.DenizenAPI; import me.blackvein.quests.reflect.worldguard.WorldGuardAPI; import me.clip.placeholderapi.PlaceholderAPIPlugin; @@ -19,7 +20,7 @@ import ro.nicuch.citizensbooks.CitizensBooksAPI; import java.util.Set; import java.util.UUID; -public interface Dependencies { +public interface IDependencies { Economy getVaultEconomy(); Permission getVaultPermission(); @@ -52,7 +53,7 @@ public interface Dependencies { boolean isPluginAvailable(final String pluginName); - boolean runDenizenScript(final String scriptName, final Quester quester); + boolean runDenizenScript(final String scriptName, final IQuester quester); Location getNPCLocation(final int id); diff --git a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java b/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java index 669fc5f8c..a1990bfce 100644 --- a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java +++ b/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java @@ -12,7 +12,7 @@ package me.blackvein.quests.events.editor.quests; -import me.blackvein.quests.QuestFactory; +import me.blackvein.quests.quests.QuestFactory; import me.blackvein.quests.QuestsAPI; import me.blackvein.quests.events.QuestsEvent; import org.bukkit.conversations.ConversationContext; diff --git a/api/src/main/java/me/blackvein/quests/events/quest/QuestEvent.java b/api/src/main/java/me/blackvein/quests/events/quest/QuestEvent.java index aa9b8a137..24a7fddf0 100644 --- a/api/src/main/java/me/blackvein/quests/events/quest/QuestEvent.java +++ b/api/src/main/java/me/blackvein/quests/events/quest/QuestEvent.java @@ -14,7 +14,7 @@ package me.blackvein.quests.events.quest; import org.bukkit.event.HandlerList; -import me.blackvein.quests.Quest; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.events.QuestsEvent; import org.jetbrains.annotations.NotNull; @@ -23,13 +23,13 @@ import org.jetbrains.annotations.NotNull; */ public abstract class QuestEvent extends QuestsEvent { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; - public QuestEvent(final Quest quest) { + public QuestEvent(final IQuest quest) { this.quest = quest; } - public QuestEvent(final Quest quest, final boolean async) { + public QuestEvent(final IQuest quest, final boolean async) { super(async); this.quest = quest; } @@ -39,7 +39,7 @@ public abstract class QuestEvent extends QuestsEvent { * * @return Quest which is involved in this event */ - public final Quest getQuest() { + public final IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quest/QuestQuitEvent.java b/api/src/main/java/me/blackvein/quests/events/quest/QuestQuitEvent.java index 9361c9b10..91ee14edb 100644 --- a/api/src/main/java/me/blackvein/quests/events/quest/QuestQuitEvent.java +++ b/api/src/main/java/me/blackvein/quests/events/quest/QuestQuitEvent.java @@ -15,8 +15,8 @@ package me.blackvein.quests.events.quest; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import org.jetbrains.annotations.NotNull; /** @@ -24,10 +24,10 @@ import org.jetbrains.annotations.NotNull; */ public class QuestQuitEvent extends QuestEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quester quester; + private final IQuester quester; private boolean cancel = false; - public QuestQuitEvent(final Quest quest, final Quester who) { + public QuestQuitEvent(final IQuest quest, final IQuester who) { super(quest); this.quester = who; } @@ -37,7 +37,7 @@ public class QuestQuitEvent extends QuestEvent implements Cancellable { * * @return Quester who is involved in this event */ - public Quester getQuester() { + public IQuester getQuester() { return quester; } diff --git a/api/src/main/java/me/blackvein/quests/events/quest/QuestTakeEvent.java b/api/src/main/java/me/blackvein/quests/events/quest/QuestTakeEvent.java index f472d9032..28590208c 100644 --- a/api/src/main/java/me/blackvein/quests/events/quest/QuestTakeEvent.java +++ b/api/src/main/java/me/blackvein/quests/events/quest/QuestTakeEvent.java @@ -15,8 +15,8 @@ package me.blackvein.quests.events.quest; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import org.jetbrains.annotations.NotNull; /** @@ -24,10 +24,10 @@ import org.jetbrains.annotations.NotNull; */ public class QuestTakeEvent extends QuestEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quester quester; + private final IQuester quester; private boolean cancel = false; - public QuestTakeEvent(final Quest quest, final Quester who) { + public QuestTakeEvent(final IQuest quest, final IQuester who) { super(quest); this.quester = who; } @@ -37,7 +37,7 @@ public class QuestTakeEvent extends QuestEvent implements Cancellable { * * @return Quester who is involved in this event */ - public Quester getQuester() { + public IQuester getQuester() { return quester; } diff --git a/api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java b/api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java index 5517bc3c2..2ed6d94ba 100644 --- a/api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java +++ b/api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java @@ -16,8 +16,8 @@ import org.bukkit.Location; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import org.jetbrains.annotations.NotNull; /** @@ -25,11 +25,11 @@ import org.jetbrains.annotations.NotNull; */ public class QuestUpdateCompassEvent extends QuestEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quester quester; + private final IQuester quester; private final Location target; private boolean cancel = false; - public QuestUpdateCompassEvent(final Quest quest, final Quester who, final Location target) { + public QuestUpdateCompassEvent(final IQuest quest, final IQuester who, final Location target) { super(quest); this.quester = who; this.target = target; @@ -40,7 +40,7 @@ public class QuestUpdateCompassEvent extends QuestEvent implements Cancellable { * * @return Quester who is involved in this event */ - public Quester getQuester() { + public IQuester getQuester() { return quester; } diff --git a/api/src/main/java/me/blackvein/quests/CustomObjective.java b/api/src/main/java/me/blackvein/quests/module/ICustomObjective.java similarity index 89% rename from api/src/main/java/me/blackvein/quests/CustomObjective.java rename to api/src/main/java/me/blackvein/quests/module/ICustomObjective.java index d37c1d8c6..7cf478a8f 100644 --- a/api/src/main/java/me/blackvein/quests/CustomObjective.java +++ b/api/src/main/java/me/blackvein/quests/module/ICustomObjective.java @@ -10,14 +10,15 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package me.blackvein.quests; +package me.blackvein.quests.module; +import me.blackvein.quests.quests.IQuest; import org.bukkit.entity.Player; import java.util.LinkedList; import java.util.Map; -public interface CustomObjective { +public interface ICustomObjective { String getModuleName(); @@ -40,12 +41,12 @@ public interface CustomObjective { void setItem(final String type, final short durability); LinkedList> getData(); - + /** * Add a new prompt

- * + * * Note that the "defaultValue" Object will be cast to a String internally - * + * * @param title Prompt name * @param description Description of expected input * @param defaultValue Value to be used if input is not received @@ -61,7 +62,7 @@ public interface CustomObjective { String getCountPrompt(); void setCountPrompt(final String countPrompt); - + /** * Check whether to let user set required amount for objective */ @@ -69,7 +70,7 @@ public interface CustomObjective { /** * Set whether to let user set required amount for objective - * + * * @param showCount Whether to show the count */ void setShowCount(final boolean showCount); @@ -82,7 +83,7 @@ public interface CustomObjective { * @param quest Current me.blackvein.quests.Quest which includes this objective * @return data */ - Map getDataForPlayer(final Player player, final CustomObjective customObj, final Quest quest); + Map getDataForPlayer(final Player player, final ICustomObjective customObj, final IQuest quest); - void incrementObjective(final Player player, final CustomObjective obj, final int count, final Quest quest); + void incrementObjective(final Player player, final ICustomObjective obj, final int count, final IQuest quest); } diff --git a/api/src/main/java/me/blackvein/quests/player/IQuester.java b/api/src/main/java/me/blackvein/quests/player/IQuester.java new file mode 100644 index 000000000..9fc3b54f8 --- /dev/null +++ b/api/src/main/java/me/blackvein/quests/player/IQuester.java @@ -0,0 +1,233 @@ +package me.blackvein.quests.player; + +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Objective; +import me.blackvein.quests.QuestData; +import me.blackvein.quests.quests.Stage; +import me.blackvein.quests.enums.ObjectiveType; +import me.blackvein.quests.module.ICustomObjective; +import net.citizensnpcs.api.npc.NPC; +import org.bukkit.DyeColor; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.inventory.ItemStack; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentSkipListSet; +import java.util.function.BiFunction; +import java.util.function.Function; + +public interface IQuester extends Comparable { + UUID getUUID(); + + void setUUID(final UUID id); + + String getQuestIdToTake(); + + void setQuestIdToTake(final String questIdToTake); + + String getLastKnownName(); + + void setLastKnownName(final String lastKnownName); + + int getQuestPoints(); + + void setQuestPoints(final int questPoints); + + /** + * Get compass target quest. Returns null if not set + * + * @return Quest or null + */ + IQuest getCompassTarget(); + + /** + * Set compass target quest. Does not update in-game + * + * @param quest The target quest + */ + void setCompassTarget(final IQuest quest); + + ConcurrentHashMap getTimers(); + + void setTimers(final ConcurrentHashMap timers); + + void removeTimer(final Integer timerId); + + ConcurrentHashMap getCurrentQuests(); + + void setCurrentQuests(final ConcurrentHashMap currentQuests); + + ConcurrentSkipListSet getCompletedQuests(); + + void setCompletedQuests(final ConcurrentSkipListSet completedQuests); + + ConcurrentHashMap getCompletedTimes(); + + void setCompletedTimes(final ConcurrentHashMap completedTimes); + + ConcurrentHashMap getAmountsCompleted(); + + void setAmountsCompleted(final ConcurrentHashMap amountsCompleted); + + ConcurrentHashMap getQuestData(); + + void setQuestData(final ConcurrentHashMap questData); + + Player getPlayer(); + + OfflinePlayer getOfflinePlayer(); + + void sendMessage(final String message); + + Stage getCurrentStage(final IQuest quest); + + QuestData getQuestData(final IQuest quest); + + boolean hasJournal(); + + ItemStack getJournal(); + + int getJournalIndex(); + + void updateJournal(); + + void takeQuest(final IQuest quest, final boolean ignoreRequirements); + + void quitQuest(final IQuest quest, final String message); + + void quitQuest(final IQuest quest, final String[] messages); + + LinkedList getCurrentRequirements(final IQuest quest, final boolean ignoreOverrides); + + LinkedList getCurrentObjectives(final IQuest quest, final boolean ignoreOverrides); + + LinkedList getObjectives(final IQuest quest, final boolean ignoreOverrides); + + boolean containsObjective(final IQuest quest, final String name); + + boolean hasCustomObjective(final IQuest quest, final String name); + + void breakBlock(final IQuest quest, final ItemStack itemStack); + + void damageBlock(final IQuest quest, final ItemStack itemStack); + + void placeBlock(final IQuest quest, final ItemStack itemStack); + + void useBlock(final IQuest quest, final ItemStack itemStack); + + void cutBlock(final IQuest quest, final ItemStack itemStack); + + void craftItem(final IQuest quest, final ItemStack itemStack); + + void smeltItem(final IQuest quest, final ItemStack itemStack); + + void enchantBook(final IQuest quest, final ItemStack itemStack, + final Map enchantsToAdd); + + void enchantItem(final IQuest quest, final ItemStack itemStack); + + void brewItem(final IQuest quest, final ItemStack itemStack); + + void consumeItem(final IQuest quest, final ItemStack itemStack); + + void deliverToNPC(final IQuest quest, final NPC npc, final ItemStack itemStack); + + void interactWithNPC(final IQuest quest, final NPC npc); + + void killNPC(final IQuest quest, final NPC npc); + + void milkCow(final IQuest quest); + + void catchFish(final IQuest quest); + + void killMob(final IQuest quest, final Location killedLocation, final EntityType entityType); + + void killPlayer(final IQuest quest, final Player player); + + void reachLocation(final IQuest quest, final Location location); + + void tameMob(final IQuest quest, final EntityType entityType); + + void shearSheep(final IQuest quest, final DyeColor color); + + void sayPassword(final IQuest quest, final AsyncPlayerChatEvent evt); + + void finishObjective(final IQuest quest, final Objective objective, final EntityType mob, + final String extra, final NPC npc, final Location location, final DyeColor color, + final String pass, final ICustomObjective co); + + boolean testComplete(final IQuest quest); + + void addEmptiesFor(final IQuest quest, final int stage); + + boolean saveData(); + + long getCompletionDifference(final IQuest quest); + + long getRemainingCooldown(final IQuest quest); + + FileConfiguration getBaseData(); + + boolean hasData(); + + boolean hasBaseData(); + + void startStageTimer(final IQuest quest); + + void stopStageTimer(final IQuest quest); + + long getStageTime(final IQuest quest); + + void checkQuest(final IQuest quest); + + void showGUIDisplay(final NPC npc, final LinkedList quests); + + void hardQuit(final IQuest quest); + + void hardRemove(final IQuest quest); + + void hardClear(); + + void hardStagePut(final IQuest key, final Integer val); + + void hardDataPut(final IQuest key, final QuestData val); + + boolean canUseCompass(); + + void resetCompass(); + + void findCompassTarget(); + + void findNextCompassTarget(final boolean notify); + + boolean hasItem(final ItemStack is); + + Set dispatchMultiplayerEverything(final IQuest quest, final ObjectiveType type, + final BiFunction fun); + + Set dispatchMultiplayerObjectives(final IQuest quest, final Stage currentStage, + final Function fun); + + List getMultiplayerQuesters(final IQuest quest); + + boolean offerQuest(final IQuest quest, final boolean giveReason); + + boolean canAcceptOffer(final IQuest quest, final boolean giveReason); + + boolean meetsCondition(final IQuest quest, final boolean giveReason); + + boolean isSelectingBlock(); + + boolean isInRegion(final String regionID); +} diff --git a/api/src/main/java/me/blackvein/quests/Quest.java b/api/src/main/java/me/blackvein/quests/quests/IQuest.java similarity index 55% rename from api/src/main/java/me/blackvein/quests/Quest.java rename to api/src/main/java/me/blackvein/quests/quests/IQuest.java index 28feb03a8..662ebd780 100644 --- a/api/src/main/java/me/blackvein/quests/Quest.java +++ b/api/src/main/java/me/blackvein/quests/quests/IQuest.java @@ -1,6 +1,7 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; -import me.blackvein.quests.actions.Action; +import me.blackvein.quests.actions.IAction; +import me.blackvein.quests.player.IQuester; import net.citizensnpcs.api.npc.NPC; import org.bukkit.Location; import org.bukkit.OfflinePlayer; @@ -9,7 +10,7 @@ import org.bukkit.plugin.Plugin; import java.util.LinkedList; -public interface Quest extends Comparable { +public interface IQuest extends Comparable { Plugin getPlugin(); void setPlugin(Plugin plugin); @@ -50,9 +51,9 @@ public interface Quest extends Comparable { void setBlockStart(final Location blockStart); - Action getInitialAction(); + IAction getInitialAction(); - void setInitialAction(final Action initialAction); + void setInitialAction(final IAction initialAction); Requirements getRequirements(); @@ -62,25 +63,25 @@ public interface Quest extends Comparable { Options getOptions(); - void nextStage(final Quester quester, final boolean allowSharedProgress); + void nextStage(final IQuester quester, final boolean allowSharedProgress); - void setStage(final Quester quester, final int stage); + void setStage(final IQuester quester, final int stage); - boolean updateCompass(final Quester quester, final Stage stage); + boolean updateCompass(final IQuester quester, final Stage stage); - boolean testRequirements(final Quester quester); + boolean testRequirements(final IQuester quester); boolean testRequirements(final OfflinePlayer player); - void completeQuest(final Quester quester); + void completeQuest(final IQuester quester); - void completeQuest(final Quester quester, final boolean allowMultiplayer); + void completeQuest(final IQuester quester, final boolean allowMultiplayer); - void failQuest(final Quester quester); + void failQuest(final IQuester quester); - void failQuest(final Quester quester, final boolean ignoreFailAction); + void failQuest(final IQuester quester, final boolean ignoreFailAction); - boolean isInRegion(final Quester quester); + boolean isInRegion(final IQuester quester); - boolean isInRegionStart(final Quester quester); + boolean isInRegionStart(final IQuester quester); } diff --git a/api/src/main/java/me/blackvein/quests/Objective.java b/api/src/main/java/me/blackvein/quests/quests/Objective.java similarity index 87% rename from api/src/main/java/me/blackvein/quests/Objective.java rename to api/src/main/java/me/blackvein/quests/quests/Objective.java index 3d61ddfb1..747efe9ba 100644 --- a/api/src/main/java/me/blackvein/quests/Objective.java +++ b/api/src/main/java/me/blackvein/quests/quests/Objective.java @@ -1,4 +1,4 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; import me.blackvein.quests.enums.ObjectiveType; import org.bukkit.inventory.ItemStack; diff --git a/api/src/main/java/me/blackvein/quests/Options.java b/api/src/main/java/me/blackvein/quests/quests/Options.java similarity index 96% rename from api/src/main/java/me/blackvein/quests/Options.java rename to api/src/main/java/me/blackvein/quests/quests/Options.java index 45728d4f2..4346ed7f7 100644 --- a/api/src/main/java/me/blackvein/quests/Options.java +++ b/api/src/main/java/me/blackvein/quests/quests/Options.java @@ -1,4 +1,4 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; public interface Options { boolean canAllowCommands(); diff --git a/api/src/main/java/me/blackvein/quests/Planner.java b/api/src/main/java/me/blackvein/quests/quests/Planner.java similarity index 93% rename from api/src/main/java/me/blackvein/quests/Planner.java rename to api/src/main/java/me/blackvein/quests/quests/Planner.java index fac36eb72..5d18e4af9 100644 --- a/api/src/main/java/me/blackvein/quests/Planner.java +++ b/api/src/main/java/me/blackvein/quests/quests/Planner.java @@ -1,4 +1,4 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; public interface Planner { String getStart(); diff --git a/api/src/main/java/me/blackvein/quests/QuestFactory.java b/api/src/main/java/me/blackvein/quests/quests/QuestFactory.java similarity index 94% rename from api/src/main/java/me/blackvein/quests/QuestFactory.java rename to api/src/main/java/me/blackvein/quests/quests/QuestFactory.java index 44a1a444a..1c0bf3f78 100644 --- a/api/src/main/java/me/blackvein/quests/QuestFactory.java +++ b/api/src/main/java/me/blackvein/quests/quests/QuestFactory.java @@ -1,4 +1,4 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; import org.bukkit.block.Block; import org.bukkit.configuration.ConfigurationSection; @@ -36,7 +36,7 @@ public interface QuestFactory { Prompt returnToMenu(final ConversationContext context); - void loadQuest(final ConversationContext context, final Quest q); + void loadQuest(final ConversationContext context, final IQuest q); void deleteQuest(final ConversationContext context); diff --git a/api/src/main/java/me/blackvein/quests/Requirements.java b/api/src/main/java/me/blackvein/quests/quests/Requirements.java similarity index 81% rename from api/src/main/java/me/blackvein/quests/Requirements.java rename to api/src/main/java/me/blackvein/quests/quests/Requirements.java index c71049a22..07e8ac185 100644 --- a/api/src/main/java/me/blackvein/quests/Requirements.java +++ b/api/src/main/java/me/blackvein/quests/quests/Requirements.java @@ -1,5 +1,6 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; +import me.blackvein.quests.quests.IQuest; import org.bukkit.inventory.ItemStack; import java.util.List; @@ -22,13 +23,13 @@ public interface Requirements { void setRemoveItems(final List removeItems); - List getNeededQuests(); + List getNeededQuests(); - void setNeededQuests(final List neededQuests); + void setNeededQuests(final List neededQuests); - List getBlockQuests(); + List getBlockQuests(); - void setBlockQuests(final List blockQuests); + void setBlockQuests(final List blockQuests); List getPermissions(); diff --git a/api/src/main/java/me/blackvein/quests/Rewards.java b/api/src/main/java/me/blackvein/quests/quests/Rewards.java similarity index 97% rename from api/src/main/java/me/blackvein/quests/Rewards.java rename to api/src/main/java/me/blackvein/quests/quests/Rewards.java index 8f8cbdc07..8c08e005e 100644 --- a/api/src/main/java/me/blackvein/quests/Rewards.java +++ b/api/src/main/java/me/blackvein/quests/quests/Rewards.java @@ -1,4 +1,4 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; import org.bukkit.inventory.ItemStack; diff --git a/api/src/main/java/me/blackvein/quests/Stage.java b/api/src/main/java/me/blackvein/quests/quests/Stage.java similarity index 86% rename from api/src/main/java/me/blackvein/quests/Stage.java rename to api/src/main/java/me/blackvein/quests/quests/Stage.java index 184c1472f..1f939e5ca 100644 --- a/api/src/main/java/me/blackvein/quests/Stage.java +++ b/api/src/main/java/me/blackvein/quests/quests/Stage.java @@ -1,8 +1,9 @@ -package me.blackvein.quests; +package me.blackvein.quests.quests; -import me.blackvein.quests.actions.Action; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.actions.IAction; +import me.blackvein.quests.conditions.ICondition; import me.blackvein.quests.enums.ObjectiveType; +import me.blackvein.quests.module.ICustomObjective; import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.World; @@ -215,41 +216,41 @@ public interface Stage { void setScript(final String script); - Action getStartAction(); + IAction getStartAction(); - void setStartAction(final Action startAction); + void setStartAction(final IAction startAction); - Action getFinishAction(); + IAction getFinishAction(); - void setFinishAction(final Action finishAction); + void setFinishAction(final IAction finishAction); - Action getFailAction(); + IAction getFailAction(); - void setFailAction(final Action failAction); + void setFailAction(final IAction failAction); - Action getDeathAction(); + IAction getDeathAction(); - void setDeathAction(final Action deathAction); + void setDeathAction(final IAction deathAction); - Map getChatActions(); + Map getChatActions(); - void addChatAction(Map.Entry chatAction); + void addChatAction(Map.Entry chatAction); - void setChatActions(final Map chatActions); + void setChatActions(final Map chatActions); - Map getCommandActions(); + Map getCommandActions(); - void addCommandAction(Map.Entry commandAction); + void addCommandAction(Map.Entry commandAction); - void setCommandActions(final Map commandActions); + void setCommandActions(final Map commandActions); - Action getDisconnectAction(); + IAction getDisconnectAction(); - void setDisconnectAction(final Action disconnectAction); + void setDisconnectAction(final IAction disconnectAction); - Condition getCondition(); + ICondition getCondition(); - void setCondition(final Condition condition); + void setCondition(final ICondition condition); long getDelay(); @@ -273,9 +274,9 @@ public interface Stage { void setObjectiveOverrides(final LinkedList objectiveOverrides); - LinkedList getCustomObjectives(); + LinkedList getCustomObjectives(); - boolean addCustomObjectives(final CustomObjective customObjective); + boolean addCustomObjectives(final ICustomObjective customObjective); void clearCustomObjectives(); diff --git a/core/src/main/java/me/blackvein/quests/module/BukkitCustomObjective.java b/core/src/main/java/me/blackvein/quests/CustomObjective.java similarity index 82% rename from core/src/main/java/me/blackvein/quests/module/BukkitCustomObjective.java rename to core/src/main/java/me/blackvein/quests/CustomObjective.java index 47a7670ed..b81c23434 100644 --- a/core/src/main/java/me/blackvein/quests/module/BukkitCustomObjective.java +++ b/core/src/main/java/me/blackvein/quests/CustomObjective.java @@ -10,18 +10,15 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package me.blackvein.quests.module; +package me.blackvein.quests; -import me.blackvein.quests.CustomObjective; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; -import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; import me.blackvein.quests.enums.ObjectiveType; import me.blackvein.quests.events.quester.QuesterPostUpdateObjectiveEvent; import me.blackvein.quests.events.quester.QuesterPreUpdateObjectiveEvent; +import me.blackvein.quests.module.ICustomObjective; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.quests.BukkitObjective; -import me.blackvein.quests.quests.BukkitQuest; +import me.blackvein.quests.quests.Stage; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.Listener; @@ -34,7 +31,7 @@ import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; -public abstract class BukkitCustomObjective implements CustomObjective, Listener { +public abstract class CustomObjective implements ICustomObjective, Listener { private final Quests plugin = Quests.getPlugin(Quests.class); private String name = null; @@ -162,17 +159,16 @@ public abstract class BukkitCustomObjective implements CustomObjective, Listener this.showCount = showCount; } - @Override public Map getDataForPlayer(final Player player, final CustomObjective customObj, final Quest quest) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); if (quester != null) { - final Stage currentStage = quester.getCurrentStage((BukkitQuest) quest); + final Stage currentStage = quester.getCurrentStage(quest); if (currentStage == null) { return null; } - CustomObjective found = null; - for (final CustomObjective co : currentStage.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : currentStage.getCustomObjectives()) { if (co.getName().equals(customObj.getName())) { found = co; break; @@ -195,15 +191,13 @@ public abstract class BukkitCustomObjective implements CustomObjective, Listener return null; } - @Override public void incrementObjective(final Player player, final CustomObjective obj, final int count, final Quest quest) { - final Quest bQuest = (BukkitQuest) quest; final Quester quester = plugin.getQuester(player.getUniqueId()); if (quester != null) { - if (quester.hasCustomObjective(bQuest, obj.getName())) { + if (quester.hasCustomObjective(quest, obj.getName())) { int index = -1; - final LinkedList customObjCounts = quester.getQuestData(bQuest).customObjectiveCounts; - for (final CustomObjective co : quester.getCurrentStage(bQuest).getCustomObjectives()) { + final LinkedList customObjCounts = quester.getQuestData(quest).customObjectiveCounts; + for (final ICustomObjective co : quester.getCurrentStage(quest).getCustomObjectives()) { index++; if (co.getName().equals(this.getName())) { if (index >= customObjCounts.size()) { @@ -212,14 +206,14 @@ public abstract class BukkitCustomObjective implements CustomObjective, Listener continue; } final int old = customObjCounts.get(index); - plugin.getQuester(player.getUniqueId()).getQuestData(bQuest).customObjectiveCounts + plugin.getQuester(player.getUniqueId()).getQuestData(quest).customObjectiveCounts .set(index, old + count); break; } } if (index > -1) { final int progress = customObjCounts.get(index); - final int goal = quester.getCurrentStage(bQuest).getCustomObjectiveCounts().get(index); + final int goal = quester.getCurrentStage(quest).getCustomObjectiveCounts().get(index); final ObjectiveType type = ObjectiveType.CUSTOM; final QuesterPreUpdateObjectiveEvent preEvent @@ -227,15 +221,15 @@ public abstract class BukkitCustomObjective implements CustomObjective, Listener plugin.getServer().getPluginManager().callEvent(preEvent); if (progress >= goal) { - quester.finishObjective(bQuest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), + quester.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, goal)), null, null, null, null, null, null, obj); // Multiplayer final int finalIndex = index; - quester.dispatchMultiplayerObjectives(bQuest, quester.getCurrentStage(bQuest), (final Quester q) -> { - final int old = q.getQuestData(bQuest).customObjectiveCounts.get(finalIndex); - q.getQuestData(bQuest).customObjectiveCounts.set(finalIndex, old + count); - q.finishObjective(bQuest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), + quester.dispatchMultiplayerObjectives(quest, quester.getCurrentStage(quest), (final IQuester q) -> { + final int old = q.getQuestData(quest).customObjectiveCounts.get(finalIndex); + q.getQuestData(quest).customObjectiveCounts.set(finalIndex, old + count); + q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, goal)), null, null, null, null, null, null, obj); return null; }); diff --git a/core/src/main/java/me/blackvein/quests/dependencies/BukkitDependencies.java b/core/src/main/java/me/blackvein/quests/Dependencies.java similarity index 91% rename from core/src/main/java/me/blackvein/quests/dependencies/BukkitDependencies.java rename to core/src/main/java/me/blackvein/quests/Dependencies.java index 02247e35f..912b437a9 100644 --- a/core/src/main/java/me/blackvein/quests/dependencies/BukkitDependencies.java +++ b/core/src/main/java/me/blackvein/quests/Dependencies.java @@ -10,7 +10,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package me.blackvein.quests.dependencies; +package me.blackvein.quests; import com.alessiodp.parties.api.Parties; import com.alessiodp.parties.api.interfaces.PartiesAPI; @@ -21,13 +21,11 @@ import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.player.UserManager; import com.herocraftonline.heroes.Heroes; import com.herocraftonline.heroes.characters.Hero; -import me.blackvein.quests.Dependencies; -import me.blackvein.quests.Quester; -import me.blackvein.quests.Quests; +import me.blackvein.quests.dependencies.IDependencies; import me.blackvein.quests.listeners.NpcListener; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.reflect.denizen.DenizenAPI; import me.blackvein.quests.reflect.worldguard.WorldGuardAPI; -import me.blackvein.quests.util.Lang; import me.clip.placeholderapi.PlaceholderAPIPlugin; import me.pikamug.unite.api.objects.PartyProvider; import net.citizensnpcs.api.CitizensPlugin; @@ -46,7 +44,7 @@ import java.util.Objects; import java.util.Set; import java.util.UUID; -public class BukkitDependencies implements Dependencies { +public class Dependencies implements IDependencies { private final Quests plugin; private static Economy economy = null; @@ -63,7 +61,7 @@ public class BukkitDependencies implements Dependencies { private static CitizensBooksAPI citizensBooks = null; private static PartiesAPI parties = null; - public BukkitDependencies(final Quests plugin) { + public Dependencies(final Quests plugin) { this.plugin = plugin; } @@ -73,7 +71,6 @@ public class BukkitDependencies implements Dependencies { plugin.getLogger().warning("Economy provider not found."); } } - placeholder.isEnabled(); return economy; } @@ -270,31 +267,8 @@ public class BukkitDependencies implements Dependencies { } return (partyProvider != null); } - - /** - * @deprecated Do not use. Will be removed in a future version. - **/ - public String getCurrency(final boolean plural) { - // TODO remove "money" from strings.yml - if (getVaultEconomy() == null) { - return Lang.get("money"); - } - if (plural) { - if (getVaultEconomy().currencyNamePlural().trim().isEmpty()) { - return Lang.get("money"); - } else { - return getVaultEconomy().currencyNamePlural(); - } - } else { - if (getVaultEconomy().currencyNameSingular().trim().isEmpty()) { - return Lang.get("money"); - } else { - return getVaultEconomy().currencyNameSingular(); - } - } - } - public boolean runDenizenScript(final String scriptName, final Quester quester) { + public boolean runDenizenScript(final String scriptName, final IQuester quester) { return plugin.getDenizenTrigger().runDenizenScript(scriptName, quester); } diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitQuest.java b/core/src/main/java/me/blackvein/quests/Quest.java similarity index 94% rename from core/src/main/java/me/blackvein/quests/quests/BukkitQuest.java rename to core/src/main/java/me/blackvein/quests/Quest.java index aa24b15e2..244368fdf 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitQuest.java +++ b/core/src/main/java/me/blackvein/quests/Quest.java @@ -10,7 +10,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package me.blackvein.quests.quests; +package me.blackvein.quests; import com.alessiodp.parties.api.interfaces.Party; import com.alessiodp.parties.api.interfaces.PartyPlayer; @@ -20,20 +20,10 @@ import com.codisimus.plugins.phatloots.loot.LootBundle; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.util.player.UserManager; import com.herocraftonline.heroes.characters.Hero; -import me.blackvein.quests.CustomRequirement; -import me.blackvein.quests.CustomReward; -import me.blackvein.quests.Dependencies; -import me.blackvein.quests.Options; -import me.blackvein.quests.Planner; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; -import me.blackvein.quests.Quests; -import me.blackvein.quests.Requirements; -import me.blackvein.quests.Rewards; -import me.blackvein.quests.Stage; +import me.blackvein.quests.actions.IAction; import me.blackvein.quests.actions.Action; -import me.blackvein.quests.actions.BukkitAction; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.conditions.ICondition; +import me.blackvein.quests.dependencies.IDependencies; import me.blackvein.quests.events.quest.QuestUpdateCompassEvent; import me.blackvein.quests.events.quester.QuesterPostChangeStageEvent; import me.blackvein.quests.events.quester.QuesterPostCompleteQuestEvent; @@ -41,6 +31,17 @@ import me.blackvein.quests.events.quester.QuesterPostFailQuestEvent; import me.blackvein.quests.events.quester.QuesterPreChangeStageEvent; import me.blackvein.quests.events.quester.QuesterPreCompleteQuestEvent; import me.blackvein.quests.events.quester.QuesterPreFailQuestEvent; +import me.blackvein.quests.player.IQuester; +import me.blackvein.quests.quests.BukkitOptions; +import me.blackvein.quests.quests.BukkitPlanner; +import me.blackvein.quests.quests.BukkitRequirements; +import me.blackvein.quests.quests.BukkitRewards; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Options; +import me.blackvein.quests.quests.Planner; +import me.blackvein.quests.quests.Requirements; +import me.blackvein.quests.quests.Rewards; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.util.ConfigUtil; import me.blackvein.quests.util.InventoryUtil; import me.blackvein.quests.util.ItemUtil; @@ -73,7 +74,7 @@ import java.util.Map.Entry; import java.util.UUID; import java.util.concurrent.CompletableFuture; -public class BukkitQuest implements Quest { +public class Quest implements IQuest { protected Quests plugin; protected String id; @@ -85,18 +86,18 @@ public class BukkitQuest implements Quest { protected UUID npcStart; protected Location blockStart; protected String regionStart = null; - protected BukkitAction initialAction; + protected Action initialAction; private final BukkitRequirements requirements = new BukkitRequirements(); private final BukkitPlanner planner = new BukkitPlanner(); private final BukkitRewards rewards = new BukkitRewards(); private final BukkitOptions options = new BukkitOptions(); - public BukkitQuest(final Quests plugin) { + public Quest(final Quests plugin) { this.plugin = plugin; } @Override - public int compareTo(final Quest quest) { + public int compareTo(final IQuest quest) { return id.compareTo(quest.getId()); } @@ -210,33 +211,33 @@ public class BukkitQuest implements Quest { } @Override - public Action getInitialAction() { + public IAction getInitialAction() { return initialAction; } @Override - public void setInitialAction(final Action initialAction) { - this.initialAction = (BukkitAction) initialAction; + public void setInitialAction(final IAction initialAction) { + this.initialAction = (Action) initialAction; } @Override public Requirements getRequirements() { - return (Requirements) requirements; + return requirements; } @Override public Planner getPlanner() { - return (Planner) planner; + return planner; } @Override public Rewards getRewards() { - return (Rewards) rewards; + return rewards; } @Override public Options getOptions() { - return (Options) options; + return options; } /** @@ -245,7 +246,7 @@ public class BukkitQuest implements Quest { * @param quester Player to force * @param allowSharedProgress Whether to distribute progress to fellow questers */ - public void nextStage(final Quester quester, final boolean allowSharedProgress) { + public void nextStage(final IQuester quester, final boolean allowSharedProgress) { final Stage currentStage = quester.getCurrentStage(this); if (currentStage == null) { plugin.getLogger().severe("Current stage was null for quester " + quester.getPlayer().getUniqueId()); @@ -281,8 +282,8 @@ public class BukkitQuest implements Quest { // Multiplayer if (allowSharedProgress && options.getShareProgressLevel() == 3) { - final List mq = quester.getMultiplayerQuesters(this); - for (final Quester qq : mq) { + final List mq = quester.getMultiplayerQuesters(this); + for (final IQuester qq : mq) { if (currentStage.equals(qq.getCurrentStage(this))) { nextStage(qq, true); } @@ -301,7 +302,7 @@ public class BukkitQuest implements Quest { * @param stage Stage number to specify * @throws IndexOutOfBoundsException if stage does not exist */ - public void setStage(final Quester quester, final int stage) throws IndexOutOfBoundsException { + public void setStage(final IQuester quester, final int stage) throws IndexOutOfBoundsException { final OfflinePlayer player = quester.getOfflinePlayer(); if (orderedStages.size() - 1 < stage) { final String msg = "Tried to set invalid stage number of " + stage + " for quest " + getName() + " on " @@ -311,7 +312,8 @@ public class BukkitQuest implements Quest { final Stage currentStage = quester.getCurrentStage(this); final Stage nextStage = getStage(stage); if (player.isOnline()) { - final QuesterPreChangeStageEvent preEvent = new QuesterPreChangeStageEvent(quester, this, currentStage, nextStage); + final QuesterPreChangeStageEvent preEvent + = new QuesterPreChangeStageEvent((Quester) quester, this, currentStage, nextStage); plugin.getServer().getPluginManager().callEvent(preEvent); if (preEvent.isCancelled()) { return; @@ -336,7 +338,7 @@ public class BukkitQuest implements Quest { if (stageStartMessage != null) { p.sendMessage(ConfigUtil.parseStringWithPossibleLineBreaks(stageStartMessage, this, p)); } - final Condition c = nextStage.getCondition(); + final ICondition c = nextStage.getCondition(); if (c != null && nextStage.getObjectiveOverrides().isEmpty()) { p.sendMessage(ChatColor.LIGHT_PURPLE + Lang.get("stageEditorConditions")); if (!c.getEntitiesWhileRiding().isEmpty()) { @@ -405,7 +407,8 @@ public class BukkitQuest implements Quest { } quester.updateJournal(); if (player.isOnline()) { - final QuesterPostChangeStageEvent postEvent = new QuesterPostChangeStageEvent(quester, this, currentStage, nextStage); + final QuesterPostChangeStageEvent postEvent + = new QuesterPostChangeStageEvent((Quester) quester, this, currentStage, nextStage); plugin.getServer().getPluginManager().callEvent(postEvent); } } @@ -419,7 +422,7 @@ public class BukkitQuest implements Quest { * @param stage The stage to process for targets * @return true if an attempt was made successfully */ - public boolean updateCompass(final Quester quester, final Stage stage) { + public boolean updateCompass(final IQuester quester, final Stage stage) { if (quester == null) { return false; } @@ -432,7 +435,7 @@ public class BukkitQuest implements Quest { if (!quester.getPlayer().hasPermission("quests.compass")) { return false; } - final Quest quest = this; + final IQuest quest = this; Bukkit.getScheduler().runTask(plugin, () -> { Location targetLocation = null; if (stage.getCitizensToInteract() != null && stage.getCitizensToInteract().size() > 0) { @@ -557,7 +560,7 @@ public class BukkitQuest implements Quest { * @param quester The quester to check * @return true if all Requirements have been met */ - public boolean testRequirements(final Quester quester) { + public boolean testRequirements(final IQuester quester) { return testRequirements(quester.getOfflinePlayer()); } @@ -570,7 +573,7 @@ public class BukkitQuest implements Quest { * @return true if all Requirements have been met */ public boolean testRequirements(final OfflinePlayer player) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); if (requirements.getMoney() != 0 && plugin.getDependencies().getVaultEconomy() != null) { if (plugin.getDependencies().getVaultEconomy().getBalance(player) < requirements.getMoney()) { return false; @@ -582,7 +585,7 @@ public class BukkitQuest implements Quest { if (!quester.getCompletedQuests().containsAll(requirements.getNeededQuests())) { return false; } - for (final BukkitQuest q : requirements.getBlockQuests()) { + for (final IQuest q : requirements.getBlockQuests()) { if (quester.getCompletedQuests().contains(q) || quester.getCurrentQuests().containsKey(q)) { return false; } @@ -647,7 +650,7 @@ public class BukkitQuest implements Quest { * * @param quester The quester finishing this quest */ - public void completeQuest(final Quester quester) { + public void completeQuest(final IQuester quester) { completeQuest(quester, true); } @@ -658,13 +661,13 @@ public class BukkitQuest implements Quest { * @param allowMultiplayer Allow multiplayer sharing */ @SuppressWarnings("deprecation") - public void completeQuest(final Quester quester, final boolean allowMultiplayer) { + public void completeQuest(final IQuester quester, final boolean allowMultiplayer) { final OfflinePlayer player = quester.getOfflinePlayer(); boolean cancelled = false; if (player.isOnline()) { if (Bukkit.isPrimaryThread()) { final QuesterPreCompleteQuestEvent preEvent - = new QuesterPreCompleteQuestEvent(quester, this, false); + = new QuesterPreCompleteQuestEvent((Quester) quester, this, false); plugin.getServer().getPluginManager().callEvent(preEvent); if (preEvent.isCancelled()) { return; @@ -672,7 +675,7 @@ public class BukkitQuest implements Quest { } else { final CompletableFuture future = CompletableFuture.supplyAsync(() -> { final QuesterPreCompleteQuestEvent preEvent - = new QuesterPreCompleteQuestEvent(quester, BukkitQuest.this, true); + = new QuesterPreCompleteQuestEvent((Quester) quester, Quest.this, true); plugin.getServer().getPluginManager().callEvent(preEvent); return preEvent.isCancelled(); }); @@ -689,7 +692,7 @@ public class BukkitQuest implements Quest { } quester.hardQuit(this); quester.getCompletedQuests().add(this); - for (final Map.Entry entry : quester.getTimers().entrySet()) { + for (final Map.Entry entry : quester.getTimers().entrySet()) { if (entry.getValue().getName().equals(getName())) { plugin.getServer().getScheduler().cancelTask(entry.getKey()); quester.getTimers().remove(entry.getKey()); @@ -711,7 +714,7 @@ public class BukkitQuest implements Quest { } // Issue rewards - final Dependencies depends = plugin.getDependencies(); + final IDependencies depends = plugin.getDependencies(); boolean issuedReward = false; if (rewards.getMoney() > 0 && depends.getVaultEconomy() != null) { depends.getVaultEconomy().depositPlayer(player, rewards.getMoney()); @@ -1098,14 +1101,14 @@ public class BukkitQuest implements Quest { quester.updateJournal(); quester.findCompassTarget(); if (player.isOnline()) { - final QuesterPostCompleteQuestEvent postEvent = new QuesterPostCompleteQuestEvent(quester, this); + final QuesterPostCompleteQuestEvent postEvent = new QuesterPostCompleteQuestEvent((Quester) quester, this); plugin.getServer().getPluginManager().callEvent(postEvent); } // Multiplayer if (allowMultiplayer && options.getShareProgressLevel() == 4) { - final List mq = quester.getMultiplayerQuesters(this); - for (final Quester qq : mq) { + final List mq = quester.getMultiplayerQuesters(this); + for (final IQuester qq : mq) { if (qq.getQuestData(this) != null) { completeQuest(qq, false); } @@ -1118,7 +1121,7 @@ public class BukkitQuest implements Quest { * * @param quester The quester to be ejected */ - public void failQuest(final Quester quester) { + public void failQuest(final IQuester quester) { failQuest(quester, false); } @@ -1126,10 +1129,10 @@ public class BukkitQuest implements Quest { * Force player to quit quest and inform them of their failure * * @param quester The quester to be ejected - * @param ignoreFailAction Whether to ignore quest fail Action + * @param ignoreFailAction Whether to ignore quest fail IAction */ - public void failQuest(final Quester quester, final boolean ignoreFailAction) { - final QuesterPreFailQuestEvent preEvent = new QuesterPreFailQuestEvent(quester, this); + public void failQuest(final IQuester quester, final boolean ignoreFailAction) { + final QuesterPreFailQuestEvent preEvent = new QuesterPreFailQuestEvent((Quester) quester, this); plugin.getServer().getPluginManager().callEvent(preEvent); if (preEvent.isCancelled()) { return; @@ -1149,19 +1152,19 @@ public class BukkitQuest implements Quest { if (player.isOnline()) { player.updateInventory(); } - final QuesterPostFailQuestEvent postEvent = new QuesterPostFailQuestEvent(quester, this); + final QuesterPostFailQuestEvent postEvent = new QuesterPostFailQuestEvent((Quester) quester, this); plugin.getServer().getPluginManager().callEvent(postEvent); } /** * Checks if quester is in WorldGuard region start * - * @deprecated Use {@link #isInRegionStart(Quester)} + * @deprecated Use {@link #isInRegionStart(IQuester)} * @param quester The quester to check * @return true if quester is in region */ @Deprecated - public boolean isInRegion(final Quester quester) { + public boolean isInRegion(final IQuester quester) { return isInRegionStart(quester); } @@ -1184,7 +1187,7 @@ public class BukkitQuest implements Quest { * @param quester The quester to check * @return true if quester is in region */ - public boolean isInRegionStart(final Quester quester) { + public boolean isInRegionStart(final IQuester quester) { return isInRegionStart(quester.getPlayer()); } diff --git a/core/src/main/java/me/blackvein/quests/player/BukkitQuester.java b/core/src/main/java/me/blackvein/quests/Quester.java similarity index 95% rename from core/src/main/java/me/blackvein/quests/player/BukkitQuester.java rename to core/src/main/java/me/blackvein/quests/Quester.java index a620dcdb1..ff7713ade 100644 --- a/core/src/main/java/me/blackvein/quests/player/BukkitQuester.java +++ b/core/src/main/java/me/blackvein/quests/Quester.java @@ -10,24 +10,15 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package me.blackvein.quests.player; +package me.blackvein.quests; import com.alessiodp.parties.api.interfaces.Party; import com.alessiodp.parties.api.interfaces.PartyPlayer; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.util.player.UserManager; -import me.blackvein.quests.CustomObjective; -import me.blackvein.quests.CustomRequirement; -import me.blackvein.quests.Dependencies; -import me.blackvein.quests.Objective; -import me.blackvein.quests.Planner; -import me.blackvein.quests.Quest; -import me.blackvein.quests.QuestData; -import me.blackvein.quests.Quester; -import me.blackvein.quests.Quests; -import me.blackvein.quests.Requirements; -import me.blackvein.quests.Stage; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.conditions.ICondition; +import me.blackvein.quests.dependencies.IDependencies; +import me.blackvein.quests.module.ICustomObjective; import me.blackvein.quests.enums.ObjectiveType; import me.blackvein.quests.events.quest.QuestTakeEvent; import me.blackvein.quests.events.quester.QuesterPostStartQuestEvent; @@ -36,7 +27,13 @@ import me.blackvein.quests.events.quester.QuesterPreOpenGUIEvent; import me.blackvein.quests.events.quester.QuesterPreStartQuestEvent; import me.blackvein.quests.events.quester.QuesterPreUpdateObjectiveEvent; import me.blackvein.quests.item.QuestJournal; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.quests.BukkitObjective; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Objective; +import me.blackvein.quests.quests.Planner; +import me.blackvein.quests.quests.Requirements; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.storage.Storage; import me.blackvein.quests.tasks.StageTimer; import me.blackvein.quests.util.ConfigUtil; @@ -89,7 +86,7 @@ import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collectors; -public class BukkitQuester implements Quester { +public class Quester implements IQuester { private final Quests plugin; private UUID id; @@ -98,13 +95,13 @@ public class BukkitQuester implements Quester { protected int questPoints = 0; private String compassTargetQuestId; private long lastNotifiedCondition = 0L; - protected ConcurrentHashMap timers = new ConcurrentHashMap<>(); - protected ConcurrentHashMap currentQuests = new ConcurrentHashMap() { + protected ConcurrentHashMap timers = new ConcurrentHashMap<>(); + protected ConcurrentHashMap currentQuests = new ConcurrentHashMap() { private static final long serialVersionUID = 6361484975823846780L; @Override - public Integer put(final @NotNull Quest key, final @NotNull Integer val) { + public Integer put(final @NotNull IQuest key, final @NotNull Integer val) { final Integer data = super.put(key, val); updateJournal(); return data; @@ -124,24 +121,24 @@ public class BukkitQuester implements Quester { } @Override - public void putAll(final Map m) { + public void putAll(final Map m) { super.putAll(m); updateJournal(); } }; - protected ConcurrentSkipListSet completedQuests = new ConcurrentSkipListSet() { + protected ConcurrentSkipListSet completedQuests = new ConcurrentSkipListSet() { private static final long serialVersionUID = -269110128568487000L; @Override - public boolean add(final Quest e) { + public boolean add(final IQuest e) { final boolean b = super.add(e); updateJournal(); return b; } @Override - public boolean addAll(final @NotNull Collection c) { + public boolean addAll(final @NotNull Collection c) { final boolean b = super.addAll(c); updateJournal(); return b; @@ -167,13 +164,13 @@ public class BukkitQuester implements Quester { return b; } }; - protected ConcurrentHashMap completedTimes = new ConcurrentHashMap<>(); - protected ConcurrentHashMap amountsCompleted = new ConcurrentHashMap() { + protected ConcurrentHashMap completedTimes = new ConcurrentHashMap<>(); + protected ConcurrentHashMap amountsCompleted = new ConcurrentHashMap() { private static final long serialVersionUID = 5475202358792520975L; @Override - public Integer put(final @NotNull Quest key, final @NotNull Integer val) { + public Integer put(final @NotNull IQuest key, final @NotNull Integer val) { final Integer data = super.put(key, val); updateJournal(); return data; @@ -193,17 +190,17 @@ public class BukkitQuester implements Quester { } @Override - public void putAll(final Map m) { + public void putAll(final Map m) { super.putAll(m); updateJournal(); } }; - protected ConcurrentHashMap questData = new ConcurrentHashMap() { + protected ConcurrentHashMap questData = new ConcurrentHashMap() { private static final long serialVersionUID = -4607112433003926066L; @Override - public QuestData put(final @NotNull Quest key, final @NotNull QuestData val) { + public QuestData put(final @NotNull IQuest key, final @NotNull QuestData val) { final QuestData data = super.put(key, val); updateJournal(); return data; @@ -223,21 +220,21 @@ public class BukkitQuester implements Quester { } @Override - public void putAll(final Map m) { + public void putAll(final Map m) { super.putAll(m); updateJournal(); } }; /** - * @deprecated Use {@link #BukkitQuester(Quests, UUID)} + * @deprecated Use {@link #Quester(Quests, UUID)} */ @Deprecated - public BukkitQuester(final Quests plugin) { + public Quester(final Quests plugin) { this.plugin = plugin; } - public BukkitQuester(final Quests plugin, final UUID uuid) { + public Quester(final Quests plugin, final UUID uuid) { this.plugin = plugin; this.id = uuid; if (getPlayer() != null) { @@ -248,7 +245,7 @@ public class BukkitQuester implements Quester { } @Override - public int compareTo(final Quester quester) { + public int compareTo(final IQuester quester) { return id.compareTo(quester.getUUID()); } @@ -298,7 +295,7 @@ public class BukkitQuester implements Quester { * @return Quest or null */ @Override - public Quest getCompassTarget() { + public IQuest getCompassTarget() { return compassTargetQuestId != null ? plugin.getQuestById(compassTargetQuestId) : null; } @@ -308,17 +305,17 @@ public class BukkitQuester implements Quester { * @param quest The target quest */ @Override - public void setCompassTarget(final Quest quest) { + public void setCompassTarget(final IQuest quest) { compassTargetQuestId = quest.getId(); } @Override - public ConcurrentHashMap getTimers() { + public ConcurrentHashMap getTimers() { return timers; } @Override - public void setTimers(final ConcurrentHashMap timers) { + public void setTimers(final ConcurrentHashMap timers) { this.timers = timers; } @@ -328,52 +325,52 @@ public class BukkitQuester implements Quester { } @Override - public ConcurrentHashMap getCurrentQuests() { + public ConcurrentHashMap getCurrentQuests() { return currentQuests; } @Override - public void setCurrentQuests(final ConcurrentHashMap currentQuests) { + public void setCurrentQuests(final ConcurrentHashMap currentQuests) { this.currentQuests = currentQuests; } @Override - public ConcurrentSkipListSet getCompletedQuests() { + public ConcurrentSkipListSet getCompletedQuests() { return completedQuests; } @Override - public void setCompletedQuests(final ConcurrentSkipListSet completedQuests) { + public void setCompletedQuests(final ConcurrentSkipListSet completedQuests) { this.completedQuests = completedQuests; } @Override - public ConcurrentHashMap getCompletedTimes() { + public ConcurrentHashMap getCompletedTimes() { return completedTimes; } @Override - public void setCompletedTimes(final ConcurrentHashMap completedTimes) { + public void setCompletedTimes(final ConcurrentHashMap completedTimes) { this.completedTimes = completedTimes; } @Override - public ConcurrentHashMap getAmountsCompleted() { + public ConcurrentHashMap getAmountsCompleted() { return amountsCompleted; } @Override - public void setAmountsCompleted(final ConcurrentHashMap amountsCompleted) { + public void setAmountsCompleted(final ConcurrentHashMap amountsCompleted) { this.amountsCompleted = amountsCompleted; } @Override - public ConcurrentHashMap getQuestData() { + public ConcurrentHashMap getQuestData() { return questData; } @Override - public void setQuestData(final ConcurrentHashMap questData) { + public void setQuestData(final ConcurrentHashMap questData) { this.questData = questData; } @@ -396,7 +393,7 @@ public class BukkitQuester implements Quester { } @Override - public Stage getCurrentStage(final Quest quest) { + public Stage getCurrentStage(final IQuest quest) { if (currentQuests.containsKey(quest)) { return quest.getStage(currentQuests.get(quest)); } @@ -404,8 +401,8 @@ public class BukkitQuester implements Quester { } @Override - public QuestData getQuestData(final Quest quest) { - for (final Quest q : questData.keySet()) { + public QuestData getQuestData(final IQuest quest) { + for (final IQuest q : questData.keySet()) { if (q.getId().equals(quest.getId())) { return questData.get(q); } @@ -473,7 +470,7 @@ public class BukkitQuester implements Quester { * @param ignoreRequirements Whether to ignore Requirements */ @SuppressWarnings("deprecation") - public void takeQuest(final Quest quest, final boolean ignoreRequirements) { + public void takeQuest(final IQuest quest, final boolean ignoreRequirements) { if (quest == null) { return; } @@ -622,7 +619,7 @@ public class BukkitQuester implements Quester { if (stageStartMessage != null) { p.sendMessage(ConfigUtil.parseStringWithPossibleLineBreaks(stageStartMessage, quest, getPlayer())); } - final Condition c = stage.getCondition(); + final ICondition c = stage.getCondition(); if (c != null && stage.getObjectiveOverrides().isEmpty()) { sendMessage(ChatColor.LIGHT_PURPLE + Lang.get("stageEditorConditions")); if (!c.getEntitiesWhileRiding().isEmpty()) { @@ -718,7 +715,7 @@ public class BukkitQuester implements Quester { * @param message Message to inform player, can be left null or empty * @since 3.8.6 */ - public void quitQuest(final Quest quest, final String message) { + public void quitQuest(final IQuest quest, final String message) { quitQuest(quest, new String[] {message}); } @@ -729,7 +726,7 @@ public class BukkitQuester implements Quester { * @param messages Messages to inform player, can be left null or empty * @since 3.8.6 */ - public void quitQuest(final Quest quest, final String[] messages) { + public void quitQuest(final IQuest quest, final String[] messages) { if (quest == null) { return; } @@ -746,7 +743,7 @@ public class BukkitQuester implements Quester { updateJournal(); } - public LinkedList getCurrentRequirements(final Quest quest, final boolean ignoreOverrides) { + public LinkedList getCurrentRequirements(final IQuest quest, final boolean ignoreOverrides) { if (quest == null) { return new LinkedList<>(); } @@ -787,7 +784,7 @@ public class BukkitQuester implements Quester { finishedRequirements.add(ChatColor.GRAY + "" + requirements.getQuestPoints() + " " + Lang.get("questPoints")); } } - for (final Quest q : requirements.getNeededQuests()) { + for (final IQuest q : requirements.getNeededQuests()) { if (q != null) { if (getCompletedQuests().contains(q)) { finishedRequirements.add(ChatColor.GREEN + q.getName()); @@ -796,7 +793,7 @@ public class BukkitQuester implements Quester { } } } - for (final Quest q : requirements.getBlockQuests()) { + for (final IQuest q : requirements.getBlockQuests()) { if (q != null) { if (completedQuests.contains(q) || currentQuests.containsKey(q)) { current.add(ChatColor.RED + quest.getName()); @@ -885,7 +882,7 @@ public class BukkitQuester implements Quester { * @return List of detailed objectives */ @SuppressWarnings("deprecation") - public LinkedList getCurrentObjectives(final Quest quest, final boolean ignoreOverrides) { + public LinkedList getCurrentObjectives(final IQuest quest, final boolean ignoreOverrides) { if (quest == null) { plugin.getLogger().severe("Quest was null when getting objectives for " + getLastKnownName()); return new LinkedList<>(); @@ -898,7 +895,7 @@ public class BukkitQuester implements Quester { //plugin.getLogger().warning("Current stage was null when getting objectives for " + quest.getName()); return new LinkedList<>(); } - final Dependencies depends = plugin.getDependencies(); + final IDependencies depends = plugin.getDependencies(); if (!ignoreOverrides && !getCurrentStage(quest).getObjectiveOverrides().isEmpty()) { final LinkedList objectives = new LinkedList<>(); for (final String s: getCurrentStage(quest).getObjectiveOverrides()) { @@ -1316,7 +1313,7 @@ public class BukkitQuester implements Quester { passIndex++; } int customIndex = 0; - for (final CustomObjective co : stage.getCustomObjectives()) { + for (final ICustomObjective co : stage.getCustomObjectives()) { int cleared = 0; if (data.customObjectiveCounts.size() > customIndex) { cleared = data.customObjectiveCounts.get(customIndex); @@ -1352,13 +1349,13 @@ public class BukkitQuester implements Quester { /** * Get current objectives for a quest, both finished and unfinished * - * @deprecated Use {@link #getCurrentObjectives(Quest, boolean)} + * @deprecated Use {@link #getCurrentObjectives(IQuest, boolean)} * @param quest The quest to get objectives of * @param ignoreOverrides Whether to ignore objective-overrides * @return List of detailed objectives */ @Deprecated - public LinkedList getObjectives(final Quest quest, final boolean ignoreOverrides) { + public LinkedList getObjectives(final IQuest quest, final boolean ignoreOverrides) { return getCurrentObjectives(quest, ignoreOverrides); } @@ -1376,7 +1373,7 @@ public class BukkitQuester implements Quester { * @return true if stage contains specified objective */ @Deprecated - public boolean containsObjective(final Quest quest, final String name) { + public boolean containsObjective(final IQuest quest, final String name) { if (quest == null || getCurrentStage(quest) == null) { return false; } @@ -1390,11 +1387,11 @@ public class BukkitQuester implements Quester { * @param name The exact name of custom objective to check for * @return true if stage contains specified objective */ - public boolean hasCustomObjective(final Quest quest, final String name) { + public boolean hasCustomObjective(final IQuest quest, final String name) { if (quest == null || getCurrentStage(quest) == null) { return false; } - for (final CustomObjective co : getCurrentStage(quest).getCustomObjectives()) { + for (final ICustomObjective co : getCurrentStage(quest).getCustomObjectives()) { if (co.getName().equals(name)) { return true; } @@ -1409,7 +1406,7 @@ public class BukkitQuester implements Quester { * @param itemStack The block being broken */ @SuppressWarnings("deprecation") - public void breakBlock(final Quest quest, final ItemStack itemStack) { + public void breakBlock(final IQuest quest, final ItemStack itemStack) { itemStack.setAmount(0); ItemStack broken = itemStack; ItemStack toBreak = itemStack; @@ -1492,7 +1489,7 @@ public class BukkitQuester implements Quester { // Multiplayer final ItemStack finalBroken = broken; final ItemStack finalToBreak = toBreak; - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).blocksBroken.set(getQuestData(quest).blocksBroken .indexOf(finalBroken), newBroken); q.finishObjective(quest, new BukkitObjective(type, itemStack, finalToBreak), null, null, null, null, null, @@ -1515,7 +1512,7 @@ public class BukkitQuester implements Quester { * @param itemStack The block being damaged */ @SuppressWarnings("deprecation") - public void damageBlock(final Quest quest, final ItemStack itemStack) { + public void damageBlock(final IQuest quest, final ItemStack itemStack) { itemStack.setAmount(0); ItemStack damaged = itemStack; ItemStack toDamage = itemStack; @@ -1579,7 +1576,7 @@ public class BukkitQuester implements Quester { // Multiplayer final ItemStack finalDamaged = damaged; final ItemStack finalToDamage = toDamage; - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).blocksDamaged.set(getQuestData(quest).blocksDamaged .indexOf(finalDamaged), newDamaged); q.finishObjective(quest, new BukkitObjective(type, itemStack, finalToDamage), null, null, null, null, null, @@ -1602,7 +1599,7 @@ public class BukkitQuester implements Quester { * @param itemStack The block being placed */ @SuppressWarnings("deprecation") - public void placeBlock(final Quest quest, final ItemStack itemStack) { + public void placeBlock(final IQuest quest, final ItemStack itemStack) { itemStack.setAmount(0); ItemStack placed = itemStack; ItemStack toPlace = itemStack; @@ -1665,7 +1662,7 @@ public class BukkitQuester implements Quester { // Multiplayer final ItemStack finalPlaced = placed; final ItemStack finalToPlace = toPlace; - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).blocksPlaced.set(getQuestData(quest).blocksPlaced .indexOf(finalPlaced), newPlaced); q.finishObjective(quest, new BukkitObjective(type, itemStack, finalToPlace), null, null, null, null, null, @@ -1688,7 +1685,7 @@ public class BukkitQuester implements Quester { * @param itemStack The block being used */ @SuppressWarnings("deprecation") - public void useBlock(final Quest quest, final ItemStack itemStack) { + public void useBlock(final IQuest quest, final ItemStack itemStack) { itemStack.setAmount(0); ItemStack used = itemStack; ItemStack toUse = itemStack; @@ -1751,7 +1748,7 @@ public class BukkitQuester implements Quester { // Multiplayer final ItemStack finalUsed = used; final ItemStack finalToUse = toUse; - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).blocksUsed.set(getQuestData(quest).blocksUsed .indexOf(finalUsed), newUsed); q.finishObjective(quest, new BukkitObjective(type, itemStack, finalToUse), null, null, null, null, null, null, @@ -1774,7 +1771,7 @@ public class BukkitQuester implements Quester { * @param itemStack The block being cut */ @SuppressWarnings("deprecation") - public void cutBlock(final Quest quest, final ItemStack itemStack) { + public void cutBlock(final IQuest quest, final ItemStack itemStack) { itemStack.setAmount(0); ItemStack cut = itemStack; ItemStack toCut = itemStack; @@ -1837,7 +1834,7 @@ public class BukkitQuester implements Quester { // Multiplayer final ItemStack finalCut = cut; final ItemStack finalToCut = toCut; - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).blocksCut.set(getQuestData(quest).blocksCut.indexOf(finalCut), newCut); q.finishObjective(quest, new BukkitObjective(type, itemStack, finalToCut), null, null, null, null, null, null, null); @@ -1858,7 +1855,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the item is being crafted * @param itemStack The item being crafted */ - public void craftItem(final Quest quest, final ItemStack itemStack) { + public void craftItem(final IQuest quest, final ItemStack itemStack) { int currentIndex = -1; final LinkedList matches = new LinkedList<>(); for (final ItemStack is : getQuestData(quest).itemsCrafted) { @@ -1891,7 +1888,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsCrafted.set(items.indexOf(found), found); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -1916,7 +1913,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the item is being smelted * @param itemStack The item being smelted */ - public void smeltItem(final Quest quest, final ItemStack itemStack) { + public void smeltItem(final IQuest quest, final ItemStack itemStack) { int currentIndex = -1; final LinkedList matches = new LinkedList<>(); for (final ItemStack is : getQuestData(quest).itemsSmelted) { @@ -1949,7 +1946,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsSmelted.set(items.indexOf(found), found); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -1974,7 +1971,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the item is being enchanted * @param itemStack The book being enchanted */ - public void enchantBook(final Quest quest, final ItemStack itemStack, + public void enchantBook(final IQuest quest, final ItemStack itemStack, final Map enchantsToAdd) { int currentIndex = -1; final LinkedList matches = new LinkedList<>(); @@ -2010,7 +2007,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsEnchanted.set(items.indexOf(found), found); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -2035,7 +2032,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the item is being enchanted * @param itemStack The item being enchanted */ - public void enchantItem(final Quest quest, final ItemStack itemStack) { + public void enchantItem(final IQuest quest, final ItemStack itemStack) { int currentIndex = -1; final LinkedList matches = new LinkedList<>(); if (!itemStack.getType().equals(Material.BOOK)) { @@ -2076,7 +2073,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsEnchanted.set(items.indexOf(found), found); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -2101,7 +2098,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the item is being brewed * @param itemStack The item being brewed */ - public void brewItem(final Quest quest, final ItemStack itemStack) { + public void brewItem(final IQuest quest, final ItemStack itemStack) { int currentIndex = -1; final LinkedList matches = new LinkedList<>(); for (final ItemStack is : getQuestData(quest).itemsBrewed) { @@ -2134,7 +2131,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsBrewed.set(items.indexOf(found), found); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -2159,7 +2156,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the item is being consumed * @param itemStack The item being consumed */ - public void consumeItem(final Quest quest, final ItemStack itemStack) { + public void consumeItem(final IQuest quest, final ItemStack itemStack) { int currentIndex = -1; final LinkedList matches = new LinkedList<>(); for (final ItemStack is : getQuestData(quest).itemsConsumed) { @@ -2192,7 +2189,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsConsumed.set(items.indexOf(found), found); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -2218,7 +2215,7 @@ public class BukkitQuester implements Quester { * @param npc The NPC being delivered to * @param itemStack The item being delivered */ - public void deliverToNPC(final Quest quest, final NPC npc, final ItemStack itemStack) { + public void deliverToNPC(final IQuest quest, final NPC npc, final ItemStack itemStack) { if (npc == null) { return; } @@ -2273,7 +2270,7 @@ public class BukkitQuester implements Quester { null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).itemsDelivered.set(items.indexOf(found), found.clone()); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(m, 1), found), null, null, null, null, null, null, null); @@ -2304,7 +2301,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the NPC is being interacted with * @param npc The NPC being interacted with */ - public void interactWithNPC(final Quest quest, final NPC npc) { + public void interactWithNPC(final IQuest quest, final NPC npc) { if (!getCurrentStage(quest).getCitizensToInteract().contains(npc.getId())) { return; } @@ -2323,7 +2320,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, 1)), null, null, npc, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).citizensInteracted.set(index, true); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, 1)), null, null, npc, null, null, null, null); @@ -2342,7 +2339,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the NPC is being killed * @param npc The NPC being killed */ - public void killNPC(final Quest quest, final NPC npc) { + public void killNPC(final IQuest quest, final NPC npc) { if (!getCurrentStage(quest).getCitizensToKill().contains(npc.getId())) { return; } @@ -2364,7 +2361,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, npcsToKill)), null, null, npc, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).citizensNumKilled.set(index, getQuestData(quest).citizensNumKilled .get(index)); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), @@ -2384,7 +2381,7 @@ public class BukkitQuester implements Quester { * * @param quest The quest for which the fish is being caught */ - public void milkCow(final Quest quest) { + public void milkCow(final IQuest quest) { final QuestData questData = getQuestData(quest); if (questData == null) { return; @@ -2414,7 +2411,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, cowsToMilk)), null, null, null, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).setCowsMilked(cowsToMilk); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, cowsToMilk)), null, null, null, null, null, null, null); @@ -2433,7 +2430,7 @@ public class BukkitQuester implements Quester { * * @param quest The quest for which the fish is being caught */ - public void catchFish(final Quest quest) { + public void catchFish(final IQuest quest) { final QuestData questData = getQuestData(quest); if (questData == null) { return; @@ -2463,7 +2460,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, fishToCatch)), null, null, null, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).setFishCaught(fishToCatch); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, fishToCatch)), null, null, null, null, null, null, null); @@ -2484,7 +2481,7 @@ public class BukkitQuester implements Quester { * @param killedLocation The optional location to kill at * @param entityType The mob to be killed */ - public void killMob(final Quest quest, final Location killedLocation, final EntityType entityType) { + public void killMob(final IQuest quest, final Location killedLocation, final EntityType entityType) { final QuestData questData = getQuestData(quest); if (entityType == null) { return; @@ -2534,7 +2531,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, mobsToKill)), entityType, null, null, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, currentStage, (final Quester q) -> { + dispatchMultiplayerObjectives(quest, currentStage, (final IQuester q) -> { q.getQuestData(quest).mobNumKilled.set(index, newMobsKilled); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, mobsToKill)), entityType, null, null, null, null, null, null); @@ -2554,7 +2551,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the player is being killed * @param player The player to be killed */ - public void killPlayer(final Quest quest, final Player player) { + public void killPlayer(final IQuest quest, final Player player) { final QuestData questData = getQuestData(quest); if (questData == null) { return; @@ -2583,7 +2580,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, playersToKill)), null, null, null, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).setPlayersKilled(getQuestData(quest).getPlayersKilled()); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, playersToKill)), null, null, null, null, null, null, null); @@ -2603,7 +2600,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the location is being reached * @param location The location being reached */ - public void reachLocation(final Quest quest, final Location location) { + public void reachLocation(final IQuest quest, final Location location) { if (getQuestData(quest) == null || getCurrentStage(quest) == null || getCurrentStage(quest).getLocationsToReach() == null || getQuestData(quest).locationsReached == null) { @@ -2646,7 +2643,7 @@ public class BukkitQuester implements Quester { // Multiplayer final int finalIndex = index; - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).locationsReached.set(finalIndex, true); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, 1)), null, null, null, toReach, null, @@ -2682,7 +2679,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the mob is being tamed * @param entityType The type of mob being tamed */ - public void tameMob(final Quest quest, final EntityType entityType) { + public void tameMob(final IQuest quest, final EntityType entityType) { final QuestData questData = getQuestData(quest); if (entityType == null) { return; @@ -2713,7 +2710,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, mobsToTame)), entityType, null, null, null, null, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).mobsTamed.set(index, newMobsToTame); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, mobsToTame)), entityType, null, null, null, null, null, null); @@ -2733,7 +2730,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the sheep is being sheared * @param color The wool color of the sheep being sheared */ - public void shearSheep(final Quest quest, final DyeColor color) { + public void shearSheep(final IQuest quest, final DyeColor color) { final QuestData questData = getQuestData(quest); if (color == null) { return; @@ -2764,7 +2761,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, sheepToShear)), null, null, null, null, color, null, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).sheepSheared.set(index, newSheepSheared); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, sheepToShear)), null, null, null, null, color, null, null); @@ -2784,7 +2781,7 @@ public class BukkitQuester implements Quester { * @param quest The quest for which the password is being entered * @param evt The event during which the password was entered */ - public void sayPassword(final Quest quest, final AsyncPlayerChatEvent evt) { + public void sayPassword(final IQuest quest, final AsyncPlayerChatEvent evt) { final ObjectiveType type = ObjectiveType.PASSWORD; plugin.getServer().getScheduler().runTask(plugin, () -> { final QuesterPreUpdateObjectiveEvent preEvent = new QuesterPreUpdateObjectiveEvent(this, quest, @@ -2803,7 +2800,7 @@ public class BukkitQuester implements Quester { new ItemStack(Material.AIR, 1)), null, null, null, null, null, display, null); // Multiplayer - dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final Quester q) -> { + dispatchMultiplayerObjectives(quest, getCurrentStage(quest), (final IQuester q) -> { q.getQuestData(quest).passwordsSaid.set(finalIndex, true); q.finishObjective(quest, new BukkitObjective(type, new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, 1)), null, null, null, null, null, display, null); @@ -2841,12 +2838,12 @@ public class BukkitQuester implements Quester { * @param pass * Password, if any * @param co - * Custom objective, if any. See {@link CustomObjective} + * Custom objective, if any. See {@link ICustomObjective} */ @SuppressWarnings("deprecation") - public void finishObjective(final Quest quest, final Objective objective, final EntityType mob, + public void finishObjective(final IQuest quest, final Objective objective, final EntityType mob, final String extra, final NPC npc, final Location location, final DyeColor color, - final String pass, final CustomObjective co) { + final String pass, final ICustomObjective co) { if (objective == null) { return; } @@ -3217,8 +3214,8 @@ public class BukkitQuester implements Quester { /** * Complete quest objective * - * @deprecated Use {@link #finishObjective(Quest, Objective, EntityType, - * String, NPC, Location, DyeColor, String, CustomObjective)} + * @deprecated Use {@link #finishObjective(IQuest, Objective, EntityType, + * String, NPC, Location, DyeColor, String, ICustomObjective)} * * @param quest * Quest containing the objective @@ -3246,10 +3243,10 @@ public class BukkitQuester implements Quester { * See CustomObjective class */ @Deprecated - public void finishObjective(final Quest quest, final String objective, final ItemStack increment, + public void finishObjective(final IQuest quest, final String objective, final ItemStack increment, final ItemStack goal, final Enchantment enchantment, final EntityType mob, final String extra, final NPC npc, final Location location, final DyeColor color, - final String pass, final CustomObjective co) { + final String pass, final ICustomObjective co) { if (objective == null) { return; } @@ -3268,7 +3265,7 @@ public class BukkitQuester implements Quester { * @param quest The quest with the current stage being checked * @return true if all stage objectives are marked complete */ - public boolean testComplete(final Quest quest) { + public boolean testComplete(final IQuest quest) { for (final String s : getCurrentObjectives(quest, true)) { if (s.startsWith(ChatColor.GREEN.toString())) { return false; @@ -3284,7 +3281,7 @@ public class BukkitQuester implements Quester { * @param stage Where first stage is '0' */ @SuppressWarnings("deprecation") - public void addEmptiesFor(final Quest quest, final int stage) { + public void addEmptiesFor(final IQuest quest, final int stage) { final QuestData data = new QuestData(this); data.setDoJournalUpdate(false); if (quest == null) { @@ -3432,7 +3429,7 @@ public class BukkitQuester implements Quester { } } if (!quest.getStage(stage).getCustomObjectives().isEmpty()) { - for (final CustomObjective ignored : quest.getStage(stage).getCustomObjectives()) { + for (final ICustomObjective ignored : quest.getStage(stage).getCustomObjectives()) { data.customObjectiveCounts.add(0); } } @@ -3462,7 +3459,7 @@ public class BukkitQuester implements Quester { * @param quest The quest to get the last completed time of * @return Difference between now and then in milliseconds */ - public long getCompletionDifference(final Quest quest) { + public long getCompletionDifference(final IQuest quest) { final long currentTime = System.currentTimeMillis(); final long lastTime; if (!completedTimes.containsKey(quest)) { @@ -3480,7 +3477,7 @@ public class BukkitQuester implements Quester { * @param quest The quest to calculate the cooldown for * @return Length of time in milliseconds */ - public long getRemainingCooldown(final Quest quest) { + public long getRemainingCooldown(final IQuest quest) { return quest.getPlanner().getCooldown() - getCompletionDifference(quest); } @@ -3489,7 +3486,7 @@ public class BukkitQuester implements Quester { if (!currentQuests.isEmpty()) { final ArrayList questIds = new ArrayList<>(); final ArrayList questStages = new ArrayList<>(); - for (final Quest quest : currentQuests.keySet()) { + for (final IQuest quest : currentQuests.keySet()) { questIds.add(quest.getId()); questStages.add(currentQuests.get(quest)); } @@ -3497,7 +3494,7 @@ public class BukkitQuester implements Quester { data.set("currentStages", questStages); data.set("quest-points", questPoints); final ConfigurationSection dataSec = data.createSection("questData"); - for (final Quest quest : currentQuests.keySet()) { + for (final IQuest quest : currentQuests.keySet()) { if (quest.getName() == null || quest.getName().isEmpty()) { plugin.getLogger().severe("Quest name was null or empty while loading data"); return null; @@ -3633,7 +3630,7 @@ public class BukkitQuester implements Quester { data.set("completed-Quests", "none"); } else { final List questIds = new LinkedList<>(); - for (final Quest quest : completedQuests) { + for (final IQuest quest : completedQuests) { questIds.add(quest.getId()); } data.set("completed-Quests", questIds); @@ -3641,7 +3638,7 @@ public class BukkitQuester implements Quester { if (!completedTimes.isEmpty()) { final List questIds = new LinkedList<>(); final List questTimes = new LinkedList<>(); - for (final Entry entry : completedTimes.entrySet()) { + for (final Entry entry : completedTimes.entrySet()) { questIds.add(entry.getKey().getId()); questTimes.add(entry.getValue()); } @@ -3651,7 +3648,7 @@ public class BukkitQuester implements Quester { if (!amountsCompleted.isEmpty()) { final List questIds = new LinkedList<>(); final List questAmounts = new LinkedList<>(); - for (final Entry entry : amountsCompleted.entrySet()) { + for (final Entry entry : amountsCompleted.entrySet()) { questIds.add(entry.getKey().getId()); questAmounts.add(entry.getValue()); } @@ -3700,7 +3697,7 @@ public class BukkitQuester implements Quester { * Initiate the stage timer * @param quest The quest of which the timer is for */ - public void startStageTimer(final Quest quest) { + public void startStageTimer(final IQuest quest) { if (getQuestData(quest).getDelayTimeLeft() > -1) { plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new StageTimer(plugin, this, quest), (long) (getQuestData(quest).getDelayTimeLeft() * 0.02)); @@ -3722,7 +3719,7 @@ public class BukkitQuester implements Quester { * Pause the stage timer. Useful when a player quits * @param quest The quest of which the timer is for */ - public void stopStageTimer(final Quest quest) { + public void stopStageTimer(final IQuest quest) { if (getQuestData(quest).getDelayTimeLeft() > -1) { getQuestData(quest).setDelayTimeLeft(getQuestData(quest).getDelayTimeLeft() - (System.currentTimeMillis() - getQuestData(quest).getDelayStartTime())); @@ -3737,7 +3734,7 @@ public class BukkitQuester implements Quester { * @param quest The quest of which the timer is for * @return Remaining time in milliseconds */ - public long getStageTime(final Quest quest) { + public long getStageTime(final IQuest quest) { if (getQuestData(quest).getDelayTimeLeft() > -1) { return getQuestData(quest).getDelayTimeLeft() - (System.currentTimeMillis() - getQuestData(quest).getDelayStartTime()); @@ -3752,10 +3749,10 @@ public class BukkitQuester implements Quester { * * @param quest The quest to check */ - public void checkQuest(final Quest quest) { + public void checkQuest(final IQuest quest) { if (quest != null) { boolean exists = false; - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { if (q.getId().equalsIgnoreCase(quest.getId())) { final Stage stage = getCurrentStage(quest); if (stage != null) { @@ -3785,11 +3782,15 @@ public class BukkitQuester implements Quester { * @param npc The NPC from which the GUI is bound * @param quests List of quests to use for displaying items */ - public void showGUIDisplay(final NPC npc, final LinkedList quests) { + public void showGUIDisplay(final NPC npc, final LinkedList quests) { if (npc == null || quests == null) { return; } - final QuesterPreOpenGUIEvent preEvent = new QuesterPreOpenGUIEvent(this, npc, quests); + final LinkedList qs = new LinkedList<>(); + for (IQuest q : quests) { + qs.add((Quest) q); + } + final QuesterPreOpenGUIEvent preEvent = new QuesterPreOpenGUIEvent(this, npc, qs); plugin.getServer().getPluginManager().callEvent(preEvent); if (preEvent.isCancelled()) { return; @@ -3798,7 +3799,7 @@ public class BukkitQuester implements Quester { final Inventory inv = plugin.getServer().createInventory(player, ((quests.size() / 9) + 1) * 9, Lang.get(player, "quests") + " | " + npc.getName()); int i = 0; - for (final Quest quest : quests) { + for (final IQuest quest : quests) { if (quest.getGUIDisplay() != null) { if (i > 53) { // Protocol-enforced size limit has been exceeded @@ -3839,16 +3840,16 @@ public class BukkitQuester implements Quester { /** * Force Quester to quit the specified quest (canceling any timers), then update Quest Journal

* - * Does not save changes to disk. Consider {@link #quitQuest(Quest, String)} or {@link #quitQuest(Quest, String[])} + * Does not save changes to disk. Consider {@link #quitQuest(IQuest, String)} or {@link #quitQuest(IQuest, String[])} * * @param quest The quest to quit */ - public void hardQuit(final Quest quest) { + public void hardQuit(final IQuest quest) { try { currentQuests.remove(quest); questData.remove(quest); if (!timers.isEmpty()) { - for (final Map.Entry entry : timers.entrySet()) { + for (final Map.Entry entry : timers.entrySet()) { if (entry.getValue().getName().equals(quest.getName())) { plugin.getServer().getScheduler().cancelTask(entry.getKey()); timers.remove(entry.getKey()); @@ -3867,7 +3868,7 @@ public class BukkitQuester implements Quester { * * @param quest The quest to remove */ - public void hardRemove(final Quest quest) { + public void hardRemove(final IQuest quest) { try { completedQuests.remove(quest); } catch (final Exception ex) { @@ -3898,7 +3899,7 @@ public class BukkitQuester implements Quester { * @param key The quest to set stage of * @param val The stage number to set */ - public void hardStagePut(final Quest key, final Integer val) { + public void hardStagePut(final IQuest key, final Integer val) { try { currentQuests.put(key, val); } catch (final Exception ex) { @@ -3914,7 +3915,7 @@ public class BukkitQuester implements Quester { * @param key The quest to set stage of * @param val The data to set */ - public void hardDataPut(final Quest key, final QuestData val) { + public void hardDataPut(final IQuest key, final QuestData val) { try { questData.put(key, val); } catch (final Exception ex) { @@ -3960,7 +3961,7 @@ public class BukkitQuester implements Quester { if (!canUseCompass()) { return; } - for (final Quest quest : currentQuests.keySet()) { + for (final IQuest quest : currentQuests.keySet()) { final Stage stage = getCurrentStage(quest); if (stage != null && quest.updateCompass(this, stage)) { break; @@ -3979,7 +3980,7 @@ public class BukkitQuester implements Quester { } Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { final LinkedList list = currentQuests.keySet().stream() - .sorted(Comparator.comparing(Quest::getName)).map(Quest::getId) + .sorted(Comparator.comparing(IQuest::getName)).map(IQuest::getId) .collect(Collectors.toCollection(LinkedList::new)); int index = 0; if (compassTargetQuestId != null) { @@ -3992,11 +3993,11 @@ public class BukkitQuester implements Quester { } } if (list.size() > 0) { - final Quest quest = plugin.getQuestById(list.get(index)); + final IQuest quest = plugin.getQuestById(list.get(index)); compassTargetQuestId = quest.getId(); final Stage stage = getCurrentStage(quest); if (stage != null) { - quest.updateCompass(BukkitQuester.this, stage); + quest.updateCompass(Quester.this, stage); if (notify) { sendMessage(ChatColor.YELLOW + Lang.get(getPlayer(), "compassSet") .replace("", ChatColor.GOLD + quest.getName() + ChatColor.YELLOW)); @@ -4034,17 +4035,17 @@ public class BukkitQuester implements Quester { * @param type The type of objective to progress * @param fun The function to execute, the event call */ - public Set dispatchMultiplayerEverything(final Quest quest, final ObjectiveType type, - final BiFunction fun) { + public Set dispatchMultiplayerEverything(final IQuest quest, final ObjectiveType type, + final BiFunction fun) { final Set appliedQuestIDs = new HashSet<>(); if (quest != null) { try { if (quest.getOptions().getShareProgressLevel() == 1) { - final List mq = getMultiplayerQuesters(quest); + final List mq = getMultiplayerQuesters(quest); if (mq == null) { return appliedQuestIDs; } - for (final Quester q : mq) { + for (final IQuester q : mq) { if (q == null) { continue; } @@ -4080,15 +4081,15 @@ public class BukkitQuester implements Quester { * @param currentStage The current stage of the quest * @param fun The function to execute, the event call */ - public Set dispatchMultiplayerObjectives(final Quest quest, final Stage currentStage, - final Function fun) { + public Set dispatchMultiplayerObjectives(final IQuest quest, final Stage currentStage, + final Function fun) { final Set appliedQuestIDs = new HashSet<>(); if (quest.getOptions().getShareProgressLevel() == 2) { - final List mq = getMultiplayerQuesters(quest); + final List mq = getMultiplayerQuesters(quest); if (mq == null) { return appliedQuestIDs; } - for (final Quester q : mq) { + for (final IQuester q : mq) { if (q == null) { continue; } @@ -4108,11 +4109,11 @@ public class BukkitQuester implements Quester { * @param quest The quest which uses a linked plugin, i.e. Parties or DungeonsXL * @return Potentially empty list of Questers or null for invalid quest */ - public List getMultiplayerQuesters(final Quest quest) { + public List getMultiplayerQuesters(final IQuest quest) { if (quest == null) { return null; } - final List mq = new LinkedList<>(); + final List mq = new LinkedList<>(); if (plugin.getDependencies().getPartyProvider() != null) { final PartyProvider partyProvider = plugin.getDependencies().getPartyProvider(); if (partyProvider != null) { @@ -4201,7 +4202,7 @@ public class BukkitQuester implements Quester { * @param giveReason Whether to inform Quester of unavailability * @return true if successful */ - public boolean offerQuest(final Quest quest, final boolean giveReason) { + public boolean offerQuest(final IQuest quest, final boolean giveReason) { if (quest == null) { return false; } @@ -4240,7 +4241,7 @@ public class BukkitQuester implements Quester { * @param giveReason Whether to inform Quester of unavailability * @return true if available */ - public boolean canAcceptOffer(final Quest quest, final boolean giveReason) { + public boolean canAcceptOffer(final IQuest quest, final boolean giveReason) { if (quest == null) { return false; } @@ -4308,7 +4309,7 @@ public class BukkitQuester implements Quester { return true; } - public boolean meetsCondition(final Quest quest, final boolean giveReason) { + public boolean meetsCondition(final IQuest quest, final boolean giveReason) { final Stage stage = getCurrentStage(quest); if (stage != null && stage.getCondition() != null && !stage.getCondition().check(this, quest)) { if (stage.getCondition().isFailQuest()) { diff --git a/core/src/main/java/me/blackvein/quests/Quests.java b/core/src/main/java/me/blackvein/quests/Quests.java index 7cfbfb2f0..730b91987 100644 --- a/core/src/main/java/me/blackvein/quests/Quests.java +++ b/core/src/main/java/me/blackvein/quests/Quests.java @@ -15,19 +15,19 @@ package me.blackvein.quests; import com.codisimus.plugins.phatloots.PhatLootsAPI; import com.gmail.nossr50.datatypes.skills.SkillType; import com.herocraftonline.heroes.characters.classes.HeroClass; -import me.blackvein.quests.actions.Action; +import me.blackvein.quests.actions.IAction; import me.blackvein.quests.actions.ActionFactory; -import me.blackvein.quests.actions.BukkitAction; +import me.blackvein.quests.actions.Action; import me.blackvein.quests.actions.BukkitActionFactory; -import me.blackvein.quests.conditions.BukkitCondition; -import me.blackvein.quests.conditions.BukkitConditionFactory; import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.conditions.BukkitConditionFactory; +import me.blackvein.quests.conditions.ICondition; import me.blackvein.quests.conditions.ConditionFactory; -import me.blackvein.quests.config.BukkitSettings; +import me.blackvein.quests.config.ISettings; import me.blackvein.quests.convo.misc.MiscStringPrompt; import me.blackvein.quests.convo.misc.NpcOfferQuestPrompt; -import me.blackvein.quests.dependencies.BukkitDependencies; import me.blackvein.quests.dependencies.DenizenTrigger; +import me.blackvein.quests.dependencies.IDependencies; import me.blackvein.quests.entity.BukkitQuestMob; import me.blackvein.quests.entity.QuestMob; import me.blackvein.quests.events.misc.MiscPostQuestAcceptEvent; @@ -44,11 +44,17 @@ import me.blackvein.quests.listeners.NpcListener; import me.blackvein.quests.listeners.PartiesListener; import me.blackvein.quests.listeners.PlayerListener; import me.blackvein.quests.listeners.UniteListener; -import me.blackvein.quests.module.BukkitCustomObjective; -import me.blackvein.quests.player.BukkitQuester; -import me.blackvein.quests.quests.BukkitQuest; +import me.blackvein.quests.module.ICustomObjective; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.quests.BukkitQuestFactory; import me.blackvein.quests.quests.BukkitStage; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Options; +import me.blackvein.quests.quests.Planner; +import me.blackvein.quests.quests.QuestFactory; +import me.blackvein.quests.quests.Requirements; +import me.blackvein.quests.quests.Rewards; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.statistics.Metrics; import me.blackvein.quests.storage.Storage; import me.blackvein.quests.storage.StorageFactory; @@ -134,15 +140,15 @@ public class Quests extends JavaPlugin implements QuestsAPI { private boolean loading = true; private String bukkitVersion = "0"; - private Dependencies depends; - private Settings settings; - private final List customObjectives = new LinkedList<>(); + private IDependencies depends; + private ISettings settings; + private final List customObjectives = new LinkedList<>(); private final List customRequirements = new LinkedList<>(); private final List customRewards = new LinkedList<>(); - private Collection questers = new ConcurrentSkipListSet<>(); - private final Collection quests = new ConcurrentSkipListSet<>(); - private Collection actions = new ConcurrentSkipListSet<>(); - private Collection conditions = new ConcurrentSkipListSet<>(); + private Collection questers = new ConcurrentSkipListSet<>(); + private final Collection quests = new ConcurrentSkipListSet<>(); + private Collection actions = new ConcurrentSkipListSet<>(); + private Collection conditions = new ConcurrentSkipListSet<>(); private LinkedList questNpcIds = new LinkedList<>(); private CommandExecutor cmdExecutor; private ConversationFactory conversationFactory; @@ -169,7 +175,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { // 1 - Initialize variables bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0]; - settings = new BukkitSettings(this); + settings = new Settings(this); try { Class.forName("me.blackvein.quests.libs.localelib.LocaleManager"); localeManager = new LocaleManager(); @@ -188,7 +194,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { questFactory = new BukkitQuestFactory(this); actionFactory = new BukkitActionFactory(this); conditionFactory = new BukkitConditionFactory(this); - depends = new BukkitDependencies(this); + depends = new Dependencies(this); trigger = new DenizenTrigger(this); final Metrics metrics = new Metrics(this); metrics.addCustomChart(new Metrics.SimplePie("language", Lang::getISO)); @@ -272,7 +278,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { public void onDisable() { getLogger().info("Saving Quester data..."); for (final Player p : getServer().getOnlinePlayers()) { - final Quester quester = getQuester(p.getUniqueId()); + final IQuester quester = getQuester(p.getUniqueId()); quester.saveData(); } Bukkit.getScheduler().cancelTasks(this); @@ -291,20 +297,20 @@ public class Quests extends JavaPlugin implements QuestsAPI { } public Dependencies getDependencies() { - return depends; + return (Dependencies) depends; } public Settings getSettings() { - return settings; + return (Settings) settings; } @Override - public List getCustomObjectives() { + public List getCustomObjectives() { return customObjectives; } - public Optional getCustomObjective(final String className) { - for (final CustomObjective co : customObjectives) { + public Optional getCustomObjective(final String className) { + for (final ICustomObjective co : customObjectives) { if (co.getClass().getName().equals(className)) { return Optional.of(co); } @@ -340,66 +346,111 @@ public class Quests extends JavaPlugin implements QuestsAPI { return Optional.empty(); } + /** + * Get every Quest loaded in memory + * + * @deprecated Use {@link #getLoadedQuests()} + * @return a list of all Quests + */ + @Deprecated + public LinkedList getQuests() { + final LinkedList list = new LinkedList<>(); + for (IQuest q : quests) { + list.add((Quest) q); + } + return list; + } + /** * Get every Quest loaded in memory * * @return a collection of all Quests */ - public Collection getLoadedQuests() { + public Collection getLoadedQuests() { return quests; } /** * Get every Action loaded in memory * + * @deprecated Use {@link #getLoadedActions()} + * @return a list of all Actions + */ + @Deprecated + public LinkedList getActions() { + final LinkedList list = new LinkedList<>(); + for (IAction a : actions) { + list.add((Action) a); + } + return list; + } + + /** + * Get every IAction loaded in memory + * * @return a collection of all Actions */ - public Collection getLoadedActions() { + public Collection getLoadedActions() { return actions; } /** - * Set every Action loaded in memory + * Set every IAction loaded in memory * * @deprecated Use {@link #setLoadedActions(Collection)} */ @Deprecated - public void setActions(final LinkedList actions) { + public void setActions(final LinkedList actions) { this.actions = actions; } /** - * Set every Action loaded in memory + * Set every IAction loaded in memory * */ - public void setLoadedActions(final Collection actions) { + public void setLoadedActions(final Collection actions) { this.actions = actions; } /** * Get every Condition loaded in memory * + * @deprecated Use {@link #getLoadedConditions()} + * @return a list of all Actions + */ + @Deprecated + public LinkedList getConditions() { + final LinkedList list = new LinkedList<>(); + for (ICondition c : conditions) { + list.add((Condition) c); + } + return list; + } + + /** + * Get every ICondition loaded in memory + * * @return a collection of all Conditions */ - public Collection getLoadedConditions() { + public Collection getLoadedConditions() { return conditions; } /** - * Set every Condition loaded in memory + * Set every ICondition loaded in memory * * @deprecated Use {@link #setLoadedConditions(Collection)} */ @Deprecated - public void setConditions(final LinkedList conditions) { + public void setConditions(final LinkedList conditions) { this.conditions = conditions; } /** - * Set every Condition loaded in memory + * Set every ICondition loaded in memory * */ - public void setLoadedConditions(final Collection conditions) { + public void setLoadedConditions(final Collection conditions) { this.conditions = conditions; } @@ -413,19 +464,19 @@ public class Quests extends JavaPlugin implements QuestsAPI { if (id == null) { return null; } - final ConcurrentSkipListSet set = (ConcurrentSkipListSet) questers; - for (final Quester q: set) { + final ConcurrentSkipListSet set = (ConcurrentSkipListSet) questers; + for (final IQuester q: set) { if (q != null && q.getUUID().equals(id)) { - return q; + return (Quester) q; } } - final Quester quester = new BukkitQuester(this, id); + final Quester quester = new Quester(this, id); if (depends.getCitizens() != null) { if (depends.getCitizens().getNPCRegistry().getByUniqueId(id) != null) { return quester; } } - final Quester q = new BukkitQuester(this, id); + final Quester q = new Quester(this, id); questers.add(q); return q; } @@ -435,9 +486,9 @@ public class Quests extends JavaPlugin implements QuestsAPI { * * @return a collection of all online Questers */ - public Collection getOnlineQuesters() { - final Collection questers = new ConcurrentSkipListSet<>(); - for (final Quester q : getOfflineQuesters()) { + public Collection getOnlineQuesters() { + final Collection questers = new ConcurrentSkipListSet<>(); + for (final IQuester q : getOfflineQuesters()) { if (q.getOfflinePlayer().isOnline()) { // Workaround for issues with the compass on fast join q.findCompassTarget(); @@ -452,7 +503,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { * * @return a collection of all Questers */ - public Collection getOfflineQuesters() { + public Collection getOfflineQuesters() { return questers; } @@ -461,7 +512,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { * * @param questers a collection of Questers */ - public void setOfflineQuesters(final Collection questers) { + public void setOfflineQuesters(final Collection questers) { this.questers = new ConcurrentSkipListSet<>(questers); } @@ -628,10 +679,10 @@ public class Quests extends JavaPlugin implements QuestsAPI { final Player player = (Player) context.getForWhom(); if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase("y") || input.equalsIgnoreCase(Lang.get(player, "yesWord"))) { - Quester quester = getQuester(player.getUniqueId()); + IQuester quester = getQuester(player.getUniqueId()); if (quester == null) { // Must be new player - quester = new BukkitQuester(Quests.this, player.getUniqueId()); + quester = new Quester(Quests.this, player.getUniqueId()); if (quester.saveData()) { getLogger().info("Created new data for player " + player.getName()); } else { @@ -755,10 +806,10 @@ public class Quests extends JavaPlugin implements QuestsAPI { loadQuests(); loadActions(); loadConditions(); - getLogger().log(Level.INFO, "Loaded " + quests.size() + " Quest(s), " + actions.size() + " Action(s), " - + conditions.size() + " Condition(s) and " + Lang.size() + " Phrase(s)"); + getLogger().log(Level.INFO, "Loaded " + quests.size() + " Quest(s), " + actions.size() + " IAction(s), " + + conditions.size() + " ICondition(s) and " + Lang.size() + " Phrase(s)"); for (final Player p : getServer().getOnlinePlayers()) { - final Quester quester = new BukkitQuester(Quests.this, p.getUniqueId()); + final IQuester quester = new Quester(Quests.this, p.getUniqueId()); if (!quester.hasData()) { quester.saveData(); } @@ -815,12 +866,12 @@ public class Quests extends JavaPlugin implements QuestsAPI { int count = 0; for (final String questKey : questsSection.getKeys(false)) { try { - for (final Quest lq : getLoadedQuests()) { + for (final IQuest lq : getLoadedQuests()) { if (lq.getId().equals(questKey)) { throw new QuestFormatException("id already exists", questKey); } } - final Quest quest = loadQuest(config, questKey); + final IQuest quest = loadQuest(config, questKey); if (config.contains("quests." + questKey + ".requirements")) { loadQuestRequirements(config, questsSection, quest, questKey); } @@ -945,13 +996,13 @@ public class Quests extends JavaPlugin implements QuestsAPI { final String author = reward.getAuthor() == null ? "[Unknown]" : reward.getAuthor(); count++; getLogger().info("Loaded \"" + name + "\" by " + author); - } else if (CustomObjective.class.isAssignableFrom(c)) { - final Class objectiveClass = c.asSubclass(BukkitCustomObjective.class); - final Constructor constructor = objectiveClass.getConstructor(); - final BukkitCustomObjective objective = constructor.newInstance(); - final Optional oo = getCustomObjective(objective.getClass().getName()); - if (oo.isPresent() && oo.get() instanceof BukkitCustomObjective) { - HandlerList.unregisterAll((BukkitCustomObjective)oo.get()); + } else if (ICustomObjective.class.isAssignableFrom(c)) { + final Class objectiveClass = c.asSubclass(CustomObjective.class); + final Constructor constructor = objectiveClass.getConstructor(); + final CustomObjective objective = constructor.newInstance(); + final Optional oo = getCustomObjective(objective.getClass().getName()); + if (oo.isPresent() && oo.get() instanceof CustomObjective) { + HandlerList.unregisterAll((CustomObjective)oo.get()); customObjectives.remove(oo.get()); } customObjectives.add(objective); @@ -990,7 +1041,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @param ignoreOverrides Whether to ignore objective-overrides */ @SuppressWarnings("deprecation") - public void showObjectives(final Quest quest, final Quester quester, final boolean ignoreOverrides) { + public void showObjectives(final IQuest quest, final IQuester quester, final boolean ignoreOverrides) { if (quest == null) { getLogger().severe("Quest was null when getting objectives for " + quester.getLastKnownName()); return; @@ -1497,7 +1548,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { passIndex++; } int customIndex = 0; - for (final CustomObjective co : stage.getCustomObjectives()) { + for (final ICustomObjective co : stage.getCustomObjectives()) { int cleared = 0; if (data.customObjectiveCounts.size() > customIndex) { cleared = data.customObjectiveCounts.get(customIndex); @@ -1535,14 +1586,14 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @param quester Quester to show the list * @param page Page to display, with 7 quests per page */ - public void listQuests(final Quester quester, final int page) { + public void listQuests(final IQuester quester, final int page) { // Although we could copy the quests list to a new object, we instead opt to // duplicate code to improve efficiency if ignore-locked-quests is set to 'false' final int rows = 7; final Player player = quester.getPlayer(); if (getSettings().canIgnoreLockedQuests()) { - final LinkedList available = new LinkedList<>(); - for (final Quest q : quests) { + final LinkedList available = new LinkedList<>(); + for (final IQuest q : quests) { if (!quester.getCompletedQuests().contains(q)) { if (q.testRequirements(player)) { available.add(q); @@ -1558,14 +1609,14 @@ public class Quests extends JavaPlugin implements QuestsAPI { } else { Lang.send(player, ChatColor.GOLD + Lang.get(player, "questListTitle")); int fromOrder = (page - 1) * rows; - final List subQuests; + final List subQuests; if (available.size() >= (fromOrder + rows)) { subQuests = available.subList((fromOrder), (fromOrder + rows)); } else { subQuests = available.subList((fromOrder), available.size()); } fromOrder++; - for (final Quest q : subQuests) { + for (final IQuest q : subQuests) { if (quester.canAcceptOffer(q, false)) { quester.sendMessage(ChatColor.YELLOW + Integer.toString(fromOrder) + ". " + q.getName()); } else { @@ -1585,14 +1636,14 @@ public class Quests extends JavaPlugin implements QuestsAPI { } else { Lang.send(player, ChatColor.GOLD + Lang.get(player, "questListTitle")); int fromOrder = (page - 1) * rows; - final List subQuests; + final List subQuests; if (quests.size() >= (fromOrder + rows)) { subQuests = new LinkedList<>(getLoadedQuests()).subList((fromOrder), (fromOrder + rows)); } else { subQuests = new LinkedList<>(getLoadedQuests()).subList((fromOrder), quests.size()); } fromOrder++; - for (final Quest q : subQuests) { + for (final IQuest q : subQuests) { if (quester.canAcceptOffer(q, false)) { Lang.send(player, ChatColor.YELLOW + Integer.toString(fromOrder) + ". " + q.getName()); } else { @@ -1633,10 +1684,10 @@ public class Quests extends JavaPlugin implements QuestsAPI { loadConditions(); final CompletableFuture loadFuture = saveFuture.thenRunAsync(() -> { try { - for (final Quester quester : questers) { - final CompletableFuture cf = getStorage().loadQuester(quester.getUUID()); - final Quester loaded = cf.get(); - for (final Quest q : loaded.getCurrentQuests().keySet()) { + for (final IQuester quester : questers) { + final CompletableFuture cf = getStorage().loadQuester(quester.getUUID()); + final IQuester loaded = cf.get(); + for (final IQuest q : loaded.getCurrentQuests().keySet()) { loaded.checkQuest(q); } } @@ -1702,7 +1753,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } for (final String questKey : questsSection.getKeys(false)) { try { - final Quest quest = loadQuest(config, questKey); + final IQuest quest = loadQuest(config, questKey); if (config.contains("quests." + questKey + ".requirements")) { loadQuestRequirements(config, questsSection, quest, questKey); } @@ -1735,9 +1786,9 @@ public class Quests extends JavaPlugin implements QuestsAPI { } @SuppressWarnings("deprecation") - private Quest loadQuest(final FileConfiguration config, final String questKey) throws QuestFormatException, + private IQuest loadQuest(final FileConfiguration config, final String questKey) throws QuestFormatException, ActionFormatException { - final Quest quest = new BukkitQuest(this); + final IQuest quest = new Quest(this); quest.setId(questKey); if (config.contains("quests." + questKey + ".name")) { quest.setName(ConfigUtil.parseString(config.getString("quests." + questKey + ".name"), quest)); @@ -1826,14 +1877,14 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".action")) { - final Action action = loadAction(config.getString("quests." + questKey + ".action")); + final IAction action = loadAction(config.getString("quests." + questKey + ".action")); if (action != null) { quest.setInitialAction(action); } else { throw new QuestFormatException("action failed to load", questKey); } } else if (config.contains("quests." + questKey + ".event")) { - final Action action = loadAction(config.getString("quests." + questKey + ".event")); + final IAction action = loadAction(config.getString("quests." + questKey + ".event")); if (action != null) { quest.setInitialAction(action); } else { @@ -1844,7 +1895,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } @SuppressWarnings({"unchecked", "deprecation"}) - private void loadQuestRewards(final FileConfiguration config, final Quest quest, final String questKey) + private void loadQuestRewards(final FileConfiguration config, final IQuest quest, final String questKey) throws QuestFormatException { final Rewards rewards = quest.getRewards(); if (config.contains("quests." + questKey + ".rewards.items")) { @@ -2031,7 +2082,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { @SuppressWarnings({ "unchecked", "deprecation" }) private void loadQuestRequirements(final FileConfiguration config, final ConfigurationSection questsSection, - final Quest quest, final String questKey) throws QuestFormatException { + final IQuest quest, final String questKey) throws QuestFormatException { final Requirements requires = quest.getRequirements(); if (config.contains("quests." + questKey + ".requirements.fail-requirement-message")) { final Object o = config.get("quests." + questKey + ".requirements.fail-requirement-message"); @@ -2107,7 +2158,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { final List nodes = config.getStringList("quests." + questKey + ".requirements.quest-blocks"); boolean failed = false; String failedQuest = "NULL"; - final List temp = new LinkedList<>(); + final List temp = new LinkedList<>(); for (final String node : nodes) { boolean done = false; for (final String id : questsSection.getKeys(false)) { @@ -2146,7 +2197,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { final List nodes = config.getStringList("quests." + questKey + ".requirements.quests"); boolean failed = false; String failedQuest = "NULL"; - final List temp = new LinkedList<>(); + final List temp = new LinkedList<>(); for (final String node : nodes) { boolean done = false; for (final String id : questsSection.getKeys(false)) { @@ -2248,7 +2299,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } - private void loadQuestPlanner(final FileConfiguration config, final Quest quest, final String questKey) + private void loadQuestPlanner(final FileConfiguration config, final IQuest quest, final String questKey) throws QuestFormatException { final Planner pln = quest.getPlanner(); if (config.contains("quests." + questKey + ".planner.start")) { @@ -2276,7 +2327,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } - private void loadQuestOptions(final FileConfiguration config, final Quest quest, final String questKey) + private void loadQuestOptions(final FileConfiguration config, final IQuest quest, final String questKey) throws QuestFormatException { final Options opts = quest.getOptions(); if (config.contains("quests." + questKey + ".options.allow-commands")) { @@ -2312,7 +2363,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } @SuppressWarnings({ "unchecked", "unused", "deprecation" }) - private void loadQuestStages(final Quest quest, final FileConfiguration config, final String questKey) + private void loadQuestStages(final IQuest quest, final FileConfiguration config, final String questKey) throws StageFormatException, ActionFormatException, ConditionFormatException { final ConfigurationSection questStages = config.getConfigurationSection("quests." + questKey + ".stages.ordered"); @@ -3249,7 +3300,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".stages.ordered." + stageNum + ".start-event")) { - final BukkitAction action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + final Action action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + ".start-event")); if (action != null) { oStage.setStartAction(action); @@ -3258,7 +3309,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".stages.ordered." + stageNum + ".finish-event")) { - final BukkitAction action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + final Action action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + ".finish-event")); if (action != null) { oStage.setFinishAction(action); @@ -3267,7 +3318,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".stages.ordered." + stageNum + ".fail-event")) { - final BukkitAction action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + final Action action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + ".fail-event")); if (action != null) { oStage.setFailAction(action); @@ -3276,7 +3327,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".stages.ordered." + stageNum + ".death-event")) { - final BukkitAction action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + final Action action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + ".death-event")); if (action != null) { oStage.setDeathAction(action); @@ -3285,7 +3336,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".stages.ordered." + stageNum + ".disconnect-event")) { - final BukkitAction action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + final Action action = loadAction(config.getString("quests." + questKey + ".stages.ordered." + stageNum + ".disconnect-event")); if (action != null) { oStage.setDisconnectAction(action); @@ -3304,7 +3355,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { final List chatEventTriggers = config.getStringList("quests." + questKey + ".stages.ordered." + stageNum + ".chat-event-triggers"); for (int i = 0; i < chatEvents.size(); i++) { - final BukkitAction action = loadAction(chatEvents.get(i)); + final Action action = loadAction(chatEvents.get(i)); if (action != null) { if (i < chatEventTriggers.size()) { oStage.addChatAction(new AbstractMap.SimpleEntry<>(chatEventTriggers.get(i), @@ -3340,7 +3391,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { final List commandEventTriggers = config.getStringList("quests." + questKey + ".stages.ordered." + stageNum + ".command-event-triggers"); for (int i = 0; i < commandEvents.size(); i++) { - final BukkitAction action = loadAction(commandEvents.get(i)); + final Action action = loadAction(commandEvents.get(i)); if (action != null) { if (i < commandEventTriggers.size()) { oStage.addCommandAction(new AbstractMap.SimpleEntry<>(commandEventTriggers @@ -3366,7 +3417,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } } if (config.contains("quests." + questKey + ".stages.ordered." + stageNum + ".condition")) { - final BukkitCondition condition = loadCondition(config.getString("quests." + questKey + ".stages.ordered." + final Condition condition = loadCondition(config.getString("quests." + questKey + ".stages.ordered." + stageNum + ".condition")); if (condition != null) { oStage.setCondition(condition); @@ -3399,7 +3450,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } @SuppressWarnings({ "unchecked", "deprecation" }) - protected BukkitAction loadAction(final String name) throws ActionFormatException { + protected Action loadAction(final String name) throws ActionFormatException { if (name == null) { return null; } @@ -3420,7 +3471,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { if (data.contains(legacyName)) { actionKey = legacyName + "."; } - final BukkitAction action = new BukkitAction(this); + final Action action = new Action(this); action.setName(name); if (data.contains(actionKey + "message")) { action.setMessage(ConfigUtil.parseString(data.getString(actionKey + "message"))); @@ -3731,7 +3782,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { return action; } - protected BukkitCondition loadCondition(final String name) throws ConditionFormatException { + protected Condition loadCondition(final String name) throws ConditionFormatException { if (name == null) { return null; } @@ -3745,7 +3796,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { e.printStackTrace(); } final String conditionKey = "conditions." + name + "."; - final BukkitCondition condition = new BukkitCondition(this); + final Condition condition = new Condition(this); condition.setName(name); if (data.contains(conditionKey + "fail-quest")) { if (data.isBoolean(conditionKey + "fail-quest")) { @@ -3886,7 +3937,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { return condition; } - private void loadCustomSections(final Quest quest, final FileConfiguration config, final String questKey) + private void loadCustomSections(final IQuest quest, final FileConfiguration config, final String questKey) throws StageFormatException, QuestFormatException { final ConfigurationSection questStages = config.getConfigurationSection("quests." + questKey + ".stages.ordered"); if (questStages != null) { @@ -3912,8 +3963,8 @@ public class Quests extends JavaPlugin implements QuestsAPI { for (final String path : sec.getKeys(false)) { final String name = sec.getString(path + ".name"); final int count = sec.getInt(path + ".count"); - Optional found = Optional.empty(); - for (final CustomObjective cr : customObjectives) { + Optional found = Optional.empty(); + for (final ICustomObjective cr : customObjectives) { if (cr.getName().equalsIgnoreCase(name)) { found = Optional.of(cr); break; @@ -3943,10 +3994,10 @@ public class Quests extends JavaPlugin implements QuestsAPI { if (sec != null) { for (final String path : sec.getKeys(false)) { final String name = sec.getString(path + ".name"); - Optionalfound = Optional.empty(); + Optional found = Optional.empty(); for (final CustomReward cr : customRewards) { if (cr.getName().equalsIgnoreCase(name)) { - found=Optional.of(cr); + found = Optional.of(cr); break; } } @@ -3969,16 +4020,16 @@ public class Quests extends JavaPlugin implements QuestsAPI { if (sec != null) { for (final String path : sec.getKeys(false)) { final String name = sec.getString(path + ".name"); - Optionalfound=Optional.empty(); + Optional found = Optional.empty(); for (final CustomRequirement cr : customRequirements) { if (cr.getName().equalsIgnoreCase(name)) { - found=Optional.of(cr); + found = Optional.of(cr); break; } } if (found.isPresent()) { final ConfigurationSection sec2 = sec.getConfigurationSection(path + ".data"); - final Map data = populateCustoms(sec2,found.get().getData()); + final Map data = populateCustoms(sec2, found.get().getData()); temp.put(name, data); } else { throw new QuestFormatException(name + " custom requirement not found", questKey); @@ -4074,7 +4125,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { } if (sec != null) { for (final String s : sec.getKeys(false)) { - BukkitAction action = null; + Action action = null; try { action = loadAction(s); } catch (final ActionFormatException e) { @@ -4083,7 +4134,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { if (action != null) { actions.add(action); } else { - getLogger().log(Level.SEVERE, "Failed to load Action \"" + s + "\". Skipping."); + getLogger().log(Level.SEVERE, "Failed to load IAction \"" + s + "\". Skipping."); } } } else { @@ -4112,7 +4163,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { final ConfigurationSection sec = config.getConfigurationSection("conditions"); if (sec != null) { for (final String s : sec.getKeys(false)) { - BukkitCondition condition = null; + Condition condition = null; try { condition = loadCondition(s); } catch (final ConditionFormatException e) { @@ -4121,7 +4172,7 @@ public class Quests extends JavaPlugin implements QuestsAPI { if (condition != null) { conditions.add(condition); } else { - getLogger().log(Level.SEVERE, "Failed to load Condition \"" + s + "\". Skipping."); + getLogger().log(Level.SEVERE, "Failed to load ICondition \"" + s + "\". Skipping."); } } } else { @@ -4219,11 +4270,11 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @return Exact match or null if not found * @since 3.8.6 */ - public Quest getQuestById(final String id) { + public IQuest getQuestById(final String id) { if (id == null) { return null; } - for (final Quest q : quests) { + for (final IQuest q : quests) { if (q.getId().equals(id)) { return q; } @@ -4237,21 +4288,21 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @param name Name of the quest * @return Closest match or null if not found */ - public Quest getQuest(final String name) { + public IQuest getQuest(final String name) { if (name == null) { return null; } - for (final Quest q : quests) { + for (final IQuest q : quests) { if (q.getName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', name))) { return q; } } - for (final Quest q : quests) { + for (final IQuest q : quests) { if (q.getName().toLowerCase().startsWith(ChatColor.translateAlternateColorCodes('&', name).toLowerCase())) { return q; } } - for (final Quest q : quests) { + for (final IQuest q : quests) { if (q.getName().toLowerCase().contains(ChatColor.translateAlternateColorCodes('&', name).toLowerCase())) { return q; } @@ -4260,26 +4311,26 @@ public class Quests extends JavaPlugin implements QuestsAPI { } /** - * Get an Action by name + * Get an IAction by name * * @param name Name of the action * @return Closest match or null if not found */ - public Action getAction(final String name) { + public IAction getAction(final String name) { if (name == null) { return null; } - for (final Action a : actions) { + for (final IAction a : actions) { if (a.getName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', name))) { return a; } } - for (final Action a : actions) { + for (final IAction a : actions) { if (a.getName().toLowerCase().startsWith(ChatColor.translateAlternateColorCodes('&', name).toLowerCase())) { return a; } } - for (final Action a : actions) { + for (final IAction a : actions) { if (a.getName().toLowerCase().contains(ChatColor.translateAlternateColorCodes('&', name).toLowerCase())) { return a; } @@ -4288,26 +4339,26 @@ public class Quests extends JavaPlugin implements QuestsAPI { } /** - * Get a Condition by name + * Get a ICondition by name * * @param name Name of the condition * @return Closest match or null if not found */ - public Condition getCondition(final String name) { + public ICondition getCondition(final String name) { if (name == null) { return null; } - for (final Condition c : conditions) { + for (final ICondition c : conditions) { if (c.getName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', name))) { return c; } } - for (final Condition c : conditions) { + for (final ICondition c : conditions) { if (c.getName().toLowerCase().startsWith(ChatColor.translateAlternateColorCodes('&', name).toLowerCase())) { return c; } } - for (final Condition c : conditions) { + for (final ICondition c : conditions) { if (c.getName().toLowerCase().contains(ChatColor.translateAlternateColorCodes('&', name).toLowerCase())) { return c; } @@ -4322,8 +4373,8 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @param quester The player to check * @return true if at least one available quest has not yet been completed */ - public boolean hasQuest(final NPC npc, final Quester quester) { - for (final Quest q : quests) { + public boolean hasQuest(final NPC npc, final IQuester quester) { + for (final IQuest q : quests) { if (q.getNpcStart() != null && !quester.getCompletedQuests().contains(q)) { if (q.getNpcStart().getId() == npc.getId()) { final boolean ignoreLockedQuests = settings.canIgnoreLockedQuests(); @@ -4344,8 +4395,8 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @param quester The player to check * @return true if at least one available quest has been completed */ - public boolean hasCompletedQuest(final NPC npc, final Quester quester) { - for (final Quest q : quests) { + public boolean hasCompletedQuest(final NPC npc, final IQuester quester) { + for (final IQuest q : quests) { if (q.getNpcStart() != null && quester.getCompletedQuests().contains(q)) { if (q.getNpcStart().getId() == npc.getId()) { final boolean ignoreLockedQuests = settings.canIgnoreLockedQuests(); @@ -4365,8 +4416,8 @@ public class Quests extends JavaPlugin implements QuestsAPI { * @param quester The player to check * @return true if at least one available, redoable quest has been completed */ - public boolean hasCompletedRedoableQuest(final NPC npc, final Quester quester) { - for (final Quest q : quests) { + public boolean hasCompletedRedoableQuest(final NPC npc, final IQuester quester) { + for (final IQuest q : quests) { if (q.getNpcStart() != null && quester.getCompletedQuests().contains(q) && q.getPlanner().getCooldown() > -1) { if (q.getNpcStart().getId() == npc.getId()) { diff --git a/core/src/main/java/me/blackvein/quests/config/BukkitSettings.java b/core/src/main/java/me/blackvein/quests/Settings.java similarity index 97% rename from core/src/main/java/me/blackvein/quests/config/BukkitSettings.java rename to core/src/main/java/me/blackvein/quests/Settings.java index 718a3b37a..3e6bcb906 100644 --- a/core/src/main/java/me/blackvein/quests/config/BukkitSettings.java +++ b/core/src/main/java/me/blackvein/quests/Settings.java @@ -10,10 +10,9 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package me.blackvein.quests.config; +package me.blackvein.quests; -import me.blackvein.quests.Quests; -import me.blackvein.quests.Settings; +import me.blackvein.quests.config.ISettings; import me.blackvein.quests.util.Lang; import org.bukkit.configuration.file.FileConfiguration; @@ -21,7 +20,7 @@ import java.io.File; import java.io.IOException; import java.util.Objects; -public class BukkitSettings implements Settings { +public class Settings implements ISettings { private final Quests plugin; private int acceptTimeout = 20; @@ -48,7 +47,7 @@ public class BukkitSettings implements Settings { private boolean translateSubCommands = false; private boolean updateCheck = true; - public BukkitSettings(final Quests plugin) { + public Settings(final Quests plugin) { this.plugin = plugin; } diff --git a/core/src/main/java/me/blackvein/quests/actions/BukkitAction.java b/core/src/main/java/me/blackvein/quests/actions/Action.java similarity index 96% rename from core/src/main/java/me/blackvein/quests/actions/BukkitAction.java rename to core/src/main/java/me/blackvein/quests/actions/Action.java index a7709d1d5..586a189bc 100644 --- a/core/src/main/java/me/blackvein/quests/actions/BukkitAction.java +++ b/core/src/main/java/me/blackvein/quests/actions/Action.java @@ -11,8 +11,8 @@ */ package me.blackvein.quests.actions; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.entity.QuestMob; import me.blackvein.quests.tasks.ActionTimer; @@ -31,7 +31,7 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.Map; -public class BukkitAction implements Action { +public class Action implements IAction { private final Quests plugin; private String name = ""; @@ -79,12 +79,12 @@ public class BukkitAction implements Action { protected String book = ""; protected String denizenScript; - public BukkitAction(final Quests plugin) { + public Action(final Quests plugin) { this.plugin = plugin; } @Override - public int compareTo(final Action action) { + public int compareTo(final IAction action) { return name.compareTo(action.getName()); } @@ -318,7 +318,7 @@ public class BukkitAction implements Action { this.denizenScript = scriptName; } - public void fire(final Quester quester, final Quest quest) { + public void fire(final IQuester quester, final IQuest quest) { final Player player = quester.getPlayer(); if (message != null) { player.sendMessage(ConfigUtil.parseStringWithPossibleLineBreaks(message, quest, player)); @@ -394,7 +394,7 @@ public class BukkitAction implements Action { } if (teleport != null) { if (player.isDead()) { - plugin.getLogger().warning("Tried to fire Action " + name + " but player " + player.getUniqueId() + plugin.getLogger().warning("Tried to fire IAction " + name + " but player " + player.getUniqueId() + " was dead (known Bukkit limitation)."); } else { player.teleport(teleport); @@ -452,7 +452,7 @@ public class BukkitAction implements Action { .runTaskLater(plugin, timer * 20L).getTaskId(), quest); } if (cancelTimer) { - for (final Map.Entry entry : quester.getTimers().entrySet()) { + for (final Map.Entry entry : quester.getTimers().entrySet()) { if (entry.getValue().getName().equals(quest.getName())) { plugin.getServer().getScheduler().cancelTask(entry.getKey()); quester.getTimers().remove(entry.getKey()); diff --git a/core/src/main/java/me/blackvein/quests/actions/BukkitActionFactory.java b/core/src/main/java/me/blackvein/quests/actions/BukkitActionFactory.java index 0d7207004..db09a0089 100644 --- a/core/src/main/java/me/blackvein/quests/actions/BukkitActionFactory.java +++ b/core/src/main/java/me/blackvein/quests/actions/BukkitActionFactory.java @@ -12,8 +12,8 @@ package me.blackvein.quests.actions; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.convo.actions.main.ActionMainPrompt; import me.blackvein.quests.convo.actions.menu.ActionMenuPrompt; @@ -152,7 +152,7 @@ public class BukkitActionFactory implements ActionFactory, ConversationAbandoned return new ActionMainPrompt(context); } - public void loadData(final Action event, final ConversationContext context) { + public void loadData(final IAction event, final ConversationContext context) { if (event.getMessage() != null) { context.setSessionData(CK.E_MESSAGE, event.getMessage()); } @@ -313,8 +313,8 @@ public class BukkitActionFactory implements ActionFactory, ConversationAbandoned "Player " + ((Player)context.getForWhom()).getUniqueId() : "CONSOLE"; plugin.getLogger().info(identifier + " deleted action " + action); } - for (final Quester q : plugin.getOfflineQuesters()) { - for (final Quest quest : q.getCurrentQuests().keySet()) { + for (final IQuester q : plugin.getOfflineQuesters()) { + for (final IQuest quest : q.getCurrentQuests().keySet()) { q.checkQuest(quest); } } @@ -340,7 +340,7 @@ public class BukkitActionFactory implements ActionFactory, ConversationAbandoned if (context.getSessionData(CK.E_OLD_EVENT) != null && !((String) Objects.requireNonNull(context.getSessionData(CK.E_OLD_EVENT))).isEmpty()) { data.set(key + "." + context.getSessionData(CK.E_OLD_EVENT), null); - final Collection temp = plugin.getLoadedActions(); + final Collection temp = plugin.getLoadedActions(); temp.remove(plugin.getAction((String) context.getSessionData(CK.E_OLD_EVENT))); plugin.setLoadedActions(temp); } @@ -470,8 +470,8 @@ public class BukkitActionFactory implements ActionFactory, ConversationAbandoned "Player " + ((Player)context.getForWhom()).getUniqueId() : "CONSOLE"; plugin.getLogger().info(identifier + " saved action " + context.getSessionData(CK.E_NAME)); } - for (final Quester q : plugin.getOfflineQuesters()) { - for (final Quest quest : q.getCurrentQuests().keySet()) { + for (final IQuester q : plugin.getOfflineQuesters()) { + for (final IQuest quest : q.getCurrentQuests().keySet()) { q.checkQuest(quest); } } diff --git a/core/src/main/java/me/blackvein/quests/conditions/BukkitConditionFactory.java b/core/src/main/java/me/blackvein/quests/conditions/BukkitConditionFactory.java index 499fc33b3..f95a641ec 100644 --- a/core/src/main/java/me/blackvein/quests/conditions/BukkitConditionFactory.java +++ b/core/src/main/java/me/blackvein/quests/conditions/BukkitConditionFactory.java @@ -12,8 +12,8 @@ package me.blackvein.quests.conditions; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.convo.conditions.main.ConditionMainPrompt; import me.blackvein.quests.convo.conditions.menu.ConditionMenuPrompt; @@ -85,7 +85,7 @@ public class BukkitConditionFactory implements ConditionFactory, ConversationAba return new ConditionMainPrompt(context); } - public void loadData(final Condition condition, final ConversationContext context) { + public void loadData(final ICondition condition, final ConversationContext context) { if (condition.isFailQuest()) { context.setSessionData(CK.C_FAIL_QUEST, Lang.get("yesWord")); } else { @@ -179,8 +179,8 @@ public class BukkitConditionFactory implements ConditionFactory, ConversationAba "Player " + ((Player)context.getForWhom()).getUniqueId() : "CONSOLE"; plugin.getLogger().info(identifier + " deleted condition " + condition); } - for (final Quester q : plugin.getOfflineQuesters()) { - for (final Quest quest : q.getCurrentQuests().keySet()) { + for (final IQuester q : plugin.getOfflineQuesters()) { + for (final IQuest quest : q.getCurrentQuests().keySet()) { q.checkQuest(quest); } } @@ -201,7 +201,7 @@ public class BukkitConditionFactory implements ConditionFactory, ConversationAba if (context.getSessionData(CK.C_OLD_CONDITION) != null && !((String) Objects.requireNonNull(context.getSessionData(CK.C_OLD_CONDITION))).isEmpty()) { data.set("conditions." + context.getSessionData(CK.C_OLD_CONDITION), null); - final Collection temp = plugin.getLoadedConditions(); + final Collection temp = plugin.getLoadedConditions(); temp.remove(plugin.getCondition((String) context.getSessionData(CK.C_OLD_CONDITION))); plugin.setLoadedConditions(temp); } @@ -267,8 +267,8 @@ public class BukkitConditionFactory implements ConditionFactory, ConversationAba "Player " + ((Player)context.getForWhom()).getUniqueId() : "CONSOLE"; plugin.getLogger().info(identifier + " saved condition " + context.getSessionData(CK.C_NAME)); } - for (final Quester q : plugin.getOfflineQuesters()) { - for (final Quest quest : q.getCurrentQuests().keySet()) { + for (final IQuester q : plugin.getOfflineQuesters()) { + for (final IQuest quest : q.getCurrentQuests().keySet()) { q.checkQuest(quest); } } diff --git a/core/src/main/java/me/blackvein/quests/conditions/BukkitCondition.java b/core/src/main/java/me/blackvein/quests/conditions/Condition.java similarity index 88% rename from core/src/main/java/me/blackvein/quests/conditions/BukkitCondition.java rename to core/src/main/java/me/blackvein/quests/conditions/Condition.java index 583dffe6b..1691c4c52 100644 --- a/core/src/main/java/me/blackvein/quests/conditions/BukkitCondition.java +++ b/core/src/main/java/me/blackvein/quests/conditions/Condition.java @@ -12,8 +12,8 @@ package me.blackvein.quests.conditions; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.util.ItemUtil; import me.blackvein.quests.util.MiscUtil; @@ -24,7 +24,7 @@ import org.bukkit.inventory.ItemStack; import java.util.LinkedList; import java.util.Objects; -public class BukkitCondition implements Condition { +public class Condition implements ICondition { private final Quests plugin; private String name = ""; @@ -39,12 +39,12 @@ public class BukkitCondition implements Condition { private LinkedList placeholdersCheckIdentifier = new LinkedList<>(); private LinkedList placeholdersCheckValue = new LinkedList<>(); - public BukkitCondition(final Quests plugin) { + public Condition(final Quests plugin) { this.plugin = plugin; } @Override - public int compareTo(final Condition condition) { + public int compareTo(final ICondition condition) { return name.compareTo(condition.getName()); } @@ -160,14 +160,14 @@ public class BukkitCondition implements Condition { @SuppressWarnings("deprecation") @Override - public boolean check(final Quester quester, final Quest quest) { + public boolean check(final IQuester quester, final IQuest quest) { final Player player = quester.getPlayer(); if (!entitiesWhileRiding.isEmpty()) { for (final String e : entitiesWhileRiding) { if (player.getVehicle() != null && player.getVehicle().getType().equals(MiscUtil.getProperMobType(e))) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition entity mismatch for " + player.getName() + ": " + e); + plugin.getLogger().info("DEBUG: ICondition entity mismatch for " + player.getName() + ": " + e); } } } else if (!npcsWhileRiding.isEmpty()) { @@ -177,7 +177,7 @@ public class BukkitCondition implements Condition { .equals(plugin.getDependencies().getCitizens().getNPCRegistry().getById(n).getEntity())) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition NPC mismatch for " + player.getName() + ": ID " + n); + plugin.getLogger().info("DEBUG: ICondition NPC mismatch for " + player.getName() + ": ID " + n); } } } @@ -187,7 +187,7 @@ public class BukkitCondition implements Condition { if (plugin.getDependencies().getVaultPermission().has(player, p)) { return plugin.getDependencies().getVaultPermission().has(player, p); } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition permission mismatch for " + player.getName() + ": " + p); + plugin.getLogger().info("DEBUG: ICondition permission mismatch for " + player.getName() + ": " + p); } } else { plugin.getLogger().warning("Vault must be installed for condition permission checks: " + p); @@ -198,7 +198,7 @@ public class BukkitCondition implements Condition { if (ItemUtil.compareItems(player.getItemInHand(), is, true, true) == 0) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition item mismatch for " + player.getName() + ": code " + plugin.getLogger().info("DEBUG: ICondition item mismatch for " + player.getName() + ": code " + ItemUtil.compareItems(player.getItemInHand(), is, true, true)); } } @@ -207,7 +207,7 @@ public class BukkitCondition implements Condition { if (player.getWorld().getName().equalsIgnoreCase(w)) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition world mismatch for " + player.getName() + ": " + w); + plugin.getLogger().info("DEBUG: ICondition world mismatch for " + player.getName() + ": " + w); } } } else if (!biomesWhileStayingWithin.isEmpty()) { @@ -219,7 +219,7 @@ public class BukkitCondition implements Condition { .name().equalsIgnoreCase(Objects.requireNonNull(MiscUtil.getProperBiome(b)).name())) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition biome mismatch for " + player.getName() + ": " + plugin.getLogger().info("DEBUG: ICondition biome mismatch for " + player.getName() + ": " + MiscUtil.getProperBiome(b)); } } @@ -228,7 +228,7 @@ public class BukkitCondition implements Condition { if (quester.isInRegion(r)) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition region mismatch for " + player.getName() + ": " + r); + plugin.getLogger().info("DEBUG: ICondition region mismatch for " + player.getName() + ": " + r); } } } else if (!placeholdersCheckIdentifier.isEmpty()) { @@ -239,7 +239,7 @@ public class BukkitCondition implements Condition { placeholdersCheckValue.get(index).equals(PlaceholderAPI.setPlaceholders(player, i))) { return true; } else if (plugin.getSettings().getConsoleLogging() > 2) { - plugin.getLogger().info("DEBUG: Condition placeholder mismatch for " + player.getName() + ": " + i); + plugin.getLogger().info("DEBUG: ICondition placeholder mismatch for " + player.getName() + ": " + i); } } else { plugin.getLogger().warning("PAPI must be installed for placeholder checks: " + i); diff --git a/core/src/main/java/me/blackvein/quests/convo/actions/main/ActionMainPrompt.java b/core/src/main/java/me/blackvein/quests/convo/actions/main/ActionMainPrompt.java index c5158f757..dc5ae0eb2 100644 --- a/core/src/main/java/me/blackvein/quests/convo/actions/main/ActionMainPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/actions/main/ActionMainPrompt.java @@ -12,10 +12,10 @@ package me.blackvein.quests.convo.actions.main; -import me.blackvein.quests.Quest; +import me.blackvein.quests.actions.IAction; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; -import me.blackvein.quests.actions.Action; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.actions.ActionsEditorNumericPrompt; import me.blackvein.quests.convo.actions.ActionsEditorStringPrompt; @@ -272,7 +272,7 @@ public class ActionMainPrompt extends ActionsEditorNumericPrompt { return null; } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorExists")); return new ActionNamePrompt(context); @@ -565,11 +565,11 @@ public class ActionMainPrompt extends ActionsEditorNumericPrompt { = new ActionsEditorPostOpenNumericPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final StringBuilder text = new StringBuilder(ChatColor.GOLD + getTitle(context) + "\n"); + final StringBuilder text = new StringBuilder(ChatColor.GOLD + getTitle(context)); for (int i = 1; i <= size; i++) { - text.append(getNumberColor(context, i)).append(ChatColor.BOLD).append(i).append(ChatColor.RESET) + text.append("\n").append(getNumberColor(context, i)).append(ChatColor.BOLD).append(i).append(ChatColor.RESET) .append(" - ").append(getSelectionText(context, i)).append(ChatColor.GRAY).append(" ") - .append(getAdditionalText(context, i)).append("\n"); + .append(getAdditionalText(context, i)); } return text.toString(); } @@ -1015,7 +1015,7 @@ public class ActionMainPrompt extends ActionsEditorNumericPrompt { super(context); if (modifiedName != null) { modName = modifiedName; - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { for (final Stage s : q.getStages()) { if (s.getFinishAction() != null && s.getFinishAction().getName() != null) { if (s.getFinishAction().getName().equalsIgnoreCase(modifiedName)) { diff --git a/core/src/main/java/me/blackvein/quests/convo/actions/menu/ActionMenuPrompt.java b/core/src/main/java/me/blackvein/quests/convo/actions/menu/ActionMenuPrompt.java index d0fc0fdfd..726201b6f 100644 --- a/core/src/main/java/me/blackvein/quests/convo/actions/menu/ActionMenuPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/actions/menu/ActionMenuPrompt.java @@ -12,10 +12,10 @@ package me.blackvein.quests.convo.actions.menu; -import me.blackvein.quests.Quest; +import me.blackvein.quests.actions.IAction; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; -import me.blackvein.quests.actions.Action; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.actions.ActionsEditorNumericPrompt; import me.blackvein.quests.convo.actions.ActionsEditorStringPrompt; @@ -186,7 +186,7 @@ public class ActionMenuPrompt extends ActionsEditorNumericPrompt { } input = input.trim(); if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorExists")); return new ActionSelectCreatePrompt(context); @@ -236,7 +236,7 @@ public class ActionMenuPrompt extends ActionsEditorNumericPrompt { final ActionsEditorPostOpenStringPromptEvent event = new ActionsEditorPostOpenStringPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final List names = plugin.getLoadedActions().stream().map(Action::getName).collect(Collectors.toList()); + final List names = plugin.getLoadedActions().stream().map(IAction::getName).collect(Collectors.toList()); return sendClickableMenu(getTitle(context), names, getQueryText(context), context); } @@ -246,7 +246,7 @@ public class ActionMenuPrompt extends ActionsEditorNumericPrompt { return null; } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - final Action a = plugin.getAction(input); + final IAction a = plugin.getAction(input); if (a != null) { context.setSessionData(CK.E_OLD_EVENT, a.getName()); context.setSessionData(CK.E_NAME, a.getName()); @@ -282,7 +282,7 @@ public class ActionMenuPrompt extends ActionsEditorNumericPrompt { final ActionsEditorPostOpenStringPromptEvent event = new ActionsEditorPostOpenStringPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final List names = plugin.getLoadedActions().stream().map(Action::getName).collect(Collectors.toList()); + final List names = plugin.getLoadedActions().stream().map(IAction::getName).collect(Collectors.toList()); return sendClickableMenu(getTitle(context), names, getQueryText(context), context); } @@ -293,9 +293,9 @@ public class ActionMenuPrompt extends ActionsEditorNumericPrompt { } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { final LinkedList used = new LinkedList(); - final Action a = plugin.getAction(input); + final IAction a = plugin.getAction(input); if (a != null) { - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { for (final Stage stage : quest.getStages()) { if (stage.getFinishAction() != null && stage.getFinishAction().getName().equalsIgnoreCase(a.getName())) { diff --git a/core/src/main/java/me/blackvein/quests/convo/conditions/main/ConditionMainPrompt.java b/core/src/main/java/me/blackvein/quests/convo/conditions/main/ConditionMainPrompt.java index 4d26371f9..52f6a8cfb 100644 --- a/core/src/main/java/me/blackvein/quests/convo/conditions/main/ConditionMainPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/conditions/main/ConditionMainPrompt.java @@ -12,10 +12,10 @@ package me.blackvein.quests.convo.conditions.main; -import me.blackvein.quests.Quest; +import me.blackvein.quests.conditions.ICondition; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.conditions.ConditionsEditorNumericPrompt; import me.blackvein.quests.convo.conditions.ConditionsEditorStringPrompt; @@ -204,7 +204,7 @@ public class ConditionMainPrompt extends ConditionsEditorNumericPrompt { return null; } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - for (final Condition c : plugin.getLoadedConditions()) { + for (final ICondition c : plugin.getLoadedConditions()) { if (c.getName().equalsIgnoreCase(input)) { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("conditionEditorExists")); return new ConditionNamePrompt(context); @@ -482,7 +482,7 @@ public class ConditionMainPrompt extends ConditionsEditorNumericPrompt { super(context); if (modifiedName != null) { modName = modifiedName; - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { for (final Stage s : q.getStages()) { if (s.getCondition() != null && s.getCondition().getName() != null) { if (s.getCondition().getName().equalsIgnoreCase(modifiedName)) { diff --git a/core/src/main/java/me/blackvein/quests/convo/conditions/menu/ConditionMenuPrompt.java b/core/src/main/java/me/blackvein/quests/convo/conditions/menu/ConditionMenuPrompt.java index e1006bb6b..7002971af 100644 --- a/core/src/main/java/me/blackvein/quests/convo/conditions/menu/ConditionMenuPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/conditions/menu/ConditionMenuPrompt.java @@ -12,10 +12,10 @@ package me.blackvein.quests.convo.conditions.menu; -import me.blackvein.quests.Quest; +import me.blackvein.quests.conditions.ICondition; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.conditions.ConditionsEditorNumericPrompt; import me.blackvein.quests.convo.conditions.ConditionsEditorStringPrompt; @@ -185,7 +185,7 @@ public class ConditionMenuPrompt extends ConditionsEditorNumericPrompt { } input = input.trim(); if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - for (final Condition c : plugin.getLoadedConditions()) { + for (final ICondition c : plugin.getLoadedConditions()) { if (c.getName().equalsIgnoreCase(input)) { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("conditionEditorExists")); return new ConditionSelectCreatePrompt(context); @@ -235,7 +235,7 @@ public class ConditionMenuPrompt extends ConditionsEditorNumericPrompt { final ConditionsEditorPostOpenStringPromptEvent event = new ConditionsEditorPostOpenStringPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final List names = plugin.getLoadedConditions().stream().map(Condition::getName).collect(Collectors.toList()); + final List names = plugin.getLoadedConditions().stream().map(ICondition::getName).collect(Collectors.toList()); return sendClickableMenu(getTitle(context), names, getQueryText(context), context); } @@ -245,7 +245,7 @@ public class ConditionMenuPrompt extends ConditionsEditorNumericPrompt { return null; } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - final Condition c = plugin.getCondition(input); + final ICondition c = plugin.getCondition(input); if (c != null) { context.setSessionData(CK.C_OLD_CONDITION, c.getName()); context.setSessionData(CK.C_NAME, c.getName()); @@ -281,7 +281,7 @@ public class ConditionMenuPrompt extends ConditionsEditorNumericPrompt { final ConditionsEditorPostOpenStringPromptEvent event = new ConditionsEditorPostOpenStringPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final List names = plugin.getLoadedConditions().stream().map(Condition::getName) + final List names = plugin.getLoadedConditions().stream().map(ICondition::getName) .collect(Collectors.toList()); return sendClickableMenu(getTitle(context), names, getQueryText(context), context); } @@ -293,9 +293,9 @@ public class ConditionMenuPrompt extends ConditionsEditorNumericPrompt { } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { final LinkedList used = new LinkedList<>(); - final Condition c = plugin.getCondition(input); + final ICondition c = plugin.getCondition(input); if (c != null) { - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { for (final Stage stage : quest.getStages()) { if (stage.getCondition() != null && stage.getCondition().getName().equalsIgnoreCase(c.getName())) { diff --git a/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java b/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java index c3b9ea413..70af0c193 100644 --- a/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/misc/NpcOfferQuestPrompt.java @@ -12,11 +12,11 @@ package me.blackvein.quests.convo.misc; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.events.misc.MiscPostNpcOfferQuestEvent; -import me.blackvein.quests.quests.BukkitQuest; +import me.blackvein.quests.Quest; import me.blackvein.quests.util.Lang; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; @@ -65,12 +65,12 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { @SuppressWarnings("unchecked") public ChatColor getNumberColor(final ConversationContext context, final int number) { final Quests plugin = (Quests)context.getPlugin(); - final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); + final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); if (plugin != null) { - final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); + final IQuester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); if (quests != null && number > 0) { if (number < (quests.size() + 1)) { - final Quest quest = quests.get(number - 1); + final IQuest quest = quests.get(number - 1); if (quester.getCompletedQuests().contains(quest)) { return ChatColor.GREEN; } else { @@ -88,12 +88,12 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { @SuppressWarnings("unchecked") public String getSelectionText(final ConversationContext context, final int number) { final Quests plugin = (Quests)context.getPlugin(); - final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); + final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); if (plugin != null) { - final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); + final IQuester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); if (quests != null && number > 0) { if (number < (quests.size() + 1)) { - final Quest quest = quests.get(number - 1); + final IQuest quest = quests.get(number - 1); if (quester.getCompletedQuests().contains(quest)) { return ChatColor.GREEN + "" + ChatColor.ITALIC + quest.getName(); } else { @@ -110,12 +110,12 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { @SuppressWarnings("unchecked") public String getAdditionalText(final ConversationContext context, final int number) { final Quests plugin = (Quests)context.getPlugin(); - final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); + final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); if (plugin != null) { - final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); + final IQuester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); if (quests != null && number > 0) { if (number < (quests.size() + 1)) { - final Quest quest = quests.get(number - 1); + final IQuest quest = quests.get(number - 1); if (quester.getCompletedQuests().contains(quest)) { return ChatColor.GREEN + "" + Lang.get("redoCompleted"); } @@ -134,12 +134,12 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { public @Nonnull String getPromptText(final ConversationContext context) { this.cc = context; final Quests plugin = (Quests)context.getPlugin(); - final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); + final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); final String npc = (String) context.getSessionData("npc"); if (plugin == null || quests == null || npc == null) { return ChatColor.YELLOW + Lang.get("unknownError"); } - quests.sort(Comparator.comparing(BukkitQuest::getName)); + quests.sort(Comparator.comparing(Quest::getName)); final MiscPostNpcOfferQuestEvent event = new MiscPostNpcOfferQuestEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); @@ -180,11 +180,11 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { @Override public Prompt acceptInput(final ConversationContext context, final String input) { final Quests plugin = (Quests)context.getPlugin(); - final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); + final LinkedList quests = (LinkedList) context.getSessionData("npcQuests"); if (plugin == null || quests == null) { return Prompt.END_OF_CONVERSATION; } - final Quester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); + final IQuester quester = plugin.getQuester(((Player) context.getForWhom()).getUniqueId()); int numInput = -1; try { numInput = Integer.parseInt(input); @@ -195,15 +195,15 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { context.getForWhom().sendRawMessage(ChatColor.YELLOW + Lang.get("cancelled")); return Prompt.END_OF_CONVERSATION; } else { - Quest q = null; - for (final Quest quest : quests) { + IQuest q = null; + for (final IQuest quest : quests) { if (quest.getName().equalsIgnoreCase(input)) { q = quest; break; } } if (q == null) { - for (final Quest quest : quests) { + for (final IQuest quest : quests) { if (numInput == (quests.indexOf(quest) + 1)) { q = quest; break; @@ -211,7 +211,7 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { } } if (q == null) { - for (final Quest quest : quests) { + for (final IQuest quest : quests) { if (quest.getName().toLowerCase().contains(input.toLowerCase())) { q = quest; break; @@ -239,8 +239,8 @@ public class NpcOfferQuestPrompt extends MiscStringPrompt { } } - private String extracted(final Quests plugin, final Quester quester) { - final Quest quest = plugin.getQuestById(quester.getQuestIdToTake()); + private String extracted(final Quests plugin, final IQuester quester) { + final IQuest quest = plugin.getQuestById(quester.getQuestIdToTake()); return MessageFormat.format("{0}- {1}{2}{3} -\n\n{4}{5}\n", ChatColor.GOLD, ChatColor.DARK_PURPLE, quest.getName(), ChatColor.GOLD, ChatColor.RESET, quest.getDescription()); } diff --git a/core/src/main/java/me/blackvein/quests/convo/quests/main/QuestMainPrompt.java b/core/src/main/java/me/blackvein/quests/convo/quests/main/QuestMainPrompt.java index 013c89b58..d1de7f394 100644 --- a/core/src/main/java/me/blackvein/quests/convo/quests/main/QuestMainPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/quests/main/QuestMainPrompt.java @@ -13,7 +13,7 @@ package me.blackvein.quests.convo.quests.main; import com.sk89q.worldguard.protection.managers.RegionManager; -import me.blackvein.quests.Quest; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.generic.ItemStackPrompt; @@ -341,7 +341,7 @@ public class QuestMainPrompt extends QuestsEditorNumericPrompt { return null; } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { if (q.getName().equalsIgnoreCase(input)) { String s = null; if (context.getSessionData(CK.ED_QUEST_EDIT) != null) { @@ -732,7 +732,7 @@ public class QuestMainPrompt extends QuestsEditorNumericPrompt { if (context.getSessionData("tempStack") != null) { final ItemStack stack = (ItemStack) context.getSessionData("tempStack"); boolean failed = false; - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (quest.getGUIDisplay() != null) { if (ItemUtil.compareItems(stack, quest.getGUIDisplay(), false) == 0) { String error = Lang.get("questGUIError"); diff --git a/core/src/main/java/me/blackvein/quests/convo/quests/menu/QuestMenuPrompt.java b/core/src/main/java/me/blackvein/quests/convo/quests/menu/QuestMenuPrompt.java index eb4522719..969c280d0 100644 --- a/core/src/main/java/me/blackvein/quests/convo/quests/menu/QuestMenuPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/quests/menu/QuestMenuPrompt.java @@ -12,7 +12,7 @@ package me.blackvein.quests.convo.quests.menu; -import me.blackvein.quests.Quest; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.quests.QuestsEditorNumericPrompt; @@ -169,7 +169,7 @@ public class QuestMenuPrompt extends QuestsEditorNumericPrompt { } input = input.trim(); if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { if (q.getName().equalsIgnoreCase(input)) { context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("questEditorNameExists")); return new QuestSelectCreatePrompt(context); @@ -221,7 +221,7 @@ public class QuestMenuPrompt extends QuestsEditorNumericPrompt { final QuestsEditorPostOpenStringPromptEvent event = new QuestsEditorPostOpenStringPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final List names = plugin.getLoadedQuests().stream().map(Quest::getName).collect(Collectors.toList()); + final List names = plugin.getLoadedQuests().stream().map(IQuest::getName).collect(Collectors.toList()); return sendClickableMenu(getTitle(context), names, getQueryText(context), context); } @@ -231,7 +231,7 @@ public class QuestMenuPrompt extends QuestsEditorNumericPrompt { return null; } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { - final Quest q = plugin.getQuest(input); + final IQuest q = plugin.getQuest(input); if (q != null) { plugin.getQuestFactory().loadQuest(context, q); return new QuestMainPrompt(context); @@ -264,7 +264,7 @@ public class QuestMenuPrompt extends QuestsEditorNumericPrompt { final QuestsEditorPostOpenStringPromptEvent event = new QuestsEditorPostOpenStringPromptEvent(context, this); plugin.getServer().getPluginManager().callEvent(event); - final List names = plugin.getLoadedQuests().stream().map(Quest::getName).collect(Collectors.toList()); + final List names = plugin.getLoadedQuests().stream().map(IQuest::getName).collect(Collectors.toList()); return sendClickableMenu(getTitle(context), names, getQueryText(context), context); } @@ -275,9 +275,9 @@ public class QuestMenuPrompt extends QuestsEditorNumericPrompt { } if (!input.equalsIgnoreCase(Lang.get("cmdCancel"))) { final LinkedList used = new LinkedList<>(); - final Quest found = plugin.getQuest(input); + final IQuest found = plugin.getQuest(input); if (found != null) { - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { if (q.getRequirements().getNeededQuests().contains(q) || q.getRequirements().getBlockQuests().contains(q)) { used.add(q.getName()); diff --git a/core/src/main/java/me/blackvein/quests/convo/quests/requirements/RequirementsPrompt.java b/core/src/main/java/me/blackvein/quests/convo/quests/requirements/RequirementsPrompt.java index f2331cb24..ed4e7ce0f 100644 --- a/core/src/main/java/me/blackvein/quests/convo/quests/requirements/RequirementsPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/quests/requirements/RequirementsPrompt.java @@ -15,7 +15,7 @@ package me.blackvein.quests.convo.quests.requirements; import com.gmail.nossr50.datatypes.skills.SkillType; import com.herocraftonline.heroes.characters.classes.HeroClass; import me.blackvein.quests.CustomRequirement; -import me.blackvein.quests.Quest; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.Quests; import me.blackvein.quests.convo.generic.ItemStackPrompt; import me.blackvein.quests.convo.generic.OverridePrompt; @@ -854,7 +854,7 @@ public class RequirementsPrompt extends QuestsEditorNumericPrompt { StringBuilder text = new StringBuilder(ChatColor.LIGHT_PURPLE + getTitle(context) + "\n" + ChatColor.DARK_PURPLE); boolean none = true; - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { text.append(q.getName()).append(", "); none = false; } diff --git a/core/src/main/java/me/blackvein/quests/convo/quests/stages/StageMainPrompt.java b/core/src/main/java/me/blackvein/quests/convo/quests/stages/StageMainPrompt.java index 082a148b9..65248464a 100644 --- a/core/src/main/java/me/blackvein/quests/convo/quests/stages/StageMainPrompt.java +++ b/core/src/main/java/me/blackvein/quests/convo/quests/stages/StageMainPrompt.java @@ -12,10 +12,10 @@ package me.blackvein.quests.convo.quests.stages; -import me.blackvein.quests.CustomObjective; +import me.blackvein.quests.actions.IAction; +import me.blackvein.quests.conditions.ICondition; +import me.blackvein.quests.module.ICustomObjective; import me.blackvein.quests.Quests; -import me.blackvein.quests.actions.Action; -import me.blackvein.quests.conditions.Condition; import me.blackvein.quests.convo.QuestsNumericPrompt; import me.blackvein.quests.convo.generic.OverridePrompt; import me.blackvein.quests.convo.quests.QuestsEditorNumericPrompt; @@ -1438,7 +1438,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")).append("\n"); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1450,8 +1450,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -1505,7 +1505,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1517,8 +1517,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -1572,7 +1572,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1584,8 +1584,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -1639,7 +1639,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")).append("\n"); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1651,8 +1651,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -1706,7 +1706,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1718,8 +1718,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -1773,7 +1773,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1785,8 +1785,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -1915,7 +1915,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedActions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")); } else { - for (final Action a : plugin.getLoadedActions()) { + for (final IAction a : plugin.getLoadedActions()) { text.append(ChatColor.GREEN).append("- ").append(a.getName()).append("\n"); } } @@ -1927,8 +1927,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Action found = null; - for (final Action a : plugin.getLoadedActions()) { + IAction found = null; + for (final IAction a : plugin.getLoadedActions()) { if (a.getName().equalsIgnoreCase(input)) { found = a; break; @@ -2058,7 +2058,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (plugin.getLoadedConditions().isEmpty()) { text.append(ChatColor.RED).append("- ").append(Lang.get("none")).append("\n"); } else { - for (final Condition c : plugin.getLoadedConditions()) { + for (final ICondition c : plugin.getLoadedConditions()) { text.append(ChatColor.GREEN).append("- ").append(c.getName()).append("\n"); } } @@ -2070,8 +2070,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { final Player player = (Player) context.getForWhom(); if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - Condition found = null; - for (final Condition c : plugin.getLoadedConditions()) { + ICondition found = null; + for (final ICondition c : plugin.getLoadedConditions()) { if (c.getName().equalsIgnoreCase(input)) { found = c; break; @@ -2395,7 +2395,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { text.append(ChatColor.DARK_PURPLE).append("(").append(Lang.get("stageEditorNoModules")) .append(") "); } else { - for (final String name : plugin.getCustomObjectives().stream().map(CustomObjective::getModuleName) + for (final String name : plugin.getCustomObjectives().stream().map(ICustomObjective::getModuleName) .collect(Collectors.toCollection(TreeSet::new))) { text.append(ChatColor.DARK_PURPLE).append(" - ").append(name).append("\n"); } @@ -2412,7 +2412,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { line.addExtra(link); line.addExtra(ChatColor.DARK_AQUA + "(" + Lang.get("stageEditorNoModules") + ") "); } else { - for (final String name : plugin.getCustomObjectives().stream().map(CustomObjective::getModuleName) + for (final String name : plugin.getCustomObjectives().stream().map(ICustomObjective::getModuleName) .collect(Collectors.toCollection(TreeSet::new))) { final TextComponent click = new TextComponent(ChatColor.DARK_PURPLE + " - " + name + "\n"); click.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, name)); @@ -2431,7 +2431,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { String found = null; // Check if we have a module with the specified name - for (final CustomObjective co : plugin.getCustomObjectives()) { + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getModuleName().equalsIgnoreCase(input)) { found = co.getModuleName(); break; @@ -2439,7 +2439,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { } if (found == null) { // No? Check again, but with locale sensitivity - for (final CustomObjective co : plugin.getCustomObjectives()) { + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getModuleName().toLowerCase().contains(input.toLowerCase())) { found = co.getModuleName(); break; @@ -2503,7 +2503,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { text.append(ChatColor.DARK_PURPLE).append("(").append(Lang.get("stageEditorNoModules")) .append(") "); } else { - for (final CustomObjective co : plugin.getCustomObjectives()) { + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getModuleName().equals(moduleName)) { text.append(ChatColor.DARK_PURPLE).append(" - ").append(co.getName()).append("\n"); } @@ -2521,7 +2521,7 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { line.addExtra(link); line.addExtra(ChatColor.DARK_AQUA + "(" + Lang.get("stageEditorNoModules") + ") "); } else { - for (final CustomObjective co : plugin.getCustomObjectives()) { + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getModuleName().equals(moduleName)) { final TextComponent click = new TextComponent(ChatColor.DARK_PURPLE + " - " + co.getName() + "\n"); @@ -2541,8 +2541,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { public Prompt acceptInput(final @NotNull ConversationContext context, final String input) { if (input != null && !input.equalsIgnoreCase(Lang.get("cmdCancel")) && !input.equalsIgnoreCase(Lang.get("cmdClear"))) { - CustomObjective found = null; - for (final CustomObjective co : plugin.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getModuleName().equals(moduleName)) { if (co.getName().toLowerCase().contains(input.toLowerCase())) { found = co; @@ -2619,8 +2619,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (list != null && plugin != null) { final String objName = list.getLast(); text.append(objName).append(" -\n"); - CustomObjective found = null; - for (final CustomObjective co : plugin.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getName().equals(objName)) { found = co; break; @@ -2645,8 +2645,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { if (counts != null && list != null && plugin != null) { counts.set(counts.size() - 1, num); final String objName = list.getLast(); - CustomObjective found = null; - for (final CustomObjective co : plugin.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getName().equals(objName)) { found = co; break; @@ -2682,8 +2682,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { + CK.S_CUSTOM_OBJECTIVES_DATA); if (list != null && plugin != null) { final String objName = list.getLast(); - CustomObjective found = null; - for (final CustomObjective co : plugin.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getName().equals(objName)) { found = co; break; @@ -2726,8 +2726,8 @@ public class StageMainPrompt extends QuestsEditorNumericPrompt { + CK.S_CUSTOM_OBJECTIVES); if (list != null && plugin != null) { final String objName = list.getLast(); - CustomObjective found = null; - for (final CustomObjective co : plugin.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getName().equals(objName)) { found = co; break; diff --git a/core/src/main/java/me/blackvein/quests/dependencies/DenizenTrigger.java b/core/src/main/java/me/blackvein/quests/dependencies/DenizenTrigger.java index 7798b01fa..d9e660cea 100644 --- a/core/src/main/java/me/blackvein/quests/dependencies/DenizenTrigger.java +++ b/core/src/main/java/me/blackvein/quests/dependencies/DenizenTrigger.java @@ -12,7 +12,7 @@ package me.blackvein.quests.dependencies; -import me.blackvein.quests.Quester; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; public class DenizenTrigger { @@ -21,7 +21,7 @@ public class DenizenTrigger { public DenizenTrigger(final Quests plugin) { this.plugin = plugin; } - public boolean runDenizenScript(final String scriptName, final Quester quester) { + public boolean runDenizenScript(final String scriptName, final IQuester quester) { if (scriptName == null) { return false; } diff --git a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandEvent.java b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandEvent.java similarity index 99% rename from api/src/main/java/me/blackvein/quests/events/command/QuestsCommandEvent.java rename to core/src/main/java/me/blackvein/quests/events/command/QuestsCommandEvent.java index 060a70146..4584d824d 100644 --- a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.command; -import org.bukkit.event.HandlerList; - import me.blackvein.quests.Quester; import me.blackvein.quests.events.QuestsEvent; +import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** diff --git a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsEditorEvent.java b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsEditorEvent.java similarity index 99% rename from api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsEditorEvent.java rename to core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsEditorEvent.java index 907b47599..92d469916 100644 --- a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsEditorEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsEditorEvent.java @@ -12,11 +12,10 @@ package me.blackvein.quests.events.command; +import me.blackvein.quests.Quester; import org.bukkit.conversations.ConversationContext; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** diff --git a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsJournalEvent.java b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsJournalEvent.java similarity index 99% rename from api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsJournalEvent.java rename to core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsJournalEvent.java index 12750c308..07a6bb349 100644 --- a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsJournalEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsJournalEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.command; +import me.blackvein.quests.Quester; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** diff --git a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsListEvent.java b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsListEvent.java similarity index 99% rename from api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsListEvent.java rename to core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsListEvent.java index 31f2fdf0e..e71e90593 100644 --- a/api/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsListEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/command/QuestsCommandPreQuestsListEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.command; +import me.blackvein.quests.Quester; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterEvent.java similarity index 99% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterEvent.java index 03b46d110..d64ac83c1 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.quester; -import org.bukkit.event.HandlerList; - import me.blackvein.quests.Quester; import me.blackvein.quests.events.QuestsEvent; +import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostChangeStageEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostChangeStageEvent.java similarity index 90% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPostChangeStageEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPostChangeStageEvent.java index 2bba513eb..da2b850ee 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostChangeStageEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostChangeStageEvent.java @@ -12,11 +12,10 @@ package me.blackvein.quests.events.quester; -import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; import me.blackvein.quests.Quester; -import me.blackvein.quests.Stage; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Stage; +import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** @@ -24,11 +23,11 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPostChangeStageEvent extends QuesterEvent { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private final Stage current; private final Stage next; - public QuesterPostChangeStageEvent(final Quester quester, final Quest quest, final Stage current, final Stage next) { + public QuesterPostChangeStageEvent(final Quester quester, final IQuest quest, final Stage current, final Stage next) { super(quester); this.quest = quest; this.current = current; @@ -40,7 +39,7 @@ public class QuesterPostChangeStageEvent extends QuesterEvent { * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostCompleteQuestEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostCompleteQuestEvent.java similarity index 92% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPostCompleteQuestEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPostCompleteQuestEvent.java index 0abf1b0ab..05d79a284 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostCompleteQuestEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostCompleteQuestEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.quester; -import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** @@ -23,9 +22,9 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPostCompleteQuestEvent extends QuesterEvent { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; - public QuesterPostCompleteQuestEvent(final Quester quester, final Quest quest) { + public QuesterPostCompleteQuestEvent(final Quester quester, final IQuest quest) { super(quester); this.quest = quest; } @@ -35,7 +34,7 @@ public class QuesterPostCompleteQuestEvent extends QuesterEvent { * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostFailQuestEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostFailQuestEvent.java similarity index 92% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPostFailQuestEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPostFailQuestEvent.java index 9eb099b8f..2d6f1a133 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostFailQuestEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostFailQuestEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.quester; -import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** @@ -23,9 +22,9 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPostFailQuestEvent extends QuesterEvent { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; - public QuesterPostFailQuestEvent(final Quester quester, final Quest quest) { + public QuesterPostFailQuestEvent(final Quester quester, final IQuest quest) { super(quester); this.quest = quest; } @@ -35,7 +34,7 @@ public class QuesterPostFailQuestEvent extends QuesterEvent { * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostStartQuestEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostStartQuestEvent.java similarity index 92% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPostStartQuestEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPostStartQuestEvent.java index bfc422033..23112b2c0 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostStartQuestEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostStartQuestEvent.java @@ -12,10 +12,9 @@ package me.blackvein.quests.events.quester; -import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** @@ -23,9 +22,9 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPostStartQuestEvent extends QuesterEvent { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; - public QuesterPostStartQuestEvent(final Quester quester, final Quest quest) { + public QuesterPostStartQuestEvent(final Quester quester, final IQuest quest) { super(quester); this.quest = quest; } @@ -35,7 +34,7 @@ public class QuesterPostStartQuestEvent extends QuesterEvent { * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostUpdateObjectiveEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostUpdateObjectiveEvent.java similarity index 91% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPostUpdateObjectiveEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPostUpdateObjectiveEvent.java index b3095294d..4305ae2d5 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPostUpdateObjectiveEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPostUpdateObjectiveEvent.java @@ -12,12 +12,11 @@ package me.blackvein.quests.events.quester; +import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Objective; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Objective; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** @@ -25,11 +24,11 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPostUpdateObjectiveEvent extends QuesterEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private final Objective objective; private boolean cancel = false; - public QuesterPostUpdateObjectiveEvent(final Quester quester, final Quest quest, final Objective objective) { + public QuesterPostUpdateObjectiveEvent(final Quester quester, final IQuest quest, final Objective objective) { super(quester); this.quest = quest; this.objective = objective; @@ -40,7 +39,7 @@ public class QuesterPostUpdateObjectiveEvent extends QuesterEvent implements Can * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreChangeStageEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreChangeStageEvent.java similarity index 91% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPreChangeStageEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPreChangeStageEvent.java index 4992facc9..e17ce19dd 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreChangeStageEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreChangeStageEvent.java @@ -12,12 +12,11 @@ package me.blackvein.quests.events.quester; +import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Stage; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; -import me.blackvein.quests.Stage; import org.jetbrains.annotations.NotNull; /** @@ -25,12 +24,12 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPreChangeStageEvent extends QuesterEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private final Stage current; private final Stage next; private boolean cancel = false;; - public QuesterPreChangeStageEvent(final Quester quester, final Quest quest, final Stage current, final Stage next) { + public QuesterPreChangeStageEvent(final Quester quester, final IQuest quest, final Stage current, final Stage next) { super(quester); this.quest = quest; this.current = current; @@ -42,7 +41,7 @@ public class QuesterPreChangeStageEvent extends QuesterEvent implements Cancella * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreCompleteQuestEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreCompleteQuestEvent.java similarity index 92% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPreCompleteQuestEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPreCompleteQuestEvent.java index d097c393f..fd7657c51 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreCompleteQuestEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreCompleteQuestEvent.java @@ -12,11 +12,10 @@ package me.blackvein.quests.events.quester; +import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** @@ -24,15 +23,15 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPreCompleteQuestEvent extends QuesterEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private boolean cancel = false; - public QuesterPreCompleteQuestEvent(final Quester quester, final Quest quest) { + public QuesterPreCompleteQuestEvent(final Quester quester, final IQuest quest) { super(quester); this.quest = quest; } - public QuesterPreCompleteQuestEvent(final Quester quester, final Quest quest, final boolean async) { + public QuesterPreCompleteQuestEvent(final Quester quester, final IQuest quest, final boolean async) { super(quester, async); this.quest = quest; } @@ -42,7 +41,7 @@ public class QuesterPreCompleteQuestEvent extends QuesterEvent implements Cancel * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreFailQuestEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreFailQuestEvent.java similarity index 93% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPreFailQuestEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPreFailQuestEvent.java index ce23390c3..d544c7b8d 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreFailQuestEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreFailQuestEvent.java @@ -12,11 +12,10 @@ package me.blackvein.quests.events.quester; +import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** @@ -24,10 +23,10 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPreFailQuestEvent extends QuesterEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private boolean cancel = false; - public QuesterPreFailQuestEvent(final Quester quester, final Quest quest) { + public QuesterPreFailQuestEvent(final Quester quester, final IQuest quest) { super(quester); this.quest = quest; } @@ -37,7 +36,7 @@ public class QuesterPreFailQuestEvent extends QuesterEvent implements Cancellabl * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreOpenGUIEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreOpenGUIEvent.java similarity index 100% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPreOpenGUIEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPreOpenGUIEvent.java diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreStartQuestEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreStartQuestEvent.java similarity index 93% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPreStartQuestEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPreStartQuestEvent.java index dda811e3b..b1072383d 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreStartQuestEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreStartQuestEvent.java @@ -12,11 +12,10 @@ package me.blackvein.quests.events.quester; +import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** @@ -24,10 +23,10 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPreStartQuestEvent extends QuesterEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private boolean cancel = false; - public QuesterPreStartQuestEvent(final Quester quester, final Quest quest) { + public QuesterPreStartQuestEvent(final Quester quester, final IQuest quest) { super(quester); this.quest = quest; } @@ -37,7 +36,7 @@ public class QuesterPreStartQuestEvent extends QuesterEvent implements Cancellab * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreUpdateObjectiveEvent.java b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreUpdateObjectiveEvent.java similarity index 91% rename from api/src/main/java/me/blackvein/quests/events/quester/QuesterPreUpdateObjectiveEvent.java rename to core/src/main/java/me/blackvein/quests/events/quester/QuesterPreUpdateObjectiveEvent.java index ec47cafeb..4e7341432 100644 --- a/api/src/main/java/me/blackvein/quests/events/quester/QuesterPreUpdateObjectiveEvent.java +++ b/core/src/main/java/me/blackvein/quests/events/quester/QuesterPreUpdateObjectiveEvent.java @@ -12,12 +12,11 @@ package me.blackvein.quests.events.quester; +import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.quests.Objective; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; - -import me.blackvein.quests.Objective; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; import org.jetbrains.annotations.NotNull; /** @@ -25,11 +24,11 @@ import org.jetbrains.annotations.NotNull; */ public class QuesterPreUpdateObjectiveEvent extends QuesterEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); - private final Quest quest; + private final IQuest quest; private final Objective objective; private boolean cancel = false; - public QuesterPreUpdateObjectiveEvent(final Quester quester, final Quest quest, final Objective objective) { + public QuesterPreUpdateObjectiveEvent(final Quester quester, final IQuest quest, final Objective objective) { super(quester); this.quest = quest; this.objective = objective; @@ -40,7 +39,7 @@ public class QuesterPreUpdateObjectiveEvent extends QuesterEvent implements Canc * * @return Quest which is involved in this event */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java b/core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java index 514c6d9a6..621fe05a1 100644 --- a/core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java +++ b/core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java @@ -12,17 +12,17 @@ package me.blackvein.quests.exceptions; -import me.blackvein.quests.Quest; +import me.blackvein.quests.quests.IQuest; public class StageFormatException extends Exception { private static final long serialVersionUID = -8217391053042612896L; private final String message; - private final Quest quest; + private final IQuest quest; private final int stage; - public StageFormatException(final String message, final Quest quest, final int stage) { + public StageFormatException(final String message, final IQuest quest, final int stage) { super(message + ", see quest " + quest.getName() + " stage " + stage); this.message = message + ", see quest " + quest.getName() + " stage " + stage; this.quest = quest; @@ -44,7 +44,7 @@ public class StageFormatException extends Exception { * * @return The quest that an invalid stage id was set within. */ - public Quest getQuest() { + public IQuest getQuest() { return quest; } diff --git a/core/src/main/java/me/blackvein/quests/item/QuestJournal.java b/core/src/main/java/me/blackvein/quests/item/QuestJournal.java index 034c10cb9..9a3fdb91c 100644 --- a/core/src/main/java/me/blackvein/quests/item/QuestJournal.java +++ b/core/src/main/java/me/blackvein/quests/item/QuestJournal.java @@ -12,8 +12,8 @@ package me.blackvein.quests.item; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.util.Lang; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -27,10 +27,10 @@ import java.util.stream.Collectors; public class QuestJournal { - final Quester owner; + final IQuester owner; ItemStack journal = new ItemStack(Material.WRITTEN_BOOK); - public QuestJournal(final Quester owner) { + public QuestJournal(final IQuester owner) { this.owner = owner; final BookMeta book = (BookMeta) journal.getItemMeta(); if (book != null) { @@ -45,10 +45,10 @@ public class QuestJournal { int currentLength = 0; int currentLines = 0; StringBuilder page = new StringBuilder(); - final List sortedList = owner.getCurrentQuests().keySet().stream() - .sorted(Comparator.comparing(Quest::getName)) + final List sortedList = owner.getCurrentQuests().keySet().stream() + .sorted(Comparator.comparing(IQuest::getName)) .collect(Collectors.toList()); - for (final Quest quest : sortedList) { + for (final IQuest quest : sortedList) { if ((currentLength + quest.getName().length() > 240) || (currentLines + ((quest.getName().length() % 19) == 0 ? (quest.getName().length() / 19) : ((quest.getName().length() / 19) + 1))) > 13) { @@ -90,7 +90,7 @@ public class QuestJournal { } } - public Quester getOwner() { + public IQuester getOwner() { return owner; } diff --git a/core/src/main/java/me/blackvein/quests/listeners/BlockListener.java b/core/src/main/java/me/blackvein/quests/listeners/BlockListener.java index 98f1517ae..4149a9f3d 100644 --- a/core/src/main/java/me/blackvein/quests/listeners/BlockListener.java +++ b/core/src/main/java/me/blackvein/quests/listeners/BlockListener.java @@ -12,10 +12,11 @@ package me.blackvein.quests.listeners; -import me.blackvein.quests.Quest; import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.enums.ObjectiveType; import me.blackvein.quests.events.quester.QuesterPostUpdateObjectiveEvent; import me.blackvein.quests.events.quester.QuesterPreUpdateObjectiveEvent; @@ -62,7 +63,7 @@ public class BlockListener implements Listener { final Set dispatchedBreakQuestIDs = new HashSet<>(); final Set dispatchedPlaceQuestIDs = new HashSet<>(); final Set dispatchedCutQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!evt.isCancelled()) { if (!quester.meetsCondition(quest, true)) { continue; @@ -84,7 +85,7 @@ public class BlockListener implements Listener { // Multiplayer dispatchedBreakQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, breakType, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedBreakQuestIDs.contains(cq.getId())) { q.breakBlock(cq, blockItemStack); } @@ -120,7 +121,7 @@ public class BlockListener implements Listener { } } dispatchedPlaceQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, placeType, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedPlaceQuestIDs.contains(cq.getId())) { for (final ItemStack is : q.getQuestData(cq).blocksPlaced) { if (evt.getBlock().getType().equals(is.getType()) && is.getAmount() > 0) { @@ -132,7 +133,7 @@ public class BlockListener implements Listener { } final QuesterPreUpdateObjectiveEvent preEvent - = new QuesterPreUpdateObjectiveEvent(q, cq, + = new QuesterPreUpdateObjectiveEvent((Quester) q, cq, new BukkitObjective(placeType, is.getAmount(), toPlace.getAmount())); plugin.getServer().getPluginManager().callEvent(preEvent); @@ -142,7 +143,7 @@ public class BlockListener implements Listener { q.getQuestData(cq).blocksPlaced.set(index, is); final QuesterPostUpdateObjectiveEvent postEvent - = new QuesterPostUpdateObjectiveEvent(q, cq, + = new QuesterPostUpdateObjectiveEvent((Quester) q, cq, new BukkitObjective(placeType, newAmount, toPlace.getAmount())); plugin.getServer().getPluginManager().callEvent(postEvent); } @@ -156,7 +157,7 @@ public class BlockListener implements Listener { } } dispatchedCutQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, cutType, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedCutQuestIDs.contains(cq.getId())) { if (player.getItemInHand().getType().equals(Material.SHEARS)) { q.cutBlock(cq, blockItemStack); @@ -177,10 +178,10 @@ public class BlockListener implements Listener { if (plugin.canUseQuests(player.getUniqueId())) { final ItemStack blockItemStack = new ItemStack(evt.getBlock().getType(), 1, evt.getBlock().getState() .getData().toItemStack().getDurability()); - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.DAMAGE_BLOCK; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -191,7 +192,7 @@ public class BlockListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.placeBlock(cq, blockItemStack); } @@ -208,10 +209,10 @@ public class BlockListener implements Listener { if (plugin.canUseQuests(player.getUniqueId())) { final ItemStack blockItemStack = new ItemStack(evt.getBlock().getType(), 1, evt.getBlock().getState() .getData().toItemStack().getDurability()); - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.PLACE_BLOCK; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!evt.isCancelled()) { if (!quester.meetsCondition(quest, true)) { continue; @@ -223,7 +224,7 @@ public class BlockListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.placeBlock(cq, blockItemStack); } @@ -246,7 +247,7 @@ public class BlockListener implements Listener { if (e == null || e.equals(EquipmentSlot.HAND)) { //If the event is fired by HAND (main hand) final Player player = evt.getPlayer(); if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); if (quester.isSelectingBlock()) { return; } @@ -256,7 +257,7 @@ public class BlockListener implements Listener { .getClickedBlock().getState().getData().toItemStack().getDurability()); final ObjectiveType type = ObjectiveType.USE_BLOCK; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -267,7 +268,7 @@ public class BlockListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.useBlock(cq, blockItemStack); } diff --git a/core/src/main/java/me/blackvein/quests/listeners/CmdExecutor.java b/core/src/main/java/me/blackvein/quests/listeners/CmdExecutor.java index 1a53d1b2f..e5a9f2f31 100644 --- a/core/src/main/java/me/blackvein/quests/listeners/CmdExecutor.java +++ b/core/src/main/java/me/blackvein/quests/listeners/CmdExecutor.java @@ -12,18 +12,18 @@ package me.blackvein.quests.listeners; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; -import me.blackvein.quests.Requirements; -import me.blackvein.quests.Stage; +import me.blackvein.quests.quests.Requirements; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.events.command.QuestsCommandPreQuestsEditorEvent; import me.blackvein.quests.events.command.QuestsCommandPreQuestsJournalEvent; import me.blackvein.quests.events.command.QuestsCommandPreQuestsListEvent; import me.blackvein.quests.events.quest.QuestQuitEvent; import me.blackvein.quests.interfaces.ReloadCallback; import me.blackvein.quests.item.QuestJournal; -import me.blackvein.quests.player.BukkitQuester; +import me.blackvein.quests.Quester; import me.blackvein.quests.storage.Storage; import me.blackvein.quests.util.ItemUtil; import me.blackvein.quests.util.Lang; @@ -197,9 +197,9 @@ public class CmdExecutor implements CommandExecutor { if (cs.hasPermission("quests.quest")) { if (args.length == 0) { final Player player = (Player) cs; - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); if (!quester.getCurrentQuests().isEmpty()) { - for (final Quest q : quester.getCurrentQuests().keySet()) { + for (final IQuest q : quester.getCurrentQuests().keySet()) { final Stage stage = quester.getCurrentStage(q); q.updateCompass(quester, stage); if (plugin.getQuester(player.getUniqueId()).getQuestData(q).getDelayStartTime() == 0) { @@ -345,10 +345,10 @@ public class CmdExecutor implements CommandExecutor { index++; } } - final Quest q = plugin.getQuest(name.toString()); + final IQuest q = plugin.getQuest(name.toString()); if (q != null) { final Player player = (Player) cs; - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); cs.sendMessage(ChatColor.GOLD + "- " + q.getName() + " -"); cs.sendMessage(" "); if (q.getNpcStart() != null) { @@ -437,7 +437,7 @@ public class CmdExecutor implements CommandExecutor { } } if (!reqs.getNeededQuests().isEmpty()) { - for (final Quest quest : reqs.getNeededQuests()) { + for (final IQuest quest : reqs.getNeededQuests()) { if (quester.getCompletedQuests().contains(quest)) { cs.sendMessage(ChatColor.GRAY + "- " + ChatColor.GREEN + Lang.get("complete") + " " + ChatColor.ITALIC + quest.getName()); @@ -448,7 +448,7 @@ public class CmdExecutor implements CommandExecutor { } } if (!reqs.getBlockQuests().isEmpty()) { - for (final Quest quest : reqs.getBlockQuests()) { + for (final IQuest quest : reqs.getBlockQuests()) { if (quester.getCompletedQuests().contains(quest)) { String msg = Lang.get("haveCompleted"); msg = msg.replace("", ChatColor.ITALIC + "" + ChatColor.DARK_PURPLE @@ -614,7 +614,7 @@ public class CmdExecutor implements CommandExecutor { } else { target = Bukkit.getOfflinePlayer(((Player)cs).getUniqueId()); } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); cs.sendMessage(ChatColor.GOLD + "- " + target.getName() + " -"); cs.sendMessage(ChatColor.YELLOW + Lang.get("questPoints") + " - " + ChatColor.DARK_PURPLE + quester.getQuestPoints()); @@ -622,8 +622,8 @@ public class CmdExecutor implements CommandExecutor { cs.sendMessage(ChatColor.YELLOW + Lang.get("currentQuest") + " " + ChatColor.DARK_PURPLE+ Lang.get("none")); } else { cs.sendMessage(ChatColor.YELLOW + Lang.get("currentQuest")); - for (final Entry set : quester.getCurrentQuests().entrySet()) { - final Quest q = set.getKey(); + for (final Entry set : quester.getCurrentQuests().entrySet()) { + final IQuest q = set.getKey(); final String msg = ChatColor.LIGHT_PURPLE + " - " + ChatColor.DARK_PURPLE + q.getName() + ChatColor.LIGHT_PURPLE + " (" + Lang.get("stageEditorStage") + " " + (set.getValue() + 1) + ")"; cs.sendMessage(msg); @@ -636,7 +636,7 @@ public class CmdExecutor implements CommandExecutor { } else { final StringBuilder completed = new StringBuilder(" "); int index = 1; - for (final Quest q : quester.getCompletedQuests()) { + for (final IQuest q : quester.getCompletedQuests()) { completed.append(ChatColor.DARK_PURPLE).append(q.getName()); if (quester.getAmountsCompleted().containsKey(q) && quester.getAmountsCompleted().get(q) > 1) { completed.append(ChatColor.LIGHT_PURPLE).append(" (x").append(quester.getAmountsCompleted() @@ -697,9 +697,9 @@ public class CmdExecutor implements CommandExecutor { Lang.send(player, ChatColor.RED + Lang.get(player, "COMMAND_QUIT_HELP")); return; } - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); if (!quester.getCurrentQuests().isEmpty()) { - final Quest quest = plugin.getQuest(concatArgArray(args, 1, args.length - 1, ' ')); + final IQuest quest = plugin.getQuest(concatArgArray(args, 1, args.length - 1, ' ')); if (quest != null) { if (quest.getOptions().canAllowQuitting()) { final QuestQuitEvent event = new QuestQuitEvent(quest, quester); @@ -730,10 +730,10 @@ public class CmdExecutor implements CommandExecutor { if (args.length == 1) { Lang.send(player, ChatColor.YELLOW + Lang.get(player, "COMMAND_TAKE_USAGE")); } else { - final Quest questToFind = plugin.getQuest(concatArgArray(args, 1, args.length - 1, ' ')); - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuest questToFind = plugin.getQuest(concatArgArray(args, 1, args.length - 1, ' ')); + final IQuester quester = plugin.getQuester(player.getUniqueId()); if (questToFind != null) { - for (final Quest q : quester.getCurrentQuests().keySet()) { + for (final IQuest q : quester.getCurrentQuests().keySet()) { if (q.getId().equals(questToFind.getId())) { Lang.send(player, ChatColor.RED + Lang.get(player, "questAlreadyOn")); return; @@ -757,7 +757,7 @@ public class CmdExecutor implements CommandExecutor { if (!(cs instanceof Player)) { int num = 1; cs.sendMessage(ChatColor.GOLD + Lang.get("questListTitle")); - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { cs.sendMessage(ChatColor.YELLOW + "" + num + ". " + q.getName()); num++; } @@ -781,7 +781,8 @@ public class CmdExecutor implements CommandExecutor { cs.sendMessage(ChatColor.YELLOW + Lang.get("pageSelectionPosNum")); } else { final Quester quester = plugin.getQuester(player.getUniqueId()); - final QuestsCommandPreQuestsListEvent preEvent = new QuestsCommandPreQuestsListEvent(quester, page); + final QuestsCommandPreQuestsListEvent preEvent + = new QuestsCommandPreQuestsListEvent(quester, page); plugin.getServer().getPluginManager().callEvent(preEvent); if (preEvent.isCancelled()) { return; @@ -936,7 +937,7 @@ public class CmdExecutor implements CommandExecutor { cs.sendMessage(ChatColor.YELLOW + Lang.get("inputNum")); return; } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); quester.setQuestPoints(quester.getQuestPoints() + Math.abs(points)); String msg1 = Lang.get("giveQuestPoints").replace("", Lang.get("questPoints")); msg1 = msg1.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); @@ -973,7 +974,7 @@ public class CmdExecutor implements CommandExecutor { cs.sendMessage(ChatColor.YELLOW + Lang.get("inputNum")); return; } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); quester.setQuestPoints(quester.getQuestPoints() - Math.abs(points)); String msg1 = Lang.get("takeQuestPoints").replace("", Lang.get("questPoints")); msg1 = msg1.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); @@ -1010,7 +1011,7 @@ public class CmdExecutor implements CommandExecutor { cs.sendMessage(ChatColor.YELLOW + Lang.get("inputNum")); return; } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); quester.setQuestPoints(points); String msg1 = Lang.get("setQuestPoints").replace("", Lang.get("questPoints")); msg1 = msg1.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); @@ -1040,7 +1041,7 @@ public class CmdExecutor implements CommandExecutor { return; } } - final Quest questToGive; + final IQuest questToGive; StringBuilder name = new StringBuilder(); if (args.length == 3) { name = new StringBuilder(args[2].toLowerCase()); @@ -1058,8 +1059,8 @@ public class CmdExecutor implements CommandExecutor { if (questToGive == null) { cs.sendMessage(ChatColor.YELLOW + Lang.get("questNotFound")); } else { - final Quester quester = plugin.getQuester(target.getUniqueId()); - for (final Quest q : quester.getCurrentQuests().keySet()) { + final IQuester quester = plugin.getQuester(target.getUniqueId()); + for (final IQuest q : quester.getCurrentQuests().keySet()) { if (q.getName().equalsIgnoreCase(questToGive.getName())) { String msg = Lang.get("questsPlayerHasQuestAlready"); msg = msg.replace("", ChatColor.ITALIC + "" + ChatColor.GREEN + target.getName() @@ -1104,7 +1105,7 @@ public class CmdExecutor implements CommandExecutor { } cs.sendMessage(ChatColor.YELLOW + Lang.get("settingAllQuestPoints") .replace("", Lang.get("questPoints"))); - for (final Quester q : plugin.getOfflineQuesters()) { + for (final IQuester q : plugin.getOfflineQuesters()) { q.setQuestPoints(amount); } Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { @@ -1159,13 +1160,13 @@ public class CmdExecutor implements CommandExecutor { return; } } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); if (quester.getCurrentQuests().isEmpty() && target.getName() != null) { String msg = Lang.get("noCurrentQuest"); msg = msg.replace("", target.getName()); cs.sendMessage(ChatColor.YELLOW + msg); } else { - final Quest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); + final IQuest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); if (quest == null) { cs.sendMessage(ChatColor.RED + Lang.get("questNotFound")); return; @@ -1211,13 +1212,13 @@ public class CmdExecutor implements CommandExecutor { cs.sendMessage(ChatColor.YELLOW + Lang.get("COMMAND_QUESTADMIN_SETSTAGE_USAGE")); return; } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); if (quester.getCurrentQuests().isEmpty() && target.getName() != null) { String msg = Lang.get("noCurrentQuest"); msg = msg.replace("", target.getName()); cs.sendMessage(ChatColor.YELLOW + msg); } else { - final Quest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 2, ' ')); + final IQuest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 2, ' ')); if (quest == null) { cs.sendMessage(ChatColor.RED + Lang.get("questNotFound")); return; @@ -1247,13 +1248,13 @@ public class CmdExecutor implements CommandExecutor { return; } } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); if (quester.getCurrentQuests().isEmpty() && target.getName() != null) { String msg = Lang.get("noCurrentQuest"); msg = msg.replace("", target.getName()); cs.sendMessage(ChatColor.YELLOW + msg); } else { - final Quest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); + final IQuest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); if (quest == null) { cs.sendMessage(ChatColor.RED + Lang.get("questNotFound")); return; @@ -1288,13 +1289,13 @@ public class CmdExecutor implements CommandExecutor { return; } } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); if (quester.getCurrentQuests().isEmpty() && target.getName() != null) { String msg = Lang.get("noCurrentQuest"); msg = msg.replace("", target.getName()); cs.sendMessage(ChatColor.YELLOW + msg); } else { - final Quest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); + final IQuest quest = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); if (quest == null) { cs.sendMessage(ChatColor.RED + Lang.get("questNotFound")); return; @@ -1325,10 +1326,10 @@ public class CmdExecutor implements CommandExecutor { } } final UUID id = target.getUniqueId(); - final ConcurrentSkipListSet temp = (ConcurrentSkipListSet) plugin.getOfflineQuesters(); + final ConcurrentSkipListSet temp = (ConcurrentSkipListSet) plugin.getOfflineQuesters(); temp.removeIf(quester -> quester.getUUID().equals(id)); plugin.setOfflineQuesters(temp); - Quester quester = plugin.getQuester(id); + IQuester quester = plugin.getQuester(id); try { quester.hardClear(); quester.saveData(); @@ -1346,9 +1347,9 @@ public class CmdExecutor implements CommandExecutor { } catch (final Exception e) { plugin.getLogger().info("Data file does not exist for " + id); } - quester = new BukkitQuester(plugin, id); + quester = new Quester(plugin, id); quester.saveData(); - final ConcurrentSkipListSet temp2 = (ConcurrentSkipListSet) plugin.getOfflineQuesters(); + final ConcurrentSkipListSet temp2 = (ConcurrentSkipListSet) plugin.getOfflineQuesters(); temp2.add(quester); plugin.setOfflineQuesters(temp2); } else { @@ -1375,12 +1376,12 @@ public class CmdExecutor implements CommandExecutor { return; } } - final Quest toRemove = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); + final IQuest toRemove = plugin.getQuest(concatArgArray(args, 2, args.length - 1, ' ')); if (toRemove == null) { cs.sendMessage(ChatColor.RED + Lang.get("questNotFound")); return; } - final Quester quester = plugin.getQuester(target.getUniqueId()); + final IQuester quester = plugin.getQuester(target.getUniqueId()); String msg = Lang.get("questRemoved"); if (target.getName() != null) { msg = msg.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); diff --git a/core/src/main/java/me/blackvein/quests/listeners/ItemListener.java b/core/src/main/java/me/blackvein/quests/listeners/ItemListener.java index 1a7e710af..5653230cc 100644 --- a/core/src/main/java/me/blackvein/quests/listeners/ItemListener.java +++ b/core/src/main/java/me/blackvein/quests/listeners/ItemListener.java @@ -12,8 +12,8 @@ package me.blackvein.quests.listeners; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.enums.ObjectiveType; import org.bukkit.Material; @@ -49,10 +49,10 @@ public class ItemListener implements Listener { final Player player = (Player) evt.getWhoClicked(); if (plugin.canUseQuests(player.getUniqueId())) { final ItemStack craftedItem = getCraftedItem(evt); - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.CRAFT_ITEM; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -62,7 +62,7 @@ public class ItemListener implements Listener { quester.craftItem(quest, craftedItem); } - dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final Quester q, final Quest cq) -> { + dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.craftItem(cq, craftedItem); } @@ -100,10 +100,10 @@ public class ItemListener implements Listener { || evt.getInventory().getType().name().equals("BLAST_FURNACE") || evt.getInventory().getType().name().equals("SMOKER")) { if (evt.getSlotType() == SlotType.RESULT) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.SMELT_ITEM; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -113,7 +113,7 @@ public class ItemListener implements Listener { quester.smeltItem(quest, evt.getCurrentItem()); } - dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final Quester q, final Quest cq) -> { + dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.smeltItem(cq, evt.getCurrentItem()); } @@ -123,10 +123,10 @@ public class ItemListener implements Listener { } } else if (evt.getInventory().getType() == InventoryType.BREWING) { if (evt.getSlotType() == SlotType.CRAFTING) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.BREW_ITEM; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -136,7 +136,7 @@ public class ItemListener implements Listener { quester.brewItem(quest, evt.getCurrentItem()); } - dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final Quester q, final Quest cq) -> { + dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.brewItem(cq, evt.getCurrentItem()); } @@ -154,10 +154,10 @@ public class ItemListener implements Listener { final ItemStack enchantedItem = evt.getItem().clone(); enchantedItem.setAmount(1); enchantedItem.addUnsafeEnchantments(evt.getEnchantsToAdd()); - final Quester quester = plugin.getQuester(evt.getEnchanter().getUniqueId()); + final IQuester quester = plugin.getQuester(evt.getEnchanter().getUniqueId()); final ObjectiveType type = ObjectiveType.ENCHANT_ITEM; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -171,7 +171,7 @@ public class ItemListener implements Listener { } } - dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final Quester q, final Quest cq) -> { + dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { if (enchantedItem.getType().equals(Material.BOOK)) { q.enchantBook(cq, enchantedItem, evt.getEnchantsToAdd()); @@ -191,10 +191,10 @@ public class ItemListener implements Listener { if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) { final ItemStack consumedItem = evt.getItem().clone(); consumedItem.setAmount(1); - final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); + final IQuester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); final ObjectiveType type = ObjectiveType.CONSUME_ITEM; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -204,7 +204,7 @@ public class ItemListener implements Listener { quester.consumeItem(quest, consumedItem); } - dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final Quester q, final Quest cq) -> { + dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.consumeItem(cq, consumedItem); } diff --git a/core/src/main/java/me/blackvein/quests/listeners/NpcListener.java b/core/src/main/java/me/blackvein/quests/listeners/NpcListener.java index 190ecab9b..0a77e019c 100644 --- a/core/src/main/java/me/blackvein/quests/listeners/NpcListener.java +++ b/core/src/main/java/me/blackvein/quests/listeners/NpcListener.java @@ -12,8 +12,8 @@ package me.blackvein.quests.listeners; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.enums.ObjectiveType; import me.blackvein.quests.util.ItemUtil; @@ -64,8 +64,8 @@ public class NpcListener implements Listener { } if (!evt.getClicker().isConversing()) { final Player player = evt.getClicker(); - final Quester quester = plugin.getQuester(player.getUniqueId()); - for (final Quest quest : quester.getCurrentQuests().keySet()) { + final IQuester quester = plugin.getQuester(player.getUniqueId()); + for (final IQuest quest : quester.getCurrentQuests().keySet()) { if (quester.getCurrentStage(quest).containsObjective(ObjectiveType.DELIVER_ITEM)) { final ItemStack hand = player.getItemInHand(); int currentIndex = -1; @@ -183,7 +183,7 @@ public class NpcListener implements Listener { } if (plugin.getQuestNpcIds().contains(evt.getNPC().getId())) { boolean hasObjective = false; - for (final Quest quest : quester.getCurrentQuests().keySet()) { + for (final IQuest quest : quester.getCurrentQuests().keySet()) { if (quester.getCurrentStage(quest).containsObjective(ObjectiveType.TALK_TO_NPC)) { final int npcIndex = quester.getCurrentStage(quest).getCitizensToInteract().indexOf(evt.getNPC().getId()); @@ -196,8 +196,8 @@ public class NpcListener implements Listener { } if (!hasObjective) { boolean hasAtLeastOneGUI = false; - final LinkedList npcQuests = new LinkedList<>(); - for (final Quest q : plugin.getLoadedQuests()) { + final LinkedList npcQuests = new LinkedList<>(); + for (final IQuest q : plugin.getLoadedQuests()) { if (quester.getCurrentQuests().containsKey(q)) continue; if (q.getNpcStart() != null && q.getNpcStart().getId() == evt.getNPC().getId()) { @@ -219,7 +219,7 @@ public class NpcListener implements Listener { } } if (npcQuests.size() == 1) { - final Quest q = npcQuests.get(0); + final IQuest q = npcQuests.get(0); if (quester.canAcceptOffer(q, true)) { quester.setQuestIdToTake(q.getId()); if (!plugin.getSettings().canAskConfirmation()) { @@ -289,8 +289,8 @@ public class NpcListener implements Listener { player = (Player) damager; } if (player != null) { - final Quester quester = plugin.getQuester(player.getUniqueId()); - for (final Quest quest : quester.getCurrentQuests().keySet()) { + final IQuester quester = plugin.getQuester(player.getUniqueId()); + for (final IQuest quest : quester.getCurrentQuests().keySet()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -301,7 +301,7 @@ public class NpcListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.killNPC(cq, evt.getNPC()); } @@ -312,8 +312,8 @@ public class NpcListener implements Listener { } } - private String extracted(final Quester quester) { - final Quest quest = plugin.getQuestById(quester.getQuestIdToTake()); + private String extracted(final IQuester quester) { + final IQuest quest = plugin.getQuestById(quester.getQuestIdToTake()); return MessageFormat.format("{0}- {1}{2}{3} -\n\n{4}{5}\n", ChatColor.GOLD, ChatColor.DARK_PURPLE, quest.getName(), ChatColor.GOLD, ChatColor.RESET, quest.getDescription()); } diff --git a/core/src/main/java/me/blackvein/quests/listeners/PlayerListener.java b/core/src/main/java/me/blackvein/quests/listeners/PlayerListener.java index 3b106b0b5..f9bc66020 100644 --- a/core/src/main/java/me/blackvein/quests/listeners/PlayerListener.java +++ b/core/src/main/java/me/blackvein/quests/listeners/PlayerListener.java @@ -12,12 +12,12 @@ package me.blackvein.quests.listeners; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; +import me.blackvein.quests.quests.Stage; import me.blackvein.quests.enums.ObjectiveType; -import me.blackvein.quests.player.BukkitQuester; +import me.blackvein.quests.Quester; import me.blackvein.quests.util.ItemUtil; import me.blackvein.quests.util.Lang; import me.blackvein.quests.util.MiscUtil; @@ -120,12 +120,12 @@ public class PlayerListener implements Listener { return; } } - final Quester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId()); + final IQuester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId()); final Player player = (Player) evt.getWhoClicked(); if (evt.getView().getTitle().contains(Lang.get(player, "quests"))) { final ItemStack clicked = evt.getCurrentItem(); if (ItemUtil.isItem(clicked)) { - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (quest.getGUIDisplay() != null) { if (ItemUtil.compareItems(clicked, quest.getGUIDisplay(), false) == 0) { if (quester.canAcceptOffer(quest, true)) { @@ -214,12 +214,12 @@ public class PlayerListener implements Listener { } } if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) { - final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); + final IQuester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); final Player player = evt.getPlayer(); if (evt.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { boolean hasObjective = false; if (!evt.isCancelled()) { - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (quester.getCurrentQuests().containsKey(quest) && quester.getCurrentStage(quest).containsObjective(ObjectiveType.USE_BLOCK)) { hasObjective = true; @@ -364,7 +364,7 @@ public class PlayerListener implements Listener { } evt.setCancelled(true); } else if (!player.isConversing()) { - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { if (q.getBlockStart() != null && evt.getClickedBlock() != null) { if (q.getBlockStart().equals(evt.getClickedBlock().getLocation())) { if (quester.getCurrentQuests().size() >= plugin.getSettings().getMaxQuests() @@ -398,7 +398,7 @@ public class PlayerListener implements Listener { if (!plugin.getSettings().canAskConfirmation()) { quester.takeQuest(q, false); } else { - final Quest quest = plugin.getQuestById(quester.getQuestIdToTake()); + final IQuest quest = plugin.getQuestById(quester.getQuestIdToTake()); final String s = ChatColor.GOLD + "- " + ChatColor.DARK_PURPLE + quest.getName() + ChatColor.GOLD + " -\n" + "\n" + ChatColor.RESET + quest.getDescription() + "\n"; @@ -450,10 +450,10 @@ public class PlayerListener implements Listener { if (evt.getItemStack() != null && evt.getItemStack().getType() == Material.MILK_BUCKET) { final Player player = evt.getPlayer(); if (plugin.canUseQuests(player.getUniqueId())) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.MILK_COW; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -464,7 +464,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.milkCow(cq); } @@ -478,8 +478,8 @@ public class PlayerListener implements Listener { @EventHandler public void onPlayerChat(final AsyncPlayerChatEvent evt) { if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) { - final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); - for (final Quest quest : plugin.getLoadedQuests()) { + final IQuester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -516,7 +516,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.sayPassword(cq, evt); } @@ -530,9 +530,9 @@ public class PlayerListener implements Listener { @EventHandler public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent evt) { if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) { - final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); + final IQuester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); if (!quester.getCurrentQuests().isEmpty()) { - for (final Quest quest : quester.getCurrentQuests().keySet()) { + for (final IQuest quest : quester.getCurrentQuests().keySet()) { if (!quest.getOptions().canAllowCommands()) { if (!evt.getMessage().startsWith("/quest")) { final Player player = evt.getPlayer(); @@ -570,10 +570,10 @@ public class PlayerListener implements Listener { final Player player = evt.getPlayer(); if (plugin.canUseQuests(player.getUniqueId())) { final Sheep sheep = (Sheep) evt.getEntity(); - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.SHEAR_SHEEP; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -584,7 +584,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.shearSheep(cq, sheep.getColor()); } @@ -600,10 +600,10 @@ public class PlayerListener implements Listener { if (evt.getOwner() instanceof Player) { final Player player = (Player) evt.getOwner(); if (plugin.canUseQuests(player.getUniqueId())) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.TAME_MOB; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -614,7 +614,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.tameMob(cq, evt.getEntityType()); } @@ -645,7 +645,7 @@ public class PlayerListener implements Listener { } else if (damager instanceof Wolf) { final Wolf wolf = (Wolf) damager; if (wolf.isTamed() && wolf.getOwner() != null) { - final Quester quester = plugin.getQuester(wolf.getOwner().getUniqueId()); + final IQuester quester = plugin.getQuester(wolf.getOwner().getUniqueId()); if (quester != null) { preKillPlayer(quester.getPlayer(), evt.getEntity()); } @@ -671,10 +671,10 @@ public class PlayerListener implements Listener { if (plugin.getDependencies().getCitizens() != null && CitizensAPI.getNPCRegistry().isNPC(target)) { return; } - final Quester quester = plugin.getQuester(damager.getUniqueId()); + final IQuester quester = plugin.getQuester(damager.getUniqueId()); final ObjectiveType type = ObjectiveType.KILL_MOB; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -687,7 +687,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.killMob(cq, target.getLocation(), target.getType()); } @@ -722,7 +722,7 @@ public class PlayerListener implements Listener { } else if (damager instanceof Wolf) { final Wolf wolf = (Wolf) damager; if (wolf.isTamed() && wolf.getOwner() != null) { - final Quester quester = plugin.getQuester(wolf.getOwner().getUniqueId()); + final IQuester quester = plugin.getQuester(wolf.getOwner().getUniqueId()); preKillPlayer(quester.getPlayer(), evt.getEntity()); } } else { @@ -732,8 +732,8 @@ public class PlayerListener implements Listener { final Player target = evt.getEntity(); if (plugin.canUseQuests(target.getUniqueId())) { - final Quester quester = plugin.getQuester(target.getUniqueId()); - for (final Quest quest : quester.getCurrentQuests().keySet()) { + final IQuester quester = plugin.getQuester(target.getUniqueId()); + for (final IQuest quest : quester.getCurrentQuests().keySet()) { final Stage stage = quester.getCurrentStage(quest); if (stage != null && stage.getDeathAction() != null) { quester.getCurrentStage(quest).getDeathAction().fire(quester, quest); @@ -775,10 +775,10 @@ public class PlayerListener implements Listener { return; } } - final Quester quester = plugin.getQuester(damager.getUniqueId()); + final IQuester quester = plugin.getQuester(damager.getUniqueId()); final ObjectiveType type = ObjectiveType.KILL_PLAYER; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -791,7 +791,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.killPlayer(cq, (Player)target); } @@ -805,10 +805,10 @@ public class PlayerListener implements Listener { public void onPlayerFish(final PlayerFishEvent evt) { final Player player = evt.getPlayer(); if (plugin.canUseQuests(player.getUniqueId())) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final ObjectiveType type = ObjectiveType.CATCH_FISH; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -820,7 +820,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { q.catchFish(cq); } @@ -835,9 +835,9 @@ public class PlayerListener implements Listener { public void onPlayerChangeWorld(final PlayerChangedWorldEvent event) { final Player player = event.getPlayer(); if (plugin.canUseQuests(player.getUniqueId())) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); quester.findCompassTarget(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { quester.meetsCondition(quest, true); } } @@ -847,7 +847,7 @@ public class PlayerListener implements Listener { public void onPlayerRespawn(final PlayerRespawnEvent event) { final Player player = event.getPlayer(); if (plugin.canUseQuests(player.getUniqueId())) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); Bukkit.getScheduler().runTaskLater(plugin, quester::findCompassTarget, 10); } } @@ -866,29 +866,29 @@ public class PlayerListener implements Listener { }); } if (plugin.canUseQuests(player.getUniqueId())) { - final Quester noobCheck = new BukkitQuester(plugin, player.getUniqueId()); + final IQuester noobCheck = new Quester(plugin, player.getUniqueId()); if (plugin.getSettings().canGenFilesOnJoin() && !noobCheck.hasData()) { noobCheck.saveData(); } plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> { - final CompletableFuture cf = plugin.getStorage().loadQuester(player.getUniqueId()); + final CompletableFuture cf = plugin.getStorage().loadQuester(player.getUniqueId()); try { - final Quester quester = cf.get(); + final IQuester quester = cf.get(); if (quester == null) { return; } - for (final Quest q : quester.getCompletedQuests()) { + for (final IQuest q : quester.getCompletedQuests()) { if (q != null) { if (!quester.getCompletedTimes().containsKey(q) && q.getPlanner().getCooldown() > -1) { quester.getCompletedTimes().put(q, System.currentTimeMillis()); } } } - for (final Quest quest : quester.getCurrentQuests().keySet()) { + for (final IQuest quest : quester.getCurrentQuests().keySet()) { quester.checkQuest(quest); } - for (final Quest quest : quester.getCurrentQuests().keySet()) { + for (final IQuest quest : quester.getCurrentQuests().keySet()) { if (quester.getCurrentStage(quest).getDelay() > -1) { quester.startStageTimer(quest); } @@ -911,8 +911,8 @@ public class PlayerListener implements Listener { @EventHandler public void onPlayerQuit(final PlayerQuitEvent evt) { if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) { - final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); - for (final Quest quest : quester.getCurrentQuests().keySet()) { + final IQuester quester = plugin.getQuester(evt.getPlayer().getUniqueId()); + for (final IQuest quest : quester.getCurrentQuests().keySet()) { final Stage currentStage = quester.getCurrentStage(quest); if (currentStage == null) { plugin.getLogger().severe("currentStage was null for " + quester.getUUID().toString() @@ -946,7 +946,7 @@ public class PlayerListener implements Listener { temp.remove(evt.getPlayer().getUniqueId()); plugin.getQuestFactory().setSelectingNpcs(temp); } - final ConcurrentSkipListSet temp = (ConcurrentSkipListSet) plugin.getOfflineQuesters(); + final ConcurrentSkipListSet temp = (ConcurrentSkipListSet) plugin.getOfflineQuesters(); temp.removeIf(q -> q.getUUID().equals(quester.getUUID())); plugin.setOfflineQuesters(temp); } @@ -979,12 +979,12 @@ public class PlayerListener implements Listener { */ public void playerMove(final UUID uuid, final Location location) { plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> { - final Quester quester = plugin.getQuester(uuid); + final IQuester quester = plugin.getQuester(uuid); if (quester != null) { if (plugin.canUseQuests(uuid)) { final ObjectiveType type = ObjectiveType.REACH_LOCATION; final Set dispatchedQuestIDs = new HashSet<>(); - for (final Quest quest : plugin.getLoadedQuests()) { + for (final IQuest quest : plugin.getLoadedQuests()) { if (!quester.meetsCondition(quest, true)) { continue; } @@ -998,7 +998,7 @@ public class PlayerListener implements Listener { } dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, type, - (final Quester q, final Quest cq) -> { + (final IQuester q, final IQuest cq) -> { if (!dispatchedQuestIDs.contains(cq.getId())) { plugin.getServer().getScheduler().runTask(plugin, () -> q .reachLocation(cq, location)); diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitObjective.java b/core/src/main/java/me/blackvein/quests/quests/BukkitObjective.java index 89a3243dd..6e2b55f2c 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitObjective.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitObjective.java @@ -12,7 +12,6 @@ package me.blackvein.quests.quests; -import me.blackvein.quests.Objective; import org.bukkit.inventory.ItemStack; import me.blackvein.quests.enums.ObjectiveType; diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitOptions.java b/core/src/main/java/me/blackvein/quests/quests/BukkitOptions.java index 00a01c085..7b6f03f90 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitOptions.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitOptions.java @@ -12,7 +12,7 @@ package me.blackvein.quests.quests; -public class BukkitOptions { +public class BukkitOptions implements Options { private boolean allowCommands = true; private boolean allowQuitting = true; private boolean ignoreSilkTouch = true; diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitPlanner.java b/core/src/main/java/me/blackvein/quests/quests/BukkitPlanner.java index 5e9ccd1b7..d4b1f00d7 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitPlanner.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitPlanner.java @@ -15,7 +15,7 @@ package me.blackvein.quests.quests; import java.util.Calendar; import java.util.TimeZone; -public class BukkitPlanner { +public class BukkitPlanner implements Planner { public String start = null; public String end = null; public long repeat = -1; diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitQuestFactory.java b/core/src/main/java/me/blackvein/quests/quests/BukkitQuestFactory.java index 2d8a67475..19e1bf224 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitQuestFactory.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitQuestFactory.java @@ -12,15 +12,8 @@ package me.blackvein.quests.quests; -import me.blackvein.quests.CustomObjective; -import me.blackvein.quests.Options; -import me.blackvein.quests.Planner; -import me.blackvein.quests.Quest; -import me.blackvein.quests.QuestFactory; +import me.blackvein.quests.module.ICustomObjective; import me.blackvein.quests.Quests; -import me.blackvein.quests.Requirements; -import me.blackvein.quests.Rewards; -import me.blackvein.quests.Stage; import me.blackvein.quests.convo.quests.main.QuestMainPrompt; import me.blackvein.quests.convo.quests.menu.QuestMenuPrompt; import me.blackvein.quests.convo.quests.stages.StageMenuPrompt; @@ -150,7 +143,7 @@ public class BukkitQuestFactory implements QuestFactory, ConversationAbandonedLi } @SuppressWarnings("deprecation") - public void loadQuest(final ConversationContext context, final Quest q) { + public void loadQuest(final ConversationContext context, final IQuest q) { context.setSessionData(CK.ED_QUEST_EDIT, q.getName()); context.setSessionData(CK.Q_ID, q.getId()); context.setSessionData(CK.Q_NAME, q.getName()); @@ -181,11 +174,11 @@ public class BukkitQuestFactory implements QuestFactory, ConversationAbandonedLi context.setSessionData(CK.REQ_ITEMS_REMOVE, requirements.getRemoveItems()); } if (!requirements.getNeededQuests().isEmpty()) { - final List ids = requirements.getNeededQuests().stream().map(Quest::getId).collect(Collectors.toList()); + final List ids = requirements.getNeededQuests().stream().map(IQuest::getId).collect(Collectors.toList()); context.setSessionData(CK.REQ_QUEST, ids); } if (!requirements.getBlockQuests().isEmpty()) { - final List ids = requirements.getBlockQuests().stream().map(Quest::getId).collect(Collectors.toList()); + final List ids = requirements.getBlockQuests().stream().map(IQuest::getId).collect(Collectors.toList()); context.setSessionData(CK.REQ_QUEST_BLOCK, ids); } if (!requirements.getMcmmoSkills().isEmpty()) { @@ -762,8 +755,8 @@ public class BukkitQuestFactory implements QuestFactory, ConversationAbandonedLi final ConfigurationSection sec2 = sec.createSection("custom" + (index + 1)); sec2.set("name", customObj.get(index)); sec2.set("count", customObjCounts.get(index)); - CustomObjective found = null; - for (final CustomObjective co : plugin.getCustomObjectives()) { + ICustomObjective found = null; + for (final ICustomObjective co : plugin.getCustomObjectives()) { if (co.getName().equals(customObj.get(index))) { found = co; break; diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitRequirements.java b/core/src/main/java/me/blackvein/quests/quests/BukkitRequirements.java index 82290731a..4a0f92a93 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitRequirements.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitRequirements.java @@ -19,13 +19,13 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -public class BukkitRequirements { +public class BukkitRequirements implements Requirements { private int money = 0; private int questPoints = 0; private List items = new LinkedList<>(); private List removeItems = new LinkedList<>(); - private List neededQuests = new LinkedList<>(); - private List blockQuests = new LinkedList<>(); + private List neededQuests = new LinkedList<>(); + private List blockQuests = new LinkedList<>(); private List permissions = new LinkedList<>(); private List mcmmoSkills = new LinkedList<>(); private List mcmmoAmounts = new LinkedList<>(); @@ -58,16 +58,16 @@ public class BukkitRequirements { public void setRemoveItems(final List removeItems) { this.removeItems = removeItems; } - public List getNeededQuests() { + public List getNeededQuests() { return neededQuests; } - public void setNeededQuests(final List neededQuests) { + public void setNeededQuests(final List neededQuests) { this.neededQuests = neededQuests; } - public List getBlockQuests() { + public List getBlockQuests() { return blockQuests; } - public void setBlockQuests(final List blockQuests) { + public void setBlockQuests(final List blockQuests) { this.blockQuests = blockQuests; } public List getPermissions() { @@ -103,7 +103,7 @@ public class BukkitRequirements { public Map> getCustomRequirements() { return customRequirements; } - protected void setCustomRequirements(final Map> customRequirements) { + public void setCustomRequirements(final Map> customRequirements) { this.customRequirements = customRequirements; } public List getDetailsOverride() { diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitRewards.java b/core/src/main/java/me/blackvein/quests/quests/BukkitRewards.java index aa7786369..e56ef6cab 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitRewards.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitRewards.java @@ -19,7 +19,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -public class BukkitRewards { +public class BukkitRewards implements Rewards { private int money = 0; private int questPoints = 0; private int exp = 0; @@ -124,7 +124,7 @@ public class BukkitRewards { public Map> getCustomRewards() { return customRewards; } - protected void setCustomRewards(final Map> customRewards) { + public void setCustomRewards(final Map> customRewards) { this.customRewards = customRewards; } public List getDetailsOverride() { diff --git a/core/src/main/java/me/blackvein/quests/quests/BukkitStage.java b/core/src/main/java/me/blackvein/quests/quests/BukkitStage.java index 186b0379f..3acaaddfb 100644 --- a/core/src/main/java/me/blackvein/quests/quests/BukkitStage.java +++ b/core/src/main/java/me/blackvein/quests/quests/BukkitStage.java @@ -12,10 +12,9 @@ package me.blackvein.quests.quests; -import me.blackvein.quests.CustomObjective; -import me.blackvein.quests.Stage; -import me.blackvein.quests.actions.Action; -import me.blackvein.quests.conditions.Condition; +import me.blackvein.quests.actions.IAction; +import me.blackvein.quests.conditions.ICondition; +import me.blackvein.quests.module.ICustomObjective; import me.blackvein.quests.enums.ObjectiveType; import org.bukkit.DyeColor; import org.bukkit.Location; @@ -122,20 +121,20 @@ public class BukkitStage implements Stage { private LinkedList passwordDisplays = new LinkedList<>(); private LinkedList passwordPhrases = new LinkedList<>(); private String script; - private Action startAction = null; - private Action finishAction = null; - private Action failAction = null; - private Action deathAction = null; - private Map chatActions = new HashMap<>(); - private Map commandActions = new HashMap<>(); - private Action disconnectAction = null; - private Condition condition = null; + private IAction startAction = null; + private IAction finishAction = null; + private IAction failAction = null; + private IAction deathAction = null; + private Map chatActions = new HashMap<>(); + private Map commandActions = new HashMap<>(); + private IAction disconnectAction = null; + private ICondition condition = null; private long delay = -1; private String delayMessage = null; private String completeMessage = null; private String startMessage = null; private LinkedList objectiveOverrides = new LinkedList<>(); - private LinkedList customObjectives = new LinkedList<>(); + private LinkedList customObjectives = new LinkedList<>(); private LinkedList customObjectiveCounts = new LinkedList<>(); private LinkedList customObjectiveDisplays = new LinkedList<>(); private LinkedList> customObjectiveData = new LinkedList<>(); @@ -575,77 +574,77 @@ public class BukkitStage implements Stage { this.script = script; } - public Action getStartAction() { + public IAction getStartAction() { return startAction; } - public void setStartAction(final Action startAction) { + public void setStartAction(final IAction startAction) { this.startAction = startAction; } - public Action getFinishAction() { + public IAction getFinishAction() { return finishAction; } - public void setFinishAction(final Action finishAction) { + public void setFinishAction(final IAction finishAction) { this.finishAction = finishAction; } - public Action getFailAction() { + public IAction getFailAction() { return failAction; } - public void setFailAction(final Action failAction) { + public void setFailAction(final IAction failAction) { this.failAction = failAction; } - public Action getDeathAction() { + public IAction getDeathAction() { return deathAction; } - public void setDeathAction(final Action deathAction) { + public void setDeathAction(final IAction deathAction) { this.deathAction = deathAction; } - public Map getChatActions() { + public Map getChatActions() { return chatActions; } @Override - public void addChatAction(Entry chatAction) { + public void addChatAction(Entry chatAction) { chatActions.put(chatAction.getKey(), chatAction.getValue()); } - public void setChatActions(final Map chatActions) { + public void setChatActions(final Map chatActions) { this.chatActions = chatActions; } - public Map getCommandActions() { + public Map getCommandActions() { return commandActions; } @Override - public void addCommandAction(Entry commandAction) { + public void addCommandAction(Entry commandAction) { commandActions.put(commandAction.getKey(), commandAction.getValue()); } - public void setCommandActions(final Map commandActions) { + public void setCommandActions(final Map commandActions) { this.commandActions = commandActions; } - public Action getDisconnectAction() { + public IAction getDisconnectAction() { return disconnectAction; } - public void setDisconnectAction(final Action disconnectAction) { + public void setDisconnectAction(final IAction disconnectAction) { this.disconnectAction = disconnectAction; } - public Condition getCondition() { + public ICondition getCondition() { return condition; } - public void setCondition(final Condition condition) { + public void setCondition(final ICondition condition) { this.condition = condition; } @@ -694,11 +693,11 @@ public class BukkitStage implements Stage { this.objectiveOverrides = objectiveOverrides; } - public LinkedList getCustomObjectives() { + public LinkedList getCustomObjectives() { return customObjectives; } - public boolean addCustomObjectives(final CustomObjective customObjective) { + public boolean addCustomObjectives(final ICustomObjective customObjective) { return customObjectives.add(customObjective); } diff --git a/core/src/main/java/me/blackvein/quests/storage/Storage.java b/core/src/main/java/me/blackvein/quests/storage/Storage.java index afba415ed..7bc0b9604 100644 --- a/core/src/main/java/me/blackvein/quests/storage/Storage.java +++ b/core/src/main/java/me/blackvein/quests/storage/Storage.java @@ -12,7 +12,7 @@ package me.blackvein.quests.storage; -import me.blackvein.quests.Quester; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.storage.implementation.StorageImplementation; @@ -85,11 +85,11 @@ public class Storage { } } - public CompletableFuture loadQuester(final UUID uniqueId) { + public CompletableFuture loadQuester(final UUID uniqueId) { return makeFuture(() -> implementation.loadQuester(uniqueId)); } - public CompletableFuture saveQuester(final Quester quester) { + public CompletableFuture saveQuester(final IQuester quester) { return makeFuture(() -> { try { implementation.saveQuester(quester); @@ -102,7 +102,7 @@ public class Storage { public CompletableFuture saveOfflineQuesters() { return makeFuture(() -> { try { - for (Quester quester : plugin.getOfflineQuesters()) { + for (IQuester quester : plugin.getOfflineQuesters()) { implementation.saveQuester(quester); } } catch (final Exception e) { diff --git a/core/src/main/java/me/blackvein/quests/storage/implementation/StorageImplementation.java b/core/src/main/java/me/blackvein/quests/storage/implementation/StorageImplementation.java index 46f3e12d4..d0597c2be 100644 --- a/core/src/main/java/me/blackvein/quests/storage/implementation/StorageImplementation.java +++ b/core/src/main/java/me/blackvein/quests/storage/implementation/StorageImplementation.java @@ -12,7 +12,7 @@ package me.blackvein.quests.storage.implementation; -import me.blackvein.quests.Quester; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import java.util.Collection; @@ -27,9 +27,9 @@ public interface StorageImplementation { void close(); - Quester loadQuester(UUID uniqueId) throws Exception; + IQuester loadQuester(UUID uniqueId) throws Exception; - void saveQuester(Quester quester) throws Exception; + void saveQuester(IQuester quester) throws Exception; void deleteQuester(UUID uniqueId) throws Exception; diff --git a/core/src/main/java/me/blackvein/quests/storage/implementation/file/SeparatedYamlStorage.java b/core/src/main/java/me/blackvein/quests/storage/implementation/file/SeparatedYamlStorage.java index 12cb0440e..ea77358a1 100644 --- a/core/src/main/java/me/blackvein/quests/storage/implementation/file/SeparatedYamlStorage.java +++ b/core/src/main/java/me/blackvein/quests/storage/implementation/file/SeparatedYamlStorage.java @@ -12,11 +12,11 @@ package me.blackvein.quests.storage.implementation.file; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; -import me.blackvein.quests.Stage; -import me.blackvein.quests.player.BukkitQuester; +import me.blackvein.quests.quests.Stage; +import me.blackvein.quests.Quester; import me.blackvein.quests.storage.implementation.StorageImplementation; import org.bukkit.OfflinePlayer; import org.bukkit.configuration.ConfigurationSection; @@ -66,13 +66,13 @@ public class SeparatedYamlStorage implements StorageImplementation { @SuppressWarnings("deprecation") @Override - public Quester loadQuester(final UUID uniqueId) throws Exception { + public IQuester loadQuester(final UUID uniqueId) throws Exception { final FileConfiguration data = new YamlConfiguration(); - Quester quester = plugin.getQuester(uniqueId); + IQuester quester = plugin.getQuester(uniqueId); if (quester != null) { quester.hardClear(); } else { - quester = new BukkitQuester(plugin, uniqueId); + quester = new Quester(plugin, uniqueId); } try { final File dataFile = getDataFile(quester); @@ -88,7 +88,7 @@ public class SeparatedYamlStorage implements StorageImplementation { if (data.contains("completedRedoableQuests")) { final List questIds = data.getStringList("completedRedoableQuests"); final List questTimes = data.getLongList("completedQuestTimes"); - final ConcurrentHashMap completedTimes = quester.getCompletedTimes(); + final ConcurrentHashMap completedTimes = quester.getCompletedTimes(); for (int i = 0; i < questIds.size(); i++) { if (plugin.getQuestById(questIds.get(i)) != null) { completedTimes.put(plugin.getQuestById(questIds.get(i)), questTimes.get(i)); @@ -102,7 +102,7 @@ public class SeparatedYamlStorage implements StorageImplementation { if (data.contains("amountsCompletedQuests")) { final List questIds = data.getStringList("amountsCompletedQuests"); final List questAmounts = data.getIntegerList("amountsCompleted"); - final ConcurrentHashMap amountsCompleted = quester.getAmountsCompleted(); + final ConcurrentHashMap amountsCompleted = quester.getAmountsCompleted(); for (int i = 0; i < questIds.size(); i++) { if (plugin.getQuestById(questIds.get(i)) != null) { amountsCompleted.put(plugin.getQuestById(questIds.get(i)), questAmounts.get(i)); @@ -115,10 +115,10 @@ public class SeparatedYamlStorage implements StorageImplementation { } quester.setLastKnownName(data.getString("lastKnownName")); quester.setQuestPoints(data.getInt("quest-points")); - final ConcurrentSkipListSet completedQuests = quester.getCompletedQuests(); + final ConcurrentSkipListSet completedQuests = quester.getCompletedQuests(); if (data.isList("completed-Quests")) { for (final String s : data.getStringList("completed-Quests")) { - for (final Quest q : plugin.getLoadedQuests()) { + for (final IQuest q : plugin.getLoadedQuests()) { if (q.getId().equals(s)) { if (!quester.getCompletedQuests().contains(q)) { completedQuests.add(q); @@ -139,7 +139,7 @@ public class SeparatedYamlStorage implements StorageImplementation { final List questIds = data.getStringList("currentQuests"); final List questStages = data.getIntegerList("currentStages"); final int maxSize = Math.min(questIds.size(), questStages.size()); - final ConcurrentHashMap currentQuests = quester.getCurrentQuests(); + final ConcurrentHashMap currentQuests = quester.getCurrentQuests(); for (int i = 0; i < maxSize; i++) { if (plugin.getQuestById(questIds.get(i)) != null) { currentQuests.put(plugin.getQuestById(questIds.get(i)), questStages.get(i)); @@ -155,7 +155,7 @@ public class SeparatedYamlStorage implements StorageImplementation { } for (final String key : dataSec.getKeys(false)) { final ConfigurationSection questSec = dataSec.getConfigurationSection(key); - final Quest quest = plugin.getQuestById(key) != null ? plugin.getQuestById(key) : plugin.getQuest(key); + final IQuest quest = plugin.getQuestById(key) != null ? plugin.getQuestById(key) : plugin.getQuest(key); if (quest == null || !quester.getCurrentQuests().containsKey(quest)) { continue; } @@ -377,7 +377,7 @@ public class SeparatedYamlStorage implements StorageImplementation { } @Override - public void saveQuester(final Quester quester) throws Exception { + public void saveQuester(final IQuester quester) throws Exception { final FileConfiguration data = quester.getBaseData(); try { data.save(new File(directoryPath + File.separator + quester.getUUID() + ".yml")); @@ -394,11 +394,11 @@ public class SeparatedYamlStorage implements StorageImplementation { @Override public String getQuesterLastKnownName(final UUID uniqueId) throws Exception { - Quester quester = plugin.getQuester(uniqueId); + IQuester quester = plugin.getQuester(uniqueId); if (quester != null) { quester.hardClear(); } else { - quester = new BukkitQuester(plugin, uniqueId); + quester = new Quester(plugin, uniqueId); } return quester.getLastKnownName(); } @@ -435,7 +435,7 @@ public class SeparatedYamlStorage implements StorageImplementation { * * @return file if exists, otherwise null */ - public File getDataFile(final Quester quester) { + public File getDataFile(final IQuester quester) { File dataFile = new File(plugin.getDataFolder(), "data" + File.separator + quester.getUUID().toString() + ".yml"); if (!dataFile.exists()) { final OfflinePlayer p = quester.getOfflinePlayer(); diff --git a/core/src/main/java/me/blackvein/quests/storage/implementation/sql/SqlStorage.java b/core/src/main/java/me/blackvein/quests/storage/implementation/sql/SqlStorage.java index ebc87ac56..6e0084342 100644 --- a/core/src/main/java/me/blackvein/quests/storage/implementation/sql/SqlStorage.java +++ b/core/src/main/java/me/blackvein/quests/storage/implementation/sql/SqlStorage.java @@ -12,9 +12,9 @@ package me.blackvein.quests.storage.implementation.sql; -import me.blackvein.quests.Quest; +import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.QuestData; -import me.blackvein.quests.Quester; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.storage.implementation.StorageImplementation; import me.blackvein.quests.storage.implementation.sql.connection.ConnectionFactory; @@ -221,8 +221,8 @@ public class SqlStorage implements StorageImplementation { } @Override - public Quester loadQuester(final UUID uniqueId) throws Exception { - final Quester quester = plugin.getQuester(uniqueId); + public IQuester loadQuester(final UUID uniqueId) throws Exception { + final IQuester quester = plugin.getQuester(uniqueId); if (quester == null) { return null; } @@ -248,21 +248,21 @@ public class SqlStorage implements StorageImplementation { } @Override - public void saveQuester(final Quester quester) throws Exception { + public void saveQuester(final IQuester quester) throws Exception { final UUID uniqueId = quester.getUUID(); final String lastKnownName = quester.getLastKnownName(); final String oldLastKnownName = getQuesterLastKnownName(uniqueId); - final Set currentQuests = quester.getCurrentQuests().keySet().stream().map(Quest::getId).collect(Collectors.toSet()); - final Set oldCurrentQuests = getQuesterCurrentQuests(uniqueId).keySet().stream().map(Quest::getId).collect(Collectors.toSet()); + final Set currentQuests = quester.getCurrentQuests().keySet().stream().map(IQuest::getId).collect(Collectors.toSet()); + final Set oldCurrentQuests = getQuesterCurrentQuests(uniqueId).keySet().stream().map(IQuest::getId).collect(Collectors.toSet()); oldCurrentQuests.removeAll(currentQuests); - final Set completedQuests = quester.getCompletedQuests().stream().map(Quest::getId).collect(Collectors.toSet()); - final Set oldCompletedQuests = getQuesterCompletedQuests(uniqueId).stream().map(Quest::getId).collect(Collectors.toSet()); + final Set completedQuests = quester.getCompletedQuests().stream().map(IQuest::getId).collect(Collectors.toSet()); + final Set oldCompletedQuests = getQuesterCompletedQuests(uniqueId).stream().map(IQuest::getId).collect(Collectors.toSet()); oldCompletedQuests.removeAll(completedQuests); - final Set redoableQuests = quester.getCompletedTimes().keySet().stream().map(Quest::getId).collect(Collectors.toSet()); - final Set oldRedoableQuests = getQuesterCompletedTimes(uniqueId).keySet().stream().map(Quest::getId).collect(Collectors.toSet()); + final Set redoableQuests = quester.getCompletedTimes().keySet().stream().map(IQuest::getId).collect(Collectors.toSet()); + final Set oldRedoableQuests = getQuesterCompletedTimes(uniqueId).keySet().stream().map(IQuest::getId).collect(Collectors.toSet()); oldRedoableQuests.removeAll(redoableQuests); - final Set questData = quester.getQuestData().keySet().stream().map(Quest::getId).collect(Collectors.toSet()); - final Set oldQuestData = getQuesterQuestData(uniqueId).keySet().stream().map(Quest::getId).collect(Collectors.toSet()); + final Set questData = quester.getQuestData().keySet().stream().map(IQuest::getId).collect(Collectors.toSet()); + final Set oldQuestData = getQuesterQuestData(uniqueId).keySet().stream().map(IQuest::getId).collect(Collectors.toSet()); oldQuestData.removeAll(questData); try (final Connection c = connectionFactory.getConnection()) { @@ -290,7 +290,7 @@ public class SqlStorage implements StorageImplementation { } } } else { - for (final Entry entry : quester.getCurrentQuests().entrySet()) { + for (final Entry entry : quester.getCurrentQuests().entrySet()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_CURRENT_QUESTS_INSERT))) { ps.setString(1, uniqueId.toString()); ps.setString(2, entry.getKey().getId()); @@ -309,7 +309,7 @@ public class SqlStorage implements StorageImplementation { } } } else { - for (final Quest quest : quester.getCompletedQuests()) { + for (final IQuest quest : quester.getCompletedQuests()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_COMPLETED_QUESTS_INSERT))) { ps.setString(1, uniqueId.toString()); ps.setString(2, quest.getId()); @@ -327,7 +327,7 @@ public class SqlStorage implements StorageImplementation { } } } else { - for (final Entry entry : quester.getCompletedTimes().entrySet()) { + for (final Entry entry : quester.getCompletedTimes().entrySet()) { final int amount = quester.getAmountsCompleted().get(entry.getKey()); try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_REDOABLE_QUESTS_INSERT))) { ps.setString(1, uniqueId.toString()); @@ -348,7 +348,7 @@ public class SqlStorage implements StorageImplementation { } } } else { - for (final Entry entry : quester.getQuestData().entrySet()) { + for (final Entry entry : quester.getQuestData().entrySet()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_QUEST_DATA_INSERT))) { ps.setString(1, uniqueId.toString()); ps.setString(2, entry.getKey().getId()); @@ -424,14 +424,14 @@ public class SqlStorage implements StorageImplementation { return null; } - public ConcurrentHashMap getQuesterCurrentQuests(final UUID uniqueId) throws Exception { - final ConcurrentHashMap currentQuests = new ConcurrentHashMap<>(); + public ConcurrentHashMap getQuesterCurrentQuests(final UUID uniqueId) throws Exception { + final ConcurrentHashMap currentQuests = new ConcurrentHashMap<>(); try (final Connection c = connectionFactory.getConnection()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_CURRENT_QUESTS_SELECT_BY_UUID))) { ps.setString(1, uniqueId.toString()); try (final ResultSet rs = ps.executeQuery()) { while (rs.next()) { - final Quest quest = plugin.getQuestById(rs.getString("questid")); + final IQuest quest = plugin.getQuestById(rs.getString("questid")); if (quest != null) { currentQuests.put(quest, rs.getInt("stageNum")); } @@ -442,15 +442,15 @@ public class SqlStorage implements StorageImplementation { return currentQuests; } - public ConcurrentHashMap getQuesterQuestData(final UUID uniqueId) throws Exception { - final Quester quester = plugin.getQuester(uniqueId); - final ConcurrentHashMap questData = new ConcurrentHashMap<>(); + public ConcurrentHashMap getQuesterQuestData(final UUID uniqueId) throws Exception { + final IQuester quester = plugin.getQuester(uniqueId); + final ConcurrentHashMap questData = new ConcurrentHashMap<>(); try (final Connection c = connectionFactory.getConnection()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_QUEST_DATA_SELECT_BY_UUID))) { ps.setString(1, uniqueId.toString()); try (final ResultSet rs = ps.executeQuery()) { while (rs.next()) { - final Quest quest = plugin.getQuestById(rs.getString("quest_id")); + final IQuest quest = plugin.getQuestById(rs.getString("quest_id")); final QuestData data = new QuestData(quester); if (quest != null && quester.getCurrentStage(quest) != null) { data.blocksBroken.addAll(deserializeItemStackProgress(rs.getString("blocks_broken"), @@ -497,14 +497,14 @@ public class SqlStorage implements StorageImplementation { return questData; } - public ConcurrentSkipListSet getQuesterCompletedQuests(final UUID uniqueId) throws Exception { - final ConcurrentSkipListSet completedQuests = new ConcurrentSkipListSet<>(); + public ConcurrentSkipListSet getQuesterCompletedQuests(final UUID uniqueId) throws Exception { + final ConcurrentSkipListSet completedQuests = new ConcurrentSkipListSet<>(); try (final Connection c = connectionFactory.getConnection()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_COMPLETED_QUESTS_SELECT_BY_UUID))) { ps.setString(1, uniqueId.toString()); try (final ResultSet rs = ps.executeQuery()) { while (rs.next()) { - final Quest quest = plugin.getQuestById(rs.getString("questid")); + final IQuest quest = plugin.getQuestById(rs.getString("questid")); if (quest != null) { completedQuests.add(quest); } @@ -515,14 +515,14 @@ public class SqlStorage implements StorageImplementation { return completedQuests; } - public ConcurrentHashMap getQuesterCompletedTimes(final UUID uniqueId) throws Exception { - final ConcurrentHashMap completedTimes = new ConcurrentHashMap<>(); + public ConcurrentHashMap getQuesterCompletedTimes(final UUID uniqueId) throws Exception { + final ConcurrentHashMap completedTimes = new ConcurrentHashMap<>(); try (final Connection c = connectionFactory.getConnection()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_REDOABLE_QUESTS_SELECT_BY_UUID))) { ps.setString(1, uniqueId.toString()); try (final ResultSet rs = ps.executeQuery()) { while (rs.next()) { - final Quest quest = plugin.getQuestById(rs.getString("questid")); + final IQuest quest = plugin.getQuestById(rs.getString("questid")); if (quest != null) { completedTimes.put(quest, rs.getLong("lasttime")); } @@ -533,14 +533,14 @@ public class SqlStorage implements StorageImplementation { return completedTimes; } - public ConcurrentHashMap getQuesterAmountsCompleted(final UUID uniqueId) throws Exception { - final ConcurrentHashMap amountsCompleted = new ConcurrentHashMap<>(); + public ConcurrentHashMap getQuesterAmountsCompleted(final UUID uniqueId) throws Exception { + final ConcurrentHashMap amountsCompleted = new ConcurrentHashMap<>(); try (final Connection c = connectionFactory.getConnection()) { try (final PreparedStatement ps = c.prepareStatement(statementProcessor.apply(PLAYER_REDOABLE_QUESTS_SELECT_BY_UUID))) { ps.setString(1, uniqueId.toString()); try (final ResultSet rs = ps.executeQuery()) { while (rs.next()) { - final Quest quest = plugin.getQuestById(rs.getString("questid")); + final IQuest quest = plugin.getQuestById(rs.getString("questid")); if (quest != null) { amountsCompleted.put(quest, rs.getInt("amount")); } diff --git a/core/src/main/java/me/blackvein/quests/tasks/ActionTimer.java b/core/src/main/java/me/blackvein/quests/tasks/ActionTimer.java index 5595c1344..928de1e40 100644 --- a/core/src/main/java/me/blackvein/quests/tasks/ActionTimer.java +++ b/core/src/main/java/me/blackvein/quests/tasks/ActionTimer.java @@ -12,20 +12,20 @@ package me.blackvein.quests.tasks; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.util.Lang; import org.bukkit.ChatColor; import org.bukkit.scheduler.BukkitRunnable; public class ActionTimer extends BukkitRunnable { - private final Quester quester; - private final Quest quest; + private final IQuester quester; + private final IQuest quest; private final int time; private final boolean last; - public ActionTimer(final Quester quester, final Quest quest, final int time, final boolean last) { + public ActionTimer(final IQuester quester, final IQuest quest, final int time, final boolean last) { this.quester = quester; this.quest = quest; this.time = time; diff --git a/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java b/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java index 54f853315..d36b82615 100644 --- a/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java +++ b/core/src/main/java/me/blackvein/quests/tasks/NpcEffectThread.java @@ -12,7 +12,7 @@ package me.blackvein.quests.tasks; -import me.blackvein.quests.Quester; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; import me.blackvein.quests.particle.ParticleProvider; import net.citizensnpcs.api.npc.NPC; @@ -33,7 +33,7 @@ public class NpcEffectThread implements Runnable { @Override public void run() { for (final Player player : plugin.getServer().getOnlinePlayers()) { - final Quester quester = plugin.getQuester(player.getUniqueId()); + final IQuester quester = plugin.getQuester(player.getUniqueId()); final List nearby = player.getNearbyEntities(32.0, 32.0, 32.0); if (!nearby.isEmpty()) { for (final Entity e : nearby) { diff --git a/core/src/main/java/me/blackvein/quests/tasks/StageTimer.java b/core/src/main/java/me/blackvein/quests/tasks/StageTimer.java index 391049c8e..5456a332b 100644 --- a/core/src/main/java/me/blackvein/quests/tasks/StageTimer.java +++ b/core/src/main/java/me/blackvein/quests/tasks/StageTimer.java @@ -12,17 +12,17 @@ package me.blackvein.quests.tasks; -import me.blackvein.quests.Quest; -import me.blackvein.quests.Quester; +import me.blackvein.quests.quests.IQuest; +import me.blackvein.quests.player.IQuester; import me.blackvein.quests.Quests; public class StageTimer implements Runnable { - private final Quester quester; + private final IQuester quester; private final Quests plugin; - private final Quest quest; + private final IQuest quest; - public StageTimer(final Quests plugin, final Quester quester, final Quest quest) { + public StageTimer(final Quests plugin, final IQuester quester, final IQuest quest) { this.quester = quester; this.quest = quest; this.plugin = plugin; diff --git a/core/src/main/java/me/blackvein/quests/util/ConfigUtil.java b/core/src/main/java/me/blackvein/quests/util/ConfigUtil.java index 12fbd597a..c760426df 100644 --- a/core/src/main/java/me/blackvein/quests/util/ConfigUtil.java +++ b/core/src/main/java/me/blackvein/quests/util/ConfigUtil.java @@ -12,8 +12,8 @@ package me.blackvein.quests.util; -import me.blackvein.quests.dependencies.BukkitDependencies; -import me.blackvein.quests.Quest; +import me.blackvein.quests.Dependencies; +import me.blackvein.quests.quests.IQuest; import me.clip.placeholderapi.PlaceholderAPI; import net.citizensnpcs.api.npc.NPC; import org.bukkit.Bukkit; @@ -100,7 +100,7 @@ public class ConfigUtil { + loc.getZ(); } - public static String[] parseStringWithPossibleLineBreaks(final String s, final Quest quest, final Player player) { + public static String[] parseStringWithPossibleLineBreaks(final String s, final IQuest quest, final Player player) { String parsed = parseString(s); if (parsed.contains("")) { if (quest.getNpcStart() != null) { @@ -109,13 +109,13 @@ public class ConfigUtil { Bukkit.getLogger().warning(quest.getName() + " quest uses tag but doesn't have an NPC start set"); } } - if (BukkitDependencies.placeholder != null && player != null) { + if (Dependencies.placeholder != null && player != null) { parsed = PlaceholderAPI.setPlaceholders(player, parsed); } return parsed.split("\n"); } - public static String[] parseStringWithPossibleLineBreaks(final String s, final Quest quest) { + public static String[] parseStringWithPossibleLineBreaks(final String s, final IQuest quest) { String parsed = parseString(s); if (parsed.contains("")) { if (quest.getNpcStart() != null) { @@ -135,7 +135,7 @@ public class ConfigUtil { return parsed.split("\n"); } - public static String parseString(final String s, final Quest quest) { + public static String parseString(final String s, final IQuest quest) { String parsed = parseString(s); if (parsed.contains("")) { if (quest.getNpcStart() != null) { @@ -147,9 +147,9 @@ public class ConfigUtil { return parsed; } - public static String parseString(final String s, final Quest quest, final Player player) { + public static String parseString(final String s, final IQuest quest, final Player player) { String parsed = parseString(s, quest); - if (BukkitDependencies.placeholder != null && player != null) { + if (Dependencies.placeholder != null && player != null) { parsed = PlaceholderAPI.setPlaceholders(player, parsed); } return parsed; diff --git a/core/src/main/resources/lang/en-PT/strings.yml b/core/src/main/resources/lang/en-PT/strings.yml index 18e20bbb5..c7ed32807 100644 --- a/core/src/main/resources/lang/en-PT/strings.yml +++ b/core/src/main/resources/lang/en-PT/strings.yml @@ -141,20 +141,20 @@ stageEditorShearSheep: "Shear sheep" stageEditorKillPlayers: "Kill Players" stageEditorPlayers: "players" stageEditorEvents: "Actions" -stageEditorEventCleared: "Action cleared." +stageEditorEventCleared: "IAction cleared." stageEditorStageEvents: "Stage Actions" -stageEditorStartEvent: "Start Action" -stageEditorFinishEvent: "Finish Action" -stageEditorFailEvent: "Fail Action" -stageEditorChatEvents: "Chat Action" +stageEditorStartEvent: "Start IAction" +stageEditorFinishEvent: "Finish IAction" +stageEditorFailEvent: "Fail IAction" +stageEditorChatEvents: "Chat IAction" stageEditorChatTrigger: "Chat Trigger" -stageEditorCommandEvents: "Command Action" +stageEditorCommandEvents: "Command IAction" stageEditorCommandTrigger: "Command Trigger" stageEditorTriggeredBy: "Triggered by" -stageEditorDeathEvent: "Death Action" -stageEditorDisconnectEvent: "Disconnect Action" +stageEditorDeathEvent: "Death IAction" +stageEditorDisconnectEvent: "Disconnect IAction" stageEditorConditions: "Conditions" -stageEditorConditionCleared: "Condition cleared." +stageEditorConditionCleared: "ICondition cleared." stageEditorDelayMessage: "Delay Message" stageEditorDenizenScript: "Denizen Script" stageEditorStartMessage: "Start Message" @@ -238,7 +238,7 @@ stageEditorInvalidMob: "ain't a valid mob name!" stageEditorInvalidItemName: "ain't a valid item name!" stageEditorInvalidDye: "ain't a valid dye color!" stageEditorInvalidEvent: "ain't a valid action name!" -stageEditorDuplicateEvent: "Action be already in th' list!" +stageEditorDuplicateEvent: "IAction be already in th' list!" stageEditorInvalidCondition: "ain't a valid condition name!" stageEditorInvalidScript: "Denizen script nah found!" stageEditorNoCitizens: "Citizens ain't installed!" @@ -262,30 +262,30 @@ stageEditorEnchantments: "Enchantments" stageEditorNPCNote: 'Note: Ye may specify th'' name o'' th'' NPC wit'' ' stageEditorOptional: "Optional" stageEditorColors: "Sheep Colors" -eventEditorCreate: "Create new Action" -eventEditorEdit: "Edit an Action" -eventEditorDelete: "Delete an Action" +eventEditorCreate: "Create new IAction" +eventEditorEdit: "Edit an IAction" +eventEditorDelete: "Delete an IAction" eventEditorNoneToEdit: "No Actions currently exist t' be edited!" eventEditorNoneToDelete: "No Actions currently exist t' be deleted!" -eventEditorNotFound: "Action nah found!" -eventEditorExists: "Action already exists!" -eventEditorDeleted: "Action deleted, Quests 'n Actions reloaded." -eventEditorSaved: "Action saved, Quests 'n Actions reloaded." -eventEditorEnterEventName: "Enter an Action name, " -eventEditorModifiedNote: 'Note: Ye ''ave modified an Action that th'' followin'' Quests use:' -eventEditorForcedToQuit: "If ye save th' Action, anyone who be actively doin' any o' these Quests will be forced t' abandon ship." -eventEditorEventInUse: "Th' followin' Quests use th' Action" +eventEditorNotFound: "IAction nah found!" +eventEditorExists: "IAction already exists!" +eventEditorDeleted: "IAction deleted, Quests 'n Actions reloaded." +eventEditorSaved: "IAction saved, Quests 'n Actions reloaded." +eventEditorEnterEventName: "Enter an IAction name, " +eventEditorModifiedNote: 'Note: Ye ''ave modified an IAction that th'' followin'' Quests use:' +eventEditorForcedToQuit: "If ye save th' IAction, anyone who be actively doin' any o' these Quests will be forced t' abandon ship." +eventEditorEventInUse: "Th' followin' Quests use th' IAction" eventEditorMustModifyQuests: "Ye must modify these Quests first!" eventEditorNotANumberList: "Input was nah a list o' numbers!" eventEditorGiveItemsTitle: "- Give Items -" eventEditorEffectsTitle: "- Effects -" -eventEditorStormTitle: "- Action Storm -" -eventEditorThunderTitle: "- Action Thunder -" -eventEditorMobSpawnsTitle: "- Action Mob Spawns -" +eventEditorStormTitle: "- IAction Storm -" +eventEditorThunderTitle: "- IAction Thunder -" +eventEditorMobSpawnsTitle: "- IAction Mob Spawns -" eventEditorMobsTitle: "- Mobs -" eventEditorAddMobTypesTitle: "- Add Mob -" -eventEditorPotionEffectsTitle: "- Action Potion Effects -" -eventEditorPotionTypesTitle: "- Action Potion Types -" +eventEditorPotionEffectsTitle: "- IAction Potion Effects -" +eventEditorPotionTypesTitle: "- IAction Potion Types -" eventEditorWorldsTitle: "- Worlds -" eventEditorSetName: "Set name" eventEditorPlayer: "Player" @@ -310,15 +310,15 @@ eventEditorSetTimer: "Set time t' fail quest" eventEditorCancelTimer: "Cancel th' quest timer" eventEditorSetTeleport: "Set player teleport spot" eventEditorSetCommands: "Set commands t' execute" -eventEditorItems: "Action Items" +eventEditorItems: "IAction Items" eventEditorSetItems: "Give items" -eventEditorItemsCleared: "Action items cleared." +eventEditorItemsCleared: "IAction items cleared." eventEditorSetItemNames: "Set item names" eventEditorSetItemAmounts: "Set item amounts" eventEditorNoNames: "No names set" eventEditorMustSetNames: "Ye must set item names first!" eventEditorInvalidName: "ain't a valid item name!" -eventEditorStorm: "Action Storm" +eventEditorStorm: "IAction Storm" eventEditorSetWorld: "Set world" eventEditorSetDuration: "Set duration" eventEditorSetWorldFirst: "Ye must set a world first!" @@ -327,18 +327,18 @@ eventEditorMustSetStormDuration: "Ye must set a storm duration!" eventEditorStormCleared: "Storm data cleared." eventEditorEnterStormWorld: "Enter a world name fer th' storm t' occur in, " eventEditorEnterDuration: "Enter duration (in seconds)" -eventEditorThunder: "Action Thunder" +eventEditorThunder: "IAction Thunder" eventEditorMustSetThunderDuration: "Ye must set a thunder duration!" eventEditorThunderCleared: "Thunder data cleared." eventEditorEnterThunderWorld: "Enter a world name fer th' thunder t' occur in, " -eventEditorEffects: "Action Sound Effects" +eventEditorEffects: "IAction Sound Effects" eventEditorAddEffect: "Add effect" eventEditorAddEffectLocation: "Add effect spot" eventEditorMustAddEffects: "Ye must add effects first!" eventEditorInvalidEffect: "ain't a valid effect name!" -eventEditorEffectsCleared: "Action sound effects cleared." +eventEditorEffectsCleared: "IAction sound effects cleared." eventEditorEffectLocationPrompt: "Right-jab on a block t' play an effect at, , " -eventEditorMobSpawns: "Action Mob Spawns" +eventEditorMobSpawns: "IAction Mob Spawns" eventEditorAddMobTypes: "Add mob" eventEditorMustSetMobTypesFirst: "Ye must set th' mob type first!" eventEditorSetMobAmounts: "Set mob amount" @@ -360,7 +360,7 @@ eventEditorSetMobHelmet: "Set helmet" eventEditorSetMobHelmetDrop: "Set drop chance o' helmet" eventEditorSetMobSpawnAmount: "Set th' amount o' mobs t' spawn" eventEditorSetDropChance: "Set th' drop chance" -eventEditorPotionEffects: "Action Potion Effects" +eventEditorPotionEffects: "IAction Potion Effects" eventEditorSetPotionEffectTypes: "Set potion effect types" eventEditorMustSetPotionTypesFirst: "Ye must set potion effect types first!" eventEditorSetPotionDurations: "Set potion effect durations" @@ -390,19 +390,19 @@ conditionEditorEdit: "Edit a condition" conditionEditorDelete: "Delete a condition" conditionEditorNoneToEdit: "No conditions currently exist t' be edited!" conditionEditorNoneToDelete: "No conditions currently exist t' be deleted!" -conditionEditorNotFound: "Condition nah found!" -conditionEditorExists: "Condition already exists!" +conditionEditorNotFound: "ICondition nah found!" +conditionEditorExists: "ICondition already exists!" conditionEditorInUse: "Th' followin' quests use th' condition" -conditionEditorEnterName: "Enter Condition name, " -conditionEditorSaved: "Condition saved. Quest 'n condition data reloaded." -conditionEditorDeleted: "Condition deleted. Quest 'n condition data reloaded." +conditionEditorEnterName: "Enter ICondition name, " +conditionEditorSaved: "ICondition saved. Quest 'n condition data reloaded." +conditionEditorDeleted: "ICondition deleted. Quest 'n condition data reloaded." conditionEditorModifiedNote: 'Note: Ye ''ave modified a condition that th'' followin'' quests use:' conditionEditorForcedToQuit: "If ye save th' condition, anyone who be actively doin' any o' these quests will be forced t' quit them." conditionEditorSetName: "Set name" conditionEditorEntity: "Entity" conditionEditorWorld: "World" conditionEditorCheckPlaceholder: "Check placeholder" -conditionEditorConditionCleared: "Condition cleared." +conditionEditorConditionCleared: "ICondition cleared." conditionEditorRideEntity: "Ride entity" conditionEditorRideNPC: "Ride NPC" conditionEditorEntitiesTitle: "- Entities -" @@ -593,17 +593,17 @@ questDisplayHelp: "- Display this help" questNPCListTitle: "- Quests | -" questAdminHelpTitle: "- Questadmin -" questEditorTitle: "- Quest Editor -" -eventEditorTitle: "- Action Editor - " -conditionEditorTitle: "- Condition Editor -" +eventEditorTitle: "- IAction Editor - " +conditionEditorTitle: "- ICondition Editor -" questCreateTitle: "- Create Quest -" questEditTitle: "- Edit Quest -" questDeleteTitle: "- Delete Quest -" -eventCreateTitle: "- Create Action -" -eventEditTitle: "- Edit Action -" -eventDeleteTitle: "- Delete Action -" -conditionCreateTitle: "- Create Condition -" -conditionEditTitle: "- Edit Condition -" -conditionDeleteTitle: "- Delete Condition -" +eventCreateTitle: "- Create IAction -" +eventEditTitle: "- Edit IAction -" +eventDeleteTitle: "- Delete IAction -" +conditionCreateTitle: "- Create ICondition -" +conditionEditTitle: "- Edit ICondition -" +conditionDeleteTitle: "- Delete ICondition -" requirementsTitle: "- | Requirements -" rewardsTitle: "- | Rewards -" plannerTitle: "- | Planner -" @@ -779,8 +779,8 @@ listsNotSameSize: "All required lists must 'ave th' same number o' entries!" listDuplicate: "List contains duplicates!" id: "ID" quest: "Quest" -event: "Action" -condition: "Condition" +event: "IAction" +condition: "ICondition" quests: "Quests" createdBy: "Pillaged by" continuedBy: "and ransacked by" @@ -794,8 +794,8 @@ usage: "Usage" redoableEvery: "Redoable every