customObjectiveDatum);
-
- void clearCustomObjectiveData();
-
- /**
- * Check if stage has at least one objective
- *
- * Excludes start/complete message, delay, and objective-override
- *
- * @return true if stage contains an objective
- */
- boolean hasObjective();
-
- /**
- * Check if stage has at least one objective of which the target can be located easily
- *
- * @return true if stage contains a locatable objective
- */
- boolean hasLocatableObjective();
-
- /**
- * Check if stage has the specified type of objective
- *
- * @param type The type of objective to check for
- * @return true if stage contains specified objective
- */
- boolean containsObjective(final ObjectiveType type);
-}
diff --git a/api/src/main/java/me/blackvein/quests/quests/Objective.java b/api/src/main/java/me/blackvein/quests/quests/Objective.java
deleted file mode 100644
index e5001b9ae..000000000
--- a/api/src/main/java/me/blackvein/quests/quests/Objective.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * 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;
-
-import me.blackvein.quests.enums.ObjectiveType;
-import org.jetbrains.annotations.NotNull;
-
-public interface Objective {
- ObjectiveType getType();
-
- String getMessage();
-
- int getProgress();
-
- int getGoal();
-
- @NotNull Object getProgressObject();
-
- @NotNull Object getGoalObject();
-}
diff --git a/api/src/main/java/me/blackvein/quests/quests/Planner.java b/api/src/main/java/me/blackvein/quests/quests/Planner.java
deleted file mode 100644
index fe18ed622..000000000
--- a/api/src/main/java/me/blackvein/quests/quests/Planner.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * 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;
-
-public interface Planner {
- String getStart();
-
- long getStartInMillis();
-
- boolean hasStart();
-
- void setStart(final String start);
-
- String getEnd();
-
- long getEndInMillis();
-
- boolean hasEnd();
-
- void setEnd(final String end);
-
- long getRepeat();
-
- boolean hasRepeat();
-
- void setRepeat(final long repeat);
-
- long getCooldown();
-
- boolean hasCooldown();
-
- void setCooldown(final long cooldown);
-
- boolean getOverride();
-
- void setOverride(final boolean override);
-}
diff --git a/api/src/main/java/me/blackvein/quests/quests/QuestFactory.java b/api/src/main/java/me/blackvein/quests/quests/QuestFactory.java
deleted file mode 100644
index 234767f22..000000000
--- a/api/src/main/java/me/blackvein/quests/quests/QuestFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * 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;
-
-import org.bukkit.block.Block;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.conversations.ConversationContext;
-import org.bukkit.conversations.ConversationFactory;
-import org.bukkit.conversations.Prompt;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-public interface QuestFactory {
- Map getSelectedBlockStarts();
-
- void setSelectedBlockStarts(final Map selectedBlockStarts);
-
- Map getSelectedKillLocations();
-
- void setSelectedKillLocations(final Map selectedKillLocations);
-
- Map getSelectedReachLocations();
-
- void setSelectedReachLocations(final Map selectedReachLocations);
-
- Set getSelectingNpcs();
-
- void setSelectingNpcs(final Set selectingNpcs);
-
- List getNamesOfQuestsBeingEdited();
-
- void setNamesOfQuestsBeingEdited(final List questNames);
-
- ConversationFactory getConversationFactory();
-
- Prompt returnToMenu(final ConversationContext context);
-
- void loadQuest(final ConversationContext context, final IQuest q);
-
- void deleteQuest(final ConversationContext context);
-
- void saveQuest(final ConversationContext context, final ConfigurationSection section);
-
- /*void saveRequirements(final ConversationContext context, final ConfigurationSection section);
-
- void saveStages(final ConversationContext context, final ConfigurationSection section);
-
- void saveRewards(final ConversationContext context, final ConfigurationSection section);
-
- void savePlanner(final ConversationContext context, final ConfigurationSection section);
-
- void saveOptions(final ConversationContext context, final ConfigurationSection section);*/
-}
diff --git a/api/src/main/java/me/pikamug/quests/Quests.java b/api/src/main/java/me/pikamug/quests/Quests.java
new file mode 100644
index 000000000..67332d4b9
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/Quests.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests;
+
+import me.pikamug.quests.actions.Action;
+import me.pikamug.quests.actions.ActionFactory;
+import me.pikamug.quests.conditions.Condition;
+import me.pikamug.quests.conditions.ConditionFactory;
+import me.pikamug.quests.config.ConfigSettings;
+import me.pikamug.quests.dependencies.Dependencies;
+import me.pikamug.quests.module.CustomObjective;
+import me.pikamug.quests.module.CustomRequirement;
+import me.pikamug.quests.module.CustomReward;
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.Quest;
+import me.pikamug.quests.quests.QuestFactory;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.List;
+import java.util.UUID;
+import java.util.logging.Logger;
+
+public interface Quests {
+
+ boolean isLoading();
+
+ String getDetectedServerSoftwareVersion();
+
+ File getPluginDataFolder();
+
+ Logger getPluginLogger();
+
+ InputStream getPluginResource(String filename);
+
+ Dependencies getDependencies();
+
+ ConfigSettings getConfigSettings();
+
+ List getCustomObjectives();
+
+ List getCustomRewards();
+
+ List getCustomRequirements();
+
+ Collection getLoadedQuests();
+
+ Collection getLoadedActions();
+
+ Collection getLoadedConditions();
+
+ Quester getQuester(final UUID id);
+
+ Collection getOnlineQuesters();
+
+ Collection getOfflineQuesters();
+
+ void setOfflineQuesters(final Collection questers);
+
+ QuestFactory getQuestFactory();
+
+ ActionFactory getActionFactory();
+
+ ConditionFactory getConditionFactory();
+
+ /*ConvoListener getConvoListener();
+
+ BlockListener getBlockListener();
+
+ ItemListener getItemListener();
+
+ NpcListener getNpcListener();
+
+ PlayerListener getPlayerListener();
+
+ UniteListener getUniteListener();
+
+ NpcEffectThread getNpcEffectThread();
+
+ PlayerMoveThread getPlayerMoveThread();
+
+ PartiesListener getPartiesListener();
+
+ DenizenTrigger getDenizenTrigger();
+
+ LocaleManager getLocaleManager();
+
+ QuesterStorage getStorage();*/
+
+ void saveResourceAs(String resourcePath, final String outputPath, final boolean replace);
+}
diff --git a/api/src/main/java/me/pikamug/quests/actions/Action.java b/api/src/main/java/me/pikamug/quests/actions/Action.java
new file mode 100644
index 000000000..beb8fb856
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/actions/Action.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.actions;
+
+import me.pikamug.quests.entity.QuestMob;
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.Quest;
+
+import java.util.LinkedList;
+
+public interface Action extends Comparable {
+ String getName();
+
+ void setName(final String name);
+
+ String getMessage();
+
+ void setMessage(final String message);
+
+ boolean isClearInv();
+
+ void setClearInv(final boolean clearInv);
+
+ boolean isFailQuest();
+
+ void setFailQuest(final boolean failQuest);
+
+ int getStormDuration();
+
+ void setStormDuration(final int stormDuration);
+
+ int getThunderDuration();
+
+ void setThunderDuration(final int thunderDuration);
+
+ int getTimer();
+
+ void setTimer(final int timer);
+
+ boolean isCancelTimer();
+
+ void setCancelTimer(final boolean cancelTimer);
+
+ LinkedList getMobSpawns();
+
+ void setMobSpawns(final LinkedList mobSpawns);
+
+ LinkedList getCommands();
+
+ void setCommands(final LinkedList commands);
+
+ int getHunger();
+
+ void setHunger(final int hunger);
+
+ int getSaturation();
+
+ void setSaturation(final int saturation);
+
+ float getHealth();
+
+ void setHealth(final float health);
+
+ String getBook();
+
+ void setBook(final String book);
+
+ String getDenizenScript();
+
+ void setDenizenScript(final String scriptName);
+
+ void fire(final Quester quester, final Quest quest);
+}
diff --git a/api/src/main/java/me/pikamug/quests/actions/ActionFactory.java b/api/src/main/java/me/pikamug/quests/actions/ActionFactory.java
new file mode 100644
index 000000000..b260908a4
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/actions/ActionFactory.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.actions;
+
+import org.bukkit.conversations.ConversationContext;
+import org.bukkit.conversations.ConversationFactory;
+import org.bukkit.conversations.Prompt;
+
+import java.util.List;
+
+public interface ActionFactory {
+
+ ConversationFactory getConversationFactory();
+
+ List getNamesOfActionsBeingEdited();
+
+ void setNamesOfActionsBeingEdited(final List actionNames);
+
+ Prompt returnToMenu(final ConversationContext context);
+
+ void loadData(final ConversationContext context, final Action action);
+
+ void clearData(final ConversationContext context);
+
+ void deleteAction(final ConversationContext context);
+
+ void saveAction(final ConversationContext context);
+}
diff --git a/api/src/main/java/me/blackvein/quests/conditions/ICondition.java b/api/src/main/java/me/pikamug/quests/conditions/Condition.java
similarity index 52%
rename from api/src/main/java/me/blackvein/quests/conditions/ICondition.java
rename to api/src/main/java/me/pikamug/quests/conditions/Condition.java
index 5f9491962..d665e1f3b 100644
--- a/api/src/main/java/me/blackvein/quests/conditions/ICondition.java
+++ b/api/src/main/java/me/pikamug/quests/conditions/Condition.java
@@ -1,25 +1,22 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.conditions;
+package me.pikamug.quests.conditions;
-import me.blackvein.quests.player.IQuester;
-import me.blackvein.quests.quests.IQuest;
-import org.bukkit.inventory.ItemStack;
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.Quest;
import java.util.LinkedList;
import java.util.UUID;
-public interface ICondition extends Comparable {
+public interface Condition extends Comparable {
String getName();
void setName(final String name);
@@ -40,14 +37,6 @@ public interface ICondition extends Comparable {
void setPermissions(final LinkedList permissions);
- LinkedList getItemsWhileHoldingMainHand();
-
- void setItemsWhileHoldingMainHand(final LinkedList itemsWhileHoldingMainHand);
-
- LinkedList getItemsWhileWearing();
-
- void setItemsWhileWearing(final LinkedList itemsWhileWearing);
-
LinkedList getWorldsWhileStayingWithin();
void setWorldsWhileStayingWithin(final LinkedList worldsWhileStayingWithin);
@@ -76,5 +65,5 @@ public interface ICondition extends Comparable {
void setPlaceholdersCheckValue(final LinkedList placeholdersCheckValue);
- boolean check(final IQuester quester, final IQuest quest);
+ boolean check(final Quester quester, final Quest quest);
}
diff --git a/api/src/main/java/me/pikamug/quests/conditions/ConditionFactory.java b/api/src/main/java/me/pikamug/quests/conditions/ConditionFactory.java
new file mode 100644
index 000000000..03fad34f8
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/conditions/ConditionFactory.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.conditions;
+
+import org.bukkit.conversations.ConversationContext;
+import org.bukkit.conversations.ConversationFactory;
+import org.bukkit.conversations.Prompt;
+
+import java.util.List;
+
+public interface ConditionFactory {
+ ConversationFactory getConversationFactory();
+
+ List getNamesOfConditionsBeingEdited();
+
+ void setNamesOfConditionsBeingEdited(final List conditionNames);
+
+ Prompt returnToMenu(final ConversationContext context);
+
+ void loadData(final ConversationContext context, final Condition condition);
+
+ void clearData(final ConversationContext context);
+
+ void deleteCondition(final ConversationContext context);
+
+ void saveCondition(final ConversationContext context);
+}
diff --git a/api/src/main/java/me/blackvein/quests/config/ISettings.java b/api/src/main/java/me/pikamug/quests/config/ConfigSettings.java
similarity index 75%
rename from api/src/main/java/me/blackvein/quests/config/ISettings.java
rename to api/src/main/java/me/pikamug/quests/config/ConfigSettings.java
index 4994bff93..a05f18494 100644
--- a/api/src/main/java/me/blackvein/quests/config/ISettings.java
+++ b/api/src/main/java/me/pikamug/quests/config/ConfigSettings.java
@@ -1,18 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.config;
+package me.pikamug.quests.config;
-public interface ISettings {
+public interface ConfigSettings {
int getAcceptTimeout();
void setAcceptTimeout(final int acceptTimeout);
boolean canAllowCommands();
diff --git a/api/src/main/java/me/blackvein/quests/convo/QuestsNumericPrompt.java b/api/src/main/java/me/pikamug/quests/convo/QuestsNumericPrompt.java
similarity index 72%
rename from api/src/main/java/me/blackvein/quests/convo/QuestsNumericPrompt.java
rename to api/src/main/java/me/pikamug/quests/convo/QuestsNumericPrompt.java
index 18ec112a5..f7648a230 100644
--- a/api/src/main/java/me/blackvein/quests/convo/QuestsNumericPrompt.java
+++ b/api/src/main/java/me/pikamug/quests/convo/QuestsNumericPrompt.java
@@ -1,19 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.convo;
+package me.pikamug.quests.convo;
-import me.blackvein.quests.QuestsAPI;
-import me.blackvein.quests.util.Lang;
+import me.pikamug.quests.Quests;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.ChatColor;
@@ -64,9 +61,9 @@ public abstract class QuestsNumericPrompt extends NumericPrompt {
*/
public static String sendClickableSelection(final String input, final ConversationContext context) {
if (context.getPlugin() == null) {
- return Lang.get("itemCreateCriticalError");
+ return "ERROR";
}
- if (!(context.getForWhom() instanceof Player) || !((QuestsAPI)context.getPlugin()).getSettings().canClickablePrompts()) {
+ if (!(context.getForWhom() instanceof Player) || !((Quests)context.getPlugin()).getConfigSettings().canClickablePrompts()) {
return input;
}
final String[] basicText = input.split("\n");
diff --git a/api/src/main/java/me/blackvein/quests/convo/QuestsStringPrompt.java b/api/src/main/java/me/pikamug/quests/convo/QuestsStringPrompt.java
similarity index 72%
rename from api/src/main/java/me/blackvein/quests/convo/QuestsStringPrompt.java
rename to api/src/main/java/me/pikamug/quests/convo/QuestsStringPrompt.java
index d1bf64d3d..56f8234b5 100644
--- a/api/src/main/java/me/blackvein/quests/convo/QuestsStringPrompt.java
+++ b/api/src/main/java/me/pikamug/quests/convo/QuestsStringPrompt.java
@@ -1,19 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.convo;
+package me.pikamug.quests.convo;
-import me.blackvein.quests.QuestsAPI;
-import me.blackvein.quests.util.Lang;
+import me.pikamug.quests.Quests;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.TextComponent;
@@ -57,9 +54,9 @@ public abstract class QuestsStringPrompt extends StringPrompt {
protected String sendClickableMenu(final String header, final List list, final String footer,
final ConversationContext context) {
if (context.getPlugin() == null) {
- return Lang.get("itemCreateCriticalError");
+ return "ERROR";
}
- if (!(context.getForWhom() instanceof Player) || !((QuestsAPI)context.getPlugin()).getSettings().canClickablePrompts()) {
+ if (!(context.getForWhom() instanceof Player) || !((Quests)context.getPlugin()).getConfigSettings().canClickablePrompts()) {
return ChatColor.GOLD + header + "\n" + ChatColor.AQUA + String.join(ChatColor.GRAY + ", " + ChatColor.AQUA, list) + "\n" + ChatColor.YELLOW + footer;
}
final TextComponent component = new TextComponent(header + "\n");
diff --git a/api/src/main/java/me/pikamug/quests/convo/actions/ActionsEditorNumericPrompt.java b/api/src/main/java/me/pikamug/quests/convo/actions/ActionsEditorNumericPrompt.java
new file mode 100644
index 000000000..aea3fd993
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/convo/actions/ActionsEditorNumericPrompt.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.convo.actions;
+
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.actions.ActionFactory;
+import me.pikamug.quests.convo.QuestsNumericPrompt;
+import org.bukkit.ChatColor;
+import org.bukkit.conversations.ConversationContext;
+
+public abstract class ActionsEditorNumericPrompt extends QuestsNumericPrompt {
+ private final ConversationContext context;
+ private ActionFactory factory;
+
+ public ActionsEditorNumericPrompt(final ConversationContext context) {
+ this.context = context;
+ if (context != null && context.getPlugin() != null) {
+ this.factory = ((Quests)context.getPlugin()).getActionFactory();
+ }
+ }
+
+ @Override
+ public String getName() {
+ return getClass().getSimpleName();
+ }
+
+ public ConversationContext getConversationContext() {
+ return context;
+ }
+
+ public ActionFactory getActionFactory() {
+ return factory;
+ }
+
+ public abstract int getSize();
+
+ public abstract String getTitle(ConversationContext context);
+
+ public abstract ChatColor getNumberColor(ConversationContext context, int number);
+
+ public abstract String getSelectionText(ConversationContext context, int number);
+
+ public abstract String getAdditionalText(ConversationContext context, int number);
+}
diff --git a/api/src/main/java/me/pikamug/quests/convo/actions/ActionsEditorStringPrompt.java b/api/src/main/java/me/pikamug/quests/convo/actions/ActionsEditorStringPrompt.java
new file mode 100644
index 000000000..578ff2f52
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/convo/actions/ActionsEditorStringPrompt.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.convo.actions;
+
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.actions.ActionFactory;
+import me.pikamug.quests.convo.QuestsStringPrompt;
+import org.bukkit.conversations.ConversationContext;
+
+public abstract class ActionsEditorStringPrompt extends QuestsStringPrompt {
+ private final ConversationContext context;
+ private ActionFactory factory;
+
+ public ActionsEditorStringPrompt(final ConversationContext context) {
+ this.context = context;
+ if (context != null && context.getPlugin() != null) {
+ this.factory = ((Quests)context.getPlugin()).getActionFactory();
+ }
+ }
+
+ @Override
+ public String getName() {
+ return getClass().getSimpleName();
+ }
+
+ public ConversationContext getConversationContext() {
+ return context;
+ }
+
+ public ActionFactory getActionFactory() {
+ return factory;
+ }
+
+ public abstract String getTitle(ConversationContext context);
+
+ public abstract String getQueryText(ConversationContext context);
+}
diff --git a/api/src/main/java/me/pikamug/quests/convo/conditions/ConditionsEditorNumericPrompt.java b/api/src/main/java/me/pikamug/quests/convo/conditions/ConditionsEditorNumericPrompt.java
new file mode 100644
index 000000000..999b37245
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/convo/conditions/ConditionsEditorNumericPrompt.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.convo.conditions;
+
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.conditions.ConditionFactory;
+import me.pikamug.quests.convo.QuestsNumericPrompt;
+import org.bukkit.ChatColor;
+import org.bukkit.conversations.ConversationContext;
+
+public abstract class ConditionsEditorNumericPrompt extends QuestsNumericPrompt {
+ private final ConversationContext context;
+ private ConditionFactory factory;
+
+ public ConditionsEditorNumericPrompt(final ConversationContext context) {
+ this.context = context;
+ if (context != null && context.getPlugin() != null) {
+ this.factory = ((Quests)context.getPlugin()).getConditionFactory();
+ }
+ }
+
+ @Override
+ public String getName() {
+ return getClass().getSimpleName();
+ }
+
+ public ConversationContext getConversationContext() {
+ return context;
+ }
+
+ public ConditionFactory getConditionFactory() {
+ return factory;
+ }
+
+ public abstract int getSize();
+
+ public abstract String getTitle(ConversationContext context);
+
+ public abstract ChatColor getNumberColor(ConversationContext context, int number);
+
+ public abstract String getSelectionText(ConversationContext context, int number);
+
+ public abstract String getAdditionalText(ConversationContext context, int number);
+}
diff --git a/api/src/main/java/me/pikamug/quests/convo/conditions/ConditionsEditorStringPrompt.java b/api/src/main/java/me/pikamug/quests/convo/conditions/ConditionsEditorStringPrompt.java
new file mode 100644
index 000000000..a85e9a20d
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/convo/conditions/ConditionsEditorStringPrompt.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.convo.conditions;
+
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.conditions.ConditionFactory;
+import me.pikamug.quests.convo.QuestsStringPrompt;
+import org.bukkit.conversations.ConversationContext;
+
+public abstract class ConditionsEditorStringPrompt extends QuestsStringPrompt {
+ private final ConversationContext context;
+ private ConditionFactory factory;
+
+ public ConditionsEditorStringPrompt(final ConversationContext context) {
+ this.context = context;
+ if (context != null && context.getPlugin() != null) {
+ this.factory = ((Quests)context.getPlugin()).getConditionFactory();
+ }
+ }
+
+ @Override
+ public String getName() {
+ return getClass().getSimpleName();
+ }
+
+ public ConversationContext getConversationContext() {
+ return context;
+ }
+
+ public ConditionFactory getConditionFactory() {
+ return factory;
+ }
+
+ public abstract String getTitle(ConversationContext context);
+
+ public abstract String getQueryText(ConversationContext context);
+}
diff --git a/api/src/main/java/me/pikamug/quests/convo/quests/QuestsEditorNumericPrompt.java b/api/src/main/java/me/pikamug/quests/convo/quests/QuestsEditorNumericPrompt.java
new file mode 100644
index 000000000..1809c292e
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/convo/quests/QuestsEditorNumericPrompt.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.convo.quests;
+
+import me.pikamug.quests.quests.QuestFactory;
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.convo.QuestsNumericPrompt;
+import org.bukkit.ChatColor;
+import org.bukkit.conversations.ConversationContext;
+
+public abstract class QuestsEditorNumericPrompt extends QuestsNumericPrompt {
+ private final ConversationContext context;
+ private QuestFactory factory;
+
+ public QuestsEditorNumericPrompt(final ConversationContext context) {
+ this.context = context;
+ if (context != null && context.getPlugin() != null) {
+ factory = ((Quests)context.getPlugin()).getQuestFactory();
+ }
+ }
+
+ @Override
+ public String getName() {
+ return getClass().getSimpleName();
+ }
+
+ public ConversationContext getConversationContext() {
+ return context;
+ }
+
+ public QuestFactory getQuestFactory() {
+ return factory;
+ }
+
+ public abstract int getSize();
+
+ public abstract String getTitle(ConversationContext context);
+
+ public abstract ChatColor getNumberColor(ConversationContext context, int number);
+
+ public abstract String getSelectionText(ConversationContext context, int number);
+
+ public abstract String getAdditionalText(ConversationContext context, int number);
+}
diff --git a/api/src/main/java/me/pikamug/quests/convo/quests/QuestsEditorStringPrompt.java b/api/src/main/java/me/pikamug/quests/convo/quests/QuestsEditorStringPrompt.java
new file mode 100644
index 000000000..8db72bcf9
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/convo/quests/QuestsEditorStringPrompt.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.convo.quests;
+
+import me.pikamug.quests.quests.QuestFactory;
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.convo.QuestsStringPrompt;
+import org.bukkit.conversations.ConversationContext;
+
+public abstract class QuestsEditorStringPrompt extends QuestsStringPrompt {
+ private final ConversationContext context;
+ private QuestFactory factory;
+
+ public QuestsEditorStringPrompt(final ConversationContext context) {
+ this.context = context;
+ if (context != null && context.getPlugin() != null) {
+ factory = ((Quests)context.getPlugin()).getQuestFactory();
+ }
+ }
+
+ @Override
+ public String getName() {
+ return getClass().getSimpleName();
+ }
+
+ public ConversationContext getConversationContext() {
+ return context;
+ }
+
+ public QuestFactory getQuestFactory() {
+ return factory;
+ }
+
+ public abstract String getTitle(ConversationContext context);
+
+ public abstract String getQueryText(ConversationContext context);
+}
diff --git a/api/src/main/java/me/pikamug/quests/dependencies/Dependencies.java b/api/src/main/java/me/pikamug/quests/dependencies/Dependencies.java
new file mode 100644
index 000000000..77df8e348
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/dependencies/Dependencies.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.dependencies;
+
+public interface Dependencies {
+
+ boolean isPluginAvailable(final String pluginName);
+
+ void init();
+}
diff --git a/api/src/main/java/me/pikamug/quests/entity/QuestMob.java b/api/src/main/java/me/pikamug/quests/entity/QuestMob.java
new file mode 100644
index 000000000..a426e0b7c
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/entity/QuestMob.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.entity;
+
+public interface QuestMob {
+ String getName();
+
+ void setName(final String name);
+
+ Integer getSpawnAmounts();
+
+ void setSpawnAmounts(final int spawnAmounts);
+
+ Float[] getDropChances();
+
+ void setDropChances(final Float[] dropChances);
+
+ void spawn();
+}
diff --git a/api/src/main/java/me/blackvein/quests/enums/ObjectiveType.java b/api/src/main/java/me/pikamug/quests/enums/ObjectiveType.java
similarity index 71%
rename from api/src/main/java/me/blackvein/quests/enums/ObjectiveType.java
rename to api/src/main/java/me/pikamug/quests/enums/ObjectiveType.java
index 8e5777728..004f6425d 100644
--- a/api/src/main/java/me/blackvein/quests/enums/ObjectiveType.java
+++ b/api/src/main/java/me/pikamug/quests/enums/ObjectiveType.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.enums;
+package me.pikamug.quests.enums;
import java.util.HashMap;
import java.util.Map;
diff --git a/api/src/main/java/me/pikamug/quests/enums/StorageType.java b/api/src/main/java/me/pikamug/quests/enums/StorageType.java
new file mode 100644
index 000000000..4fcf586b8
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/enums/StorageType.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.enums;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public enum StorageType {
+
+ // Local text file
+ YAML("YAML", "yaml", "yml"),
+
+ // Remote database
+ MYSQL("MySQL", "mysql"),
+
+ // Local archive
+ JAR("JAR", "jar"),
+
+ // Custom
+ CUSTOM("Custom", "custom");
+
+ private final String name;
+
+ private final List identifiers;
+
+ StorageType(final String name, final String... identifiers) {
+ this.name = name;
+ this.identifiers = Collections.unmodifiableList(Arrays.asList(identifiers));
+ }
+
+ public static StorageType parse(final String name, final StorageType def) {
+ for (final StorageType t : values()) {
+ for (final String id : t.getIdentifiers()) {
+ if (id.equalsIgnoreCase(name)) {
+ return t;
+ }
+ }
+ }
+ return def;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public List getIdentifiers() {
+ return identifiers;
+ }
+}
diff --git a/api/src/main/java/me/pikamug/quests/events/QuestsEvent.java b/api/src/main/java/me/pikamug/quests/events/QuestsEvent.java
new file mode 100644
index 000000000..a4d6396f9
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/events/QuestsEvent.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.events;
+
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
+
+public abstract class QuestsEvent extends Event {
+ private static final HandlerList HANDLERS = new HandlerList();
+
+ public QuestsEvent() {
+ }
+
+ public QuestsEvent(final boolean async) {
+ super(async);
+ }
+
+ @Override
+ public @NotNull HandlerList getHandlers() {
+ return HANDLERS;
+ }
+
+ public static HandlerList getHandlerList() {
+ return HANDLERS;
+ }
+}
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorEvent.java
similarity index 59%
rename from api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorEvent.java
index 0d497e886..9d78e017f 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorEvent.java
@@ -1,20 +1,18 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.actions;
+package me.pikamug.quests.events.editor.actions;
-import me.blackvein.quests.QuestsAPI;
-import me.blackvein.quests.actions.ActionFactory;
-import me.blackvein.quests.events.QuestsEvent;
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.actions.ActionFactory;
+import me.pikamug.quests.events.QuestsEvent;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
import org.bukkit.event.HandlerList;
@@ -33,14 +31,14 @@ public abstract class ActionsEditorEvent extends QuestsEvent {
public ActionsEditorEvent(final ConversationContext context, final Prompt prompt) {
this.context = context;
- this.factory = ((QuestsAPI) Objects.requireNonNull(context.getPlugin())).getActionFactory();
+ this.factory = ((Quests) Objects.requireNonNull(context.getPlugin())).getActionFactory();
this.prompt = prompt;
}
public ActionsEditorEvent(final ConversationContext context, final Prompt prompt, final boolean async) {
super(async);
this.context = context;
- this.factory = ((QuestsAPI) Objects.requireNonNull(context.getPlugin())).getActionFactory();
+ this.factory = ((Quests) Objects.requireNonNull(context.getPlugin())).getActionFactory();
this.prompt = prompt;
}
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorPostOpenNumericPromptEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorPostOpenNumericPromptEvent.java
similarity index 52%
rename from api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorPostOpenNumericPromptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorPostOpenNumericPromptEvent.java
index 356060d1e..2c5717a19 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorPostOpenNumericPromptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorPostOpenNumericPromptEvent.java
@@ -1,21 +1,19 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.actions;
+package me.pikamug.quests.events.editor.actions;
+import me.pikamug.quests.convo.actions.ActionsEditorNumericPrompt;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.event.HandlerList;
-import me.blackvein.quests.convo.actions.ActionsEditorNumericPrompt;
import org.jetbrains.annotations.NotNull;
public class ActionsEditorPostOpenNumericPromptEvent extends ActionsEditorEvent {
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorPostOpenStringPromptEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorPostOpenStringPromptEvent.java
similarity index 51%
rename from api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorPostOpenStringPromptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorPostOpenStringPromptEvent.java
index 757cfbe3b..ac1005219 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/actions/ActionsEditorPostOpenStringPromptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/actions/ActionsEditorPostOpenStringPromptEvent.java
@@ -1,18 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.actions;
+package me.pikamug.quests.events.editor.actions;
-import me.blackvein.quests.convo.actions.ActionsEditorStringPrompt;
+import me.pikamug.quests.convo.actions.ActionsEditorStringPrompt;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorEvent.java
similarity index 59%
rename from api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorEvent.java
index 136a99ddc..d894956c4 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorEvent.java
@@ -1,20 +1,18 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.conditions;
+package me.pikamug.quests.events.editor.conditions;
-import me.blackvein.quests.QuestsAPI;
-import me.blackvein.quests.conditions.ConditionFactory;
-import me.blackvein.quests.events.QuestsEvent;
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.conditions.ConditionFactory;
+import me.pikamug.quests.events.QuestsEvent;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
import org.bukkit.event.HandlerList;
@@ -33,14 +31,14 @@ public abstract class ConditionsEditorEvent extends QuestsEvent {
public ConditionsEditorEvent(final ConversationContext context, final Prompt prompt) {
this.context = context;
- this.factory = ((QuestsAPI) Objects.requireNonNull(context.getPlugin())).getConditionFactory();
+ this.factory = ((Quests) Objects.requireNonNull(context.getPlugin())).getConditionFactory();
this.prompt = prompt;
}
public ConditionsEditorEvent(final ConversationContext context, final Prompt prompt, final boolean async) {
super(async);
this.context = context;
- this.factory = ((QuestsAPI) Objects.requireNonNull(context.getPlugin())).getConditionFactory();
+ this.factory = ((Quests) Objects.requireNonNull(context.getPlugin())).getConditionFactory();
this.prompt = prompt;
}
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorPostOpenNumericPromptEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorPostOpenNumericPromptEvent.java
similarity index 52%
rename from api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorPostOpenNumericPromptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorPostOpenNumericPromptEvent.java
index de1e18b51..3335e7981 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorPostOpenNumericPromptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorPostOpenNumericPromptEvent.java
@@ -1,21 +1,19 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.conditions;
+package me.pikamug.quests.events.editor.conditions;
+import me.pikamug.quests.convo.conditions.ConditionsEditorNumericPrompt;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.event.HandlerList;
-import me.blackvein.quests.convo.conditions.ConditionsEditorNumericPrompt;
import org.jetbrains.annotations.NotNull;
public class ConditionsEditorPostOpenNumericPromptEvent extends ConditionsEditorEvent {
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorPostOpenStringPromptEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorPostOpenStringPromptEvent.java
similarity index 52%
rename from api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorPostOpenStringPromptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorPostOpenStringPromptEvent.java
index e86201847..db44e426d 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/conditions/ConditionsEditorPostOpenStringPromptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/conditions/ConditionsEditorPostOpenStringPromptEvent.java
@@ -1,21 +1,19 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.conditions;
+package me.pikamug.quests.events.editor.conditions;
+import me.pikamug.quests.convo.conditions.ConditionsEditorStringPrompt;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.event.HandlerList;
-import me.blackvein.quests.convo.conditions.ConditionsEditorStringPrompt;
import org.jetbrains.annotations.NotNull;
public class ConditionsEditorPostOpenStringPromptEvent extends ConditionsEditorEvent {
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorEvent.java
similarity index 58%
rename from api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorEvent.java
index a1990bfce..b5ac6202b 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorEvent.java
@@ -1,20 +1,18 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.quests;
+package me.pikamug.quests.events.editor.quests;
-import me.blackvein.quests.quests.QuestFactory;
-import me.blackvein.quests.QuestsAPI;
-import me.blackvein.quests.events.QuestsEvent;
+import me.pikamug.quests.quests.QuestFactory;
+import me.pikamug.quests.Quests;
+import me.pikamug.quests.events.QuestsEvent;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
import org.bukkit.event.HandlerList;
@@ -33,14 +31,14 @@ public abstract class QuestsEditorEvent extends QuestsEvent {
public QuestsEditorEvent(final ConversationContext context, final Prompt prompt) {
this.context = context;
- this.factory = ((QuestsAPI) Objects.requireNonNull(context.getPlugin())).getQuestFactory();
+ this.factory = ((Quests) Objects.requireNonNull(context.getPlugin())).getQuestFactory();
this.prompt = prompt;
}
public QuestsEditorEvent(final ConversationContext context, final Prompt prompt, final boolean async) {
super(async);
this.context = context;
- this.factory = ((QuestsAPI) Objects.requireNonNull(context.getPlugin())).getQuestFactory();
+ this.factory = ((Quests) Objects.requireNonNull(context.getPlugin())).getQuestFactory();
this.prompt = prompt;
}
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorPostOpenNumericPromptEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorPostOpenNumericPromptEvent.java
similarity index 52%
rename from api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorPostOpenNumericPromptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorPostOpenNumericPromptEvent.java
index 86d2f752f..0ab30a80b 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorPostOpenNumericPromptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorPostOpenNumericPromptEvent.java
@@ -1,18 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.quests;
+package me.pikamug.quests.events.editor.quests;
-import me.blackvein.quests.convo.quests.QuestsEditorNumericPrompt;
+import me.pikamug.quests.convo.quests.QuestsEditorNumericPrompt;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
diff --git a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorPostOpenStringPromptEvent.java b/api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorPostOpenStringPromptEvent.java
similarity index 51%
rename from api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorPostOpenStringPromptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorPostOpenStringPromptEvent.java
index efd2dc357..12582b28e 100644
--- a/api/src/main/java/me/blackvein/quests/events/editor/quests/QuestsEditorPostOpenStringPromptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/editor/quests/QuestsEditorPostOpenStringPromptEvent.java
@@ -1,18 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.editor.quests;
+package me.pikamug.quests.events.editor.quests;
-import me.blackvein.quests.convo.quests.QuestsEditorStringPrompt;
+import me.pikamug.quests.convo.quests.QuestsEditorStringPrompt;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
diff --git a/api/src/main/java/me/blackvein/quests/events/misc/MiscEditorEvent.java b/api/src/main/java/me/pikamug/quests/events/misc/MiscEditorEvent.java
similarity index 60%
rename from api/src/main/java/me/blackvein/quests/events/misc/MiscEditorEvent.java
rename to api/src/main/java/me/pikamug/quests/events/misc/MiscEditorEvent.java
index bfd46010c..788c6a443 100644
--- a/api/src/main/java/me/blackvein/quests/events/misc/MiscEditorEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/misc/MiscEditorEvent.java
@@ -1,18 +1,16 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.misc;
+package me.pikamug.quests.events.misc;
-import me.blackvein.quests.events.QuestsEvent;
+import me.pikamug.quests.events.QuestsEvent;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
import org.bukkit.event.HandlerList;
diff --git a/api/src/main/java/me/blackvein/quests/events/misc/MiscPostNpcOfferQuestEvent.java b/api/src/main/java/me/pikamug/quests/events/misc/MiscPostNpcOfferQuestEvent.java
similarity index 57%
rename from api/src/main/java/me/blackvein/quests/events/misc/MiscPostNpcOfferQuestEvent.java
rename to api/src/main/java/me/pikamug/quests/events/misc/MiscPostNpcOfferQuestEvent.java
index de6a64358..7cc2f3ae0 100644
--- a/api/src/main/java/me/blackvein/quests/events/misc/MiscPostNpcOfferQuestEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/misc/MiscPostNpcOfferQuestEvent.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.misc;
+package me.pikamug.quests.events.misc;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
diff --git a/api/src/main/java/me/blackvein/quests/events/misc/MiscPostQuestAbandonEvent.java b/api/src/main/java/me/pikamug/quests/events/misc/MiscPostQuestAbandonEvent.java
similarity index 57%
rename from api/src/main/java/me/blackvein/quests/events/misc/MiscPostQuestAbandonEvent.java
rename to api/src/main/java/me/pikamug/quests/events/misc/MiscPostQuestAbandonEvent.java
index 1baf6051d..dbf62b4fb 100644
--- a/api/src/main/java/me/blackvein/quests/events/misc/MiscPostQuestAbandonEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/misc/MiscPostQuestAbandonEvent.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.misc;
+package me.pikamug.quests.events.misc;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
diff --git a/api/src/main/java/me/blackvein/quests/events/misc/MiscPostQuestAcceptEvent.java b/api/src/main/java/me/pikamug/quests/events/misc/MiscPostQuestAcceptEvent.java
similarity index 57%
rename from api/src/main/java/me/blackvein/quests/events/misc/MiscPostQuestAcceptEvent.java
rename to api/src/main/java/me/pikamug/quests/events/misc/MiscPostQuestAcceptEvent.java
index f43bfbd2a..7c607585f 100644
--- a/api/src/main/java/me/blackvein/quests/events/misc/MiscPostQuestAcceptEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/misc/MiscPostQuestAcceptEvent.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.misc;
+package me.pikamug.quests.events.misc;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.Prompt;
diff --git a/api/src/main/java/me/pikamug/quests/events/quest/QuestEvent.java b/api/src/main/java/me/pikamug/quests/events/quest/QuestEvent.java
new file mode 100644
index 000000000..6658dd1f9
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/events/quest/QuestEvent.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.events.quest;
+
+import me.pikamug.quests.events.QuestsEvent;
+import me.pikamug.quests.quests.Quest;
+import org.bukkit.event.HandlerList;
+
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Represents a quest-related event
+ */
+public abstract class QuestEvent extends QuestsEvent {
+ private static final HandlerList HANDLERS = new HandlerList();
+ private final Quest quest;
+
+ public QuestEvent(final Quest quest) {
+ this.quest = quest;
+ }
+
+ public QuestEvent(final Quest quest, final boolean async) {
+ super(async);
+ this.quest = quest;
+ }
+
+ /**
+ * Returns the quest involved in this event
+ *
+ * @return Quest which is involved in this event
+ */
+ public final Quest getQuest() {
+ return quest;
+ }
+
+ @Override
+ public @NotNull HandlerList getHandlers() {
+ return HANDLERS;
+ }
+
+ public static HandlerList getHandlerList() {
+ return HANDLERS;
+ }
+}
diff --git a/api/src/main/java/me/pikamug/quests/events/quest/QuestQuitEvent.java b/api/src/main/java/me/pikamug/quests/events/quest/QuestQuitEvent.java
new file mode 100644
index 000000000..e2f79bd0d
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/events/quest/QuestQuitEvent.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.events.quest;
+
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.Quest;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Called when a quest is quit by a quester
+ */
+public class QuestQuitEvent extends QuestEvent implements Cancellable {
+ private static final HandlerList HANDLERS = new HandlerList();
+ private final Quester quester;
+ private boolean cancel = false;
+
+ public QuestQuitEvent(final Quest quest, final Quester who) {
+ super(quest);
+ this.quester = who;
+ }
+
+ /**
+ * Returns the quester involved in this event
+ *
+ * @return Quester who is involved in this event
+ */
+ public Quester getQuester() {
+ return quester;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancel;
+ }
+
+ @Override
+ public void setCancelled(final boolean cancel) {
+ this.cancel = cancel;
+ }
+
+ @Override
+ public @NotNull HandlerList getHandlers() {
+ return HANDLERS;
+ }
+
+ public static HandlerList getHandlerList() {
+ return HANDLERS;
+ }
+}
diff --git a/api/src/main/java/me/pikamug/quests/events/quest/QuestTakeEvent.java b/api/src/main/java/me/pikamug/quests/events/quest/QuestTakeEvent.java
new file mode 100644
index 000000000..498a88023
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/events/quest/QuestTakeEvent.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.events.quest;
+
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.Quest;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Called when a quest is taken by a quester
+ */
+public class QuestTakeEvent extends QuestEvent implements Cancellable {
+ private static final HandlerList HANDLERS = new HandlerList();
+ private final Quester quester;
+ private boolean cancel = false;
+
+ public QuestTakeEvent(final Quest quest, final Quester who) {
+ super(quest);
+ this.quester = who;
+ }
+
+ /**
+ * Returns the quester involved in this event
+ *
+ * @return Quester who is involved in this event
+ */
+ public Quester getQuester() {
+ return quester;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancel;
+ }
+
+ @Override
+ public void setCancelled(final boolean cancel) {
+ this.cancel = cancel;
+ }
+
+ @Override
+ public @NotNull HandlerList getHandlers() {
+ return HANDLERS;
+ }
+
+ public static HandlerList getHandlerList() {
+ return HANDLERS;
+ }
+}
diff --git a/api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java b/api/src/main/java/me/pikamug/quests/events/quest/QuestUpdateCompassEvent.java
similarity index 53%
rename from api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java
rename to api/src/main/java/me/pikamug/quests/events/quest/QuestUpdateCompassEvent.java
index 2ed6d94ba..a34c8f35c 100644
--- a/api/src/main/java/me/blackvein/quests/events/quest/QuestUpdateCompassEvent.java
+++ b/api/src/main/java/me/pikamug/quests/events/quest/QuestUpdateCompassEvent.java
@@ -1,23 +1,21 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.events.quest;
+package me.pikamug.quests.events.quest;
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.Quest;
import org.bukkit.Location;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
-import me.blackvein.quests.quests.IQuest;
-import me.blackvein.quests.player.IQuester;
import org.jetbrains.annotations.NotNull;
/**
@@ -25,11 +23,11 @@ import org.jetbrains.annotations.NotNull;
*/
public class QuestUpdateCompassEvent extends QuestEvent implements Cancellable {
private static final HandlerList HANDLERS = new HandlerList();
- private final IQuester quester;
+ private final Quester quester;
private final Location target;
private boolean cancel = false;
- public QuestUpdateCompassEvent(final IQuest quest, final IQuester who, final Location target) {
+ public QuestUpdateCompassEvent(final Quest quest, final Quester who, final Location target) {
super(quest);
this.quester = who;
this.target = target;
@@ -40,7 +38,7 @@ public class QuestUpdateCompassEvent extends QuestEvent implements Cancellable {
*
* @return Quester who is involved in this event
*/
- public IQuester getQuester() {
+ public Quester getQuester() {
return quester;
}
diff --git a/core/src/main/java/me/blackvein/quests/exceptions/ActionFormatException.java b/api/src/main/java/me/pikamug/quests/exceptions/ActionFormatException.java
similarity index 50%
rename from core/src/main/java/me/blackvein/quests/exceptions/ActionFormatException.java
rename to api/src/main/java/me/pikamug/quests/exceptions/ActionFormatException.java
index aab6545b9..00d5cb6bc 100644
--- a/core/src/main/java/me/blackvein/quests/exceptions/ActionFormatException.java
+++ b/api/src/main/java/me/pikamug/quests/exceptions/ActionFormatException.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.exceptions;
+package me.pikamug.quests.exceptions;
public class ActionFormatException extends Exception {
diff --git a/core/src/main/java/me/blackvein/quests/exceptions/ConditionFormatException.java b/api/src/main/java/me/pikamug/quests/exceptions/ConditionFormatException.java
similarity index 51%
rename from core/src/main/java/me/blackvein/quests/exceptions/ConditionFormatException.java
rename to api/src/main/java/me/pikamug/quests/exceptions/ConditionFormatException.java
index ed691d8b3..8b8b74362 100644
--- a/core/src/main/java/me/blackvein/quests/exceptions/ConditionFormatException.java
+++ b/api/src/main/java/me/pikamug/quests/exceptions/ConditionFormatException.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.exceptions;
+package me.pikamug.quests.exceptions;
public class ConditionFormatException extends Exception {
diff --git a/core/src/main/java/me/blackvein/quests/exceptions/QuestFormatException.java b/api/src/main/java/me/pikamug/quests/exceptions/QuestFormatException.java
similarity index 50%
rename from core/src/main/java/me/blackvein/quests/exceptions/QuestFormatException.java
rename to api/src/main/java/me/pikamug/quests/exceptions/QuestFormatException.java
index 64a7e562a..65d0c52b2 100644
--- a/core/src/main/java/me/blackvein/quests/exceptions/QuestFormatException.java
+++ b/api/src/main/java/me/pikamug/quests/exceptions/QuestFormatException.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.exceptions;
+package me.pikamug.quests.exceptions;
public class QuestFormatException extends Exception {
diff --git a/core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java b/api/src/main/java/me/pikamug/quests/exceptions/StageFormatException.java
similarity index 50%
rename from core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java
rename to api/src/main/java/me/pikamug/quests/exceptions/StageFormatException.java
index 621fe05a1..5cbfaa0d5 100644
--- a/core/src/main/java/me/blackvein/quests/exceptions/StageFormatException.java
+++ b/api/src/main/java/me/pikamug/quests/exceptions/StageFormatException.java
@@ -1,28 +1,26 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.exceptions;
+package me.pikamug.quests.exceptions;
-import me.blackvein.quests.quests.IQuest;
+import me.pikamug.quests.quests.Quest;
public class StageFormatException extends Exception {
private static final long serialVersionUID = -8217391053042612896L;
private final String message;
- private final IQuest quest;
+ private final Quest quest;
private final int stage;
- public StageFormatException(final String message, final IQuest quest, final int stage) {
+ public StageFormatException(final String message, final Quest 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 +42,7 @@ public class StageFormatException extends Exception {
*
* @return The quest that an invalid stage id was set within.
*/
- public IQuest getQuest() {
+ public Quest getQuest() {
return quest;
}
diff --git a/api/src/main/java/me/pikamug/quests/interfaces/ReloadCallback.java b/api/src/main/java/me/pikamug/quests/interfaces/ReloadCallback.java
new file mode 100644
index 000000000..a81234a5a
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/interfaces/ReloadCallback.java
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.interfaces;
+
+public interface ReloadCallback {
+ void execute(T response);
+}
diff --git a/api/src/main/java/me/blackvein/quests/module/ICustomObjective.java b/api/src/main/java/me/pikamug/quests/module/CustomObjective.java
similarity index 51%
rename from api/src/main/java/me/blackvein/quests/module/ICustomObjective.java
rename to api/src/main/java/me/pikamug/quests/module/CustomObjective.java
index 433466ea8..ccfe10548 100644
--- a/api/src/main/java/me/blackvein/quests/module/ICustomObjective.java
+++ b/api/src/main/java/me/pikamug/quests/module/CustomObjective.java
@@ -1,27 +1,26 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.module;
+package me.pikamug.quests.module;
-import me.blackvein.quests.quests.IQuest;
-import org.bukkit.entity.Player;
+import me.pikamug.quests.quests.Quest;
import java.util.LinkedList;
import java.util.Map;
+import java.util.UUID;
-public interface ICustomObjective {
+public interface CustomObjective {
String getModuleName();
+ @SuppressWarnings("unused")
Map.Entry getModuleItem();
String getName();
@@ -78,12 +77,20 @@ public interface ICustomObjective {
/**
* Get custom objective data for applicable player
*
- * @param player Player attempting this objective
+ * @param uuid UUID of player attempting this objective
* @param customObj The objective being attempted
- * @param quest Current me.blackvein.quests.Quest which includes this objective
- * @return data
+ * @param quest Current me.pikamug.quests.Quest which includes this objective
+ * @return data Map of custom objective data
*/
- Map getDataForPlayerTemp(final Player player, final ICustomObjective customObj, final IQuest quest);
+ Map getDataForPlayer(final UUID uuid, final CustomObjective customObj, final Quest quest);
- void incrementObjectiveTemp(final Player player, final ICustomObjective obj, final int count, final IQuest quest);
+ /**
+ * Increment objective count for applicable player
+ *
+ * @param uuid UUID of player attempting this objective
+ * @param customObj The objective being attempted
+ * @param quest Current me.pikamug.quests.Quest which includes this objective
+ * @param count Amount to increase objective count by
+ */
+ void incrementObjective(final UUID uuid, final CustomObjective customObj, final Quest quest, final int count);
}
diff --git a/api/src/main/java/me/pikamug/quests/module/CustomRequirement.java b/api/src/main/java/me/pikamug/quests/module/CustomRequirement.java
new file mode 100644
index 000000000..2fab8a81f
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/module/CustomRequirement.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.module;
+
+import java.util.Map;
+import java.util.UUID;
+
+public interface CustomRequirement {
+
+ String getModuleName();
+
+ @SuppressWarnings("unused")
+ Map.Entry getModuleItem();
+
+ String getName();
+
+ void setName(final String name);
+
+ String getAuthor();
+
+ void setAuthor(final String author);
+
+ String getDisplay();
+
+ void setDisplay(final String display);
+
+ Map.Entry getItem();
+
+ void setItem(final String type, final short durability);
+
+ Map getData();
+
+ Map getDescriptions();
+
+ /**
+ * 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
+ */
+ void addStringPrompt(final String title, final String description, final Object defaultValue);
+
+ /**
+ * Test whether a player has met the requirement
+ *
+ * @param uuid UUID of player being tested
+ * @param data Map of custom requirement data
+ * @return true if met
+ */
+ boolean testRequirement(UUID uuid, Map data);
+}
diff --git a/api/src/main/java/me/pikamug/quests/module/CustomReward.java b/api/src/main/java/me/pikamug/quests/module/CustomReward.java
new file mode 100644
index 000000000..f88decb15
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/module/CustomReward.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.module;
+
+import java.util.Map;
+import java.util.UUID;
+
+public interface CustomReward {
+
+ String getModuleName();
+
+ @SuppressWarnings("unused")
+ Map.Entry getModuleItem();
+
+ String getName();
+
+ void setName(final String name);
+
+ String getAuthor();
+
+ void setAuthor(final String author);
+
+ String getDisplay();
+
+ void setDisplay(final String display);
+
+ Map.Entry getItem();
+
+ void setItem(final String type, final short durability);
+
+ Map getData();
+
+ Map getDescriptions();
+
+ /**
+ * 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
+ */
+ void addStringPrompt(final String title, final String description, final Object defaultValue);
+
+ /**
+ * Give loot reward to a player
+ *
+ * @param uuid UUID of player being tested
+ * @param data Map of custom reward data
+ */
+ void giveReward(UUID uuid, Map data);
+}
diff --git a/api/src/main/java/me/pikamug/quests/player/QuestProgress.java b/api/src/main/java/me/pikamug/quests/player/QuestProgress.java
new file mode 100644
index 000000000..de5a1f9e4
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/player/QuestProgress.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.player;
+
+import java.util.LinkedList;
+
+public interface QuestProgress {
+ LinkedList> getBlocksBroken();
+
+ LinkedList> getBlocksDamaged();
+
+ LinkedList> getBlocksPlaced();
+
+ LinkedList> getBlocksUsed();
+
+ LinkedList> getBlocksCut();
+
+ LinkedList> getItemsCrafted();
+
+ LinkedList> getItemsSmelted();
+
+ LinkedList> getItemsEnchanted();
+
+ LinkedList> getItemsBrewed();
+
+ LinkedList> getItemsConsumed();
+
+ LinkedList> getItemsDelivered();
+
+ LinkedList getNpcsInteracted();
+
+ void setNpcsInteracted(final LinkedList npcsInteracted);
+
+ LinkedList getNpcsNumKilled();
+
+ void setNpcsNumKilled(final LinkedList npcsNumKilled);
+
+ LinkedList getMobNumKilled();
+
+ void setMobNumKilled(final LinkedList mobNumKilled);
+
+ LinkedList getMobsTamed();
+
+ void setMobsTamed(final LinkedList mobsTamed);
+
+ int getFishCaught();
+
+ void setFishCaught(final int fishCaught);
+
+ int getCowsMilked();
+
+ void setCowsMilked(final int cowsMilked);
+
+ LinkedList getSheepSheared();
+
+ void setSheepSheared(final LinkedList sheepSheared);
+
+ int getPlayersKilled();
+
+ void setPlayersKilled(final int playersKilled);
+
+ LinkedList getLocationsReached();
+
+ void setLocationsReached(final LinkedList locationsReached);
+
+ LinkedList getPasswordsSaid();
+
+ void setPasswordsSaid(final LinkedList passwordsSaid);
+
+ LinkedList getCustomObjectiveCounts();
+
+ void setCustomObjectiveCounts(final LinkedList customObjectiveCounts);
+
+ long getDelayStartTime();
+
+ void setDelayStartTime(final long delayStartTime);
+
+ long getDelayTimeLeft();
+
+ void setDelayTimeLeft(final long delayTimeLeft);
+
+ boolean canDoJournalUpdate();
+
+ void setDoJournalUpdate(final boolean b);
+}
diff --git a/api/src/main/java/me/pikamug/quests/player/Quester.java b/api/src/main/java/me/pikamug/quests/player/Quester.java
new file mode 100644
index 000000000..9d380ac32
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/player/Quester.java
@@ -0,0 +1,256 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.player;
+
+import me.pikamug.quests.quests.Quest;
+import me.pikamug.quests.quests.components.Stage;
+import me.pikamug.quests.quests.components.Objective;
+import me.pikamug.quests.enums.ObjectiveType;
+import me.pikamug.quests.module.CustomObjective;
+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 getQuestIdToQuit();
+
+ void setQuestIdToQuit(final String questIdToQuit);
+
+ 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);
+
+ Player getPlayer();
+
+ OfflinePlayer getOfflinePlayer();
+
+ void sendMessage(final String message);
+
+ Stage getCurrentStage(final Quest quest);
+
+ QuestProgress getQuestDataOrDefault(final Quest quest);
+
+ boolean hasJournal();
+
+ ItemStack getJournal();
+
+ int getJournalIndex();
+
+ void updateJournal();
+
+ boolean offerQuest(final Quest quest, final boolean giveReason);
+
+ boolean canAcceptOffer(final Quest quest, final boolean giveReason);
+
+ boolean isOnTime(final Quest quest, final boolean giveReason);
+
+ void takeQuest(final Quest quest, final boolean ignoreRequirements);
+
+ boolean abandonQuest(final Quest quest, final String message);
+
+ boolean abandonQuest(final Quest quest, final String[] messages);
+
+ void quitQuest(final Quest quest, final String message);
+
+ void quitQuest(final Quest quest, final String[] messages);
+
+ void listQuests(final Quester quester, final int page);
+
+ LinkedList getCurrentRequirements(final Quest quest, final boolean ignoreOverrides);
+
+ LinkedList getCurrentObjectives(final Quest quest, final boolean ignoreOverrides);
+
+ void showCurrentObjectives(final Quest quest, final Quester quester, final boolean ignoreOverrides);
+
+ boolean hasObjective(final Quest quest, final ObjectiveType type);
+
+ boolean hasCustomObjective(final Quest quest, final String name);
+
+ void showCurrentConditions(final Quest quest, final Quester quester);
+
+ 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 UUID npc, final ItemStack itemStack);
+
+ void interactWithNPC(final Quest quest, final UUID npc);
+
+ void killNPC(final Quest quest, final UUID 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 UUID 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 UUID 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 QuestProgress 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 meetsCondition(final Quest quest, final boolean giveReason);
+
+ boolean isSelectingBlock();
+
+ boolean isInRegion(final String regionID);
+
+ boolean canAcceptQuest(final UUID npc);
+
+ boolean canAcceptCompletedQuest(final UUID npc);
+
+ boolean canAcceptCompletedRedoableQuest(final UUID npc);
+}
diff --git a/api/src/main/java/me/pikamug/quests/quests/Quest.java b/api/src/main/java/me/pikamug/quests/quests/Quest.java
new file mode 100644
index 000000000..f4a6bf27a
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/quests/Quest.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.quests;
+
+import me.pikamug.quests.actions.Action;
+import me.pikamug.quests.player.Quester;
+import me.pikamug.quests.quests.components.Options;
+import me.pikamug.quests.quests.components.Planner;
+import me.pikamug.quests.quests.components.Requirements;
+import me.pikamug.quests.quests.components.Rewards;
+import me.pikamug.quests.quests.components.Stage;
+
+import java.util.LinkedList;
+import java.util.UUID;
+
+public interface Quest extends Comparable {
+
+ String getId();
+
+ void setId(String id);
+
+ String getName();
+
+ void setName(final String name);
+
+ String getDescription();
+
+ void setDescription(final String description);
+
+ String getFinished();
+
+ void setFinished(final String finished);
+
+ String getRegionStart();
+
+ void setRegionStart(final String regionStart);
+
+ Stage getStage(final int index);
+
+ LinkedList getStages();
+
+ UUID getNpcStart();
+
+ void setNpcStart(final UUID npcStart);
+
+ String getNpcStartName();
+
+ Action getInitialAction();
+
+ void setInitialAction(final Action initialAction);
+
+ Requirements getRequirements();
+
+ void setRequirements(final Requirements requirements);
+
+ Planner getPlanner();
+
+ void setPlanner(final Planner planner);
+
+ Rewards getRewards();
+
+ void setRewards(final Rewards rewards);
+
+ Options getOptions();
+
+ void setOptions(final Options options);
+
+ void nextStage(final Quester quester, final boolean allowSharedProgress);
+
+ void setStage(final Quester quester, final int stage);
+
+ boolean updateCompass(final Quester quester, final Stage stage);
+
+ boolean testRequirements(final Quester quester);
+
+ void completeQuest(final Quester quester);
+
+ void completeQuest(final Quester quester, final boolean allowMultiplayer);
+
+ void failQuest(final Quester quester);
+
+ void failQuest(final Quester quester, final boolean ignoreFailAction);
+
+ boolean isInRegionStart(final Quester quester);
+}
diff --git a/api/src/main/java/me/pikamug/quests/quests/QuestFactory.java b/api/src/main/java/me/pikamug/quests/quests/QuestFactory.java
new file mode 100644
index 000000000..f2f24d533
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/quests/QuestFactory.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.quests;
+
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.conversations.ConversationContext;
+import org.bukkit.conversations.ConversationFactory;
+import org.bukkit.conversations.Prompt;
+
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+public interface QuestFactory {
+
+ Set getSelectingNpcs();
+
+ void setSelectingNpcs(final Set selectingNpcs);
+
+ List getNamesOfQuestsBeingEdited();
+
+ void setNamesOfQuestsBeingEdited(final List questNames);
+
+ ConversationFactory getConversationFactory();
+
+ Prompt returnToMenu(final ConversationContext context);
+
+ void loadQuest(final ConversationContext context, final Quest q);
+
+ void deleteQuest(final ConversationContext context);
+
+ void saveQuest(final ConversationContext context, final ConfigurationSection section);
+
+ /*void saveRequirements(final ConversationContext context, final ConfigurationSection section);
+
+ void saveStages(final ConversationContext context, final ConfigurationSection section);
+
+ void saveRewards(final ConversationContext context, final ConfigurationSection section);
+
+ void savePlanner(final ConversationContext context, final ConfigurationSection section);
+
+ void saveOptions(final ConversationContext context, final ConfigurationSection section);*/
+}
diff --git a/api/src/main/java/me/pikamug/quests/quests/components/Objective.java b/api/src/main/java/me/pikamug/quests/quests/components/Objective.java
new file mode 100644
index 000000000..35154f080
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/quests/components/Objective.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.quests.components;
+
+import me.pikamug.quests.enums.ObjectiveType;
+import org.jetbrains.annotations.NotNull;
+
+public interface Objective {
+ ObjectiveType getType();
+
+ String getMessage();
+
+ int getProgress();
+
+ int getGoal();
+
+ @NotNull Object getProgressObject();
+
+ @NotNull Object getGoalObject();
+}
diff --git a/api/src/main/java/me/blackvein/quests/quests/Options.java b/api/src/main/java/me/pikamug/quests/quests/components/Options.java
similarity index 55%
rename from api/src/main/java/me/blackvein/quests/quests/Options.java
rename to api/src/main/java/me/pikamug/quests/quests/components/Options.java
index 0b0cb1896..6e50b94bc 100644
--- a/api/src/main/java/me/blackvein/quests/quests/Options.java
+++ b/api/src/main/java/me/pikamug/quests/quests/components/Options.java
@@ -1,16 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.quests;
+package me.pikamug.quests.quests.components;
public interface Options {
boolean canAllowCommands();
diff --git a/api/src/main/java/me/pikamug/quests/quests/components/Planner.java b/api/src/main/java/me/pikamug/quests/quests/components/Planner.java
new file mode 100644
index 000000000..b00e43d35
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/quests/components/Planner.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.quests.components;
+
+public interface Planner {
+ String getStart();
+
+ long getStartInMillis();
+
+ boolean hasStart();
+
+ void setStart(final String start);
+
+ String getEnd();
+
+ long getEndInMillis();
+
+ boolean hasEnd();
+
+ void setEnd(final String end);
+
+ long getRepeat();
+
+ boolean hasRepeat();
+
+ void setRepeat(final long repeat);
+
+ long getCooldown();
+
+ boolean hasCooldown();
+
+ void setCooldown(final long cooldown);
+
+ boolean getOverride();
+
+ void setOverride(final boolean override);
+}
diff --git a/api/src/main/java/me/blackvein/quests/quests/Requirements.java b/api/src/main/java/me/pikamug/quests/quests/components/Requirements.java
similarity index 60%
rename from api/src/main/java/me/blackvein/quests/quests/Requirements.java
rename to api/src/main/java/me/pikamug/quests/quests/components/Requirements.java
index d3076de3b..4c0139510 100644
--- a/api/src/main/java/me/blackvein/quests/quests/Requirements.java
+++ b/api/src/main/java/me/pikamug/quests/quests/components/Requirements.java
@@ -1,18 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.quests;
-
-import org.bukkit.inventory.ItemStack;
+package me.pikamug.quests.quests.components;
import java.util.List;
import java.util.Map;
@@ -30,9 +26,7 @@ public interface Requirements {
void setExp(final int exp);
- List getItems();
-
- void setItems(final List items);
+ List> getItems();
List getRemoveItems();
diff --git a/api/src/main/java/me/blackvein/quests/quests/Rewards.java b/api/src/main/java/me/pikamug/quests/quests/components/Rewards.java
similarity index 63%
rename from api/src/main/java/me/blackvein/quests/quests/Rewards.java
rename to api/src/main/java/me/pikamug/quests/quests/components/Rewards.java
index cb45cfca0..7a6662de4 100644
--- a/api/src/main/java/me/blackvein/quests/quests/Rewards.java
+++ b/api/src/main/java/me/pikamug/quests/quests/components/Rewards.java
@@ -1,18 +1,14 @@
/*
- * Copyright (c) 2014 PikaMug and contributors. All rights reserved.
+ * Copyright (c) PikaMug and contributors
*
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package me.blackvein.quests.quests;
-
-import org.bukkit.inventory.ItemStack;
+package me.pikamug.quests.quests.components;
import java.util.List;
import java.util.Map;
@@ -46,9 +42,7 @@ public interface Rewards {
void setPermissionWorlds(final List worldNames);
- List getItems();
-
- void setItems(final List items);
+ List> getItems();
List getMcmmoSkills();
diff --git a/api/src/main/java/me/pikamug/quests/quests/components/Stage.java b/api/src/main/java/me/pikamug/quests/quests/components/Stage.java
new file mode 100644
index 000000000..1eb9f659e
--- /dev/null
+++ b/api/src/main/java/me/pikamug/quests/quests/components/Stage.java
@@ -0,0 +1,220 @@
+/*
+ * Copyright (c) PikaMug and contributors
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+package me.pikamug.quests.quests.components;
+
+import me.pikamug.quests.actions.Action;
+import me.pikamug.quests.conditions.Condition;
+import me.pikamug.quests.enums.ObjectiveType;
+import me.pikamug.quests.module.CustomObjective;
+
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.UUID;
+
+public interface Stage {
+ LinkedList> getBlocksToBreak();
+
+ LinkedList> getBlocksToDamage();
+
+ LinkedList> getBlocksToPlace();
+
+ LinkedList> getBlocksToUse();
+
+ LinkedList> getBlocksToCut();
+
+ LinkedList> getItemsToCraft();
+
+ LinkedList> getItemsToSmelt();
+
+ LinkedList> getItemsToEnchant();
+
+ LinkedList> getItemsToBrew();
+
+ LinkedList> getItemsToConsume();
+
+ LinkedList> getItemsToDeliver();
+
+ LinkedList getItemDeliveryTargets();
+
+ void setItemDeliveryTargets(final LinkedList itemDeliveryTargets);
+
+ LinkedList getDeliverMessages();
+
+ void setDeliverMessages(final LinkedList deliverMessages);
+
+ LinkedList getNpcsToInteract();
+
+ void setNpcsToInteract(final LinkedList npcsToInteract);
+
+ LinkedList