This commit is contained in:
YouHaveTrouble
2021-02-21 04:55:13 +01:00
parent fbb8dfe080
commit 6b016ab960
@@ -2,10 +2,13 @@ package eu.endermite.togglepvp.listeners.player;
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.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.*; import org.bukkit.entity.EnderCrystal;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.minecart.ExplosiveMinecart; import org.bukkit.entity.minecart.ExplosiveMinecart;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
@@ -29,23 +32,24 @@ public class PlayerHitByExplosionListener implements Listener {
Player victim = (Player) event.getEntity(); Player victim = (Player) event.getEntity();
try { try {
UUID damageruuid = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString()); UUID damageruuid = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
if (!victim.getUniqueId().equals(damageruuid)) { if (victim.getUniqueId().equals(damageruuid))
return;
ConfigCache config = TogglePvp.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvp.getPlugin().getSmartCache().getPlayerData(damageruuid).isPvpEnabled(); if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(damageruuid).isPvpEnabled()) {
if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_attacker());
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); if (!TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId())) {
if (!victimPvpEnabled) {
PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_victim());
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
CombatTimer.refreshPlayersCombatTime(damageruuid, victim.getUniqueId()); CombatTimer.refreshPlayersCombatTime(damageruuid, victim.getUniqueId());
} catch (NullPointerException | IndexOutOfBoundsException ignored) {
} }
} catch (NullPointerException | IndexOutOfBoundsException ignored) {}
} }
} }
@@ -84,7 +88,8 @@ public class PlayerHitByExplosionListener implements Listener {
TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource(); TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource();
String damagerUuid = sourceTnt.getMetadata("PLAYEREXPLODED").get(0).asString(); String damagerUuid = sourceTnt.getMetadata("PLAYEREXPLODED").get(0).asString();
tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damagerUuid)); tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damagerUuid));
}catch (NullPointerException ignored) {} } catch (NullPointerException ignored) {
}
} }
} }
} }