Make the lag warning configurable, useful to debug economy lag on larger servers.

This commit is contained in:
KHobbits 2013-05-12 04:32:56 +01:00
parent af2c514f2a
commit 8ebe55a294
4 changed files with 52 additions and 16 deletions

View File

@ -44,7 +44,7 @@ public interface ISettings extends IConf
double getHealCooldown(); double getHealCooldown();
Set<String> getSocialSpyCommands(); Set<String> getSocialSpyCommands();
Map<String, Object> getKit(String name); Map<String, Object> getKit(String name);
ConfigurationSection getKits(); ConfigurationSection getKits();
@ -142,7 +142,7 @@ public interface ISettings extends IConf
boolean getFreezeAfkPlayers(); boolean getFreezeAfkPlayers();
boolean cancelAfkOnMove(); boolean cancelAfkOnMove();
boolean cancelAfkOnInteract(); boolean cancelAfkOnInteract();
boolean areDeathMessagesEnabled(); boolean areDeathMessagesEnabled();
@ -152,7 +152,7 @@ public interface ISettings extends IConf
Set<String> getNoGodWorlds(); Set<String> getNoGodWorlds();
boolean getUpdateBedAtDaytime(); boolean getUpdateBedAtDaytime();
boolean allowUnsafeEnchantments(); boolean allowUnsafeEnchantments();
boolean getRepairEnchanted(); boolean getRepairEnchanted();
@ -187,9 +187,11 @@ public interface ISettings extends IConf
public int getMailsPerMinute(); public int getMailsPerMinute();
public long getEconomyLagWarning();
public void setEssentialsChatActive(boolean b); public void setEssentialsChatActive(boolean b);
long getMaxTempban(); long getMaxTempban();
public Map<String, Object> getListGroupConfig(); public Map<String, Object> getListGroupConfig();
} }

View File

@ -454,22 +454,25 @@ public class Settings implements ISettings
{ {
return config.getBoolean("per-warp-permission", false); return config.getBoolean("per-warp-permission", false);
} }
@Override @Override
public Map<String, Object> getListGroupConfig() public Map<String, Object> getListGroupConfig()
{ {
if (config.isConfigurationSection("list")) if (config.isConfigurationSection("list"))
{ {
Map<String, Object> values = config.getConfigurationSection("list").getValues(false); Map<String, Object> values = config.getConfigurationSection("list").getValues(false);
if (!values.isEmpty()) { if (!values.isEmpty())
{
return values; return values;
} }
} }
Map<String, Object> defaultMap = new HashMap<String, Object>(); Map<String, Object> defaultMap = new HashMap<String, Object>();
if (config.getBoolean("sort-list-by-groups", false)) { if (config.getBoolean("sort-list-by-groups", false))
{
defaultMap.put("ListByGroup", "ListByGroup"); defaultMap.put("ListByGroup", "ListByGroup");
} }
else { else
{
defaultMap.put("Players", "*"); defaultMap.put("Players", "*");
} }
return defaultMap; return defaultMap;
@ -510,6 +513,9 @@ public class Settings implements ISettings
mailsPerMinute = _getMailsPerMinute(); mailsPerMinute = _getMailsPerMinute();
maxMoney = _getMaxMoney(); maxMoney = _getMaxMoney();
minMoney = _getMinMoney(); minMoney = _getMinMoney();
economyLagWarning = _getEconomyLagWarning();
economyLog = _isEcoLogEnabled();
economyLogUpdate = _isEcoLogUpdateEnabled();
} }
private List<Integer> itemSpawnBl = new ArrayList<Integer>(); private List<Integer> itemSpawnBl = new ArrayList<Integer>();
@ -636,12 +642,14 @@ public class Settings implements ISettings
return config.getString("currency-symbol", "$").concat("$").substring(0, 1).replaceAll("[0-9]", "$"); return config.getString("currency-symbol", "$").concat("$").substring(0, 1).replaceAll("[0-9]", "$");
} }
// #easteregg
@Override @Override
public boolean isTradeInStacks(int id) public boolean isTradeInStacks(int id)
{ {
return config.getBoolean("trade-in-stacks-" + id, false); return config.getBoolean("trade-in-stacks-" + id, false);
} }
// #easteregg
@Override @Override
public boolean isEcoDisabled() public boolean isEcoDisabled()
{ {
@ -721,15 +729,28 @@ public class Settings implements ISettings
{ {
return minMoney; return minMoney;
} }
private boolean economyLog = false;
@Override @Override
public boolean isEcoLogEnabled() public boolean isEcoLogEnabled()
{
return economyLog;
}
public boolean _isEcoLogEnabled()
{ {
return config.getBoolean("economy-log-enabled", false); return config.getBoolean("economy-log-enabled", false);
} }
// #easteregg
private boolean economyLogUpdate = false;
@Override @Override
public boolean isEcoLogUpdateEnabled() public boolean isEcoLogUpdateEnabled()
{
return economyLogUpdate;
}
public boolean _isEcoLogUpdateEnabled()
{ {
return config.getBoolean("economy-log-update-enabled", false); return config.getBoolean("economy-log-update-enabled", false);
} }
@ -794,6 +815,7 @@ public class Settings implements ISettings
{ {
return prefixsuffixconfigured ? addprefixsuffix : essentialsChatActive; return prefixsuffixconfigured ? addprefixsuffix : essentialsChatActive;
} }
// #easteregg
private boolean disablePrefix = false; private boolean disablePrefix = false;
private boolean _disablePrefix() private boolean _disablePrefix()
@ -806,6 +828,7 @@ public class Settings implements ISettings
{ {
return disablePrefix; return disablePrefix;
} }
// #easteregg
private boolean disableSuffix = false; private boolean disableSuffix = false;
private boolean _disableSuffix() private boolean _disableSuffix()
@ -1035,8 +1058,6 @@ public class Settings implements ISettings
return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed); return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
} }
//This option does not exist in the config.yml because it wasn't yet implemented in bukkit
//The code was commented out in the /speed command
@Override @Override
public double getMaxWalkSpeed() public double getMaxWalkSpeed()
{ {
@ -1055,6 +1076,19 @@ public class Settings implements ISettings
{ {
return mailsPerMinute; return mailsPerMinute;
} }
// #easteregg
private long economyLagWarning;
private long _getEconomyLagWarning()
{
return config.getLong("economy-lag-warning", 20000000L); // Default to 20ms
}
@Override
public long getEconomyLagWarning()
{
return economyLagWarning;
}
@Override @Override
public long getMaxTempban() public long getMaxTempban()

View File

@ -396,8 +396,8 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{ {
final long start = System.nanoTime(); final long start = System.nanoTime();
final BigDecimal value = _getMoney(); final BigDecimal value = _getMoney();
final long elapsed = start - System.nanoTime(); final long elapsed = System.nanoTime() - start;
if (elapsed > 20000000L) if (elapsed > ess.getSettings().getEconomyLagWarning())
{ {
ess.getLogger().log(Level.INFO, "Lag Notice - Slow Economy Response - Request took over {0}ms!", elapsed / 1000000); ess.getLogger().log(Level.INFO, "Lag Notice - Slow Economy Response - Request took over {0}ms!", elapsed / 1000000);
} }

View File

@ -106,7 +106,7 @@ public class Commandbalancetop extends EssentialsCommand
{ {
if (force || cacheage <= System.currentTimeMillis() - CACHETIME) if (force || cacheage <= System.currentTimeMillis() - CACHETIME)
{ {
cache.getLines().clear(); cache.getLines().clear();
final Map<String, BigDecimal> balances = new HashMap<String, BigDecimal>(); final Map<String, BigDecimal> balances = new HashMap<String, BigDecimal>();
BigDecimal totalMoney = BigDecimal.ZERO; BigDecimal totalMoney = BigDecimal.ZERO;
for (String u : ess.getUserMap().getAllUniqueUsers()) for (String u : ess.getUserMap().getAllUniqueUsers())
@ -130,7 +130,7 @@ public class Commandbalancetop extends EssentialsCommand
return entry2.getValue().compareTo(entry1.getValue()); return entry2.getValue().compareTo(entry1.getValue());
} }
}); });
cache.getLines().add(_("serverTotal", Util.displayCurrency(totalMoney, ess))); cache.getLines().add(_("serverTotal", Util.displayCurrency(totalMoney, ess)));
int pos = 1; int pos = 1;
for (Map.Entry<String, BigDecimal> entry : sortedEntries) for (Map.Entry<String, BigDecimal> entry : sortedEntries)
@ -179,7 +179,7 @@ public class Commandbalancetop extends EssentialsCommand
{ {
lock.readLock().unlock(); lock.readLock().unlock();
} }
ess.runTaskAsynchronously(new Calculator(new Viewer(sender, page, force), force)); ess.runTaskAsynchronously(new Calculator(new Viewer(sender, page, false), force));
} }
} }
} }