wolf projectile damage module

This commit is contained in:
YouHaveTrouble
2020-08-21 01:13:06 +02:00
parent c7d7d5eb8b
commit 21e0ff6099
3 changed files with 6 additions and 10 deletions
@@ -6,7 +6,7 @@ import eu.endermite.togglepvp.listeners.player.*;
import eu.endermite.togglepvp.listeners.player.WolfAttackPlayerListener; import eu.endermite.togglepvp.listeners.player.WolfAttackPlayerListener;
import eu.endermite.togglepvp.listeners.player.WolfTargettingPlayerListener; import eu.endermite.togglepvp.listeners.player.WolfTargettingPlayerListener;
import eu.endermite.togglepvp.listeners.wolf.PlayerAttackWolfListener; import eu.endermite.togglepvp.listeners.wolf.PlayerAttackWolfListener;
import eu.endermite.togglepvp.listeners.wolf.PlayerHitWolfByProjectile; import eu.endermite.togglepvp.listeners.wolf.PlayerHitWolfWithProjectile;
import eu.endermite.togglepvp.players.PlayerManager; import eu.endermite.togglepvp.players.PlayerManager;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.DatabaseSQLite; import eu.endermite.togglepvp.util.DatabaseSQLite;
@@ -52,7 +52,7 @@ public final class TogglePvP extends JavaPlugin {
getServer().getPluginManager().registerEvents(new WolfAttackPlayerListener(), this); getServer().getPluginManager().registerEvents(new WolfAttackPlayerListener(), this);
getServer().getPluginManager().registerEvents(new PlayerAttackWolfListener(), this); getServer().getPluginManager().registerEvents(new PlayerAttackWolfListener(), this);
getServer().getPluginManager().registerEvents(new PlayerHitWolfByProjectile(), this); getServer().getPluginManager().registerEvents(new PlayerHitWolfWithProjectile(), this);
Objects.requireNonNull(getCommand("pvp")).setExecutor(new MainCommand()); Objects.requireNonNull(getCommand("pvp")).setExecutor(new MainCommand());
Objects.requireNonNull(getCommand("pvp")).setTabCompleter(new MainCommand()); Objects.requireNonNull(getCommand("pvp")).setTabCompleter(new MainCommand());
@@ -17,7 +17,6 @@ import java.util.UUID;
public class PlayerHitByExplosionListener implements Listener { public class PlayerHitByExplosionListener implements Listener {
/** /**
* Cancels explosion damage for players with pvp off that is caused by players * Cancels explosion damage for players with pvp off that is caused by players
*/ */
@@ -2,6 +2,7 @@ package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvP;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile; import org.bukkit.entity.Projectile;
@@ -10,27 +11,24 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
public class PlayerHitWolfByProjectile implements Listener { public class PlayerHitWolfWithProjectile implements Listener {
/** /**
* Cancels damage done by projectiles to pets of players with pvp off * Cancels damage done by projectiles to pets of players with pvp off
*/ */
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onWolfHitByProjectile(org.bukkit.event.entity.EntityDamageByEntityEvent event) { public void onPlayerHitWolfWithProjectile(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
if (event.getEntity() instanceof Wolf && event.getDamager() instanceof Projectile) { if (event.getEntity() instanceof Wolf && event.getDamager() instanceof Projectile) {
Projectile projectile = (Projectile) event.getDamager(); Projectile projectile = (Projectile) event.getDamager();
if (projectile.getShooter() instanceof Player) { if (projectile.getShooter() instanceof Player) {
Wolf victim = (Wolf) event.getEntity(); Wolf victim = (Wolf) event.getEntity();
if (victim.getOwner() == null) { if (victim.getOwner() == null) {
return; return;
} }
Player damager = (Player) projectile.getShooter(); Player damager = (Player) projectile.getShooter();
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvP.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getOwner().getUniqueId()); boolean victimPvpEnabled = (boolean) SmartCache.getPlayerData(victim.getOwner().getUniqueId()).get("pvpenabled");
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
@@ -43,5 +41,4 @@ public class PlayerHitWolfByProjectile implements Listener {
} }
} }
} }
} }