wolves now stop following players with pvp off

This commit is contained in:
YouHaveTrouble
2020-08-19 14:07:53 +02:00
parent b4234796a7
commit e885573650
3 changed files with 32 additions and 2 deletions
@@ -2,8 +2,9 @@ package eu.endermite.togglepvp;
import eu.endermite.togglepvp.commands.MainCommand; import eu.endermite.togglepvp.commands.MainCommand;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.listeners.*;
import eu.endermite.togglepvp.listeners.player.*; 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.players.PlayerManager;
import eu.endermite.togglepvp.util.DatabaseSQLite; import eu.endermite.togglepvp.util.DatabaseSQLite;
import lombok.Getter; import lombok.Getter;
@@ -38,7 +39,9 @@ public final class TogglePvP extends JavaPlugin {
getServer().getPluginManager().registerEvents(new PlayerHitByFireworkListener(), this); getServer().getPluginManager().registerEvents(new PlayerHitByFireworkListener(), this);
getServer().getPluginManager().registerEvents(new FishingListener(), this); getServer().getPluginManager().registerEvents(new FishingListener(), this);
getServer().getPluginManager().registerEvents(new LavaDumpAndIgniteListener(), this); getServer().getPluginManager().registerEvents(new LavaDumpAndIgniteListener(), this);
getServer().getPluginManager().registerEvents(new WolfTargettingListener(), this); getServer().getPluginManager().registerEvents(new WolfTargettingListener(), this);
getServer().getPluginManager().registerEvents(new WolfAttackPlayerListener(), this);
getCommand("pvp").setExecutor(new MainCommand()); getCommand("pvp").setExecutor(new MainCommand());
getCommand("pvp").setTabCompleter(new MainCommand()); getCommand("pvp").setTabCompleter(new MainCommand());
@@ -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);
}
}
}
}
}
@@ -1,4 +1,4 @@
package eu.endermite.togglepvp.listeners; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvP;
import org.bukkit.entity.Fox; import org.bukkit.entity.Fox;