mirror of https://github.com/PikaMug/Quests.git
NEW conditions editor, part 2
This commit is contained in:
parent
e8a920d645
commit
a6c9949953
|
@ -13,8 +13,10 @@
|
|||
|
||||
package me.blackvein.quests.listeners;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -29,6 +31,8 @@ import org.bukkit.inventory.ItemStack;
|
|||
import me.blackvein.quests.Quest;
|
||||
import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import me.blackvein.quests.Stage;
|
||||
import me.blackvein.quests.util.Lang;
|
||||
|
||||
public class BlockListener implements Listener {
|
||||
|
||||
|
@ -41,20 +45,30 @@ public class BlockListener implements Listener {
|
|||
@SuppressWarnings("deprecation")
|
||||
@EventHandler(priority = EventPriority.HIGH) // Because HIGHEST conflicts with AutoSell by extendedclip
|
||||
public void onBlockBreak(BlockBreakEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final ItemStack blockItemStack = new ItemStack(evt.getBlock().getType(), 1, evt.getBlock().getState()
|
||||
.getData().toItemStack().getDurability());
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
if (evt.isCancelled() == false) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("breakBlock")) {
|
||||
if (!evt.getPlayer().getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||
if (!player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||
quester.breakBlock(quest, blockItemStack);
|
||||
}
|
||||
}
|
||||
quester.dispatchMultiplayerEverything(quest, "breakBlock", (Quester q) -> {
|
||||
if (!evt.getPlayer().getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||
if (!player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||
q.breakBlock(quest, blockItemStack);
|
||||
}
|
||||
return null;
|
||||
|
@ -81,12 +95,12 @@ public class BlockListener implements Listener {
|
|||
});
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("cutBlock")) {
|
||||
if (evt.getPlayer().getItemInHand().getType().equals(Material.SHEARS)) {
|
||||
if (player.getItemInHand().getType().equals(Material.SHEARS)) {
|
||||
quester.cutBlock(quest, blockItemStack);
|
||||
}
|
||||
}
|
||||
quester.dispatchMultiplayerEverything(quest, "cutBlock", (Quester q) -> {
|
||||
if (evt.getPlayer().getItemInHand().getType().equals(Material.SHEARS)) {
|
||||
if (player.getItemInHand().getType().equals(Material.SHEARS)) {
|
||||
q.cutBlock(quest, blockItemStack);
|
||||
}
|
||||
return null;
|
||||
|
@ -99,11 +113,21 @@ public class BlockListener implements Listener {
|
|||
@SuppressWarnings("deprecation") // since 1.13
|
||||
@EventHandler
|
||||
public void onBlockDamage(BlockDamageEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final ItemStack blockItemStack = new ItemStack(evt.getBlock().getType(), 1, evt.getBlock().getState()
|
||||
.getData().toItemStack().getDurability());
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("damageBlock")) {
|
||||
quester.damageBlock(quest, blockItemStack);
|
||||
|
@ -120,12 +144,22 @@ public class BlockListener implements Listener {
|
|||
@SuppressWarnings("deprecation") // since 1.13
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onBlockPlace(BlockPlaceEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final ItemStack blockItemStack = new ItemStack(evt.getBlock().getType(), 1, evt.getBlock().getState()
|
||||
.getData().toItemStack().getDurability());
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
if (evt.isCancelled() == false) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("placeBlock")) {
|
||||
quester.placeBlock(quest, blockItemStack);
|
||||
|
@ -150,13 +184,23 @@ public class BlockListener implements Listener {
|
|||
// Do nothing, getHand() not present pre-1.9
|
||||
}
|
||||
if (e == null || e.equals(EquipmentSlot.HAND)) { //If the event is fired by HAND (main hand)
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
if (evt.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
|
||||
if (evt.isCancelled() == false) {
|
||||
final ItemStack blockItemStack = new ItemStack(evt.getClickedBlock().getType(), 1, evt
|
||||
.getClickedBlock().getState().getData().toItemStack().getDurability());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("useBlock")) {
|
||||
quester.useBlock(quest, blockItemStack);
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
package me.blackvein.quests.listeners;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -29,6 +30,8 @@ import org.bukkit.inventory.ItemStack;
|
|||
import me.blackvein.quests.Quest;
|
||||
import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import me.blackvein.quests.Stage;
|
||||
import me.blackvein.quests.util.Lang;
|
||||
|
||||
public class ItemListener implements Listener {
|
||||
|
||||
|
@ -41,10 +44,20 @@ public class ItemListener implements Listener {
|
|||
@EventHandler
|
||||
public void onCraftItem(CraftItemEvent evt) {
|
||||
if (evt.getWhoClicked() instanceof Player) {
|
||||
if (plugin.canUseQuests(evt.getWhoClicked().getUniqueId())) {
|
||||
final Player player = (Player) evt.getWhoClicked();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final ItemStack craftedItem = getCraftedItem(evt);
|
||||
Quester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("craftItem")) {
|
||||
quester.craftItem(quest, craftedItem);
|
||||
|
@ -78,12 +91,22 @@ public class ItemListener implements Listener {
|
|||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent evt) {
|
||||
if (evt.getWhoClicked() instanceof Player) {
|
||||
final Player player = (Player) evt.getWhoClicked();
|
||||
if (evt.getInventory().getType() == InventoryType.FURNACE
|
||||
|| evt.getInventory().getType().name().equals("BLAST_FURNACE")
|
||||
|| evt.getInventory().getType().name().equals("SMOKER")) {
|
||||
if (evt.getSlotType() == SlotType.RESULT) {
|
||||
Quester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("smeltItem")) {
|
||||
quester.smeltItem(quest, evt.getCurrentItem());
|
||||
|
@ -97,8 +120,17 @@ public class ItemListener implements Listener {
|
|||
}
|
||||
} else if (evt.getInventory().getType() == InventoryType.BREWING) {
|
||||
if (evt.getSlotType() == SlotType.CRAFTING) {
|
||||
Quester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("brewItem")) {
|
||||
quester.brewItem(quest, evt.getCurrentItem());
|
||||
|
@ -116,9 +148,19 @@ public class ItemListener implements Listener {
|
|||
|
||||
@EventHandler
|
||||
public void onEnchantItem(EnchantItemEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getEnchanter().getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(evt.getEnchanter().getUniqueId());
|
||||
final Player player = evt.getEnchanter();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("enchantItem")) {
|
||||
for (Enchantment e : evt.getEnchantsToAdd().keySet()) {
|
||||
|
@ -142,8 +184,18 @@ public class ItemListener implements Listener {
|
|||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
final ItemStack consumedItem = evt.getItem().clone();
|
||||
consumedItem.setAmount(1);
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
final Player player = evt.getPlayer();
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(player, "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("consumeItem")) {
|
||||
quester.consumeItem(quest, consumedItem);
|
||||
|
|
|
@ -30,7 +30,7 @@ public class PartiesListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPartyCreate(BukkitPartiesPartyPostCreateEvent event) {
|
||||
if (event.getCreator() != null) {
|
||||
Player p = Bukkit.getServer().getPlayer(event.getCreator().getPlayerUUID());
|
||||
final Player p = Bukkit.getServer().getPlayer(event.getCreator().getPlayerUUID());
|
||||
if (p != null) {
|
||||
if (Lang.get("questPartiesCreate").length() > 0) {
|
||||
p.sendMessage(ChatColor.YELLOW + Lang.get("questPartiesCreate"));
|
||||
|
@ -42,7 +42,7 @@ public class PartiesListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPartyDeleteEvent(BukkitPartiesPartyPostDeleteEvent event) {
|
||||
if (event.getCommandSender() != null) {
|
||||
Player p = Bukkit.getServer().getPlayer(event.getCommandSender().getPlayerUUID());
|
||||
final Player p = Bukkit.getServer().getPlayer(event.getCommandSender().getPlayerUUID());
|
||||
if (p != null) {
|
||||
if (Lang.get("questPartiesDelete").length() > 0) {
|
||||
p.sendMessage(ChatColor.RED + Lang.get("questPartiesDelete"));
|
||||
|
@ -54,14 +54,14 @@ public class PartiesListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerJoinEvent(BukkitPartiesPlayerPostJoinEvent event) {
|
||||
if (event.isInvited() && event.getInviter() != null) {
|
||||
Player i = Bukkit.getServer().getPlayer(event.getInviter());
|
||||
final Player i = Bukkit.getServer().getPlayer(event.getInviter());
|
||||
if (i != null) {
|
||||
if (Lang.get("questPartiesInvite").length() > 0) {
|
||||
i.sendMessage(ChatColor.GREEN + Lang.get(i, "questPartiesInvite").replace("<player>", i.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Player p = Bukkit.getServer().getPlayer(event.getPartyPlayer().getPlayerUUID());
|
||||
final Player p = Bukkit.getServer().getPlayer(event.getPartyPlayer().getPlayerUUID());
|
||||
if (p != null) {
|
||||
if (Lang.get("questPartiesJoin").length() > 0) {
|
||||
p.sendMessage(ChatColor.GREEN + Lang.get(p, "questPartiesJoin").replace("<player>", p.getName()));
|
||||
|
@ -72,14 +72,14 @@ public class PartiesListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerLeaveEvent(BukkitPartiesPlayerPostLeaveEvent event) {
|
||||
if (event.isKicked() && event.getKicker() != null) {
|
||||
Player k = Bukkit.getServer().getPlayer(event.getKicker().getPlayerUUID());
|
||||
final Player k = Bukkit.getServer().getPlayer(event.getKicker().getPlayerUUID());
|
||||
if (k != null) {
|
||||
if (Lang.get("questPartiesKicked").length() > 0) {
|
||||
k.sendMessage(ChatColor.RED + Lang.get(k, "questPartiesKicked").replace("<player>", k.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Player p = Bukkit.getServer().getPlayer(event.getPartyPlayer().getPlayerUUID());
|
||||
final Player p = Bukkit.getServer().getPlayer(event.getPartyPlayer().getPlayerUUID());
|
||||
if (p != null) {
|
||||
if (Lang.get("questPartiesLeave").length() > 0) {
|
||||
p.sendMessage(ChatColor.RED + Lang.get(p, "questPartiesLeave").replace("<player>", p.getName()));
|
||||
|
|
|
@ -107,8 +107,8 @@ public class PlayerListener implements Listener {
|
|||
return;
|
||||
}
|
||||
}
|
||||
Quester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId());
|
||||
Player player = (Player) evt.getWhoClicked();
|
||||
final Quester quester = plugin.getQuester(evt.getWhoClicked().getUniqueId());
|
||||
final Player player = (Player) evt.getWhoClicked();
|
||||
if (evt.getView().getTitle().contains(Lang.get(player, "quests"))) {
|
||||
ItemStack clicked = evt.getCurrentItem();
|
||||
if (clicked != null) {
|
||||
|
@ -373,10 +373,19 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerBucketFill(PlayerBucketFillEvent evt) {
|
||||
if (evt.getItemStack().getType() == Material.MILK_BUCKET) {
|
||||
Player player = evt.getPlayer();
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("milkCow")) {
|
||||
quester.milkCow(quest);
|
||||
|
@ -396,6 +405,15 @@ public class PlayerListener implements Listener {
|
|||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
for (final Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
evt.getPlayer().sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)) {
|
||||
final Stage currentStage = quester.getCurrentStage(quest);
|
||||
if (currentStage == null) {
|
||||
|
@ -437,7 +455,7 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
if (quester.getCurrentQuests().isEmpty() == false) {
|
||||
for (Quest quest : quester.getCurrentQuests().keySet()) {
|
||||
if (!quest.getOptions().getAllowCommands()) {
|
||||
|
@ -477,10 +495,20 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerShearEntity(PlayerShearEntityEvent evt) {
|
||||
if (evt.getEntity().getType() == EntityType.SHEEP) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
Sheep sheep = (Sheep) evt.getEntity();
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final Sheep sheep = (Sheep) evt.getEntity();
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("shearSheep")) {
|
||||
quester.shearSheep(quest, sheep.getColor());
|
||||
|
@ -498,10 +526,19 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onEntityTame(EntityTameEvent evt) {
|
||||
if (evt.getOwner() instanceof Player) {
|
||||
Player p = (Player) evt.getOwner();
|
||||
if (plugin.canUseQuests(p.getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(p.getUniqueId());
|
||||
final Player player = (Player) evt.getOwner();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("tameMob")) {
|
||||
quester.tameMob(quest, evt.getEntityType());
|
||||
|
@ -520,7 +557,7 @@ public class PlayerListener implements Listener {
|
|||
public void onEntityDeath(EntityDeathEvent evt) {
|
||||
if (evt.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) {
|
||||
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) evt.getEntity().getLastDamageCause();
|
||||
Entity damager = damageEvent.getDamager();
|
||||
final Entity damager = damageEvent.getDamager();
|
||||
|
||||
if (damager != null) {
|
||||
if (damager instanceof Projectile) {
|
||||
|
@ -537,7 +574,7 @@ public class PlayerListener implements Listener {
|
|||
} else if (damager instanceof Wolf) {
|
||||
Wolf wolf = (Wolf) damager;
|
||||
if (wolf.isTamed() && wolf.getOwner() != null) {
|
||||
Quester quester = plugin.getQuester(wolf.getOwner().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(wolf.getOwner().getUniqueId());
|
||||
if (quester != null) {
|
||||
preKillPlayer(quester.getPlayer(), evt.getEntity());
|
||||
}
|
||||
|
@ -561,9 +598,18 @@ public class PlayerListener implements Listener {
|
|||
return;
|
||||
}
|
||||
if (damager instanceof Player) {
|
||||
Quester quester = plugin.getQuester(damager.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(damager.getUniqueId());
|
||||
if (plugin.getDependencies().getCitizens() != null && CitizensAPI.getNPCRegistry().isNPC(target)) {
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
damager.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("killNPC")) {
|
||||
quester.killNPC(quest, CitizensAPI.getNPCRegistry().getNPC(target));
|
||||
|
@ -603,7 +649,7 @@ public class PlayerListener implements Listener {
|
|||
public void onPlayerDeath(PlayerDeathEvent evt) {
|
||||
if (evt.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent) {
|
||||
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) evt.getEntity().getLastDamageCause();
|
||||
Entity damager = damageEvent.getDamager();
|
||||
final Entity damager = damageEvent.getDamager();
|
||||
|
||||
if (damager != null) {
|
||||
//Ignore suicide
|
||||
|
@ -626,7 +672,7 @@ public class PlayerListener implements Listener {
|
|||
} else if (damager instanceof Wolf) {
|
||||
Wolf wolf = (Wolf) damager;
|
||||
if (wolf.isTamed()) {
|
||||
Quester quester = plugin.getQuester(wolf.getOwner().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(wolf.getOwner().getUniqueId());
|
||||
preKillPlayer(quester.getPlayer(), evt.getEntity());
|
||||
}
|
||||
} else {
|
||||
|
@ -635,9 +681,9 @@ public class PlayerListener implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
Player target = evt.getEntity();
|
||||
final Player target = evt.getEntity();
|
||||
if (plugin.canUseQuests(target.getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(target.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(target.getUniqueId());
|
||||
for (Quest quest : quester.getCurrentQuests().keySet()) {
|
||||
Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && stage.getDeathAction() != null) {
|
||||
|
@ -653,7 +699,7 @@ public class PlayerListener implements Listener {
|
|||
}
|
||||
}
|
||||
if (found != null) {
|
||||
Quester quester = plugin.getQuester(target.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(target.getUniqueId());
|
||||
evt.getDrops().remove(found);
|
||||
quester.hasJournal = false;
|
||||
}
|
||||
|
@ -682,8 +728,17 @@ public class PlayerListener implements Listener {
|
|||
return;
|
||||
}
|
||||
}
|
||||
Quester quester = plugin.getQuester(damager.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(damager.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
damager.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("killPlayer")) {
|
||||
quester.killPlayer(quest, (Player)target);
|
||||
|
@ -699,10 +754,19 @@ public class PlayerListener implements Listener {
|
|||
|
||||
@EventHandler
|
||||
public void onPlayerFish(PlayerFishEvent evt) {
|
||||
Player player = evt.getPlayer();
|
||||
final Player player = evt.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
player.sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)
|
||||
&& quester.getCurrentStage(quest).containsObjective("catchFish")
|
||||
&& evt.getState().equals(State.CAUGHT_FISH)) {
|
||||
|
@ -719,16 +783,16 @@ public class PlayerListener implements Listener {
|
|||
|
||||
@EventHandler
|
||||
public void onPlayerChangeWorld(PlayerChangedWorldEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
final Player player = event.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
quester.findCompassTarget();
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerRespawn(PlayerRespawnEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
final Player player = event.getPlayer();
|
||||
if (plugin.canUseQuests(player.getUniqueId())) {
|
||||
final Quester quester = plugin.getQuester(player.getUniqueId());
|
||||
Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
|
||||
|
@ -744,7 +808,7 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
Quester quester = new Quester(plugin);
|
||||
final Quester quester = new Quester(plugin);
|
||||
quester.setUUID(evt.getPlayer().getUniqueId());
|
||||
if (new File(plugin.getDataFolder(), "data" + File.separator + quester.getUUID() + ".yml").exists()) {
|
||||
quester.loadData();
|
||||
|
@ -783,7 +847,7 @@ public class PlayerListener implements Listener {
|
|||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent evt) {
|
||||
if (plugin.canUseQuests(evt.getPlayer().getUniqueId())) {
|
||||
Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
final Quester quester = plugin.getQuester(evt.getPlayer().getUniqueId());
|
||||
for (Quest quest : quester.getCurrentQuests().keySet()) {
|
||||
Stage currentStage = quester.getCurrentStage(quest);
|
||||
if (currentStage == null) {
|
||||
|
@ -851,8 +915,17 @@ public class PlayerListener implements Listener {
|
|||
public void playerMove(UUID uuid, Location location) {
|
||||
if (plugin.getQuester(uuid) != null) {
|
||||
if (plugin.canUseQuests(uuid)) {
|
||||
Quester quester = plugin.getQuester(uuid);
|
||||
final Quester quester = plugin.getQuester(uuid);
|
||||
for (Quest quest : plugin.getQuests()) {
|
||||
final Stage stage = quester.getCurrentStage(quest);
|
||||
if (stage != null && !stage.getCondition().check(quester, quest)) {
|
||||
quester.getPlayer().sendMessage(ChatColor.RED + Lang.get(quester.getPlayer(), "conditionFail"));
|
||||
if (stage.getCondition().isFailQuest()) {
|
||||
quester.hardQuit(quest);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (quester.getCurrentQuests().containsKey(quest)) {
|
||||
if (quester.getCurrentStage(quest) != null
|
||||
&& quester.getCurrentStage(quest).containsObjective("reachLocation")) {
|
||||
|
|
Loading…
Reference in New Issue