summaryrefslogtreecommitdiffstats
path: root/src/main/java/com
diff options
context:
space:
mode:
authornicuch <nicuch100@gmail.com>2020-01-12 01:31:00 +0200
committernicuch <nicuch100@gmail.com>2020-01-12 01:31:00 +0200
commitc10fc84654ad5695db3bfa23644df4fdff870377 (patch)
treefeb53903db140dd9ad2f271aed406bd87ae09a2a /src/main/java/com
parent31cad8636d57a3dd3576ffc5b37aea30a71457b6 (diff)
Fix for projectiles
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java8
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java15
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java23
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java15
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java15
5 files changed, 51 insertions, 25 deletions
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
index c30aacaf..2cc52557 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
@@ -18,7 +18,6 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.inventory.InventoryInteractEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.inventory.ItemStack;
-import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
import java.util.List;
@@ -48,12 +47,7 @@ public final class InventoryTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onInventoryClick(InventoryInteractEvent event) {
- new BukkitRunnable() {
- @Override
- public void run() {
- checkInventory((Player) event.getWhoClicked());
- }
- }.runTaskLater(Quests.get(), 1L);
+ Bukkit.getScheduler().runTaskLater(Quests.get(), () -> checkInventory((Player) event.getWhoClicked()), 1L);
}
@SuppressWarnings("deprecation")
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java
index 39107702..2c80bfe9 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingCertainTaskType.java
@@ -13,9 +13,11 @@ import org.bukkit.ChatColor;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
+import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDeathEvent;
+import org.bukkit.projectiles.ProjectileSource;
import java.util.ArrayList;
import java.util.List;
@@ -45,13 +47,20 @@ public final class MobkillingCertainTaskType extends TaskType {
return;
}
+ if (killer instanceof Projectile) {
+ ProjectileSource source = ((Projectile) killer).getShooter();
+ if (source == null)
+ return;
+ if (source instanceof Player)
+ killer = (Entity) source;
+ else return;
+ }
+
if (killer == null) {
return;
}
- Player player = event.getEntity().getKiller();
-
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java
index 5cb627eb..d4e286de 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MobkillingTaskType.java
@@ -9,13 +9,11 @@ import com.leonardobishop.quests.quests.Quest;
import com.leonardobishop.quests.quests.Task;
import com.leonardobishop.quests.quests.tasktypes.ConfigValue;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
-import org.bukkit.entity.Animals;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.Monster;
-import org.bukkit.entity.Player;
+import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDeathEvent;
+import org.bukkit.projectiles.ProjectileSource;
import java.util.ArrayList;
import java.util.List;
@@ -37,20 +35,27 @@ public final class MobkillingTaskType extends TaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMobKill(EntityDeathEvent event) {
- Entity killer = event.getEntity().getKiller();
+ Entity killer = event.getEntity().getKiller(); //The killer is an entity, and projectiles counts as entities too.
Entity mob = event.getEntity();
- if (mob instanceof Player) {
+ if (mob == null || mob instanceof Player) {
return;
}
+ if (killer instanceof Projectile) {
+ ProjectileSource source = ((Projectile) killer).getShooter();
+ if (source == null)
+ return;
+ if (source instanceof Player)
+ killer = (Entity) source;
+ else return;
+ }
+
if (killer == null) {
return;
}
- Player player = event.getEntity().getKiller();
-
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java
index 1964a228..9f356480 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/MythicMobsKillingType.java
@@ -12,8 +12,10 @@ import com.leonardobishop.quests.quests.tasktypes.TaskType;
import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicMobDeathEvent;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
+import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
+import org.bukkit.projectiles.ProjectileSource;
import java.util.ArrayList;
import java.util.List;
@@ -42,15 +44,22 @@ public final class MythicMobsKillingType extends TaskType {
return;
}
+ if (killer instanceof Projectile) {
+ ProjectileSource source = ((Projectile) killer).getShooter();
+ if (source == null)
+ return;
+ if (source instanceof Player)
+ killer = (Entity) source;
+ else return;
+ }
+
if (killer == null) {
return;
}
- Player player = (Player) event.getKiller();
-
String mobName = event.getMobType().getInternalName();
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java
index 06006fa7..b24bf867 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/PlayerkillingTaskType.java
@@ -11,9 +11,11 @@ import com.leonardobishop.quests.quests.tasktypes.ConfigValue;
import com.leonardobishop.quests.quests.tasktypes.TaskType;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
+import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDeathEvent;
+import org.bukkit.projectiles.ProjectileSource;
import java.util.ArrayList;
import java.util.List;
@@ -42,13 +44,20 @@ public final class PlayerkillingTaskType extends TaskType {
return;
}
+ if (killer instanceof Projectile) {
+ ProjectileSource source = ((Projectile) killer).getShooter();
+ if (source == null)
+ return;
+ if (source instanceof Player)
+ killer = (Entity) source;
+ else return;
+ }
+
if (killer == null) {
return;
}
- Player player = event.getEntity().getKiller();
-
- QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId());
+ QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {