From e885573650d5f8bc2c7c39c34b10f4d487b10594 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Wed, 19 Aug 2020 14:07:53 +0200 Subject: [PATCH] wolves now stop following players with pvp off --- .../eu/endermite/togglepvp/TogglePvP.java | 5 +++- .../wolf/WolfAttackPlayerListener.java | 27 +++++++++++++++++++ .../{ => wolf}/WolfTargettingListener.java | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfAttackPlayerListener.java rename src/main/java/eu/endermite/togglepvp/listeners/{ => wolf}/WolfTargettingListener.java (97%) diff --git a/src/main/java/eu/endermite/togglepvp/TogglePvP.java b/src/main/java/eu/endermite/togglepvp/TogglePvP.java index e03500a..93de985 100644 --- a/src/main/java/eu/endermite/togglepvp/TogglePvP.java +++ b/src/main/java/eu/endermite/togglepvp/TogglePvP.java @@ -2,8 +2,9 @@ package eu.endermite.togglepvp; import eu.endermite.togglepvp.commands.MainCommand; import eu.endermite.togglepvp.config.ConfigCache; -import eu.endermite.togglepvp.listeners.*; import eu.endermite.togglepvp.listeners.player.*; +import eu.endermite.togglepvp.listeners.wolf.WolfAttackPlayerListener; +import eu.endermite.togglepvp.listeners.wolf.WolfTargettingListener; import eu.endermite.togglepvp.players.PlayerManager; import eu.endermite.togglepvp.util.DatabaseSQLite; import lombok.Getter; @@ -38,7 +39,9 @@ public final class TogglePvP extends JavaPlugin { getServer().getPluginManager().registerEvents(new PlayerHitByFireworkListener(), this); getServer().getPluginManager().registerEvents(new FishingListener(), this); getServer().getPluginManager().registerEvents(new LavaDumpAndIgniteListener(), this); + getServer().getPluginManager().registerEvents(new WolfTargettingListener(), this); + getServer().getPluginManager().registerEvents(new WolfAttackPlayerListener(), this); getCommand("pvp").setExecutor(new MainCommand()); getCommand("pvp").setTabCompleter(new MainCommand()); diff --git a/src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfAttackPlayerListener.java b/src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfAttackPlayerListener.java new file mode 100644 index 0000000..97c87ec --- /dev/null +++ b/src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfAttackPlayerListener.java @@ -0,0 +1,27 @@ +package eu.endermite.togglepvp.listeners.wolf; + +import eu.endermite.togglepvp.TogglePvP; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +public class WolfAttackPlayerListener implements Listener { + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onWolfAttack(org.bukkit.event.entity.EntityDamageByEntityEvent event) { + if (event.getDamager() instanceof Wolf) { + Wolf wolf = (Wolf) event.getDamager(); + if (wolf.getOwner() != null && event.getEntity() instanceof Player) { + Player victim = (Player) event.getEntity(); + boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim); + if (!victimPvpEnabled) { + wolf.setAngry(false); + event.setCancelled(true); + } + } + } + } + +} diff --git a/src/main/java/eu/endermite/togglepvp/listeners/WolfTargettingListener.java b/src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfTargettingListener.java similarity index 97% rename from src/main/java/eu/endermite/togglepvp/listeners/WolfTargettingListener.java rename to src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfTargettingListener.java index 20c3a4b..cd9bcd1 100644 --- a/src/main/java/eu/endermite/togglepvp/listeners/WolfTargettingListener.java +++ b/src/main/java/eu/endermite/togglepvp/listeners/wolf/WolfTargettingListener.java @@ -1,4 +1,4 @@ -package eu.endermite.togglepvp.listeners; +package eu.endermite.togglepvp.listeners.wolf; import eu.endermite.togglepvp.TogglePvP; import org.bukkit.entity.Fox;