summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIaccidentally <coryhuckaby@gmail.com>2012-06-19 12:48:55 -0400
committerIaccidentally <coryhuckaby@gmail.com>2012-06-19 12:48:55 -0400
commit6e8031f477fad7c7bd0164ff59cee42345b99d68 (patch)
treef285e79a4a5dadedcb32db2cf6b38e054b3f6e05
parentc4a704b1a28124d28921b7e04d96f2baacf78521 (diff)
parent81c545f45b5f428793e027083a424a7d739a0c21 (diff)
downloadEssentials-6e8031f477fad7c7bd0164ff59cee42345b99d68.tar
Essentials-6e8031f477fad7c7bd0164ff59cee42345b99d68.tar.gz
Essentials-6e8031f477fad7c7bd0164ff59cee42345b99d68.tar.lz
Essentials-6e8031f477fad7c7bd0164ff59cee42345b99d68.tar.xz
Essentials-6e8031f477fad7c7bd0164ff59cee42345b99d68.zip
Merge branch 'master' of https://github.com/essentials/Essentials
-rw-r--r--Essentials/src/com/earth2me/essentials/ISettings.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java19
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java20
-rw-r--r--Essentials/src/com/earth2me/essentials/UserData.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandban.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtempban.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandvanish.java3
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java4
-rw-r--r--Essentials/src/config.yml6
-rw-r--r--Essentials/src/items.csv2
11 files changed, 70 insertions, 11 deletions
diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java
index 3c6763cbe..71fc7f5dd 100644
--- a/Essentials/src/com/earth2me/essentials/ISettings.java
+++ b/Essentials/src/com/earth2me/essentials/ISettings.java
@@ -179,4 +179,6 @@ public interface ISettings extends IConf
boolean isTeleportInvulnerability();
long getLoginAttackDelay();
+
+ int getSignUsePerSecond();
}
diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java
index b1352b6c3..ec317dbfd 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -388,7 +388,8 @@ public class Settings implements ISettings
cancelAfkOnMove = _cancelAfkOnMove();
getFreezeAfkPlayers = _getFreezeAfkPlayers();
itemSpawnBl = _getItemSpawnBlacklist();
- loginAttackDelay = _loginAttackDelay();
+ loginAttackDelay = _getLoginAttackDelay();
+ signUsePerSecond = _getSignUsePerSecond();
kits = _getKits();
chatFormats.clear();
}
@@ -808,7 +809,7 @@ public class Settings implements ISettings
private long loginAttackDelay;
- private long _loginAttackDelay()
+ private long _getLoginAttackDelay()
{
return config.getLong("login-attack-delay", 0) * 1000;
}
@@ -819,4 +820,18 @@ public class Settings implements ISettings
return loginAttackDelay;
}
+ private int signUsePerSecond;
+
+ private int _getSignUsePerSecond()
+ {
+ final int perSec = config.getInt("sign-use-per-second", 4);
+ return perSec > 0 ? perSec : 1;
+ }
+
+ @Override
+ public int getSignUsePerSecond()
+ {
+ return signUsePerSecond;
+ }
+
}
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 1ce991b66..e2cdc2b80 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -21,6 +21,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
private transient final Teleport teleport;
private transient long teleportRequestTime;
private transient long lastOnlineActivity;
+ private transient long lastThrottledAction;
private transient long lastActivity = System.currentTimeMillis();
private boolean hidden = false;
private transient Location afkPosition = null;
@@ -669,4 +670,23 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
final boolean set = !vanished;
}
+
+ public boolean checkSignThrottle() {
+ if (isSignThrottled()) {
+ return true;
+ }
+ updateThrottle();
+ return false;
+ }
+
+ public boolean isSignThrottled()
+ {
+ final long minTime = lastThrottledAction + (1000 / ess.getSettings().getSignUsePerSecond());
+ return (System.currentTimeMillis() < minTime);
+ }
+
+ public void updateThrottle()
+ {
+ lastThrottledAction = System.currentTimeMillis();;
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java
index e48ec7b50..76ed79277 100644
--- a/Essentials/src/com/earth2me/essentials/UserData.java
+++ b/Essentials/src/com/earth2me/essentials/UserData.java
@@ -458,6 +458,17 @@ public abstract class UserData extends PlayerExtension implements IConf
config.save();
}
+ @Deprecated
+ public boolean isIgnoredPlayer(final String userName)
+ {
+ final IUser user = ess.getUser(userName);
+ if (user == null || !user.isOnline())
+ {
+ return false;
+ }
+ return (ignoredPlayers.contains(user.getName().toLowerCase(Locale.ENGLISH)) && !user.isAuthorized("essentials.chat.ignoreexempt"));
+ }
+
public boolean isIgnoredPlayer(IUser user)
{
return (ignoredPlayers.contains(user.getName().toLowerCase(Locale.ENGLISH)) && !user.isAuthorized("essentials.chat.ignoreexempt"));
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandban.java b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
index 0094e063e..01e8ab5b3 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
@@ -40,21 +40,21 @@ public class Commandban extends EssentialsCommand
return;
}
}
-
+
+ final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
String banReason;
if (args.length > 1)
{
- banReason = _("banFormat", getFinalArg(args, 1), sender.getName());
+ banReason = _("banFormat", getFinalArg(args, 1), senderName);
}
else
{
- banReason = _("banFormat", _("defaultBanReason"), sender.getName());
+ banReason = _("banFormat", _("defaultBanReason"), senderName);
}
user.setBanReason(banReason);
user.setBanned(true);
user.kickPlayer(banReason);
- final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for (Player onlinePlayer : server.getOnlinePlayers())
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java b/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java
index a07c81e25..8a408924d 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commanditemdb.java
@@ -39,7 +39,7 @@ public class Commanditemdb extends EssentialsCommand
if (itemStack.getType() != Material.AIR)
{
int maxuses = itemStack.getType().getMaxDurability();
- int durability = ((itemStack.getType().getMaxDurability() + 1) - itemStack.getDurability());
+ int durability = ((maxuses + 1) - itemStack.getDurability());
if (maxuses != 0)
{
sender.sendMessage(_("durability", Integer.toString(durability)));
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java b/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java
index 25c457a20..0549e9c0d 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtempban.java
@@ -44,12 +44,12 @@ public class Commandtempban extends EssentialsCommand
final String time = getFinalArg(args, 1);
final long banTimestamp = Util.parseDateDiff(time, true);
- final String banReason = _("tempBanned", Util.formatDateDiff(banTimestamp));
+ final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
+ final String banReason = _("tempBanned", Util.formatDateDiff(banTimestamp), senderName);
user.setBanReason(banReason);
user.setBanTimeout(banTimestamp);
user.setBanned(true);
user.kickPlayer(banReason);
- final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
for (Player onlinePlayer : server.getOnlinePlayers())
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java
index dca489fea..ea051e4be 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java
@@ -3,7 +3,6 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
import org.bukkit.Server;
-import org.bukkit.entity.Player;
public class Commandvanish extends EssentialsCommand
@@ -30,7 +29,7 @@ public class Commandvanish extends EssentialsCommand
}
else
{
- if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
+ if (args[0].contains("on") || args[0].contains("ena") || args[0].equalsIgnoreCase("1"))
{
user.setVanished(true);
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java
index 21e70516e..389effc64 100644
--- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java
+++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java
@@ -76,6 +76,10 @@ public class EssentialsSign
{
final ISign sign = new BlockSign(block);
final User user = ess.getUser(player);
+ if (user.checkSignThrottle())
+ {
+ return false;
+ }
try
{
return (user.isAuthorized("essentials.signs." + signName.toLowerCase(Locale.ENGLISH) + ".use")
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index 0458d0f3f..391578791 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -222,6 +222,12 @@ enabledSigns:
#- time
#- weather
#- protection
+
+
+# How many times per second can Essentials signs be interacted with.
+# Values should be between 1-20, 20 being virtually no lag protection.s
+# Lower numbers will reduce the possiblity of lag, but may annoy players.
+sign-use-per-second: 4
# Backup runs a command while saving is disabled
backup:
diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv
index 2338ce287..75d651aec 100644
--- a/Essentials/src/items.csv
+++ b/Essentials/src/items.csv
@@ -2586,6 +2586,8 @@ uncookedbeef,363,0
uncookedsteak,363,0
cowmeat,363,0
plainbeef,363,0
+beef,364,0
+steak,364,0
cookedbeef,364,0
grilledbeef,364,0
cookedsteak,364,0