forked from Upstream/mmocore
Messages sent only when dmg > 0
This commit is contained in:
parent
afa4a0467e
commit
b966508c2d
@ -29,6 +29,9 @@ public class PvPModeListener implements Listener {
|
||||
/**
|
||||
* Runs after MythicLib interaction checks. This listener
|
||||
* takes care of PVP inside of PvP-mode regions.
|
||||
* <p>
|
||||
* Only send messages when damage is greater than 0 to support
|
||||
* Bukkit events-based checks just like in recent ML builds.
|
||||
*/
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void a(EntityDamageByEntityEvent event) {
|
||||
@ -44,9 +47,11 @@ public class PvPModeListener implements Listener {
|
||||
final Player target = (Player) event.getEntity();
|
||||
final PlayerData targetData = PlayerData.get(target);
|
||||
if (targetData.getCombat().isInvulnerable()) {
|
||||
if (event.getDamage() > 0) {
|
||||
final long left = targetData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-target",
|
||||
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -54,9 +59,11 @@ public class PvPModeListener implements Listener {
|
||||
// If attacker is still invulnerable and cannot deal damage
|
||||
final PlayerData sourceData = PlayerData.get(source);
|
||||
if (!MMOCore.plugin.configManager.pvpModeInvulnerabilityCanDamage && sourceData.getCombat().isInvulnerable()) {
|
||||
if (event.getDamage() > 0) {
|
||||
final long left = sourceData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-self",
|
||||
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -68,12 +75,14 @@ public class PvPModeListener implements Listener {
|
||||
// Defender has not enabled PvP mode
|
||||
if (!targetData.getCombat().isInPvpMode()) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-target").send(source);
|
||||
}
|
||||
|
||||
// Attacker has not enabled PvP mode
|
||||
else if (!sourceData.getCombat().isInPvpMode()) {
|
||||
event.setCancelled(true);
|
||||
if (event.getDamage() > 0)
|
||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-self").send(source);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user