summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorementalo <ementalodev@gmx.co.uk>2012-05-22 01:29:47 +0100
committerementalo <ementalodev@gmx.co.uk>2012-05-22 01:29:47 +0100
commitd5f52ddb2d7b6621b36b0703eeba4d4766890ce7 (patch)
tree5a7ef951c0369807098a84d81bee8a3dd94bcd1e
parent3ef591d74ffc00ed7a7d41892f64028b88782e79 (diff)
downloadEssentials-d5f52ddb2d7b6621b36b0703eeba4d4766890ce7.tar
Essentials-d5f52ddb2d7b6621b36b0703eeba4d4766890ce7.tar.gz
Essentials-d5f52ddb2d7b6621b36b0703eeba4d4766890ce7.tar.lz
Essentials-d5f52ddb2d7b6621b36b0703eeba4d4766890ce7.tar.xz
Essentials-d5f52ddb2d7b6621b36b0703eeba4d4766890ce7.zip
Adding new config setting login-attack-delay. Set this in seconds for a delay before players can attack each other after logging on.
Use permission "essentials.pvpdelay.exempt" to bypass this restriction
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java10
-rw-r--r--Essentials/src/com/earth2me/essentials/ISettings.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java14
-rw-r--r--Essentials/src/config.yml3
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 8eca8f06f..41b50dcca 100644
--- a/Essentials/src/com/earth2me/essentials/ISettings.java
+++ b/Essentials/src/com/earth2me/essentials/ISettings.java
@@ -175,4 +175,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 5d49c52b8..70970a347 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -792,10 +792,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 06ca57ad5..18bec5ca2 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 | #