diff --git a/src/main/java/fr/xephi/authme/Utils.java b/src/main/java/fr/xephi/authme/Utils.java index c814fd67..bdd156ff 100644 --- a/src/main/java/fr/xephi/authme/Utils.java +++ b/src/main/java/fr/xephi/authme/Utils.java @@ -12,7 +12,6 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; import java.io.File; import java.io.FileOutputStream; diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java index 46c924b9..da4b43ea 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeEntityListener.java @@ -4,6 +4,7 @@ import fr.xephi.authme.AuthMe; import fr.xephi.authme.Utils; 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.Listener; @@ -122,12 +123,16 @@ public class AuthMeEntityListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onProjectileLaunch(ProjectileLaunchEvent event) { - Entity entity = (Entity) event.getEntity().getShooter(); - if (entity == null || !(entity instanceof Player)) { + Projectile projectile = event.getEntity(); + if (projectile == null) + return; + + Entity shooter = (Entity) projectile.getShooter(); + if (shooter == null || !(shooter instanceof Player)) { return; } - if (Utils.checkAuth((Player) entity)) { + if (Utils.checkAuth((Player) shooter)) { return; } diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java index c275e9b8..882ddcbd 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java @@ -406,14 +406,14 @@ public class AuthMePlayerListener implements Listener { event.setCancelled(true); } - @EventHandler(priority = EventPriority.NORMAL) + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) public void onPlayerConsumeItem(PlayerItemConsumeEvent event) { if (Utils.checkAuth(event.getPlayer())) return; event.setCancelled(true); } - @EventHandler(priority = EventPriority.HIGHEST) + @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onPlayerInventoryOpen(InventoryOpenEvent event) { final Player player = (Player) event.getPlayer(); if (Utils.checkAuth(player)) @@ -459,7 +459,16 @@ public class AuthMePlayerListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { - if (Utils.checkAuth(event.getPlayer())) + Player player = event.getPlayer(); + if (player == null || Utils.checkAuth(player)) + return; + event.setCancelled(true); + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) + public void onPlayerInteractAtEntity(PlayerInteractAtEntityEvent event) { + Player player = event.getPlayer(); + if (player == null || Utils.checkAuth(player)) return; event.setCancelled(true); } @@ -519,7 +528,7 @@ public class AuthMePlayerListener implements Listener { event.setCancelled(true); } - @EventHandler(priority = EventPriority.NORMAL) + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) public void onPlayerShear(PlayerShearEntityEvent event) { Player player = event.getPlayer(); if (player == null || Utils.checkAuth(player)) @@ -527,11 +536,19 @@ public class AuthMePlayerListener implements Listener { event.setCancelled(true); } - @EventHandler + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) public void onPlayerFish(PlayerFishEvent event) { Player player = event.getPlayer(); if (player == null || Utils.checkAuth(player)) return; event.setCancelled(true); } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) + public void onPlayerEditBook(PlayerEditBookEvent event) { + Player player = event.getPlayer(); + if (player == null || Utils.checkAuth(player)) + return; + event.setCancelled(true); + } }