mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 05:16:55 +00:00
wolf projectile damage module
This commit is contained in:
@@ -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());
|
||||||
|
|||||||
-1
@@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
+4
-7
@@ -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 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user