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
|
* Runs after MythicLib interaction checks. This listener
|
||||||
* takes care of PVP inside of PvP-mode regions.
|
* 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)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void a(EntityDamageByEntityEvent event) {
|
public void a(EntityDamageByEntityEvent event) {
|
||||||
@ -44,9 +47,11 @@ public class PvPModeListener implements Listener {
|
|||||||
final Player target = (Player) event.getEntity();
|
final Player target = (Player) event.getEntity();
|
||||||
final PlayerData targetData = PlayerData.get(target);
|
final PlayerData targetData = PlayerData.get(target);
|
||||||
if (targetData.getCombat().isInvulnerable()) {
|
if (targetData.getCombat().isInvulnerable()) {
|
||||||
final long left = targetData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
if (event.getDamage() > 0) {
|
||||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-target",
|
final long left = targetData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||||
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-target",
|
||||||
|
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
||||||
|
}
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -54,9 +59,11 @@ public class PvPModeListener implements Listener {
|
|||||||
// If attacker is still invulnerable and cannot deal damage
|
// If attacker is still invulnerable and cannot deal damage
|
||||||
final PlayerData sourceData = PlayerData.get(source);
|
final PlayerData sourceData = PlayerData.get(source);
|
||||||
if (!MMOCore.plugin.configManager.pvpModeInvulnerabilityCanDamage && sourceData.getCombat().isInvulnerable()) {
|
if (!MMOCore.plugin.configManager.pvpModeInvulnerabilityCanDamage && sourceData.getCombat().isInvulnerable()) {
|
||||||
final long left = sourceData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
if (event.getDamage() > 0) {
|
||||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-self",
|
final long left = sourceData.getCombat().getInvulnerableTill() - System.currentTimeMillis();
|
||||||
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.invulnerable-self",
|
||||||
|
"left", MythicLib.plugin.getMMOConfig().decimal.format(left / 1000d)).send(source);
|
||||||
|
}
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -68,13 +75,15 @@ public class PvPModeListener implements Listener {
|
|||||||
// Defender has not enabled PvP mode
|
// Defender has not enabled PvP mode
|
||||||
if (!targetData.getCombat().isInPvpMode()) {
|
if (!targetData.getCombat().isInPvpMode()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-target").send(source);
|
if (event.getDamage() > 0)
|
||||||
|
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-target").send(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attacker has not enabled PvP mode
|
// Attacker has not enabled PvP mode
|
||||||
else if (!sourceData.getCombat().isInPvpMode()) {
|
else if (!sourceData.getCombat().isInPvpMode()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
MMOCore.plugin.configManager.getSimpleMessage("pvp-mode.cannot-hit.pvp-mode-disabled-self").send(source);
|
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