mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-25 12:15:59 +01:00
Remove native GPS support. Add new Bukkit Event API. Bump version number
This commit is contained in:
parent
d42123a275
commit
7927806d41
2
dist/pom.xml
vendored
2
dist/pom.xml
vendored
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.blackvein.quests</groupId>
|
||||||
<artifactId>quests-parent</artifactId>
|
<artifactId>quests-parent</artifactId>
|
||||||
<version>3.6.9</version>
|
<version>3.7.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>quests-dist</artifactId>
|
<artifactId>quests-dist</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.blackvein.quests</groupId>
|
||||||
<artifactId>quests-parent</artifactId>
|
<artifactId>quests-parent</artifactId>
|
||||||
<version>3.6.9</version>
|
<version>3.7.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>quests-main</artifactId>
|
<artifactId>quests-main</artifactId>
|
||||||
|
|
||||||
@ -112,11 +112,6 @@
|
|||||||
<artifactId>PhatLoots</artifactId>
|
<artifactId>PhatLoots</artifactId>
|
||||||
<version>-SNAPSHOT</version>
|
<version>-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>com.github.PikaMug</groupId>
|
|
||||||
<artifactId>GPS</artifactId>
|
|
||||||
<version>-SNAPSHOT</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.DRE2N</groupId>
|
<groupId>com.github.DRE2N</groupId>
|
||||||
<artifactId>DungeonsXL</artifactId>
|
<artifactId>DungeonsXL</artifactId>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -28,8 +28,6 @@ import com.alessiodp.parties.api.interfaces.PartiesAPI;
|
|||||||
import com.codisimus.plugins.phatloots.PhatLoots;
|
import com.codisimus.plugins.phatloots.PhatLoots;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.herocraftonline.heroes.Heroes;
|
import com.herocraftonline.heroes.Heroes;
|
||||||
import com.live.bemmamin.gps.Vars;
|
|
||||||
import com.live.bemmamin.gps.api.GPSAPI;
|
|
||||||
|
|
||||||
import de.erethon.dungeonsxl.DungeonsXL;
|
import de.erethon.dungeonsxl.DungeonsXL;
|
||||||
|
|
||||||
@ -40,7 +38,6 @@ public class Dependencies {
|
|||||||
private static Permission permission = null;
|
private static Permission permission = null;
|
||||||
private static WorldGuardAPI worldGuardApi = null;
|
private static WorldGuardAPI worldGuardApi = null;
|
||||||
private static mcMMO mcmmo = null;
|
private static mcMMO mcmmo = null;
|
||||||
private static GPSAPI gpsapi = null;
|
|
||||||
private static Heroes heroes = null;
|
private static Heroes heroes = null;
|
||||||
private static PhatLoots phatLoots = null;
|
private static PhatLoots phatLoots = null;
|
||||||
private static PlaceholderAPIPlugin placeholder = null;
|
private static PlaceholderAPIPlugin placeholder = null;
|
||||||
@ -70,10 +67,6 @@ public class Dependencies {
|
|||||||
return mcmmo;
|
return mcmmo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GPSAPI getGpsApi() {
|
|
||||||
return gpsapi;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Heroes getHeroes() {
|
public Heroes getHeroes() {
|
||||||
return heroes;
|
return heroes;
|
||||||
}
|
}
|
||||||
@ -138,10 +131,6 @@ public class Dependencies {
|
|||||||
if (isPluginAvailable("mcMMO")) {
|
if (isPluginAvailable("mcMMO")) {
|
||||||
mcmmo = (mcMMO) plugin.getServer().getPluginManager().getPlugin("mcMMO");
|
mcmmo = (mcMMO) plugin.getServer().getPluginManager().getPlugin("mcMMO");
|
||||||
}
|
}
|
||||||
if (isPluginAvailable("GPS") && plugin.getSettings().canUseGPS()) {
|
|
||||||
gpsapi = new GPSAPI(plugin);
|
|
||||||
Vars.getInstance().setMaxDistanceToEntry(9999.0);
|
|
||||||
}
|
|
||||||
if (isPluginAvailable("Heroes")) {
|
if (isPluginAvailable("Heroes")) {
|
||||||
heroes = (Heroes) plugin.getServer().getPluginManager().getPlugin("Heroes");
|
heroes = (Heroes) plugin.getServer().getPluginManager().getPlugin("Heroes");
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -39,6 +39,12 @@ import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
|||||||
|
|
||||||
import de.erethon.dungeonsxl.player.DGroup;
|
import de.erethon.dungeonsxl.player.DGroup;
|
||||||
import me.blackvein.quests.actions.Action;
|
import me.blackvein.quests.actions.Action;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPostChangeStageEvent;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPostCompleteQuestEvent;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPostFailQuestEvent;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPreChangeStageEvent;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPreCompleteQuestEvent;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPreFailQuestEvent;
|
||||||
import me.blackvein.quests.exceptions.InvalidStageException;
|
import me.blackvein.quests.exceptions.InvalidStageException;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
@ -149,7 +155,7 @@ public class Quest {
|
|||||||
return initialAction;
|
return initialAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInitialActino(Action initialAction) {
|
public void setInitialAction(Action initialAction) {
|
||||||
this.initialAction = initialAction;
|
this.initialAction = initialAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,6 +243,12 @@ public class Quest {
|
|||||||
throw new InvalidStageException(this, stage);
|
throw new InvalidStageException(this, stage);
|
||||||
}
|
}
|
||||||
Stage currentStage = quester.getCurrentStage(this);
|
Stage currentStage = quester.getCurrentStage(this);
|
||||||
|
Stage nextStage = quester.getCurrentStage(this);
|
||||||
|
QuesterPreChangeStageEvent preEvent = new QuesterPreChangeStageEvent(quester, this, currentStage, nextStage);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(preEvent);
|
||||||
|
if (preEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
quester.hardQuit(this);
|
quester.hardQuit(this);
|
||||||
quester.hardStagePut(this, stage);
|
quester.hardStagePut(this, stage);
|
||||||
quester.addEmptiesFor(this, stage);
|
quester.addEmptiesFor(this, stage);
|
||||||
@ -246,12 +258,10 @@ public class Quest {
|
|||||||
/*
|
/*
|
||||||
* if (quester.getCurrentStage(this).finishEvent != null) { quester.getCurrentStage(this).finishEvent.fire(quester); }
|
* if (quester.getCurrentStage(this).finishEvent != null) { quester.getCurrentStage(this).finishEvent.fire(quester); }
|
||||||
*/
|
*/
|
||||||
Stage nextStage = quester.getCurrentStage(this);
|
|
||||||
if (nextStage.startEvent != null) {
|
if (nextStage.startEvent != null) {
|
||||||
nextStage.startEvent.fire(quester, this);
|
nextStage.startEvent.fire(quester, this);
|
||||||
}
|
}
|
||||||
updateCompass(quester, nextStage);
|
updateCompass(quester, nextStage);
|
||||||
updateGPS(quester);
|
|
||||||
String msg = Lang.get(quester.getPlayer(), "questObjectivesTitle");
|
String msg = Lang.get(quester.getPlayer(), "questObjectivesTitle");
|
||||||
msg = msg.replace("<quest>", name);
|
msg = msg.replace("<quest>", name);
|
||||||
quester.getPlayer().sendMessage(ChatColor.GOLD + msg);
|
quester.getPlayer().sendMessage(ChatColor.GOLD + msg);
|
||||||
@ -261,62 +271,8 @@ public class Quest {
|
|||||||
quester.getPlayer().sendMessage(plugin.parseStringWithPossibleLineBreaks(stageStartMessage, this, quester.getPlayer()));
|
quester.getPlayer().sendMessage(plugin.parseStringWithPossibleLineBreaks(stageStartMessage, this, quester.getPlayer()));
|
||||||
}
|
}
|
||||||
quester.updateJournal();
|
quester.updateJournal();
|
||||||
}
|
QuesterPostChangeStageEvent postEvent = new QuesterPostChangeStageEvent(quester, this, currentStage, nextStage);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(postEvent);
|
||||||
/**
|
|
||||||
* Add location-objective points for GPS and begin navigation.<p>
|
|
||||||
*
|
|
||||||
* Do not call this method multiple times.
|
|
||||||
*
|
|
||||||
* @param quester The quester to have their GPS updated
|
|
||||||
* @return true if successful
|
|
||||||
*/
|
|
||||||
protected boolean updateGPS(Quester quester) {
|
|
||||||
if (plugin.getDependencies().getGpsApi() == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
Stage stage = quester.getCurrentStage(this);
|
|
||||||
LinkedList<Location> targetLocations = new LinkedList<Location>();
|
|
||||||
if (stage == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (stage.citizensToInteract != null && stage.citizensToInteract.size() > 0) {
|
|
||||||
for (Integer i : stage.citizensToInteract) {
|
|
||||||
targetLocations.add(plugin.getNPCLocation(i));
|
|
||||||
}
|
|
||||||
} else if (stage.citizensToKill != null && stage.citizensToKill.size() > 0) {
|
|
||||||
for (Integer i : stage.citizensToKill) {
|
|
||||||
targetLocations.add(plugin.getNPCLocation(i));
|
|
||||||
}
|
|
||||||
} else if (stage.locationsToReach != null && stage.locationsToReach.size() > 0) {
|
|
||||||
targetLocations.addAll(stage.locationsToReach);
|
|
||||||
} else if (stage.itemDeliveryTargets != null && stage.itemDeliveryTargets.size() > 0) {
|
|
||||||
for (Integer i : stage.itemDeliveryTargets) {
|
|
||||||
NPC npc = plugin.getDependencies().getCitizens().getNPCRegistry().getById(i);
|
|
||||||
targetLocations.add(npc.getStoredLocation());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (targetLocations != null && !targetLocations.isEmpty()) {
|
|
||||||
int index = 1;
|
|
||||||
String pointName = "quests-" + quester.getPlayer().getUniqueId().toString() + "-" + stage.toString() + "-";
|
|
||||||
for (Location l : targetLocations) {
|
|
||||||
if (l.getWorld().getName().equals(quester.getPlayer().getWorld().getName())) {
|
|
||||||
if (!plugin.getDependencies().getGpsApi().gpsIsActive(quester.getPlayer())) {
|
|
||||||
plugin.getDependencies().getGpsApi().addPoint(pointName + index, l);
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i = 1 ; i < targetLocations.size(); i++) {
|
|
||||||
if (!plugin.getDependencies().getGpsApi().gpsIsActive(quester.getPlayer())) {
|
|
||||||
plugin.getDependencies().getGpsApi().connect(pointName + i, pointName + (i + 1), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!plugin.getDependencies().getGpsApi().gpsIsActive(quester.getPlayer())) {
|
|
||||||
plugin.getDependencies().getGpsApi().startGPS(quester.getPlayer(), pointName + (index - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return targetLocations != null && !targetLocations.isEmpty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -457,6 +413,11 @@ public class Quest {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void completeQuest(Quester q) {
|
public void completeQuest(Quester q) {
|
||||||
|
QuesterPreCompleteQuestEvent preEvent = new QuesterPreCompleteQuestEvent(q, this);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(preEvent);
|
||||||
|
if (preEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final Player player = plugin.getServer().getPlayer(q.getUUID());
|
final Player player = plugin.getServer().getPlayer(q.getUUID());
|
||||||
q.hardQuit(this);
|
q.hardQuit(this);
|
||||||
if (!q.completedQuests.contains(name)) {
|
if (!q.completedQuests.contains(name)) {
|
||||||
@ -596,7 +557,7 @@ public class Quest {
|
|||||||
if (!i.getItemMeta().hasItemFlag(ItemFlag.HIDE_ENCHANTS)) {
|
if (!i.getItemMeta().hasItemFlag(ItemFlag.HIDE_ENCHANTS)) {
|
||||||
text += ChatColor.GRAY + " " + Lang.get(player, "with") + ChatColor.DARK_PURPLE;
|
text += ChatColor.GRAY + " " + Lang.get(player, "with") + ChatColor.DARK_PURPLE;
|
||||||
for (Entry<Enchantment, Integer> e : i.getEnchantments().entrySet()) {
|
for (Entry<Enchantment, Integer> e : i.getEnchantments().entrySet()) {
|
||||||
text += " " + Quester.prettyEnchantmentString(e.getKey()) + ":" + e.getValue();
|
text += " " + ItemUtil.getPrettyEnchantmentName(e.getKey()) + ":" + e.getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable tr) {
|
} catch (Throwable tr) {
|
||||||
@ -610,7 +571,7 @@ public class Quest {
|
|||||||
} else {
|
} else {
|
||||||
text = "- " + ChatColor.DARK_GREEN + ItemUtil.getName(i) + ":" + i.getDurability() + ChatColor.GRAY + " " + Lang.get(player, "with");
|
text = "- " + ChatColor.DARK_GREEN + ItemUtil.getName(i) + ":" + i.getDurability() + ChatColor.GRAY + " " + Lang.get(player, "with");
|
||||||
for (Entry<Enchantment, Integer> e : i.getEnchantments().entrySet()) {
|
for (Entry<Enchantment, Integer> e : i.getEnchantments().entrySet()) {
|
||||||
text += " " + Quester.prettyEnchantmentString(e.getKey()) + ":" + e.getValue();
|
text += " " + ItemUtil.getPrettyEnchantmentName(e.getKey()) + ":" + e.getValue();
|
||||||
}
|
}
|
||||||
text += ChatColor.GRAY + " x " + i.getAmount();
|
text += ChatColor.GRAY + " x " + i.getAmount();
|
||||||
}
|
}
|
||||||
@ -623,7 +584,7 @@ public class Quest {
|
|||||||
if (!i.getItemMeta().hasItemFlag(ItemFlag.HIDE_ENCHANTS)) {
|
if (!i.getItemMeta().hasItemFlag(ItemFlag.HIDE_ENCHANTS)) {
|
||||||
text += ChatColor.GRAY + " " + Lang.get(player, "with");
|
text += ChatColor.GRAY + " " + Lang.get(player, "with");
|
||||||
for (Entry<Enchantment, Integer> e : i.getEnchantments().entrySet()) {
|
for (Entry<Enchantment, Integer> e : i.getEnchantments().entrySet()) {
|
||||||
text += " " + Quester.prettyEnchantmentString(e.getKey()) + ":" + e.getValue();
|
text += " " + ItemUtil.getPrettyEnchantmentName(e.getKey()) + ":" + e.getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable tr) {
|
} catch (Throwable tr) {
|
||||||
@ -718,12 +679,9 @@ public class Quest {
|
|||||||
q.saveData();
|
q.saveData();
|
||||||
player.updateInventory();
|
player.updateInventory();
|
||||||
q.updateJournal();
|
q.updateJournal();
|
||||||
if (plugin.getDependencies().getGpsApi() != null) {
|
|
||||||
if (plugin.getDependencies().getGpsApi().gpsIsActive(player)) {
|
|
||||||
plugin.getDependencies().getGpsApi().stopGPS(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
q.findCompassTarget();
|
q.findCompassTarget();
|
||||||
|
QuesterPostCompleteQuestEvent postEvent = new QuesterPostCompleteQuestEvent(q, this);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(postEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -733,6 +691,11 @@ public class Quest {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void failQuest(Quester q) {
|
public void failQuest(Quester q) {
|
||||||
|
QuesterPreFailQuestEvent preEvent = new QuesterPreFailQuestEvent(q, this);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(preEvent);
|
||||||
|
if (preEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (plugin.getServer().getPlayer(q.getUUID()) != null) {
|
if (plugin.getServer().getPlayer(q.getUUID()) != null) {
|
||||||
Player player = plugin.getServer().getPlayer(q.getUUID());
|
Player player = plugin.getServer().getPlayer(q.getUUID());
|
||||||
player.sendMessage(ChatColor.GOLD + Lang.get(player, "questObjectivesTitle").replace("<quest>", name));
|
player.sendMessage(ChatColor.GOLD + Lang.get(player, "questObjectivesTitle").replace("<quest>", name));
|
||||||
@ -745,6 +708,8 @@ public class Quest {
|
|||||||
q.saveData();
|
q.saveData();
|
||||||
}
|
}
|
||||||
q.updateJournal();
|
q.updateJournal();
|
||||||
|
QuesterPostFailQuestEvent postEvent = new QuesterPostFailQuestEvent(q, this);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(postEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -56,6 +56,7 @@ import me.blackvein.quests.prompts.StagesPrompt;
|
|||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
|
import me.blackvein.quests.util.MiscUtil;
|
||||||
import me.blackvein.quests.util.WorldGuardAPI;
|
import me.blackvein.quests.util.WorldGuardAPI;
|
||||||
import net.citizensnpcs.api.CitizensAPI;
|
import net.citizensnpcs.api.CitizensAPI;
|
||||||
|
|
||||||
@ -1630,7 +1631,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
amounts.add(e.getValue());
|
amounts.add(e.getValue());
|
||||||
for (Entry<Enchantment, Material> e2 : e.getKey().entrySet()) {
|
for (Entry<Enchantment, Material> e2 : e.getKey().entrySet()) {
|
||||||
names.add(e2.getValue().name());
|
names.add(e2.getValue().name());
|
||||||
enchants.add(Quester.prettyEnchantmentString(e2.getKey()));
|
enchants.add(ItemUtil.getPrettyEnchantmentName(e2.getKey()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cc.setSessionData(pref + CK.S_ENCHANT_TYPES, enchants);
|
cc.setSessionData(pref + CK.S_ENCHANT_TYPES, enchants);
|
||||||
@ -1674,7 +1675,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
if (stage.mobsToKill.isEmpty() == false) {
|
if (stage.mobsToKill.isEmpty() == false) {
|
||||||
LinkedList<String> mobs = new LinkedList<String>();
|
LinkedList<String> mobs = new LinkedList<String>();
|
||||||
for (EntityType et : stage.mobsToKill) {
|
for (EntityType et : stage.mobsToKill) {
|
||||||
mobs.add(Quester.prettyMobString(et));
|
mobs.add(MiscUtil.getPrettyMobName(et));
|
||||||
}
|
}
|
||||||
cc.setSessionData(pref + CK.S_MOB_TYPES, mobs);
|
cc.setSessionData(pref + CK.S_MOB_TYPES, mobs);
|
||||||
cc.setSessionData(pref + CK.S_MOB_AMOUNTS, stage.mobNumToKill);
|
cc.setSessionData(pref + CK.S_MOB_AMOUNTS, stage.mobNumToKill);
|
||||||
@ -1701,7 +1702,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
LinkedList<String> mobs = new LinkedList<String>();
|
LinkedList<String> mobs = new LinkedList<String>();
|
||||||
LinkedList<Integer> amnts = new LinkedList<Integer>();
|
LinkedList<Integer> amnts = new LinkedList<Integer>();
|
||||||
for (Entry<EntityType, Integer> e : stage.mobsToTame.entrySet()) {
|
for (Entry<EntityType, Integer> e : stage.mobsToTame.entrySet()) {
|
||||||
mobs.add(Quester.prettyMobString(e.getKey()));
|
mobs.add(MiscUtil.getPrettyMobName(e.getKey()));
|
||||||
amnts.add(e.getValue());
|
amnts.add(e.getValue());
|
||||||
}
|
}
|
||||||
cc.setSessionData(pref + CK.S_TAME_TYPES, mobs);
|
cc.setSessionData(pref + CK.S_TAME_TYPES, mobs);
|
||||||
@ -1711,7 +1712,7 @@ public class QuestFactory implements ConversationAbandonedListener {
|
|||||||
LinkedList<String> colors = new LinkedList<String>();
|
LinkedList<String> colors = new LinkedList<String>();
|
||||||
LinkedList<Integer> amnts = new LinkedList<Integer>();
|
LinkedList<Integer> amnts = new LinkedList<Integer>();
|
||||||
for (Entry<DyeColor, Integer> e : stage.sheepToShear.entrySet()) {
|
for (Entry<DyeColor, Integer> e : stage.sheepToShear.entrySet()) {
|
||||||
colors.add(Quester.prettyColorString(e.getKey()));
|
colors.add(MiscUtil.getPrettyDyeColorName(e.getKey()));
|
||||||
amnts.add(e.getValue());
|
amnts.add(e.getValue());
|
||||||
}
|
}
|
||||||
cc.setSessionData(pref + CK.S_SHEAR_COLORS, colors);
|
cc.setSessionData(pref + CK.S_SHEAR_COLORS, colors);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -40,13 +40,14 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.BookMeta;
|
import org.bukkit.inventory.meta.BookMeta;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPostStartQuestEvent;
|
||||||
|
import me.blackvein.quests.events.quester.QuesterPreStartQuestEvent;
|
||||||
import me.blackvein.quests.timers.StageTimer;
|
import me.blackvein.quests.timers.StageTimer;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
@ -388,6 +389,11 @@ public class Quester {
|
|||||||
if (q == null) {
|
if (q == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
QuesterPreStartQuestEvent preEvent = new QuesterPreStartQuestEvent(this, q);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(preEvent);
|
||||||
|
if (preEvent.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
Player player = getPlayer();
|
Player player = getPlayer();
|
||||||
Planner pln = q.getPlanner();
|
Planner pln = q.getPlanner();
|
||||||
long start = pln.getStartInMillis(); // Start time in milliseconds since UTC epoch
|
long start = pln.getStartInMillis(); // Start time in milliseconds since UTC epoch
|
||||||
@ -513,11 +519,12 @@ public class Quester {
|
|||||||
stage.startEvent.fire(this, q);
|
stage.startEvent.fire(this, q);
|
||||||
}
|
}
|
||||||
q.updateCompass(this, stage);
|
q.updateCompass(this, stage);
|
||||||
q.updateGPS(this);
|
|
||||||
saveData();
|
saveData();
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(q.getRequirements().getFailRequirements());
|
player.sendMessage(q.getRequirements().getFailRequirements());
|
||||||
}
|
}
|
||||||
|
QuesterPostStartQuestEvent postEvent = new QuesterPostStartQuestEvent(this, q);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(postEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -669,12 +676,12 @@ public class Quester {
|
|||||||
if (num1 < num2) {
|
if (num1 < num2) {
|
||||||
String obj = Lang.get(getPlayer(), "enchantItem");
|
String obj = Lang.get(getPlayer(), "enchantItem");
|
||||||
obj = obj.replace("<item>", ItemUtil.getName(new ItemStack(mat)) + ChatColor.GREEN);
|
obj = obj.replace("<item>", ItemUtil.getName(new ItemStack(mat)) + ChatColor.GREEN);
|
||||||
obj = obj.replace("<enchantment>", ChatColor.LIGHT_PURPLE + Quester.prettyEnchantmentString(enchantment) + ChatColor.GREEN);
|
obj = obj.replace("<enchantment>", ChatColor.LIGHT_PURPLE + ItemUtil.getPrettyEnchantmentName(enchantment) + ChatColor.GREEN);
|
||||||
unfinishedObjectives.add(ChatColor.GREEN + obj + ChatColor.GREEN + ": " + num1 + "/" + num2);
|
unfinishedObjectives.add(ChatColor.GREEN + obj + ChatColor.GREEN + ": " + num1 + "/" + num2);
|
||||||
} else {
|
} else {
|
||||||
String obj = Lang.get(getPlayer(), "enchantItem");
|
String obj = Lang.get(getPlayer(), "enchantItem");
|
||||||
obj = obj.replace("<item>", ItemUtil.getName(new ItemStack(mat)) + ChatColor.GRAY);
|
obj = obj.replace("<item>", ItemUtil.getName(new ItemStack(mat)) + ChatColor.GRAY);
|
||||||
obj = obj.replace("<enchantment>", ChatColor.LIGHT_PURPLE + Quester.prettyEnchantmentString(enchantment) + ChatColor.GRAY);
|
obj = obj.replace("<enchantment>", ChatColor.LIGHT_PURPLE + ItemUtil.getPrettyEnchantmentName(enchantment) + ChatColor.GRAY);
|
||||||
finishedObjectives.add(ChatColor.GRAY + obj + ChatColor.GRAY + ": " + num1 + "/" + num2);
|
finishedObjectives.add(ChatColor.GRAY + obj + ChatColor.GRAY + ": " + num1 + "/" + num2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -698,12 +705,12 @@ public class Quester {
|
|||||||
< getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(e))) {
|
< getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(e))) {
|
||||||
if (getCurrentStage(quest).locationsToKillWithin.isEmpty()) {
|
if (getCurrentStage(quest).locationsToKillWithin.isEmpty()) {
|
||||||
unfinishedObjectives.add(ChatColor.GREEN + Lang.get(getPlayer(), "kill") + " "
|
unfinishedObjectives.add(ChatColor.GREEN + Lang.get(getPlayer(), "kill") + " "
|
||||||
+ ChatColor.AQUA + Quester.prettyMobString(e) + ChatColor.GREEN + ": "
|
+ ChatColor.AQUA + MiscUtil.getPrettyMobName(e) + ChatColor.GREEN + ": "
|
||||||
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
||||||
+ "/" + (getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(e))));
|
+ "/" + (getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(e))));
|
||||||
} else {
|
} else {
|
||||||
String obj = Lang.get(getPlayer(), "killAtLocation");
|
String obj = Lang.get(getPlayer(), "killAtLocation");
|
||||||
obj = obj.replace("<mob>", ChatColor.LIGHT_PURPLE + Quester.prettyMobString(e));
|
obj = obj.replace("<mob>", ChatColor.LIGHT_PURPLE + MiscUtil.getPrettyMobName(e));
|
||||||
obj = obj.replace("<location>", getCurrentStage(quest).killNames.get(getCurrentStage(quest).mobsToKill.indexOf(e)));
|
obj = obj.replace("<location>", getCurrentStage(quest).killNames.get(getCurrentStage(quest).mobsToKill.indexOf(e)));
|
||||||
unfinishedObjectives.add(ChatColor.GREEN + obj + ChatColor.GREEN + ": "
|
unfinishedObjectives.add(ChatColor.GREEN + obj + ChatColor.GREEN + ": "
|
||||||
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
||||||
@ -712,12 +719,12 @@ public class Quester {
|
|||||||
} else {
|
} else {
|
||||||
if (getCurrentStage(quest).locationsToKillWithin.isEmpty()) {
|
if (getCurrentStage(quest).locationsToKillWithin.isEmpty()) {
|
||||||
finishedObjectives.add(ChatColor.GRAY + Lang.get(getPlayer(), "kill") + " "
|
finishedObjectives.add(ChatColor.GRAY + Lang.get(getPlayer(), "kill") + " "
|
||||||
+ ChatColor.AQUA + Quester.prettyMobString(e) + ChatColor.GRAY + ": "
|
+ ChatColor.AQUA + MiscUtil.getPrettyMobName(e) + ChatColor.GRAY + ": "
|
||||||
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
||||||
+ "/" + (getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(e))));
|
+ "/" + (getCurrentStage(quest).mobNumToKill.get(getCurrentStage(quest).mobsToKill.indexOf(e))));
|
||||||
} else {
|
} else {
|
||||||
String obj = Lang.get(getPlayer(), "killAtLocation");
|
String obj = Lang.get(getPlayer(), "killAtLocation");
|
||||||
obj = obj.replace("<mob>", ChatColor.LIGHT_PURPLE + Quester.prettyMobString(e));
|
obj = obj.replace("<mob>", ChatColor.LIGHT_PURPLE + MiscUtil.getPrettyMobName(e));
|
||||||
obj = obj.replace("<location>", getCurrentStage(quest).killNames.get(getCurrentStage(quest).mobsToKill.indexOf(e)));
|
obj = obj.replace("<location>", getCurrentStage(quest).killNames.get(getCurrentStage(quest).mobsToKill.indexOf(e)));
|
||||||
finishedObjectives.add(ChatColor.GRAY + obj + ChatColor.GRAY + ": "
|
finishedObjectives.add(ChatColor.GRAY + obj + ChatColor.GRAY + ": "
|
||||||
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
+ (getQuestData(quest).mobNumKilled.get(getQuestData(quest).mobsKilled.indexOf(e2)))
|
||||||
@ -796,10 +803,10 @@ public class Quester {
|
|||||||
for (Entry<EntityType, Integer> e2 : getQuestData(quest).mobsTamed.entrySet()) {
|
for (Entry<EntityType, Integer> e2 : getQuestData(quest).mobsTamed.entrySet()) {
|
||||||
if (e.getKey().equals(e2.getKey())) {
|
if (e.getKey().equals(e2.getKey())) {
|
||||||
if (e2.getValue() < e.getValue()) {
|
if (e2.getValue() < e.getValue()) {
|
||||||
unfinishedObjectives.add(ChatColor.GREEN + Lang.get(getPlayer(), "tame") + " " + getCapitalized(e.getKey().name())
|
unfinishedObjectives.add(ChatColor.GREEN + Lang.get(getPlayer(), "tame") + " " + MiscUtil.getCapitalized(e.getKey().name())
|
||||||
+ ChatColor.GREEN + ": " + e2.getValue() + "/" + e.getValue());
|
+ ChatColor.GREEN + ": " + e2.getValue() + "/" + e.getValue());
|
||||||
} else {
|
} else {
|
||||||
finishedObjectives.add(ChatColor.GRAY + Lang.get(getPlayer(), "tame") + " " + getCapitalized(e.getKey().name())
|
finishedObjectives.add(ChatColor.GRAY + Lang.get(getPlayer(), "tame") + " " + MiscUtil.getCapitalized(e.getKey().name())
|
||||||
+ ChatColor.GRAY + ": " + e2.getValue() + "/" + e.getValue());
|
+ ChatColor.GRAY + ": " + e2.getValue() + "/" + e.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1929,125 +1936,6 @@ public class Quester {
|
|||||||
hardDataPut(quest, data);
|
hardDataPut(quest, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getCapitalized(String target) {
|
|
||||||
String firstLetter = target.substring(0, 1);
|
|
||||||
String remainder = target.substring(1);
|
|
||||||
String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
|
|
||||||
return capitalized;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cleans up item names. 'WOODEN_BUTTON' becomes 'Wooden Button'
|
|
||||||
*
|
|
||||||
* @param itemName any item name, ideally
|
|
||||||
* @return cleaned-up string
|
|
||||||
*/
|
|
||||||
public static String prettyItemString(String itemName) {
|
|
||||||
String baseString = Material.matchMaterial(itemName).toString();
|
|
||||||
String[] substrings = baseString.split("_");
|
|
||||||
String prettyString = "";
|
|
||||||
int size = 1;
|
|
||||||
for (String s : substrings) {
|
|
||||||
prettyString = prettyString.concat(Quester.getCapitalized(s));
|
|
||||||
if (size < substrings.length) {
|
|
||||||
prettyString = prettyString.concat(" ");
|
|
||||||
}
|
|
||||||
size++;
|
|
||||||
}
|
|
||||||
return prettyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets player-friendly name from type. 'ENDER_DRAGON' becomes 'Ender Dragon'
|
|
||||||
*
|
|
||||||
* @param type any mob type, ideally
|
|
||||||
* @return cleaned-up string
|
|
||||||
*/
|
|
||||||
public static String prettyMobString(EntityType type) {
|
|
||||||
String baseString = type.toString();
|
|
||||||
String[] substrings = baseString.split("_");
|
|
||||||
String prettyString = "";
|
|
||||||
int size = 1;
|
|
||||||
for (String s : substrings) {
|
|
||||||
prettyString = prettyString.concat(Quester.getCapitalized(s));
|
|
||||||
if (size < substrings.length) {
|
|
||||||
prettyString = prettyString.concat(" ");
|
|
||||||
}
|
|
||||||
size++;
|
|
||||||
}
|
|
||||||
if (type.equals((EntityType.OCELOT))) {
|
|
||||||
prettyString = "Ocelot";
|
|
||||||
}
|
|
||||||
return prettyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String prettyColorString(DyeColor color) {
|
|
||||||
return Lang.get("COLOR_" + color.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets player-friendly name from enchantment. 'FIRE_ASPECT' becomes 'Fire Aspect'
|
|
||||||
*
|
|
||||||
* @param e Enchantment to get pretty localized name of
|
|
||||||
* @return pretty localized name
|
|
||||||
*/
|
|
||||||
public static String prettyEnchantmentString(Enchantment e) {
|
|
||||||
String prettyString = enchantmentString(e);
|
|
||||||
prettyString = capitalsToSpaces(prettyString);
|
|
||||||
return prettyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets name of enchantment exactly as it appears in lang file
|
|
||||||
*
|
|
||||||
* @param e Enchantment to get localized name of
|
|
||||||
* @return localized name
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("deprecation") // since 1.13
|
|
||||||
public static String enchantmentString(Enchantment e) {
|
|
||||||
try {
|
|
||||||
return (Lang.get("ENCHANTMENT_" + e.getName()));
|
|
||||||
} catch (NullPointerException ne) {
|
|
||||||
Bukkit.getLogger().warning(e.getName() + " was not found in Lang.yml, please ask the developer to "
|
|
||||||
+ "update the file or simply add an entry for the enchantment");
|
|
||||||
return e.getName().toLowerCase().replace("_", " ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a single space in front of all capital letters
|
|
||||||
*
|
|
||||||
* @param s string to process
|
|
||||||
* @return processed string
|
|
||||||
*/
|
|
||||||
public static String capitalsToSpaces(String s) {
|
|
||||||
int max = s.length();
|
|
||||||
for (int i = 1; i < max; i++) {
|
|
||||||
if (Character.isUpperCase(s.charAt(i))) {
|
|
||||||
s = s.substring(0, i) + " " + s.substring(i);
|
|
||||||
i++;
|
|
||||||
max++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Capitalize character after space
|
|
||||||
*
|
|
||||||
* @param s string to process
|
|
||||||
* @return processed string
|
|
||||||
*/
|
|
||||||
public static String spaceToCapital(String s) {
|
|
||||||
int index = s.indexOf(' ');
|
|
||||||
if (index == -1) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
s = s.substring(0, (index + 1)) + Character.toUpperCase(s.charAt(index + 1)) + s.substring(index + 2);
|
|
||||||
s = s.replaceFirst(" ", "");
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveData() {
|
public void saveData() {
|
||||||
FileConfiguration data = getBaseData();
|
FileConfiguration data = getBaseData();
|
||||||
try {
|
try {
|
||||||
@ -2174,7 +2062,7 @@ public class Quester {
|
|||||||
Map<Enchantment, Material> enchMap = (Map<Enchantment, Material>) e.getKey();
|
Map<Enchantment, Material> enchMap = (Map<Enchantment, Material>) e.getKey();
|
||||||
enchAmounts.add(questData.itemsEnchanted.get(enchMap));
|
enchAmounts.add(questData.itemsEnchanted.get(enchMap));
|
||||||
for (Entry<Enchantment, Material> e2 : enchMap.entrySet()) {
|
for (Entry<Enchantment, Material> e2 : enchMap.entrySet()) {
|
||||||
enchantments.add(Quester.prettyEnchantmentString((Enchantment) e2.getKey()));
|
enchantments.add(ItemUtil.getPrettyEnchantmentName((Enchantment) e2.getKey()));
|
||||||
itemNames.add(((Material) e2.getValue()).name());
|
itemNames.add(((Material) e2.getValue()).name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2194,7 +2082,7 @@ public class Quester {
|
|||||||
LinkedList<String> locations = new LinkedList<String>();
|
LinkedList<String> locations = new LinkedList<String>();
|
||||||
LinkedList<Integer> radii = new LinkedList<Integer>();
|
LinkedList<Integer> radii = new LinkedList<Integer>();
|
||||||
for (EntityType e : questData.mobsKilled) {
|
for (EntityType e : questData.mobsKilled) {
|
||||||
mobNames.add(Quester.prettyMobString(e));
|
mobNames.add(MiscUtil.getPrettyMobName(e));
|
||||||
}
|
}
|
||||||
for (int i : questData.mobNumKilled) {
|
for (int i : questData.mobNumKilled) {
|
||||||
mobAmounts.add(i);
|
mobAmounts.add(i);
|
||||||
@ -2268,7 +2156,7 @@ public class Quester {
|
|||||||
LinkedList<String> mobNames = new LinkedList<String>();
|
LinkedList<String> mobNames = new LinkedList<String>();
|
||||||
LinkedList<Integer> mobAmounts = new LinkedList<Integer>();
|
LinkedList<Integer> mobAmounts = new LinkedList<Integer>();
|
||||||
for (EntityType e : questData.mobsTamed.keySet()) {
|
for (EntityType e : questData.mobsTamed.keySet()) {
|
||||||
mobNames.add(Quester.prettyMobString(e));
|
mobNames.add(MiscUtil.getPrettyMobName(e));
|
||||||
mobAmounts.add(questData.mobsTamed.get(e));
|
mobAmounts.add(questData.mobsTamed.get(e));
|
||||||
}
|
}
|
||||||
questSec.set("mobs-to-tame", mobNames);
|
questSec.set("mobs-to-tame", mobNames);
|
||||||
@ -2278,7 +2166,7 @@ public class Quester {
|
|||||||
LinkedList<String> colors = new LinkedList<String>();
|
LinkedList<String> colors = new LinkedList<String>();
|
||||||
LinkedList<Integer> shearAmounts = new LinkedList<Integer>();
|
LinkedList<Integer> shearAmounts = new LinkedList<Integer>();
|
||||||
for (DyeColor d : questData.sheepSheared.keySet()) {
|
for (DyeColor d : questData.sheepSheared.keySet()) {
|
||||||
colors.add(Quester.prettyColorString(d));
|
colors.add(MiscUtil.getPrettyDyeColorName(d));
|
||||||
shearAmounts.add(questData.sheepSheared.get(d));
|
shearAmounts.add(questData.sheepSheared.get(d));
|
||||||
}
|
}
|
||||||
questSec.set("sheep-to-shear", colors);
|
questSec.set("sheep-to-shear", colors);
|
||||||
@ -2583,7 +2471,7 @@ public class Quester {
|
|||||||
List<String> names = questSec.getStringList("enchantment-item-names");
|
List<String> names = questSec.getStringList("enchantment-item-names");
|
||||||
List<Integer> times = questSec.getIntegerList("times-enchanted");
|
List<Integer> times = questSec.getIntegerList("times-enchanted");
|
||||||
for (String s : enchantNames) {
|
for (String s : enchantNames) {
|
||||||
enchantments.add(Quests.getEnchantment(s));
|
enchantments.add(ItemUtil.getEnchantmentFromProperName(s));
|
||||||
materials.add(Material.matchMaterial(names.get(enchantNames.indexOf(s))));
|
materials.add(Material.matchMaterial(names.get(enchantNames.indexOf(s))));
|
||||||
amounts.add(times.get(enchantNames.indexOf(s)));
|
amounts.add(times.get(enchantNames.indexOf(s)));
|
||||||
}
|
}
|
||||||
@ -2696,7 +2584,7 @@ public class Quester {
|
|||||||
List<String> colors = questSec.getStringList("sheep-to-shear");
|
List<String> colors = questSec.getStringList("sheep-to-shear");
|
||||||
List<Integer> amounts = questSec.getIntegerList("sheep-sheared");
|
List<Integer> amounts = questSec.getIntegerList("sheep-sheared");
|
||||||
for (String color : colors) {
|
for (String color : colors) {
|
||||||
getQuestData(quest).sheepSheared.put(Quests.getDyeColor(color), amounts.get(colors.indexOf(color)));
|
getQuestData(quest).sheepSheared.put(MiscUtil.getDyeColor(color), amounts.get(colors.indexOf(color)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (questSec.contains("passwords")) {
|
if (questSec.contains("passwords")) {
|
||||||
@ -2743,132 +2631,6 @@ public class Quester {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ConfigurationSection getLegacyQuestData(FileConfiguration questSec, String questName) {
|
|
||||||
ConfigurationSection newData = questSec.createSection("questData");
|
|
||||||
if (questSec.contains("blocks-broken-names")) {
|
|
||||||
List<String> names = questSec.getStringList("blocks-broken-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-broken-amounts");
|
|
||||||
newData.set(questName + ".blocks-broken-names", names);
|
|
||||||
newData.set(questName + ".blocks-broken-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("blocks-damaged-names")) {
|
|
||||||
List<String> names = questSec.getStringList("blocks-damaged-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-damaged-amounts");
|
|
||||||
newData.set(questName + ".blocks-damaged-names", names);
|
|
||||||
newData.set(questName + ".blocks-damaged-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("blocks-placed-names")) {
|
|
||||||
List<String> names = questSec.getStringList("blocks-placed-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-placed-amounts");
|
|
||||||
newData.set(questName + ".blocks-placed-names", names);
|
|
||||||
newData.set(questName + ".blocks-placed-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("blocks-used-names")) {
|
|
||||||
List<String> names = questSec.getStringList("blocks-used-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-used-amounts");
|
|
||||||
newData.set(questName + ".blocks-used-names", names);
|
|
||||||
newData.set(questName + ".blocks-used-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("blocks-cut-names")) {
|
|
||||||
List<String> names = questSec.getStringList("blocks-cut-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("blocks-cut-amounts");
|
|
||||||
newData.set(questName + ".blocks-cut-names", names);
|
|
||||||
newData.set(questName + ".blocks-cut-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("fish-caught")) {
|
|
||||||
newData.set(questName + ".fish-caught", questSec.getInt("fish-caught"));
|
|
||||||
}
|
|
||||||
if (questSec.contains("players-killed")) {
|
|
||||||
newData.set(questName + ".players-killed", questSec.getInt("players-killed"));
|
|
||||||
}
|
|
||||||
if (questSec.contains("enchantments")) {
|
|
||||||
List<String> enchantNames = questSec.getStringList("enchantments");
|
|
||||||
List<String> names = questSec.getStringList("enchantment-item-names");
|
|
||||||
List<Integer> times = questSec.getIntegerList("times-enchanted");
|
|
||||||
newData.set(questName + ".enchantments", enchantNames);
|
|
||||||
newData.set(questName + ".enchantment-item-names", names);
|
|
||||||
newData.set(questName + ".times-enchanted", times);
|
|
||||||
}
|
|
||||||
if (questSec.contains("mobs-killed")) {
|
|
||||||
List<String> mobs = questSec.getStringList("mobs-killed");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("mobs-killed-amounts");
|
|
||||||
newData.set(questName + ".mobs-killed", mobs);
|
|
||||||
newData.set(questName + ".mobs-killed-amounts", amounts);
|
|
||||||
if (questSec.contains("mob-kill-locations")) {
|
|
||||||
List<String> locations = questSec.getStringList("mob-kill-locations");
|
|
||||||
List<Integer> radii = questSec.getIntegerList("mob-kill-location-radii");
|
|
||||||
newData.set(questName + ".mob-kill-locations", locations);
|
|
||||||
newData.set(questName + ".mob-kill-location-radii", radii);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (questSec.contains("item-delivery-amounts")) {
|
|
||||||
List<Integer> deliveryAmounts = questSec.getIntegerList("item-delivery-amounts");
|
|
||||||
newData.set(questName + ".item-delivery-amounts", deliveryAmounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("citizen-ids-to-talk-to")) {
|
|
||||||
List<Integer> ids = questSec.getIntegerList("citizen-ids-to-talk-to");
|
|
||||||
List<Boolean> has = questSec.getBooleanList("has-talked-to");
|
|
||||||
newData.set(questName + ".citizen-ids-to-talk-to", ids);
|
|
||||||
newData.set(questName + ".has-talked-to", has);
|
|
||||||
}
|
|
||||||
if (questSec.contains("citizen-ids-killed")) {
|
|
||||||
List<Integer> ids = questSec.getIntegerList("citizen-ids-killed");
|
|
||||||
List<Integer> num = questSec.getIntegerList("citizen-amounts-killed");
|
|
||||||
newData.set(questName + ".citizen-ids-killed", ids);
|
|
||||||
newData.set(questName + ".citizen-amounts-killed", num);
|
|
||||||
}
|
|
||||||
if (questSec.contains("locations-to-reach")) {
|
|
||||||
List<String> locations = questSec.getStringList("locations-to-reach");
|
|
||||||
List<Boolean> has = questSec.getBooleanList("has-reached-location");
|
|
||||||
List<Integer> radii = questSec.getIntegerList("radii-to-reach-within");
|
|
||||||
newData.set(questName + ".locations-to-reach", locations);
|
|
||||||
newData.set(questName + ".has-reached-location", has);
|
|
||||||
newData.set(questName + ".radii-to-reach-within", radii);
|
|
||||||
}
|
|
||||||
if (questSec.contains("potions-brewed-names")) {
|
|
||||||
List<String> names = questSec.getStringList("potions-brewed-names");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("potions-brewed-amounts");
|
|
||||||
newData.set(questName + ".potions-brewed-names", names);
|
|
||||||
newData.set(questName + ".potions-brewed-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("mobs-to-tame")) {
|
|
||||||
List<String> mobs = questSec.getStringList("mobs-to-tame");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("mob-tame-amounts");
|
|
||||||
newData.set(questName + ".mobs-to-tame", mobs);
|
|
||||||
newData.set(questName + ".mob-tame-amounts", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("sheep-to-shear")) {
|
|
||||||
List<String> colors = questSec.getStringList("sheep-to-shear");
|
|
||||||
List<Integer> amounts = questSec.getIntegerList("sheep-sheared");
|
|
||||||
newData.set(questName + ".sheep-to-shear", colors);
|
|
||||||
newData.set(questName + ".sheep-sheared", amounts);
|
|
||||||
}
|
|
||||||
if (questSec.contains("passwords")) {
|
|
||||||
List<String> passwords = questSec.getStringList("passwords");
|
|
||||||
List<Boolean> said = questSec.getBooleanList("passwords-said");
|
|
||||||
newData.set(questName + ".passwords", passwords);
|
|
||||||
newData.set(questName + ".passwords-said", said);
|
|
||||||
}
|
|
||||||
if (questSec.contains("custom-objectives")) {
|
|
||||||
List<String> customObj = questSec.getStringList("custom-objectives");
|
|
||||||
List<Integer> customObjCount = questSec.getIntegerList("custom-objective-counts");
|
|
||||||
newData.set(questName + ".custom-objectives", customObj);
|
|
||||||
newData.set(questName + ".custom-objective-counts", customObjCount);
|
|
||||||
}
|
|
||||||
if (questSec.contains("stage-delay")) {
|
|
||||||
newData.set(questName + ".stage-delay", questSec.getLong("stage-delay"));
|
|
||||||
}
|
|
||||||
if (questSec.contains("chat-triggers")) {
|
|
||||||
List<String> chatTriggers = questSec.getStringList("chat-triggers");
|
|
||||||
newData.set(questName + ".chat-triggers", chatTriggers);
|
|
||||||
}
|
|
||||||
if (questSec.contains("command-triggers")) {
|
|
||||||
List<String> commandTriggers = questSec.getStringList("command-triggers");
|
|
||||||
newData.set(questName + ".command-triggers", commandTriggers);
|
|
||||||
}
|
|
||||||
return newData;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initiate the stage timer
|
* Initiate the stage timer
|
||||||
* @param quest The quest of which the timer is for
|
* @param quest The quest of which the timer is for
|
||||||
@ -2952,91 +2714,6 @@ public class Quester {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String checkPlacement(Inventory inv, int rawSlot) {
|
|
||||||
if (rawSlot < 0) {
|
|
||||||
return Lang.get("questNoDrop");
|
|
||||||
}
|
|
||||||
InventoryType type = inv.getType();
|
|
||||||
if (type.equals(InventoryType.BREWING)) {
|
|
||||||
if (rawSlot < 4) {
|
|
||||||
return Lang.get("questNoBrew");
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.CHEST)) {
|
|
||||||
if (inv.getContents().length == 27) {
|
|
||||||
if (rawSlot < 27) {
|
|
||||||
return Lang.get("questNoStore");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (rawSlot < 54) {
|
|
||||||
return Lang.get("questNoStore");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.CRAFTING)) {
|
|
||||||
if (rawSlot < 5) {
|
|
||||||
return Lang.get("questNoCraft");
|
|
||||||
} else if (rawSlot < 9) {
|
|
||||||
return Lang.get("questNoEquip");
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.DISPENSER)) {
|
|
||||||
if (rawSlot < 9) {
|
|
||||||
return Lang.get("questNoDispense");
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.ENCHANTING)) {
|
|
||||||
if (rawSlot == 0) {
|
|
||||||
return Lang.get("questNoEnchant");
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.ENDER_CHEST)) {
|
|
||||||
if (rawSlot < 27) {
|
|
||||||
return Lang.get("questNoStore");
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.FURNACE)) {
|
|
||||||
if (rawSlot < 3) {
|
|
||||||
return Lang.get("questNoSmelt");
|
|
||||||
}
|
|
||||||
} else if (type.equals(InventoryType.WORKBENCH)) {
|
|
||||||
if (rawSlot < 10) {
|
|
||||||
return Lang.get("questNoCraft");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<Integer> getChangedSlots(Inventory inInv, ItemStack inNew) {
|
|
||||||
List<Integer> changed = new ArrayList<Integer>();
|
|
||||||
if (inInv.contains(inNew.getType())) {
|
|
||||||
int amount = inNew.getAmount();
|
|
||||||
HashMap<Integer, ? extends ItemStack> items = inInv.all(inNew.getType());
|
|
||||||
for (int i = 0; i < inInv.getSize(); i++) {
|
|
||||||
if (!items.containsKey((Integer) i)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
ItemStack item = items.get((Integer) i);
|
|
||||||
int slotamount = item.getMaxStackSize() - item.getAmount();
|
|
||||||
if (slotamount > 1) {
|
|
||||||
if (amount > slotamount) {
|
|
||||||
int toAdd = slotamount - amount;
|
|
||||||
amount = amount - toAdd;
|
|
||||||
changed.add(i);
|
|
||||||
} else {
|
|
||||||
changed.add(i);
|
|
||||||
amount = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (amount > 0) {
|
|
||||||
if (inInv.firstEmpty() != -1) {
|
|
||||||
changed.add(inInv.firstEmpty());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (inInv.firstEmpty() != -1) {
|
|
||||||
changed.add(inInv.firstEmpty());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return changed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void showGUIDisplay(NPC npc, LinkedList<Quest> quests) {
|
public void showGUIDisplay(NPC npc, LinkedList<Quest> quests) {
|
||||||
Player player = getPlayer();
|
Player player = getPlayer();
|
||||||
int size = ((quests.size() / 9) + 1) * 9;
|
int size = ((quests.size() / 9) + 1) * 9;
|
||||||
@ -3084,11 +2761,6 @@ public class Quester {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (plugin.getDependencies().getGpsApi() != null) {
|
|
||||||
if (plugin.getDependencies().getGpsApi().gpsIsActive(this.getPlayer())) {
|
|
||||||
plugin.getDependencies().getGpsApi().stopGPS(this.getPlayer());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -3166,4 +2838,91 @@ public class Quester {
|
|||||||
}
|
}
|
||||||
return playerAmount >= is.getAmount();
|
return playerAmount >= is.getAmount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// I'm not sure why these methods are here. They've been in the class for a long time but aren't used anywhere?
|
||||||
|
|
||||||
|
/*public static String checkPlacement(Inventory inv, int rawSlot) {
|
||||||
|
if (rawSlot < 0) {
|
||||||
|
return Lang.get("questNoDrop");
|
||||||
|
}
|
||||||
|
InventoryType type = inv.getType();
|
||||||
|
if (type.equals(InventoryType.BREWING)) {
|
||||||
|
if (rawSlot < 4) {
|
||||||
|
return Lang.get("questNoBrew");
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.CHEST)) {
|
||||||
|
if (inv.getContents().length == 27) {
|
||||||
|
if (rawSlot < 27) {
|
||||||
|
return Lang.get("questNoStore");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (rawSlot < 54) {
|
||||||
|
return Lang.get("questNoStore");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.CRAFTING)) {
|
||||||
|
if (rawSlot < 5) {
|
||||||
|
return Lang.get("questNoCraft");
|
||||||
|
} else if (rawSlot < 9) {
|
||||||
|
return Lang.get("questNoEquip");
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.DISPENSER)) {
|
||||||
|
if (rawSlot < 9) {
|
||||||
|
return Lang.get("questNoDispense");
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.ENCHANTING)) {
|
||||||
|
if (rawSlot == 0) {
|
||||||
|
return Lang.get("questNoEnchant");
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.ENDER_CHEST)) {
|
||||||
|
if (rawSlot < 27) {
|
||||||
|
return Lang.get("questNoStore");
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.FURNACE)) {
|
||||||
|
if (rawSlot < 3) {
|
||||||
|
return Lang.get("questNoSmelt");
|
||||||
|
}
|
||||||
|
} else if (type.equals(InventoryType.WORKBENCH)) {
|
||||||
|
if (rawSlot < 10) {
|
||||||
|
return Lang.get("questNoCraft");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
/*public static List<Integer> getChangedSlots(Inventory inInv, ItemStack inNew) {
|
||||||
|
List<Integer> changed = new ArrayList<Integer>();
|
||||||
|
if (inInv.contains(inNew.getType())) {
|
||||||
|
int amount = inNew.getAmount();
|
||||||
|
HashMap<Integer, ? extends ItemStack> items = inInv.all(inNew.getType());
|
||||||
|
for (int i = 0; i < inInv.getSize(); i++) {
|
||||||
|
if (!items.containsKey((Integer) i)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ItemStack item = items.get((Integer) i);
|
||||||
|
int slotamount = item.getMaxStackSize() - item.getAmount();
|
||||||
|
if (slotamount > 1) {
|
||||||
|
if (amount > slotamount) {
|
||||||
|
int toAdd = slotamount - amount;
|
||||||
|
amount = amount - toAdd;
|
||||||
|
changed.add(i);
|
||||||
|
} else {
|
||||||
|
changed.add(i);
|
||||||
|
amount = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (amount > 0) {
|
||||||
|
if (inInv.firstEmpty() != -1) {
|
||||||
|
changed.add(inInv.firstEmpty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (inInv.firstEmpty() != -1) {
|
||||||
|
changed.add(inInv.firstEmpty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return changed;
|
||||||
|
}*/
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -216,11 +216,6 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
getLogger().info("Saving Quester data.");
|
getLogger().info("Saving Quester data.");
|
||||||
for (Player p : getServer().getOnlinePlayers()) {
|
for (Player p : getServer().getOnlinePlayers()) {
|
||||||
if (depends.getGpsApi() != null) {
|
|
||||||
if (depends.getGpsApi().gpsIsActive(p)) {
|
|
||||||
depends.getGpsApi().stopGPS(p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Quester quester = getQuester(p.getUniqueId());
|
Quester quester = getQuester(p.getUniqueId());
|
||||||
quester.saveData();
|
quester.saveData();
|
||||||
}
|
}
|
||||||
@ -2107,7 +2102,7 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
if (config.contains("quests." + questKey + ".stages.ordered." + s2 + ".enchantments")) {
|
if (config.contains("quests." + questKey + ".stages.ordered." + s2 + ".enchantments")) {
|
||||||
if (Quests.checkList(config.getList("quests." + questKey + ".stages.ordered." + s2 + ".enchantments"), String.class)) {
|
if (Quests.checkList(config.getList("quests." + questKey + ".stages.ordered." + s2 + ".enchantments"), String.class)) {
|
||||||
for (String enchant : config.getStringList("quests." + questKey + ".stages.ordered." + s2 + ".enchantments")) {
|
for (String enchant : config.getStringList("quests." + questKey + ".stages.ordered." + s2 + ".enchantments")) {
|
||||||
Enchantment e = Quests.getEnchantment(enchant);
|
Enchantment e = ItemUtil.getEnchantmentFromProperName(enchant);
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
enchantments.add(e);
|
enchantments.add(e);
|
||||||
} else {
|
} else {
|
||||||
@ -2674,10 +2669,11 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add possibilty to use fallbacks for customs maps
|
* Add possibilty to use fallbacks for customs maps<p>
|
||||||
|
*
|
||||||
* Avoid null objects in datamap by initialize the entry value with empty string if no fallback present.
|
* Avoid null objects in datamap by initialize the entry value with empty string if no fallback present.
|
||||||
*/
|
*/
|
||||||
static Map<String, Object> populateCustoms(ConfigurationSection sec2, Map<String, Object> datamap) {
|
private static Map<String, Object> populateCustoms(ConfigurationSection sec2, Map<String, Object> datamap) {
|
||||||
Map<String,Object> data = new HashMap<String,Object>();
|
Map<String,Object> data = new HashMap<String,Object>();
|
||||||
if (sec2 != null) {
|
if (sec2 != null) {
|
||||||
for (String key : datamap.keySet()) {
|
for (String key : datamap.keySet()) {
|
||||||
@ -2688,10 +2684,11 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add possibilty to use fallbacks for customs entries
|
* Add possibilty to use fallbacks for customs entries<p>
|
||||||
|
*
|
||||||
* Avoid null objects in datamap by initialize the entry value with empty string if no fallback present.
|
* Avoid null objects in datamap by initialize the entry value with empty string if no fallback present.
|
||||||
*/
|
*/
|
||||||
static Entry<String, Object> populateCustoms(ConfigurationSection sec2, Entry<String, Object> datamap) {
|
private static Entry<String, Object> populateCustoms(ConfigurationSection sec2, Entry<String, Object> datamap) {
|
||||||
String key = null;;
|
String key = null;;
|
||||||
Object value = null;;
|
Object value = null;;
|
||||||
if (sec2 != null) {
|
if (sec2 != null) {
|
||||||
@ -2721,9 +2718,8 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
if (legacyFile.exists()) {
|
if (legacyFile.exists()) {
|
||||||
getLogger().log(Level.INFO, "Renaming legacy \"events.yml\" to \"actions.yml\"");
|
getLogger().log(Level.INFO, "Renaming legacy \"events.yml\" to \"actions.yml\"");
|
||||||
try {
|
try {
|
||||||
legacyFile.renameTo(actionsFile);
|
if (legacyFile.renameTo(actionsFile)) {
|
||||||
if (legacyFile.exists()) {
|
getLogger().log(Level.INFO, "Success! Deleting legacy \"events.yml\" ... done!");
|
||||||
getLogger().log(Level.INFO, "Deleting legacy \"events.yml\" ... done!");
|
|
||||||
legacyFile.delete();
|
legacyFile.delete();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -3239,130 +3235,6 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
|
|||||||
return count - subtract;
|
return count - subtract;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation") // since 1.13
|
|
||||||
public static Enchantment getEnchantment(String enchant) {
|
|
||||||
String ench = Lang.getKey(enchant.replace(" ", ""));
|
|
||||||
ench = ench.replace("ENCHANTMENT_", "");
|
|
||||||
Enchantment e = Enchantment.getByName(ench);
|
|
||||||
return e != null ? e : getEnchantmentLegacy(ench.replace(" ", ""));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Enchantment getEnchantmentLegacy(String enchant) {
|
|
||||||
if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_DAMAGE"))) {
|
|
||||||
return Enchantment.ARROW_DAMAGE;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_FIRE"))) {
|
|
||||||
return Enchantment.ARROW_FIRE;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_INFINITE"))) {
|
|
||||||
return Enchantment.ARROW_INFINITE;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_KNOCKBACK"))) {
|
|
||||||
return Enchantment.ARROW_KNOCKBACK;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DAMAGE_ALL"))) {
|
|
||||||
return Enchantment.DAMAGE_ALL;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DAMAGE_ARTHROPODS"))) {
|
|
||||||
return Enchantment.DAMAGE_ARTHROPODS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DAMAGE_UNDEAD"))) {
|
|
||||||
return Enchantment.DAMAGE_UNDEAD;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DIG_SPEED"))) {
|
|
||||||
return Enchantment.DIG_SPEED;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DURABILITY"))) {
|
|
||||||
return Enchantment.DURABILITY;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_FIRE_ASPECT"))) {
|
|
||||||
return Enchantment.FIRE_ASPECT;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_KNOCKBACK"))) {
|
|
||||||
return Enchantment.KNOCKBACK;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LOOT_BONUS_BLOCKS"))) {
|
|
||||||
return Enchantment.LOOT_BONUS_BLOCKS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LOOT_BONUS_MOBS"))) {
|
|
||||||
return Enchantment.LOOT_BONUS_MOBS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LUCK"))) {
|
|
||||||
return Enchantment.LOOT_BONUS_MOBS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LURE"))) {
|
|
||||||
return Enchantment.LOOT_BONUS_MOBS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_OXYGEN"))) {
|
|
||||||
return Enchantment.OXYGEN;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_ENVIRONMENTAL"))) {
|
|
||||||
return Enchantment.PROTECTION_ENVIRONMENTAL;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_EXPLOSIONS"))) {
|
|
||||||
return Enchantment.PROTECTION_EXPLOSIONS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_FALL"))) {
|
|
||||||
return Enchantment.PROTECTION_FALL;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_FIRE"))) {
|
|
||||||
return Enchantment.PROTECTION_FIRE;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_PROJECTILE"))) {
|
|
||||||
return Enchantment.PROTECTION_PROJECTILE;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_SILK_TOUCH"))) {
|
|
||||||
return Enchantment.SILK_TOUCH;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_THORNS"))) {
|
|
||||||
return Enchantment.THORNS;
|
|
||||||
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_WATER_WORKER"))) {
|
|
||||||
return Enchantment.WATER_WORKER;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Enchantment getEnchantmentPretty(String enchant) {
|
|
||||||
while (Quester.spaceToCapital(enchant) != null) {
|
|
||||||
enchant = Quester.spaceToCapital(enchant);
|
|
||||||
}
|
|
||||||
return getEnchantment(enchant);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DyeColor getDyeColor(String s) {
|
|
||||||
String col = Lang.getKey(MiscUtil.getCapitalized(s));
|
|
||||||
col = col.replace("COLOR_", "");
|
|
||||||
DyeColor color = null;
|
|
||||||
try {
|
|
||||||
color = DyeColor.valueOf(col);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
// Do nothing
|
|
||||||
}
|
|
||||||
return color != null ? color : getDyeColorLegacy(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DyeColor getDyeColorLegacy(String s) {
|
|
||||||
if (s.equalsIgnoreCase("Black") || s.equalsIgnoreCase(Lang.get("COLOR_BLACK"))) {
|
|
||||||
return DyeColor.BLACK;
|
|
||||||
} else if (s.equalsIgnoreCase("Blue") || s.equalsIgnoreCase(Lang.get("COLOR_BLUE"))) {
|
|
||||||
return DyeColor.BLUE;
|
|
||||||
} else if (s.equalsIgnoreCase("Brown") || s.equalsIgnoreCase(Lang.get("COLOR_BROWN"))) {
|
|
||||||
return DyeColor.BROWN;
|
|
||||||
} else if (s.equalsIgnoreCase("Cyan") || s.equalsIgnoreCase(Lang.get("COLOR_CYAN"))) {
|
|
||||||
return DyeColor.CYAN;
|
|
||||||
} else if (s.equalsIgnoreCase("Gray") || s.equalsIgnoreCase(Lang.get("COLOR_GRAY"))) {
|
|
||||||
return DyeColor.GRAY;
|
|
||||||
} else if (s.equalsIgnoreCase("Green") || s.equalsIgnoreCase(Lang.get("COLOR_GREEN"))) {
|
|
||||||
return DyeColor.GREEN;
|
|
||||||
} else if (s.equalsIgnoreCase("LightBlue") || s.equalsIgnoreCase(Lang.get("COLOR_LIGHT_BLUE"))) {
|
|
||||||
return DyeColor.LIGHT_BLUE;
|
|
||||||
} else if (s.equalsIgnoreCase("Lime") || s.equalsIgnoreCase(Lang.get("COLOR_LIME"))) {
|
|
||||||
return DyeColor.LIME;
|
|
||||||
} else if (s.equalsIgnoreCase("Magenta") || s.equalsIgnoreCase(Lang.get("COLOR_MAGENTA"))) {
|
|
||||||
return DyeColor.MAGENTA;
|
|
||||||
} else if (s.equalsIgnoreCase("Orange") || s.equalsIgnoreCase(Lang.get("COLOR_ORAGE"))) {
|
|
||||||
return DyeColor.ORANGE;
|
|
||||||
} else if (s.equalsIgnoreCase("Pink") || s.equalsIgnoreCase(Lang.get("COLOR_PINK"))) {
|
|
||||||
return DyeColor.PINK;
|
|
||||||
} else if (s.equalsIgnoreCase("Purple") || s.equalsIgnoreCase(Lang.get("COLOR_PURPLE"))) {
|
|
||||||
return DyeColor.PURPLE;
|
|
||||||
} else if (s.equalsIgnoreCase("Red") || s.equalsIgnoreCase(Lang.get("COLOR_RED"))) {
|
|
||||||
return DyeColor.RED;
|
|
||||||
// 1.13 changed DyeColor.SILVER -> DyeColor.LIGHT_GRAY
|
|
||||||
} else if (s.equalsIgnoreCase("Silver") || s.equalsIgnoreCase("LightGray") || s.equalsIgnoreCase(Lang.get("COLOR_SILVER"))) {
|
|
||||||
return DyeColor.getByColor(Color.SILVER);
|
|
||||||
} else if (s.equalsIgnoreCase("White") || s.equalsIgnoreCase(Lang.get("COLOR_WHITE"))) {
|
|
||||||
return DyeColor.WHITE;
|
|
||||||
} else if (s.equalsIgnoreCase("Yellow") || s.equalsIgnoreCase(Lang.get("COLOR_YELLOW"))) {
|
|
||||||
return DyeColor.YELLOW;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getDyeString(DyeColor dc) {
|
|
||||||
return Lang.get("COLOR_" + dc.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether an NPC has a quest that the player may accept
|
* Checks whether an NPC has a quest that the player may accept
|
||||||
* @param npc The giver NPC to check
|
* @param npc The giver NPC to check
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -160,7 +160,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
if (input.equalsIgnoreCase("1")) {
|
if (input.equalsIgnoreCase("1")) {
|
||||||
if (player.hasPermission("quests.editor.actions.create") || player.hasPermission("quests.editor.events.create")) {
|
if (player.hasPermission("quests.editor.actions.create") || player.hasPermission("quests.editor.events.create")) {
|
||||||
context.setSessionData(CK.E_OLD_EVENT, "");
|
context.setSessionData(CK.E_OLD_EVENT, "");
|
||||||
return new EventNamePrompt();
|
return new ActionNamePrompt();
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
player.sendMessage(ChatColor.RED + Lang.get("noPermission"));
|
||||||
return new MenuPrompt();
|
return new MenuPrompt();
|
||||||
@ -416,7 +416,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
@Override
|
@Override
|
||||||
public Prompt acceptInput(ConversationContext context, String input) {
|
public Prompt acceptInput(ConversationContext context, String input) {
|
||||||
if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase(Lang.get("yesWord"))) {
|
if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase(Lang.get("yesWord"))) {
|
||||||
deleteEvent(context);
|
deleteAction(context);
|
||||||
return new MenuPrompt();
|
return new MenuPrompt();
|
||||||
} else if (input.equalsIgnoreCase("2") || input.equalsIgnoreCase(Lang.get("noWord"))) {
|
} else if (input.equalsIgnoreCase("2") || input.equalsIgnoreCase(Lang.get("noWord"))) {
|
||||||
return new MenuPrompt();
|
return new MenuPrompt();
|
||||||
@ -785,7 +785,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
@Override
|
@Override
|
||||||
public Prompt acceptInput(ConversationContext context, String input) {
|
public Prompt acceptInput(ConversationContext context, String input) {
|
||||||
if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase(Lang.get("yesWord"))) {
|
if (input.equalsIgnoreCase("1") || input.equalsIgnoreCase(Lang.get("yesWord"))) {
|
||||||
saveEvent(context);
|
saveAction(context);
|
||||||
return new MenuPrompt();
|
return new MenuPrompt();
|
||||||
} else if (input.equalsIgnoreCase("2") || input.equalsIgnoreCase(Lang.get("noWord"))) {
|
} else if (input.equalsIgnoreCase("2") || input.equalsIgnoreCase(Lang.get("noWord"))) {
|
||||||
return new CreateMenuPrompt();
|
return new CreateMenuPrompt();
|
||||||
@ -858,7 +858,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
||||||
private void deleteEvent(ConversationContext context) {
|
private void deleteAction(ConversationContext context) {
|
||||||
YamlConfiguration data = new YamlConfiguration();
|
YamlConfiguration data = new YamlConfiguration();
|
||||||
try {
|
try {
|
||||||
actionsFile = new File(plugin.getDataFolder(), "actions.yml");
|
actionsFile = new File(plugin.getDataFolder(), "actions.yml");
|
||||||
@ -891,7 +891,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
clearData(context);
|
clearData(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveEvent(ConversationContext context) {
|
private void saveAction(ConversationContext context) {
|
||||||
YamlConfiguration data = new YamlConfiguration();
|
YamlConfiguration data = new YamlConfiguration();
|
||||||
try {
|
try {
|
||||||
actionsFile = new File(plugin.getDataFolder(), "actions.yml");
|
actionsFile = new File(plugin.getDataFolder(), "actions.yml");
|
||||||
@ -908,7 +908,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
if (((String) context.getSessionData(CK.E_OLD_EVENT)).isEmpty() == false) {
|
if (((String) context.getSessionData(CK.E_OLD_EVENT)).isEmpty() == false) {
|
||||||
data.set("events." + (String) context.getSessionData(CK.E_OLD_EVENT), null);
|
data.set("events." + (String) context.getSessionData(CK.E_OLD_EVENT), null);
|
||||||
LinkedList<Action> temp = plugin.getEvents();
|
LinkedList<Action> temp = plugin.getEvents();
|
||||||
temp.remove(plugin.getEvent((String) context.getSessionData(CK.E_OLD_EVENT)));
|
temp.remove(plugin.getAction((String) context.getSessionData(CK.E_OLD_EVENT)));
|
||||||
plugin.setEvents(temp);
|
plugin.setEvents(temp);
|
||||||
}
|
}
|
||||||
ConfigurationSection section = data.createSection("events." + (String) context.getSessionData(CK.E_NAME));
|
ConfigurationSection section = data.createSection("events." + (String) context.getSessionData(CK.E_NAME));
|
||||||
@ -1049,7 +1049,7 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
clearData(context);
|
clearData(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class EventNamePrompt extends StringPrompt {
|
private class ActionNamePrompt extends StringPrompt {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPromptText(ConversationContext context) {
|
public String getPromptText(ConversationContext context) {
|
||||||
@ -1064,16 +1064,16 @@ public class ActionFactory implements ConversationAbandonedListener {
|
|||||||
for (Action e : plugin.getEvents()) {
|
for (Action e : plugin.getEvents()) {
|
||||||
if (e.getName().equalsIgnoreCase(input)) {
|
if (e.getName().equalsIgnoreCase(input)) {
|
||||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorExists"));
|
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorExists"));
|
||||||
return new EventNamePrompt();
|
return new ActionNamePrompt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (names.contains(input)) {
|
if (names.contains(input)) {
|
||||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorSomeone"));
|
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorSomeone"));
|
||||||
return new EventNamePrompt();
|
return new ActionNamePrompt();
|
||||||
}
|
}
|
||||||
if (StringUtils.isAlphanumeric(input) == false) {
|
if (StringUtils.isAlphanumeric(input) == false) {
|
||||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorAlpha"));
|
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("eventEditorAlpha"));
|
||||||
return new EventNamePrompt();
|
return new ActionNamePrompt();
|
||||||
}
|
}
|
||||||
context.setSessionData(CK.E_NAME, input);
|
context.setSessionData(CK.E_NAME, input);
|
||||||
names.add(input);
|
names.add(input);
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package me.blackvein.quests.events;
|
||||||
|
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
|
||||||
|
public abstract class QuestsEvent extends Event {
|
||||||
|
public QuestsEvent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestsEvent(boolean async) {
|
||||||
|
super(async);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quest;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.events.QuestsEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a quest-related event
|
||||||
|
*/
|
||||||
|
public abstract class QuestEvent extends QuestsEvent {
|
||||||
|
protected Quest quest;
|
||||||
|
|
||||||
|
public QuestEvent(final Quest quest) {
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuestEvent(final Quest quest, 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;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quest;
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a quest is quit by a quester
|
||||||
|
*/
|
||||||
|
public class QuestQuitEvent extends QuestEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quester quester;
|
||||||
|
private boolean cancel = false;
|
||||||
|
|
||||||
|
public QuestQuitEvent(Quest quest, 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(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quest;
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a quest is taken by a quester
|
||||||
|
*/
|
||||||
|
public class QuestTakeEvent extends QuestEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quester quester;
|
||||||
|
private boolean cancel = false;
|
||||||
|
|
||||||
|
public QuestTakeEvent(Quest quest, 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(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
import me.blackvein.quests.events.QuestsEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a quester-related event
|
||||||
|
*/
|
||||||
|
public abstract class QuesterEvent extends QuestsEvent {
|
||||||
|
protected Quester quester;
|
||||||
|
|
||||||
|
public QuesterEvent(final Quester quester) {
|
||||||
|
this.quester = quester;
|
||||||
|
}
|
||||||
|
|
||||||
|
public QuesterEvent(final Quester quester, boolean async) {
|
||||||
|
super(async);
|
||||||
|
this.quester = quester;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quester involved in this event
|
||||||
|
*
|
||||||
|
* @return Quester which is involved in this event
|
||||||
|
*/
|
||||||
|
public final Quester getQuester() {
|
||||||
|
return quester;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
import me.blackvein.quests.Stage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called after a quester changes stage
|
||||||
|
*/
|
||||||
|
public class QuesterPostChangeStageEvent extends QuesterEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
private Stage current;
|
||||||
|
private Stage next;
|
||||||
|
|
||||||
|
public QuesterPostChangeStageEvent(Quester quester, Quest quest, Stage current, Stage next) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
this.current = current;
|
||||||
|
this.next = next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Stage getCurrentStage() {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Stage getNextStage() {
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called after a quester completes a quest
|
||||||
|
*/
|
||||||
|
public class QuesterPostCompleteQuestEvent extends QuesterEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
|
||||||
|
public QuesterPostCompleteQuestEvent(Quester quester, Quest quest) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called after a quester fails a quest
|
||||||
|
*/
|
||||||
|
public class QuesterPostFailQuestEvent extends QuesterEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
|
||||||
|
public QuesterPostFailQuestEvent(Quester quester, Quest quest) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called after a quester starts a quest
|
||||||
|
*/
|
||||||
|
public class QuesterPostStartQuestEvent extends QuesterEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
|
||||||
|
public QuesterPostStartQuestEvent(Quester quester, Quest quest) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,73 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
import me.blackvein.quests.Stage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called before a quester changes stage
|
||||||
|
*/
|
||||||
|
public class QuesterPreChangeStageEvent extends QuesterEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
private Stage current;
|
||||||
|
private Stage next;
|
||||||
|
private boolean cancel = false;;
|
||||||
|
|
||||||
|
public QuesterPreChangeStageEvent(Quester quester, Quest quest, Stage current, Stage next) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
this.current = current;
|
||||||
|
this.next = next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Stage getCurrentStage() {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Stage getNextStage() {
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called before a quester completes a quest
|
||||||
|
*/
|
||||||
|
public class QuesterPreCompleteQuestEvent extends QuesterEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
private boolean cancel = false;
|
||||||
|
|
||||||
|
public QuesterPreCompleteQuestEvent(Quester quester, Quest quest) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called before a quester fails a quest
|
||||||
|
*/
|
||||||
|
public class QuesterPreFailQuestEvent extends QuesterEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
private boolean cancel = false;
|
||||||
|
|
||||||
|
public QuesterPreFailQuestEvent(Quester quester, Quest quest) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.events.quester;
|
||||||
|
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import me.blackvein.quests.Quest;
|
||||||
|
import me.blackvein.quests.Quester;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called before a quester starts a quest
|
||||||
|
*/
|
||||||
|
public class QuesterPreStartQuestEvent extends QuesterEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private Quest quest;
|
||||||
|
private boolean cancel = false;
|
||||||
|
|
||||||
|
public QuesterPreStartQuestEvent(Quester quester, Quest quest) {
|
||||||
|
super(quester);
|
||||||
|
this.quest = quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the quest involved in this event
|
||||||
|
*
|
||||||
|
* @return Quest who is involved in this event
|
||||||
|
*/
|
||||||
|
public Quest getQuest() {
|
||||||
|
return quest;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -30,6 +30,8 @@ import me.blackvein.quests.Quester;
|
|||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.Requirements;
|
import me.blackvein.quests.Requirements;
|
||||||
import me.blackvein.quests.Stage;
|
import me.blackvein.quests.Stage;
|
||||||
|
import me.blackvein.quests.events.quest.QuestQuitEvent;
|
||||||
|
import me.blackvein.quests.events.quest.QuestTakeEvent;
|
||||||
import me.blackvein.quests.exceptions.InvalidStageException;
|
import me.blackvein.quests.exceptions.InvalidStageException;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
@ -613,39 +615,40 @@ public class CmdExecutor implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean questsQuit(final Player player, String[] args) {
|
private void questsQuit(final Player player, String[] args) {
|
||||||
if (plugin.getSettings().canAllowQuitting() == true) {
|
if (plugin.getSettings().canAllowQuitting() == true) {
|
||||||
if (((Player) player).hasPermission("quests.quit")) {
|
if (((Player) player).hasPermission("quests.quit")) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
player.sendMessage(ChatColor.RED + Lang.get(player, "COMMAND_QUIT_HELP"));
|
player.sendMessage(ChatColor.RED + Lang.get(player, "COMMAND_QUIT_HELP"));
|
||||||
return true;
|
return;
|
||||||
}
|
}
|
||||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||||
if (quester.getCurrentQuests().isEmpty() == false) {
|
if (quester.getCurrentQuests().isEmpty() == false) {
|
||||||
Quest quest = plugin.getQuest(MiscUtil.concatArgArray(args, 1, args.length - 1, ' '));
|
Quest q = plugin.getQuest(MiscUtil.concatArgArray(args, 1, args.length - 1, ' '));
|
||||||
if (quest == null) {
|
if (q != null) {
|
||||||
|
QuestQuitEvent event = new QuestQuitEvent(q, quester);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
quester.hardQuit(q);
|
||||||
|
String msg = Lang.get("questQuit");
|
||||||
|
msg = msg.replace("<quest>", ChatColor.DARK_PURPLE + q.getName() + ChatColor.YELLOW);
|
||||||
|
player.sendMessage(ChatColor.YELLOW + msg);
|
||||||
|
quester.saveData();
|
||||||
|
quester.loadData();
|
||||||
|
quester.updateJournal();
|
||||||
|
} else {
|
||||||
player.sendMessage(ChatColor.RED + Lang.get(player, "questNotFound"));
|
player.sendMessage(ChatColor.RED + Lang.get(player, "questNotFound"));
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
quester.hardQuit(quest);
|
|
||||||
String msg = Lang.get("questQuit");
|
|
||||||
msg = msg.replace("<quest>", ChatColor.DARK_PURPLE + quest.getName() + ChatColor.YELLOW);
|
|
||||||
player.sendMessage(ChatColor.YELLOW + msg);
|
|
||||||
quester.saveData();
|
|
||||||
quester.loadData();
|
|
||||||
quester.updateJournal();
|
|
||||||
return true;
|
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.YELLOW + Lang.get(player, "noActiveQuest"));
|
player.sendMessage(ChatColor.YELLOW + Lang.get(player, "noActiveQuest"));
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.RED + Lang.get(player, "NoPermission"));
|
player.sendMessage(ChatColor.RED + Lang.get(player, "NoPermission"));
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.YELLOW + Lang.get(player, "questQuitDisabled"));
|
player.sendMessage(ChatColor.YELLOW + Lang.get(player, "questQuitDisabled"));
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -684,6 +687,11 @@ public class CmdExecutor implements CommandExecutor {
|
|||||||
if (questToFind != null) {
|
if (questToFind != null) {
|
||||||
final Quest q = questToFind;
|
final Quest q = questToFind;
|
||||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||||
|
QuestTakeEvent event = new QuestTakeEvent(q, quester);
|
||||||
|
plugin.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (quester.getCurrentQuests().size() >= plugin.getSettings().getMaxQuests() && plugin.getSettings().getMaxQuests() > 0) {
|
if (quester.getCurrentQuests().size() >= plugin.getSettings().getMaxQuests() && plugin.getSettings().getMaxQuests() > 0) {
|
||||||
String msg = Lang.get(player, "questMaxAllowed");
|
String msg = Lang.get(player, "questMaxAllowed");
|
||||||
msg = msg.replace("<number>", String.valueOf(plugin.getSettings().getMaxQuests()));
|
msg = msg.replace("<number>", String.valueOf(plugin.getSettings().getMaxQuests()));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -140,7 +140,7 @@ public class NpcListener implements Listener {
|
|||||||
// TODO translate enchantment names
|
// TODO translate enchantment names
|
||||||
for (Entry<Enchantment, Integer> e : esmeta.getStoredEnchants().entrySet()) {
|
for (Entry<Enchantment, Integer> e : esmeta.getStoredEnchants().entrySet()) {
|
||||||
player.sendMessage(ChatColor.GRAY + "\u2515 " + ChatColor.DARK_GREEN
|
player.sendMessage(ChatColor.GRAY + "\u2515 " + ChatColor.DARK_GREEN
|
||||||
+ Quester.prettyEnchantmentString(e.getKey()) + " " + RomanNumeral.getNumeral(e.getValue()) + "\n");
|
+ ItemUtil.getPrettyEnchantmentName(e.getKey()) + " " + RomanNumeral.getNumeral(e.getValue()) + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -9,6 +9,7 @@
|
|||||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* 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.
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
****************************************************************************************************** */
|
****************************************************************************************************** */
|
||||||
|
|
||||||
package me.blackvein.quests.particle;
|
package me.blackvein.quests.particle;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -9,6 +9,7 @@
|
|||||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* 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.
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
****************************************************************************************************** */
|
****************************************************************************************************** */
|
||||||
|
|
||||||
package me.blackvein.quests.particle;
|
package me.blackvein.quests.particle;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -9,6 +9,7 @@
|
|||||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* 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.
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
****************************************************************************************************** */
|
****************************************************************************************************** */
|
||||||
|
|
||||||
package me.blackvein.quests.particle;
|
package me.blackvein.quests.particle;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -16,9 +16,9 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
import me.blackvein.quests.Quester;
|
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -54,7 +54,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_BREAK_NAMES);
|
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_BREAK_NAMES);
|
||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_BREAK_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_BREAK_AMOUNTS);
|
||||||
for (int i = 0; i < names.size(); i++) {
|
for (int i = 0; i < names.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyItemString(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getPrettyItemName(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_DAMAGE_NAMES) == null) {
|
if (context.getSessionData(pref + CK.S_DAMAGE_NAMES) == null) {
|
||||||
@ -64,7 +64,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_DAMAGE_NAMES);
|
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_DAMAGE_NAMES);
|
||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_DAMAGE_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_DAMAGE_AMOUNTS);
|
||||||
for (int i = 0; i < names.size(); i++) {
|
for (int i = 0; i < names.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyItemString(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getPrettyItemName(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_PLACE_NAMES) == null) {
|
if (context.getSessionData(pref + CK.S_PLACE_NAMES) == null) {
|
||||||
@ -74,7 +74,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_PLACE_NAMES);
|
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_PLACE_NAMES);
|
||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_PLACE_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_PLACE_AMOUNTS);
|
||||||
for (int i = 0; i < names.size(); i++) {
|
for (int i = 0; i < names.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyItemString(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getPrettyItemName(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_USE_NAMES) == null) {
|
if (context.getSessionData(pref + CK.S_USE_NAMES) == null) {
|
||||||
@ -84,7 +84,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_USE_NAMES);
|
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_USE_NAMES);
|
||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_USE_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_USE_AMOUNTS);
|
||||||
for (int i = 0; i < names.size(); i++) {
|
for (int i = 0; i < names.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyItemString(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getPrettyItemName(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_CUT_NAMES) == null) {
|
if (context.getSessionData(pref + CK.S_CUT_NAMES) == null) {
|
||||||
@ -94,7 +94,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_CUT_NAMES);
|
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_CUT_NAMES);
|
||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_CUT_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_CUT_AMOUNTS);
|
||||||
for (int i = 0; i < names.size(); i++) {
|
for (int i = 0; i < names.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyItemString(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getPrettyItemName(names.get(i)) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text += ChatColor.GREEN + "" + ChatColor.BOLD + "6 " + ChatColor.RESET + ChatColor.DARK_PURPLE + "- " + Lang.get("done") + "\n";
|
text += ChatColor.GREEN + "" + ChatColor.BOLD + "6 " + ChatColor.RESET + ChatColor.DARK_PURPLE + "- " + Lang.get("done") + "\n";
|
||||||
@ -140,7 +140,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
||||||
for (String s : getBlockNames(context)) {
|
for (String s : getBlockNames(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyItemString(s) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + ItemUtil.getPrettyItemName(s) + "\n";
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_BREAK_AMOUNTS) == null) {
|
if (context.getSessionData(pref + CK.S_BREAK_AMOUNTS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
||||||
@ -357,7 +357,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
||||||
for (String s : getBlockNames(context)) {
|
for (String s : getBlockNames(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyItemString(s) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + ItemUtil.getPrettyItemName(s) + "\n";
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_DAMAGE_AMOUNTS) == null) {
|
if (context.getSessionData(pref + CK.S_DAMAGE_AMOUNTS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetDamageAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetDamageAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
||||||
@ -574,7 +574,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
||||||
for (String s : getBlockNames(context)) {
|
for (String s : getBlockNames(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyItemString(s) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + ItemUtil.getPrettyItemName(s) + "\n";
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_PLACE_AMOUNTS) == null) {
|
if (context.getSessionData(pref + CK.S_PLACE_AMOUNTS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetPlaceAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetPlaceAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
||||||
@ -791,7 +791,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
||||||
for (String s : getBlockNames(context)) {
|
for (String s : getBlockNames(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyItemString(s) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + ItemUtil.getPrettyItemName(s) + "\n";
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_USE_AMOUNTS) == null) {
|
if (context.getSessionData(pref + CK.S_USE_AMOUNTS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetUseAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetUseAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
||||||
@ -1008,7 +1008,7 @@ public class BlocksPrompt extends FixedSetPrompt {
|
|||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "1" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetBlockNames") + "\n";
|
||||||
for (String s : getBlockNames(context)) {
|
for (String s : getBlockNames(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyItemString(s) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + ItemUtil.getPrettyItemName(s) + "\n";
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_CUT_AMOUNTS) == null) {
|
if (context.getSessionData(pref + CK.S_CUT_AMOUNTS) == null) {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetCutAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetCutAmounts") + " (" + Lang.get("noneSet") + ")\n";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
/*******************************************************************************************************
|
||||||
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. 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.prompts;
|
package me.blackvein.quests.prompts;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -32,7 +32,6 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import me.blackvein.quests.Quester;
|
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
@ -376,7 +375,7 @@ public class ItemStackPrompt extends FixedSetPrompt {
|
|||||||
public String getPromptText(ConversationContext cc) {
|
public String getPromptText(ConversationContext cc) {
|
||||||
String text = ChatColor.LIGHT_PURPLE + Lang.get("enchantmentsTitle") + "\n";
|
String text = ChatColor.LIGHT_PURPLE + Lang.get("enchantmentsTitle") + "\n";
|
||||||
for (Enchantment e : Enchantment.values()) {
|
for (Enchantment e : Enchantment.values()) {
|
||||||
text += ChatColor.GREEN + Quester.prettyEnchantmentString(e) + ", ";
|
text += ChatColor.GREEN + ItemUtil.getPrettyEnchantmentName(e) + ", ";
|
||||||
}
|
}
|
||||||
text = text.substring(0, text.length() - 2);
|
text = text.substring(0, text.length() - 2);
|
||||||
return text + "\n" + ChatColor.YELLOW + Lang.get("itemCreateEnterEnch");
|
return text + "\n" + ChatColor.YELLOW + Lang.get("itemCreateEnterEnch");
|
||||||
@ -386,10 +385,10 @@ public class ItemStackPrompt extends FixedSetPrompt {
|
|||||||
public Prompt acceptInput(ConversationContext cc, String input) {
|
public Prompt acceptInput(ConversationContext cc, String input) {
|
||||||
String s = input.replace(":", "");
|
String s = input.replace(":", "");
|
||||||
if (s.equalsIgnoreCase(Lang.get("cmdClear")) == false && s.equalsIgnoreCase(Lang.get("cmdCancel")) == false) {
|
if (s.equalsIgnoreCase(Lang.get("cmdClear")) == false && s.equalsIgnoreCase(Lang.get("cmdCancel")) == false) {
|
||||||
Enchantment e = Quests.getEnchantmentPretty(MiscUtil.getCapitalized(s));
|
Enchantment e = ItemUtil.getEnchantmentFromPrettyName(MiscUtil.getCapitalized(s));
|
||||||
if (e != null) {
|
if (e != null) {
|
||||||
cc.setSessionData("tempEnchant", e);
|
cc.setSessionData("tempEnchant", e);
|
||||||
return new LevelPrompt(Quester.prettyEnchantmentString(e));
|
return new LevelPrompt(ItemUtil.getPrettyEnchantmentName(e));
|
||||||
} else {
|
} else {
|
||||||
cc.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("itemCreateInvalidEnch"));
|
cc.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("itemCreateInvalidEnch"));
|
||||||
return new EnchantmentPrompt();
|
return new EnchantmentPrompt();
|
||||||
@ -490,14 +489,14 @@ public class ItemStackPrompt extends FixedSetPrompt {
|
|||||||
String item;
|
String item;
|
||||||
if (cc.getSessionData("tempDisplay") == null) {
|
if (cc.getSessionData("tempDisplay") == null) {
|
||||||
String name = (String) cc.getSessionData("tempName");
|
String name = (String) cc.getSessionData("tempName");
|
||||||
item = ChatColor.AQUA + Quester.prettyItemString(name);
|
item = ChatColor.AQUA + ItemUtil.getPrettyItemName(name);
|
||||||
if (cc.getSessionData("tempData") != null) {
|
if (cc.getSessionData("tempData") != null) {
|
||||||
item += ":" + ChatColor.BLUE + (Short) cc.getSessionData("tempData");
|
item += ":" + ChatColor.BLUE + (Short) cc.getSessionData("tempData");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item = ChatColor.LIGHT_PURPLE + "" + ChatColor.ITALIC + (String) cc.getSessionData("tempDisplay") + ChatColor.RESET + "" + ChatColor.GRAY + " (";
|
item = ChatColor.LIGHT_PURPLE + "" + ChatColor.ITALIC + (String) cc.getSessionData("tempDisplay") + ChatColor.RESET + "" + ChatColor.GRAY + " (";
|
||||||
String name = (String) cc.getSessionData("tempName");
|
String name = (String) cc.getSessionData("tempName");
|
||||||
item += ChatColor.AQUA + Quester.prettyItemString(name);
|
item += ChatColor.AQUA + ItemUtil.getPrettyItemName(name);
|
||||||
if (cc.getSessionData("tempData") != null) {
|
if (cc.getSessionData("tempData") != null) {
|
||||||
item += ":" + ChatColor.BLUE + (Short) cc.getSessionData("tempData");
|
item += ":" + ChatColor.BLUE + (Short) cc.getSessionData("tempData");
|
||||||
}
|
}
|
||||||
@ -513,7 +512,7 @@ public class ItemStackPrompt extends FixedSetPrompt {
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
Map<Enchantment, Integer> enchantments = (Map<Enchantment, Integer>) cc.getSessionData("tempEnchantments");
|
Map<Enchantment, Integer> enchantments = (Map<Enchantment, Integer>) cc.getSessionData("tempEnchantments");
|
||||||
for (Entry<Enchantment, Integer> e : enchantments.entrySet()) {
|
for (Entry<Enchantment, Integer> e : enchantments.entrySet()) {
|
||||||
item += ChatColor.GRAY + " - " + ChatColor.RED + Quester.prettyEnchantmentString(e.getKey()) + " " + RomanNumeral.getNumeral(e.getValue()) + "\n";
|
item += ChatColor.GRAY + " - " + ChatColor.RED + ItemUtil.getPrettyEnchantmentName(e.getKey()) + " " + RomanNumeral.getNumeral(e.getValue()) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cc.getSessionData("tempLore") != null) {
|
if (cc.getSessionData("tempLore") != null) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -16,7 +16,6 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
import me.blackvein.quests.Quester;
|
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
@ -90,7 +89,8 @@ public class ItemsPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_ENCHANT_NAMES);
|
LinkedList<String> names = (LinkedList<String>) context.getSessionData(pref + CK.S_ENCHANT_NAMES);
|
||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_ENCHANT_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_ENCHANT_AMOUNTS);
|
||||||
for (int i = 0; i < enchants.size(); i++) {
|
for (int i = 0; i < enchants.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyItemString(names.get(i)) + ChatColor.GRAY + " " + Lang.get("with") + " " + ChatColor.AQUA + Quester.prettyEnchantmentString(Quests.getEnchantment(enchants.get(i))) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + ItemUtil.getPrettyItemName(names.get(i)) + ChatColor.GRAY + " " + Lang.get("with") + " " + ChatColor.AQUA
|
||||||
|
+ ItemUtil.getPrettyEnchantmentName(ItemUtil.getEnchantmentFromProperName(enchants.get(i))) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text += ChatColor.GREEN + "" + ChatColor.BOLD + "4 " + ChatColor.RESET + ChatColor.DARK_PURPLE + "- " + Lang.get("done") + "\n";
|
text += ChatColor.GREEN + "" + ChatColor.BOLD + "4 " + ChatColor.RESET + ChatColor.DARK_PURPLE + "- " + Lang.get("done") + "\n";
|
||||||
@ -255,7 +255,7 @@ public class ItemsPrompt extends FixedSetPrompt {
|
|||||||
} else {
|
} else {
|
||||||
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetItemNames") + "\n";
|
text += ChatColor.BLUE + "" + ChatColor.BOLD + "2" + ChatColor.RESET + ChatColor.YELLOW + " - " + Lang.get("stageEditorSetItemNames") + "\n";
|
||||||
for (String s : getEnchantItems(context)) {
|
for (String s : getEnchantItems(context)) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyItemString(s) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + ItemUtil.getPrettyItemName(s) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (context.getSessionData(pref + CK.S_ENCHANT_AMOUNTS) == null) {
|
if (context.getSessionData(pref + CK.S_ENCHANT_AMOUNTS) == null) {
|
||||||
@ -349,9 +349,9 @@ public class ItemsPrompt extends FixedSetPrompt {
|
|||||||
String text = ChatColor.LIGHT_PURPLE + "- " + ChatColor.DARK_PURPLE + Lang.get("stageEditorEnchantments") + ChatColor.LIGHT_PURPLE + " -\n";
|
String text = ChatColor.LIGHT_PURPLE + "- " + ChatColor.DARK_PURPLE + Lang.get("stageEditorEnchantments") + ChatColor.LIGHT_PURPLE + " -\n";
|
||||||
for (int i = 0; i < Enchantment.values().length; i++) {
|
for (int i = 0; i < Enchantment.values().length; i++) {
|
||||||
if (i == Enchantment.values().length - 1) {
|
if (i == Enchantment.values().length - 1) {
|
||||||
text += ChatColor.GREEN + Quester.prettyEnchantmentString(Enchantment.values()[i]) + " ";
|
text += ChatColor.GREEN + ItemUtil.getPrettyEnchantmentName(Enchantment.values()[i]) + " ";
|
||||||
} else {
|
} else {
|
||||||
text += ChatColor.GREEN + Quester.prettyEnchantmentString(Enchantment.values()[i]) + ", ";
|
text += ChatColor.GREEN + ItemUtil.getPrettyEnchantmentName(Enchantment.values()[i]) + ", ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text = text.substring(0, text.length() - 1);
|
text = text.substring(0, text.length() - 1);
|
||||||
@ -368,9 +368,9 @@ public class ItemsPrompt extends FixedSetPrompt {
|
|||||||
s = s.trim();
|
s = s.trim();
|
||||||
valid = false;
|
valid = false;
|
||||||
for (Enchantment e : Enchantment.values()) {
|
for (Enchantment e : Enchantment.values()) {
|
||||||
if (Quester.prettyEnchantmentString(e).equalsIgnoreCase(s)) {
|
if (ItemUtil.getPrettyEnchantmentName(e).equalsIgnoreCase(s)) {
|
||||||
if (enchs.contains(s) == false) {
|
if (enchs.contains(s) == false) {
|
||||||
enchs.add(Quester.prettyEnchantmentString(e));
|
enchs.add(ItemUtil.getPrettyEnchantmentName(e));
|
||||||
valid = true;
|
valid = true;
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -31,7 +31,6 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
|
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
import me.blackvein.quests.Quester;
|
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
@ -64,7 +63,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
|||||||
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_MOB_AMOUNTS);
|
LinkedList<Integer> amnts = (LinkedList<Integer>) context.getSessionData(pref + CK.S_MOB_AMOUNTS);
|
||||||
if (context.getSessionData(pref + CK.S_MOB_KILL_LOCATIONS) == null) {
|
if (context.getSessionData(pref + CK.S_MOB_KILL_LOCATIONS) == null) {
|
||||||
for (int i = 0; i < mobs.size(); i++) {
|
for (int i = 0; i < mobs.size(); i++) {
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.AQUA + Quester.prettyMobString(Quests.getMobType(mobs.get(i))) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
text += ChatColor.GRAY + " - " + ChatColor.AQUA + MiscUtil.getPrettyMobName(Quests.getMobType(mobs.get(i))) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + "\n";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LinkedList<String> locs = (LinkedList<String>) context.getSessionData(pref + CK.S_MOB_KILL_LOCATIONS);
|
LinkedList<String> locs = (LinkedList<String>) context.getSessionData(pref + CK.S_MOB_KILL_LOCATIONS);
|
||||||
@ -73,7 +72,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
|||||||
for (int i = 0; i < mobs.size(); i++) {
|
for (int i = 0; i < mobs.size(); i++) {
|
||||||
String msg = Lang.get("blocksWithin");
|
String msg = Lang.get("blocksWithin");
|
||||||
msg = msg.replaceAll("<amount>", ChatColor.DARK_PURPLE + "" + radii.get(i) + ChatColor.GRAY);
|
msg = msg.replaceAll("<amount>", ChatColor.DARK_PURPLE + "" + radii.get(i) + ChatColor.GRAY);
|
||||||
text += ChatColor.GRAY + " - " + ChatColor.BLUE + Quester.prettyMobString(Quests.getMobType(mobs.get(i))) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + ChatColor.GRAY + msg + ChatColor.YELLOW + names.get(i) + " (" + locs.get(i) + ")\n";
|
text += ChatColor.GRAY + " - " + ChatColor.BLUE + MiscUtil.getPrettyMobName(Quests.getMobType(mobs.get(i))) + ChatColor.GRAY + " x " + ChatColor.DARK_AQUA + amnts.get(i) + ChatColor.GRAY + msg + ChatColor.YELLOW + names.get(i) + " (" + locs.get(i) + ")\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -612,7 +611,7 @@ public class MobsPrompt extends FixedSetPrompt {
|
|||||||
if (Quests.getMobType(s) != null) {
|
if (Quests.getMobType(s) != null) {
|
||||||
final EntityType type = Quests.getMobType(s);
|
final EntityType type = Quests.getMobType(s);
|
||||||
if (type.isAlive() || Tameable.class.isAssignableFrom(type.getEntityClass())) {
|
if (type.isAlive() || Tameable.class.isAssignableFrom(type.getEntityClass())) {
|
||||||
mobTypes.add(Quester.prettyMobString(type));
|
mobTypes.add(MiscUtil.getPrettyMobName(type));
|
||||||
context.setSessionData(pref + CK.S_TAME_TYPES, mobTypes);
|
context.setSessionData(pref + CK.S_TAME_TYPES, mobTypes);
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorInvalidMob"));
|
player.sendMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorInvalidMob"));
|
||||||
@ -751,9 +750,9 @@ public class MobsPrompt extends FixedSetPrompt {
|
|||||||
final DyeColor[] colArr = DyeColor.values();
|
final DyeColor[] colArr = DyeColor.values();
|
||||||
for (int i = 0; i < colArr.length; i++) {
|
for (int i = 0; i < colArr.length; i++) {
|
||||||
if (i < (colArr.length - 1)) {
|
if (i < (colArr.length - 1)) {
|
||||||
cols += Quests.getDyeString(colArr[i]) + ", ";
|
cols += MiscUtil.getDyeString(colArr[i]) + ", ";
|
||||||
} else {
|
} else {
|
||||||
cols += Quests.getDyeString(colArr[i]) + "\n";
|
cols += MiscUtil.getDyeString(colArr[i]) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cols + ChatColor.YELLOW + Lang.get("stageEditorShearColorsPrompt");
|
return cols + ChatColor.YELLOW + Lang.get("stageEditorShearColorsPrompt");
|
||||||
@ -765,8 +764,8 @@ public class MobsPrompt extends FixedSetPrompt {
|
|||||||
if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false) {
|
if (input.equalsIgnoreCase(Lang.get("cmdCancel")) == false) {
|
||||||
LinkedList<String> colors = new LinkedList<String>();
|
LinkedList<String> colors = new LinkedList<String>();
|
||||||
for (String s : input.split(" ")) {
|
for (String s : input.split(" ")) {
|
||||||
if (Quests.getDyeColor(s) != null) {
|
if (MiscUtil.getDyeColor(s) != null) {
|
||||||
colors.add(Quests.getDyeString(Quests.getDyeColor(s)));
|
colors.add(MiscUtil.getDyeString(MiscUtil.getDyeColor(s)));
|
||||||
context.setSessionData(pref + CK.S_SHEAR_COLORS, colors);
|
context.setSessionData(pref + CK.S_SHEAR_COLORS, colors);
|
||||||
} else {
|
} else {
|
||||||
player.sendMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorInvalidDye"));
|
player.sendMessage(ChatColor.LIGHT_PURPLE + s + " " + ChatColor.RED + Lang.get("stageEditorInvalidDye"));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -32,11 +32,11 @@ import com.herocraftonline.heroes.characters.classes.HeroClass;
|
|||||||
|
|
||||||
import me.blackvein.quests.CustomReward;
|
import me.blackvein.quests.CustomReward;
|
||||||
import me.blackvein.quests.QuestFactory;
|
import me.blackvein.quests.QuestFactory;
|
||||||
import me.blackvein.quests.Quester;
|
|
||||||
import me.blackvein.quests.Quests;
|
import me.blackvein.quests.Quests;
|
||||||
import me.blackvein.quests.util.CK;
|
import me.blackvein.quests.util.CK;
|
||||||
import me.blackvein.quests.util.ItemUtil;
|
import me.blackvein.quests.util.ItemUtil;
|
||||||
import me.blackvein.quests.util.Lang;
|
import me.blackvein.quests.util.Lang;
|
||||||
|
import me.blackvein.quests.util.MiscUtil;
|
||||||
|
|
||||||
public class RewardsPrompt extends FixedSetPrompt {
|
public class RewardsPrompt extends FixedSetPrompt {
|
||||||
|
|
||||||
@ -502,7 +502,7 @@ public class RewardsPrompt extends FixedSetPrompt {
|
|||||||
for (String s : args) {
|
for (String s : args) {
|
||||||
if (Quests.getMcMMOSkill(s) != null) {
|
if (Quests.getMcMMOSkill(s) != null) {
|
||||||
if (skills.contains(s) == false) {
|
if (skills.contains(s) == false) {
|
||||||
skills.add(Quester.getCapitalized(s));
|
skills.add(MiscUtil.getCapitalized(s));
|
||||||
} else {
|
} else {
|
||||||
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("listDuplicate"));
|
context.getForWhom().sendRawMessage(ChatColor.RED + Lang.get("listDuplicate"));
|
||||||
return new mcMMOSkillsPrompt();
|
return new mcMMOSkillsPrompt();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -33,8 +33,6 @@ import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
|
|
||||||
import me.blackvein.quests.Quester;
|
|
||||||
|
|
||||||
public class ItemUtil {
|
public class ItemUtil {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -442,7 +440,7 @@ public class ItemUtil {
|
|||||||
if (is.getEnchantments().isEmpty() == false) {
|
if (is.getEnchantments().isEmpty() == false) {
|
||||||
text += " " + ChatColor.GRAY + Lang.get("with") + ChatColor.DARK_PURPLE;
|
text += " " + ChatColor.GRAY + Lang.get("with") + ChatColor.DARK_PURPLE;
|
||||||
for (Entry<Enchantment, Integer> e : is.getEnchantments().entrySet()) {
|
for (Entry<Enchantment, Integer> e : is.getEnchantments().entrySet()) {
|
||||||
text += " " + Quester.prettyEnchantmentString(e.getKey()) + ":" + e.getValue();
|
text += " " + ItemUtil.getPrettyEnchantmentName(e.getKey()) + ":" + e.getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text += ChatColor.AQUA + " x " + is.getAmount();
|
text += ChatColor.AQUA + " x " + is.getAmount();
|
||||||
@ -468,7 +466,7 @@ public class ItemUtil {
|
|||||||
if (is.hasItemMeta() && is.getItemMeta().hasDisplayName()) {
|
if (is.hasItemMeta() && is.getItemMeta().hasDisplayName()) {
|
||||||
text = "" + ChatColor.DARK_AQUA + ChatColor.ITALIC + is.getItemMeta().getDisplayName() + ChatColor.RESET + ChatColor.AQUA + " x " + is.getAmount();
|
text = "" + ChatColor.DARK_AQUA + ChatColor.ITALIC + is.getItemMeta().getDisplayName() + ChatColor.RESET + ChatColor.AQUA + " x " + is.getAmount();
|
||||||
} else {
|
} else {
|
||||||
text = ChatColor.AQUA + Quester.prettyItemString(is.getType().name());
|
text = ChatColor.AQUA + getPrettyItemName(is.getType().name());
|
||||||
if (is.getDurability() != 0) {
|
if (is.getDurability() != 0) {
|
||||||
text += ChatColor.AQUA + ":" + is.getDurability();
|
text += ChatColor.AQUA + ":" + is.getDurability();
|
||||||
}
|
}
|
||||||
@ -491,7 +489,7 @@ public class ItemUtil {
|
|||||||
if (is.hasItemMeta() && is.getItemMeta().hasDisplayName()) {
|
if (is.hasItemMeta() && is.getItemMeta().hasDisplayName()) {
|
||||||
text = "" + ChatColor.DARK_AQUA + ChatColor.ITALIC + is.getItemMeta().getDisplayName();
|
text = "" + ChatColor.DARK_AQUA + ChatColor.ITALIC + is.getItemMeta().getDisplayName();
|
||||||
} else {
|
} else {
|
||||||
text = ChatColor.AQUA + Quester.prettyItemString(is.getType().name());
|
text = ChatColor.AQUA + getPrettyItemName(is.getType().name());
|
||||||
}
|
}
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
@ -525,4 +523,124 @@ public class ItemUtil {
|
|||||||
return false;
|
return false;
|
||||||
return is.getItemMeta().getDisplayName().equals(ChatColor.LIGHT_PURPLE + Lang.get("journalTitle"));
|
return is.getItemMeta().getDisplayName().equals(ChatColor.LIGHT_PURPLE + Lang.get("journalTitle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cleans up item names. 'WOODEN_BUTTON' becomes 'Wooden Button'
|
||||||
|
*
|
||||||
|
* @param itemName any item name, ideally
|
||||||
|
* @return cleaned-up string
|
||||||
|
*/
|
||||||
|
public static String getPrettyItemName(String itemName) {
|
||||||
|
String baseString = Material.matchMaterial(itemName).toString();
|
||||||
|
String[] substrings = baseString.split("_");
|
||||||
|
String prettyString = "";
|
||||||
|
int size = 1;
|
||||||
|
for (String s : substrings) {
|
||||||
|
prettyString = prettyString.concat(MiscUtil.getCapitalized(s));
|
||||||
|
if (size < substrings.length) {
|
||||||
|
prettyString = prettyString.concat(" ");
|
||||||
|
}
|
||||||
|
size++;
|
||||||
|
}
|
||||||
|
return prettyString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets player-friendly name from enchantment. 'FIRE_ASPECT' becomes 'Fire Aspect'
|
||||||
|
*
|
||||||
|
* @param e Enchantment to get pretty localized name of
|
||||||
|
* @return pretty localized name
|
||||||
|
*/
|
||||||
|
public static String getPrettyEnchantmentName(Enchantment e) {
|
||||||
|
String prettyString = getEnchantmentName(e);
|
||||||
|
prettyString = MiscUtil.capitalsToSpaces(prettyString);
|
||||||
|
return prettyString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets name of enchantment exactly as it appears in lang file
|
||||||
|
*
|
||||||
|
* @param e Enchantment to get localized name of
|
||||||
|
* @return localized name
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("deprecation") // since 1.13
|
||||||
|
private static String getEnchantmentName(Enchantment e) {
|
||||||
|
try {
|
||||||
|
return (Lang.get("ENCHANTMENT_" + e.getName()));
|
||||||
|
} catch (NullPointerException ne) {
|
||||||
|
Bukkit.getLogger().warning(e.getName() + " was not found in Lang.yml, please ask the developer to "
|
||||||
|
+ "update the file or simply add an entry for the enchantment");
|
||||||
|
return e.getName().toLowerCase().replace("_", " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation") // since 1.13
|
||||||
|
public static Enchantment getEnchantmentFromProperName(String enchant) {
|
||||||
|
String ench = Lang.getKey(enchant.replace(" ", ""));
|
||||||
|
ench = ench.replace("ENCHANTMENT_", "");
|
||||||
|
Enchantment e = Enchantment.getByName(ench);
|
||||||
|
return e != null ? e : getEnchantmentFromProperLegacyName(ench.replace(" ", ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Enchantment getEnchantmentFromProperLegacyName(String enchant) {
|
||||||
|
if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_DAMAGE"))) {
|
||||||
|
return Enchantment.ARROW_DAMAGE;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_FIRE"))) {
|
||||||
|
return Enchantment.ARROW_FIRE;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_INFINITE"))) {
|
||||||
|
return Enchantment.ARROW_INFINITE;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_ARROW_KNOCKBACK"))) {
|
||||||
|
return Enchantment.ARROW_KNOCKBACK;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DAMAGE_ALL"))) {
|
||||||
|
return Enchantment.DAMAGE_ALL;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DAMAGE_ARTHROPODS"))) {
|
||||||
|
return Enchantment.DAMAGE_ARTHROPODS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DAMAGE_UNDEAD"))) {
|
||||||
|
return Enchantment.DAMAGE_UNDEAD;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DIG_SPEED"))) {
|
||||||
|
return Enchantment.DIG_SPEED;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_DURABILITY"))) {
|
||||||
|
return Enchantment.DURABILITY;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_FIRE_ASPECT"))) {
|
||||||
|
return Enchantment.FIRE_ASPECT;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_KNOCKBACK"))) {
|
||||||
|
return Enchantment.KNOCKBACK;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LOOT_BONUS_BLOCKS"))) {
|
||||||
|
return Enchantment.LOOT_BONUS_BLOCKS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LOOT_BONUS_MOBS"))) {
|
||||||
|
return Enchantment.LOOT_BONUS_MOBS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LUCK"))) {
|
||||||
|
return Enchantment.LOOT_BONUS_MOBS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_LURE"))) {
|
||||||
|
return Enchantment.LOOT_BONUS_MOBS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_OXYGEN"))) {
|
||||||
|
return Enchantment.OXYGEN;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_ENVIRONMENTAL"))) {
|
||||||
|
return Enchantment.PROTECTION_ENVIRONMENTAL;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_EXPLOSIONS"))) {
|
||||||
|
return Enchantment.PROTECTION_EXPLOSIONS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_FALL"))) {
|
||||||
|
return Enchantment.PROTECTION_FALL;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_FIRE"))) {
|
||||||
|
return Enchantment.PROTECTION_FIRE;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_PROTECTION_PROJECTILE"))) {
|
||||||
|
return Enchantment.PROTECTION_PROJECTILE;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_SILK_TOUCH"))) {
|
||||||
|
return Enchantment.SILK_TOUCH;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_THORNS"))) {
|
||||||
|
return Enchantment.THORNS;
|
||||||
|
} else if (enchant.equalsIgnoreCase(Lang.get("ENCHANTMENT_WATER_WORKER"))) {
|
||||||
|
return Enchantment.WATER_WORKER;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Enchantment getEnchantmentFromPrettyName(String enchant) {
|
||||||
|
while (MiscUtil.spaceToCapital(enchant) != null) {
|
||||||
|
enchant = MiscUtil.spaceToCapital(enchant);
|
||||||
|
}
|
||||||
|
return getEnchantmentFromProperName(enchant);
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -15,19 +15,44 @@ package me.blackvein.quests.util;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.DyeColor;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
|
||||||
public class MiscUtil {
|
public class MiscUtil {
|
||||||
|
|
||||||
public static String getCapitalized(String s) {
|
public static String getCapitalized(String input) {
|
||||||
if (s.isEmpty()) {
|
if (input.isEmpty()) {
|
||||||
return s;
|
return input;
|
||||||
}
|
}
|
||||||
s = s.toLowerCase();
|
String firstLetter = input.substring(0, 1);
|
||||||
String s2 = s.substring(0, 1);
|
String remainder = input.substring(1);
|
||||||
s2 = s2.toUpperCase();
|
String capitalized = firstLetter.toUpperCase() + remainder.toLowerCase();
|
||||||
s = s.substring(1, s.length());
|
return capitalized;
|
||||||
return s2 + s;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets player-friendly name from type. 'ENDER_DRAGON' becomes 'Ender Dragon'
|
||||||
|
*
|
||||||
|
* @param type any mob type, ideally
|
||||||
|
* @return cleaned-up string
|
||||||
|
*/
|
||||||
|
public static String getPrettyMobName(EntityType type) {
|
||||||
|
String baseString = type.toString();
|
||||||
|
String[] substrings = baseString.split("_");
|
||||||
|
String prettyString = "";
|
||||||
|
int size = 1;
|
||||||
|
for (String s : substrings) {
|
||||||
|
prettyString = prettyString.concat(getCapitalized(s));
|
||||||
|
if (size < substrings.length) {
|
||||||
|
prettyString = prettyString.concat(" ");
|
||||||
|
}
|
||||||
|
size++;
|
||||||
|
}
|
||||||
|
if (type.equals((EntityType.OCELOT))) {
|
||||||
|
prettyString = "Ocelot";
|
||||||
|
}
|
||||||
|
return prettyString;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getProperMobName(EntityType type) {
|
public static String getProperMobName(EntityType type) {
|
||||||
@ -50,6 +75,65 @@ public class MiscUtil {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getPrettyDyeColorName(DyeColor color) {
|
||||||
|
return Lang.get("COLOR_" + color.name());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DyeColor getDyeColor(String s) {
|
||||||
|
String col = Lang.getKey(getCapitalized(s));
|
||||||
|
col = col.replace("COLOR_", "");
|
||||||
|
DyeColor color = null;
|
||||||
|
try {
|
||||||
|
color = DyeColor.valueOf(col);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
return color != null ? color : getDyeColorLegacy(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DyeColor getDyeColorLegacy(String s) {
|
||||||
|
if (s.equalsIgnoreCase("Black") || s.equalsIgnoreCase(Lang.get("COLOR_BLACK"))) {
|
||||||
|
return DyeColor.BLACK;
|
||||||
|
} else if (s.equalsIgnoreCase("Blue") || s.equalsIgnoreCase(Lang.get("COLOR_BLUE"))) {
|
||||||
|
return DyeColor.BLUE;
|
||||||
|
} else if (s.equalsIgnoreCase("Brown") || s.equalsIgnoreCase(Lang.get("COLOR_BROWN"))) {
|
||||||
|
return DyeColor.BROWN;
|
||||||
|
} else if (s.equalsIgnoreCase("Cyan") || s.equalsIgnoreCase(Lang.get("COLOR_CYAN"))) {
|
||||||
|
return DyeColor.CYAN;
|
||||||
|
} else if (s.equalsIgnoreCase("Gray") || s.equalsIgnoreCase(Lang.get("COLOR_GRAY"))) {
|
||||||
|
return DyeColor.GRAY;
|
||||||
|
} else if (s.equalsIgnoreCase("Green") || s.equalsIgnoreCase(Lang.get("COLOR_GREEN"))) {
|
||||||
|
return DyeColor.GREEN;
|
||||||
|
} else if (s.equalsIgnoreCase("LightBlue") || s.equalsIgnoreCase(Lang.get("COLOR_LIGHT_BLUE"))) {
|
||||||
|
return DyeColor.LIGHT_BLUE;
|
||||||
|
} else if (s.equalsIgnoreCase("Lime") || s.equalsIgnoreCase(Lang.get("COLOR_LIME"))) {
|
||||||
|
return DyeColor.LIME;
|
||||||
|
} else if (s.equalsIgnoreCase("Magenta") || s.equalsIgnoreCase(Lang.get("COLOR_MAGENTA"))) {
|
||||||
|
return DyeColor.MAGENTA;
|
||||||
|
} else if (s.equalsIgnoreCase("Orange") || s.equalsIgnoreCase(Lang.get("COLOR_ORAGE"))) {
|
||||||
|
return DyeColor.ORANGE;
|
||||||
|
} else if (s.equalsIgnoreCase("Pink") || s.equalsIgnoreCase(Lang.get("COLOR_PINK"))) {
|
||||||
|
return DyeColor.PINK;
|
||||||
|
} else if (s.equalsIgnoreCase("Purple") || s.equalsIgnoreCase(Lang.get("COLOR_PURPLE"))) {
|
||||||
|
return DyeColor.PURPLE;
|
||||||
|
} else if (s.equalsIgnoreCase("Red") || s.equalsIgnoreCase(Lang.get("COLOR_RED"))) {
|
||||||
|
return DyeColor.RED;
|
||||||
|
// 1.13 changed DyeColor.SILVER -> DyeColor.LIGHT_GRAY
|
||||||
|
} else if (s.equalsIgnoreCase("Silver") || s.equalsIgnoreCase("LightGray") || s.equalsIgnoreCase(Lang.get("COLOR_SILVER"))) {
|
||||||
|
return DyeColor.getByColor(Color.SILVER);
|
||||||
|
} else if (s.equalsIgnoreCase("White") || s.equalsIgnoreCase(Lang.get("COLOR_WHITE"))) {
|
||||||
|
return DyeColor.WHITE;
|
||||||
|
} else if (s.equalsIgnoreCase("Yellow") || s.equalsIgnoreCase(Lang.get("COLOR_YELLOW"))) {
|
||||||
|
return DyeColor.YELLOW;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getDyeString(DyeColor dc) {
|
||||||
|
return Lang.get("COLOR_" + dc.name());
|
||||||
|
}
|
||||||
|
|
||||||
public static String concatArgArray(String[] args, int startingIndex, int endingIndex, char delimiter) {
|
public static String concatArgArray(String[] args, int startingIndex, int endingIndex, char delimiter) {
|
||||||
String s = "";
|
String s = "";
|
||||||
@ -87,4 +171,38 @@ public class MiscUtil {
|
|||||||
}
|
}
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a single space in front of all capital letters
|
||||||
|
*
|
||||||
|
* @param s string to process
|
||||||
|
* @return processed string
|
||||||
|
*/
|
||||||
|
public static String capitalsToSpaces(String s) {
|
||||||
|
int max = s.length();
|
||||||
|
for (int i = 1; i < max; i++) {
|
||||||
|
if (Character.isUpperCase(s.charAt(i))) {
|
||||||
|
s = s.substring(0, i) + " " + s.substring(i);
|
||||||
|
i++;
|
||||||
|
max++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Capitalize character after space
|
||||||
|
*
|
||||||
|
* @param s string to process
|
||||||
|
* @return processed string
|
||||||
|
*/
|
||||||
|
public static String spaceToCapital(String s) {
|
||||||
|
int index = s.indexOf(' ');
|
||||||
|
if (index == -1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
s = s.substring(0, (index + 1)) + Character.toUpperCase(s.charAt(index + 1)) + s.substring(index + 2);
|
||||||
|
s = s.replaceFirst(" ", "");
|
||||||
|
return s;
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
@ -43,5 +43,4 @@ public class RomanNumeral {
|
|||||||
}
|
}
|
||||||
return map.get(l) + getNumeral(number-l);
|
return map.get(l) + getNumeral(number-l);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************************************
|
/*******************************************************************************************************
|
||||||
* Continued by FlyingPikachu/HappyPikachu with permission from _Blackvein_. All rights reserved.
|
* Continued by PikaMug (formerly HappyPikachu) with permission from _Blackvein_. All rights reserved.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* 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
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||||||
|
@ -17,5 +17,4 @@ show-requirements: true
|
|||||||
show-titles: true
|
show-titles: true
|
||||||
translate-names: true
|
translate-names: true
|
||||||
translate-subcommands: false
|
translate-subcommands: false
|
||||||
use-compass: true
|
use-compass: true
|
||||||
use-gps-plugin: true
|
|
4
pom.xml
4
pom.xml
@ -6,12 +6,12 @@
|
|||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.blackvein.quests</groupId>
|
||||||
|
|
||||||
<artifactId>quests-parent</artifactId>
|
<artifactId>quests-parent</artifactId>
|
||||||
<version>3.6.9</version>
|
<version>3.7.0</version>
|
||||||
<name>quests</name>
|
<name>quests</name>
|
||||||
<url>https://github.com/PikaMug/Quests/</url>
|
<url>https://github.com/PikaMug/Quests/</url>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<revision>3.6.9</revision>
|
<revision>3.7.0</revision>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>1.8</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.blackvein.quests</groupId>
|
||||||
<artifactId>quests-parent</artifactId>
|
<artifactId>quests-parent</artifactId>
|
||||||
<version>3.6.9</version>
|
<version>3.7.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.blackvein.quests</groupId>
|
||||||
<artifactId>quests-parent</artifactId>
|
<artifactId>quests-parent</artifactId>
|
||||||
<version>3.6.9</version>
|
<version>3.7.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.blackvein.quests</groupId>
|
||||||
<artifactId>quests-parent</artifactId>
|
<artifactId>quests-parent</artifactId>
|
||||||
<version>3.6.9</version>
|
<version>3.7.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
Loading…
Reference in New Issue
Block a user