diff options
author | KHobbits <rob@khobbits.co.uk> | 2012-05-22 17:54:39 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2012-05-22 17:54:39 +0100 |
commit | 3c9cd3ea070c2777c10b7aa9ceb5098643f35f13 (patch) | |
tree | f030c9f2a367ac427eeb15d5e2be3215af71d8b5 | |
parent | 510fe4365794e9a474deabfe72674ff4bce3f48a (diff) | |
parent | d5f52ddb2d7b6621b36b0703eeba4d4766890ce7 (diff) | |
download | Essentials-3c9cd3ea070c2777c10b7aa9ceb5098643f35f13.tar Essentials-3c9cd3ea070c2777c10b7aa9ceb5098643f35f13.tar.gz Essentials-3c9cd3ea070c2777c10b7aa9ceb5098643f35f13.tar.lz Essentials-3c9cd3ea070c2777c10b7aa9ceb5098643f35f13.tar.xz Essentials-3c9cd3ea070c2777c10b7aa9ceb5098643f35f13.zip |
Merge branch 'master' of github.com:essentials/Essentials
4 files changed, 27 insertions, 2 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java index ef0dba753..2f92cfd52 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java @@ -9,8 +9,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.*; +import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.inventory.ItemStack; @@ -32,10 +32,18 @@ public class EssentialsEntityListener implements Listener { final User defender = ess.getUser(eDefend); final User attacker = ess.getUser(eAttack); + + if (!attacker.isAuthorized("essentials.pvpdelay.exempt") && + System.currentTimeMillis() < (attacker.getLastLogin() + ess.getSettings().getLoginAttackDelay())) + { + event.setCancelled(true); + } + if (attacker.hasInvulnerabilityAfterTeleport() || defender.hasInvulnerabilityAfterTeleport()) { event.setCancelled(true); } + attacker.updateActivity(true); final List<String> commandList = attacker.getPowertool(attacker.getItemInHand()); if (commandList != null && !commandList.isEmpty()) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index c179aee0f..3c6763cbe 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -177,4 +177,6 @@ public interface ISettings extends IConf long getTeleportInvulnerability(); boolean isTeleportInvulnerability(); + + long getLoginAttackDelay(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index ff3ec12aa..bcb19c380 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -798,10 +798,22 @@ public class Settings implements ISettings { return (config.getLong("teleport-invulnerability", 0) > 0); } - + @Override public boolean isTeleportInvulnerability() { return teleportInvulnerability; } + + private long _loginAttackDelay() + { + return config.getLong("login-attack-delay", 0) * 1000; + } + + @Override + public long getLoginAttackDelay() + { + return _loginAttackDelay(); + } + } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 0ec761956..3e003c9ae 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -308,6 +308,9 @@ repair-enchanted: true #If you set this to true any plugin that uses teleport will have the previous location registered. register-back-in-listener: false +#Delay to wait before people can cause attack damage after logging in +login-attack-delay: 0 + ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # |