summaryrefslogtreecommitdiffstats
path: root/Essentials2Compat
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-11-03 12:44:38 +0100
committersnowleo <schneeleo@gmail.com>2012-11-03 12:44:38 +0100
commit319a3e4deff05d04a544109dbd8755d43dc7abad (patch)
treed61607f5f2b0f009387e1507a2d2cbf5f48a1b5e /Essentials2Compat
parent488096c1fd00bca61aa7dc1a7721e4a4de55a26d (diff)
downloadEssentials-319a3e4deff05d04a544109dbd8755d43dc7abad.tar
Essentials-319a3e4deff05d04a544109dbd8755d43dc7abad.tar.gz
Essentials-319a3e4deff05d04a544109dbd8755d43dc7abad.tar.lz
Essentials-319a3e4deff05d04a544109dbd8755d43dc7abad.tar.xz
Essentials-319a3e4deff05d04a544109dbd8755d43dc7abad.zip
Ess2Compat: Settings part 1
Diffstat (limited to 'Essentials2Compat')
-rw-r--r--Essentials2Compat/src/com/earth2me/essentials/Essentials.java39
-rw-r--r--Essentials2Compat/src/com/earth2me/essentials/ISettings.java184
-rw-r--r--Essentials2Compat/src/com/earth2me/essentials/Settings.java927
-rw-r--r--Essentials2Compat/src/com/earth2me/essentials/UpdateSettings.java64
4 files changed, 1208 insertions, 6 deletions
diff --git a/Essentials2Compat/src/com/earth2me/essentials/Essentials.java b/Essentials2Compat/src/com/earth2me/essentials/Essentials.java
index a483fb365..4d61e6b3d 100644
--- a/Essentials2Compat/src/com/earth2me/essentials/Essentials.java
+++ b/Essentials2Compat/src/com/earth2me/essentials/Essentials.java
@@ -2,6 +2,7 @@ package com.earth2me.essentials;
import java.io.File;
import net.ess3.api.IEssentials;
+import net.ess3.api.IItemDb;
import net.ess3.api.IPlugin;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
@@ -10,7 +11,7 @@ import org.bukkit.plugin.java.JavaPlugin;
public class Essentials extends JavaPlugin
{
IEssentials ess;
-
+
@Override
public void onEnable()
{
@@ -19,19 +20,45 @@ public class Essentials extends JavaPlugin
//TODO: Move Eco Api here
IPlugin plugin = (IPlugin)getServer().getPluginManager().getPlugin("Essentials-3");
ess = plugin.getEssentials();
+ updateSettings();
updateUserfiles();
}
+ private void updateSettings()
+ {
+ File config = new File(getDataFolder(), "config.yml");
+ if (config.isFile())
+ {
+ new UpdateSettings(config, ess);
+ File fileNew;
+ do
+ {
+ fileNew = new File(getDataFolder(), "config-" + System.currentTimeMillis() + ".yml");
+ }
+ while (fileNew.exists());
+ config.renameTo(fileNew);
+ }
+ }
+
private void updateUserfiles()
{
File folder = new File(getDataFolder(), "userdata");
-
- if (folder.isDirectory()) {
+
+ if (folder.isDirectory())
+ {
new UpdateUserFiles(folder, ess);
- File folderNew = new File(getDataFolder(), "userdata-"+System.currentTimeMillis());
- if (!folderNew.exists()) {
- folder.renameTo(folderNew);
+ File folderNew;
+ do
+ {
+ folderNew = new File(getDataFolder(), "userdata-" + System.currentTimeMillis());
}
+ while (folderNew.exists());
+ folder.renameTo(folderNew);
}
}
+
+ public IItemDb getItemDb()
+ {
+ return ess.getItemDb();
+ }
}
diff --git a/Essentials2Compat/src/com/earth2me/essentials/ISettings.java b/Essentials2Compat/src/com/earth2me/essentials/ISettings.java
new file mode 100644
index 000000000..268a81ba0
--- /dev/null
+++ b/Essentials2Compat/src/com/earth2me/essentials/ISettings.java
@@ -0,0 +1,184 @@
+package com.earth2me.essentials;
+
+
+import java.text.MessageFormat;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.bukkit.ChatColor;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.event.EventPriority;
+
+
+public interface ISettings
+{
+ boolean areSignsDisabled();
+
+ String getAnnounceNewPlayerFormat();
+
+ boolean getAnnounceNewPlayers();
+
+ String getNewPlayerKit();
+
+ String getBackupCommand();
+
+ long getBackupInterval();
+
+ //MessageFormat getChatFormat(String group);
+
+ int getChatRadius();
+
+
+
+ double getCommandCost(String label);
+
+ String getCurrencySymbol();
+
+ int getOversizedStackSize();
+
+ int getDefaultStackSize();
+
+ double getHealCooldown();
+
+ Map<String, Object> getKit(String name);
+
+ ConfigurationSection getKits();
+
+ String getLocale();
+
+ String getNewbieSpawn();
+
+ String getNicknamePrefix();
+
+ ChatColor getOperatorColor() throws Exception;
+
+ boolean getPerWarpPermission();
+
+ boolean getProtectBoolean(final String configName, boolean def);
+
+ int getProtectCreeperMaxHeight();
+
+ List<Integer> getProtectList(final String configName);
+
+ boolean getProtectPreventSpawn(final String creatureName);
+
+ String getProtectString(final String configName);
+
+ boolean getRespawnAtHome();
+
+ Set getMultipleHomes();
+
+ int getHomeLimit(String set);
+
+
+
+ boolean getSortListByGroups();
+
+ int getSpawnMobLimit();
+
+ int getStartingBalance();
+
+ double getTeleportCooldown();
+
+ double getTeleportDelay();
+
+ boolean hidePermissionlessHelp();
+
+
+
+ boolean isCommandDisabled(String label);
+
+ boolean isCommandOverridden(String name);
+
+ boolean isDebug();
+
+ boolean isEcoDisabled();
+
+ boolean isTradeInStacks(int id);
+
+ List<Integer> itemSpawnBlacklist();
+
+ List<String> enabledSigns();
+
+ boolean permissionBasedItemSpawn();
+
+ boolean showNonEssCommandsInHelp();
+
+ boolean warnOnBuildDisallow();
+
+ boolean warnOnSmite();
+
+ double getMaxMoney();
+
+ double getMinMoney();
+
+ boolean isEcoLogEnabled();
+
+ boolean isEcoLogUpdateEnabled();
+
+ boolean removeGodOnDisconnect();
+
+ boolean changeDisplayName();
+
+ boolean changePlayerListName();
+
+ boolean isPlayerCommand(String string);
+
+ boolean useBukkitPermissions();
+
+ boolean addPrefixSuffix();
+
+ boolean disablePrefix();
+
+ boolean disableSuffix();
+
+ long getAutoAfk();
+
+ long getAutoAfkKick();
+
+ boolean getFreezeAfkPlayers();
+
+ boolean cancelAfkOnMove();
+
+ boolean areDeathMessagesEnabled();
+
+ public void setDebug(boolean debug);
+
+ Set<String> getNoGodWorlds();
+
+ boolean getUpdateBedAtDaytime();
+
+ boolean getRepairEnchanted();
+
+ boolean isWorldTeleportPermissions();
+
+ boolean isWorldHomePermissions();
+
+ boolean registerBackInListener();
+
+ boolean getDisableItemPickupWhileAfk();
+
+ EventPriority getRespawnPriority();
+
+ long getTpaAcceptCancellation();
+
+ boolean isMetricsEnabled();
+
+ void setMetricsEnabled(boolean metricsEnabled);
+
+ long getTeleportInvulnerability();
+
+ boolean isTeleportInvulnerability();
+
+ long getLoginAttackDelay();
+
+ int getSignUsePerSecond();
+
+ double getMaxFlySpeed();
+
+ double getMaxWalkSpeed();
+
+ public int getMailsPerMinute();
+
+ public void setEssentialsChatActive(boolean b);
+} \ No newline at end of file
diff --git a/Essentials2Compat/src/com/earth2me/essentials/Settings.java b/Essentials2Compat/src/com/earth2me/essentials/Settings.java
new file mode 100644
index 000000000..262dbe140
--- /dev/null
+++ b/Essentials2Compat/src/com/earth2me/essentials/Settings.java
@@ -0,0 +1,927 @@
+package com.earth2me.essentials;
+
+import java.io.File;
+import java.text.MessageFormat;
+import java.util.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import static net.ess3.I18n._;
+import net.ess3.api.IEssentials;
+import org.bukkit.ChatColor;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.MemoryConfiguration;
+import org.bukkit.event.EventPriority;
+import org.bukkit.inventory.ItemStack;
+
+
+public class Settings implements ISettings
+{
+ private final transient EssentialsConf config;
+ private final static Logger logger = Logger.getLogger("Minecraft");
+ private final transient IEssentials ess;
+ private boolean metricsEnabled = true;
+
+ public Settings(IEssentials ess, File file)
+ {
+ this.ess = ess;
+ config = new EssentialsConf(file);
+ //config.setTemplateName("/config.yml");
+ reloadConfig();
+ }
+
+ @Override
+ public boolean getRespawnAtHome()
+ {
+ return config.getBoolean("respawn-at-home", false);
+ }
+
+ @Override
+ public boolean getUpdateBedAtDaytime()
+ {
+ return config.getBoolean("update-bed-at-daytime", true);
+ }
+
+ @Override
+ public Set<String> getMultipleHomes()
+ {
+ return config.getConfigurationSection("sethome-multiple").getKeys(false);
+ }
+
+ @Override
+ public int getHomeLimit(final String set)
+ {
+ return config.getInt("sethome-multiple." + set, config.getInt("sethome-multiple.default", 3));
+ }
+ private int chatRadius = 0;
+
+ private int _getChatRadius()
+ {
+ return config.getInt("chat.radius", config.getInt("chat-radius", 0));
+ }
+
+ @Override
+ public int getChatRadius()
+ {
+ return chatRadius;
+ }
+
+ @Override
+ public double getTeleportDelay()
+ {
+ return config.getDouble("teleport-delay", 0);
+ }
+
+ @Override
+ public int getOversizedStackSize()
+ {
+ return config.getInt("oversized-stacksize", 64);
+ }
+
+ @Override
+ public int getDefaultStackSize()
+ {
+ return config.getInt("default-stack-size", -1);
+ }
+
+ @Override
+ public int getStartingBalance()
+ {
+ return config.getInt("starting-balance", 0);
+ }
+
+ private Set<String> disabledCommands = new HashSet<String>();
+
+ @Override
+ public boolean isCommandDisabled(String label)
+ {
+ return disabledCommands.contains(label);
+ }
+
+ private Set<String> getDisabledCommands()
+ {
+ Set<String> disCommands = new HashSet<String>();
+ for (String c : config.getStringList("disabled-commands"))
+ {
+ disCommands.add(c.toLowerCase(Locale.ENGLISH));
+ }
+ for (String c : config.getKeys(false))
+ {
+ if (c.startsWith("disable-"))
+ {
+ disCommands.add(c.substring(8).toLowerCase(Locale.ENGLISH));
+ }
+ }
+ return disCommands;
+ }
+
+ @Override
+ public boolean isPlayerCommand(String label)
+ {
+ for (String c : config.getStringList("player-commands"))
+ {
+ if (!c.equalsIgnoreCase(label))
+ {
+ continue;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isCommandOverridden(String name)
+ {
+ for (String c : config.getStringList("overridden-commands"))
+ {
+ if (!c.equalsIgnoreCase(name))
+ {
+ continue;
+ }
+ return true;
+ }
+ return config.getBoolean("override-" + name.toLowerCase(Locale.ENGLISH), false);
+ }
+ private ConfigurationSection commandCosts;
+
+
+
+ public ConfigurationSection _getCommandCosts()
+ {
+ if (config.isConfigurationSection("command-costs"))
+ {
+ final ConfigurationSection section = config.getConfigurationSection("command-costs");
+ final ConfigurationSection newSection = new MemoryConfiguration();
+ for (String command : section.getKeys(false))
+ {
+ if (section.isDouble(command))
+ {
+ newSection.set(command.toLowerCase(Locale.ENGLISH), section.getDouble(command));
+ }
+ else if (section.isInt(command))
+ {
+ newSection.set(command.toLowerCase(Locale.ENGLISH), (double)section.getInt(command));
+ }
+ }
+ return newSection;
+ }
+ return null;
+ }
+
+ @Override
+ public double getCommandCost(String name)
+ {
+ name = name.replace('.', '_').replace('/', '_');
+ if (commandCosts != null)
+ {
+ return commandCosts.getDouble(name, 0.0);
+ }
+ return 0.0;
+ }
+ private String nicknamePrefix = "~";
+
+ private String _getNicknamePrefix()
+ {
+ return config.getString("nickname-prefix", "~");
+ }
+
+ @Override
+ public String getNicknamePrefix()
+ {
+ return nicknamePrefix;
+ }
+
+ @Override
+ public double getTeleportCooldown()
+ {
+ return config.getDouble("teleport-cooldown", 0);
+ }
+
+ @Override
+ public double getHealCooldown()
+ {
+ return config.getDouble("heal-cooldown", 0);
+ }
+ private ConfigurationSection kits;
+
+ public ConfigurationSection _getKits()
+ {
+ if (config.isConfigurationSection("kits"))
+ {
+ final ConfigurationSection section = config.getConfigurationSection("kits");
+ final ConfigurationSection newSection = new MemoryConfiguration();
+ for (String kitItem : section.getKeys(false))
+ {
+ if (section.isConfigurationSection(kitItem))
+ {
+ newSection.set(kitItem.toLowerCase(Locale.ENGLISH), section.getConfigurationSection(kitItem));
+ }
+ }
+ return newSection;
+ }
+ return null;
+ }
+
+ @Override
+ public ConfigurationSection getKits()
+ {
+ return kits;
+ }
+
+ @Override
+ public Map<String, Object> getKit(String name)
+ {
+ name = name.replace('.', '_').replace('/', '_');
+ if (getKits() != null)
+ {
+ final ConfigurationSection kits = getKits();
+ if (kits.isConfigurationSection(name))
+ {
+ return kits.getConfigurationSection(name).getValues(true);
+ }
+ }
+ return null;
+ }
+ private ChatColor operatorColor = null;
+
+ @Override
+ public ChatColor getOperatorColor()
+ {
+ return operatorColor;
+ }
+
+ private ChatColor _getOperatorColor()
+ {
+ String colorName = config.getString("ops-name-color", null);
+
+ if (colorName == null)
+ {
+ return ChatColor.DARK_RED;
+ }
+ if ("none".equalsIgnoreCase(colorName) || colorName.isEmpty())
+ {
+ return null;
+ }
+
+ try
+ {
+ return ChatColor.valueOf(colorName.toUpperCase(Locale.ENGLISH));
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+
+ return ChatColor.getByChar(colorName);
+ }
+
+ @Override
+ public int getSpawnMobLimit()
+ {
+ return config.getInt("spawnmob-limit", 10);
+ }
+
+ @Override
+ public boolean showNonEssCommandsInHelp()
+ {
+ return config.getBoolean("non-ess-in-help", true);
+ }
+
+ @Override
+ public boolean hidePermissionlessHelp()
+ {
+ return config.getBoolean("hide-permissionless-help", true);
+ }
+
+ @Override
+ public int getProtectCreeperMaxHeight()
+ {
+ return config.getInt("protect.creeper.max-height", -1);
+ }
+
+ @Override
+ public boolean areSignsDisabled()
+ {
+ return !signsEnabled;
+ }
+
+ @Override
+ public long getBackupInterval()
+ {
+ return config.getInt("backup.interval", 1440); // 1440 = 24 * 60
+ }
+
+ @Override
+ public String getBackupCommand()
+ {
+ return config.getString("backup.command", null);
+ }
+ private Map<String, MessageFormat> chatFormats = Collections.synchronizedMap(new HashMap<String, MessageFormat>());
+
+ /*@Override
+ public MessageFormat getChatFormat(String group)
+ {
+ MessageFormat mFormat = chatFormats.get(group);
+ if (mFormat == null)
+ {
+ String format = config.getString("chat.group-formats." + (group == null ? "Default" : group),
+ config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}"));
+ format = Util.replaceFormat(format);
+ format = format.replace("{DISPLAYNAME}", "%1$s");
+ format = format.replace("{GROUP}", "{0}");
+ format = format.replace("{MESSAGE}", "%2$s");
+ format = format.replace("{WORLDNAME}", "{1}");
+ format = format.replace("{SHORTWORLDNAME}", "{2}");
+ format = format.replaceAll("\\{(\\D*?)\\}", "\\[$1\\]");
+ format = "§r".concat(format);
+ mFormat = new MessageFormat(format);
+ chatFormats.put(group, mFormat);
+ }
+ return mFormat;
+ }*/
+
+ public String getDefaultChatformat()
+ {
+ return config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}");
+ }
+
+ @Override
+ public boolean getAnnounceNewPlayers()
+ {
+ return !config.getString("newbies.announce-format", "-").isEmpty();
+ }
+
+ @Override
+ public String getAnnounceNewPlayerFormat()
+ {
+ return config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!");
+ }
+
+ @Override
+ public String getNewPlayerKit()
+ {
+ return config.getString("newbies.kit", "");
+ }
+
+ @Override
+ public String getNewbieSpawn()
+ {
+ return config.getString("newbies.spawnpoint", "default");
+ }
+
+ @Override
+ public boolean getPerWarpPermission()
+ {
+ return config.getBoolean("per-warp-permission", false);
+ }
+
+ @Override
+ public boolean getSortListByGroups()
+ {
+ return config.getBoolean("sort-list-by-groups", true);
+ }
+
+
+ public void reloadConfig()
+ {
+ config.load();
+ noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds"));
+ enabledSigns = _getEnabledSigns();
+ teleportInvulnerability = _isTeleportInvulnerability();
+ disableItemPickupWhileAfk = _getDisableItemPickupWhileAfk();
+ registerBackInListener = _registerBackInListener();
+ cancelAfkOnMove = _cancelAfkOnMove();
+ getFreezeAfkPlayers = _getFreezeAfkPlayers();
+ itemSpawnBl = _getItemSpawnBlacklist();
+ loginAttackDelay = _getLoginAttackDelay();
+ signUsePerSecond = _getSignUsePerSecond();
+ kits = _getKits();
+ chatFormats.clear();
+ changeDisplayName = _changeDisplayName();
+ disabledCommands = getDisabledCommands();
+ nicknamePrefix = _getNicknamePrefix();
+ operatorColor = _getOperatorColor();
+ changePlayerListName = _changePlayerListName();
+ configDebug = _isDebug();
+ prefixsuffixconfigured = _isPrefixSuffixConfigured();
+ addprefixsuffix = _addPrefixSuffix();
+ disablePrefix = _disablePrefix();
+ disableSuffix = _disableSuffix();
+ chatRadius = _getChatRadius();
+ commandCosts = _getCommandCosts();
+ warnOnBuildDisallow = _warnOnBuildDisallow();
+ mailsPerMinute = _getMailsPerMinute();
+ }
+ private List<Integer> itemSpawnBl = new ArrayList<Integer>();
+
+ @Override
+ public List<Integer> itemSpawnBlacklist()
+ {
+ return itemSpawnBl;
+ }
+
+ private List<Integer> _getItemSpawnBlacklist()
+ {
+ final List<Integer> epItemSpwn = new ArrayList<Integer>();
+ if (ess.getItemDb() == null)
+ {
+ logger.log(Level.FINE, "Aborting ItemSpawnBL read, itemDB not yet loaded.");
+ return epItemSpwn;
+ }
+ for (String itemName : config.getString("item-spawn-blacklist", "").split(","))
+ {
+ itemName = itemName.trim();
+ if (itemName.isEmpty())
+ {
+ continue;
+ }
+ try
+ {
+ final ItemStack iStack = ess.getItemDb().get(itemName);
+ epItemSpwn.add(iStack.getTypeId());
+ }
+ catch (Exception ex)
+ {
+ logger.log(Level.SEVERE, _("unknownItemInList", itemName, "item-spawn-blacklist"));
+ }
+ }
+ return epItemSpwn;
+ }
+ private List<String> enabledSigns = new ArrayList<String>();
+ private boolean signsEnabled = false;
+
+ @Override
+ public List<String> enabledSigns()
+ {
+ return enabledSigns;
+ }
+
+ private List<String> _getEnabledSigns()
+ {
+ List<String> newSigns = new ArrayList<String>();
+
+ for (String signName : config.getStringList("enabledSigns"))
+ {
+ signName = signName.trim().toUpperCase(Locale.ENGLISH);
+ if (signName.isEmpty())
+ {
+ continue;
+ }
+ if (signName.equals("COLOR") || signName.equals("COLOUR"))
+ {
+ signsEnabled = true;
+ continue;
+ }
+ try
+ {
+ newSigns.add(signName);
+ }
+ catch (Exception ex)
+ {
+ logger.log(Level.SEVERE, _("unknownItemInList", signName, "enabledSigns"));
+ continue;
+ }
+ signsEnabled = true;
+ }
+ return newSigns;
+ }
+ private boolean warnOnBuildDisallow;
+
+ private boolean _warnOnBuildDisallow()
+ {
+ return config.getBoolean("protect.disable.warn-on-build-disallow", false);
+ }
+
+ @Override
+ public boolean warnOnBuildDisallow()
+ {
+ return warnOnBuildDisallow;
+ }
+ private boolean debug = false;
+ private boolean configDebug = false;
+
+ private boolean _isDebug()
+ {
+ return config.getBoolean("debug", false);
+ }
+
+ @Override
+ public boolean isDebug()
+ {
+ return debug || configDebug;
+ }
+
+ @Override
+ public boolean warnOnSmite()
+ {
+ return config.getBoolean("warn-on-smite", true);
+ }
+
+ @Override
+ public boolean permissionBasedItemSpawn()
+ {
+ return config.getBoolean("permission-based-item-spawn", false);
+ }
+
+ @Override
+ public String getLocale()
+ {
+ return config.getString("locale", "");
+ }
+
+ @Override
+ public String getCurrencySymbol()
+ {
+ return config.getString("currency-symbol", "$").concat("$").substring(0, 1).replaceAll("[0-9]", "$");
+ }
+
+ @Override
+ public boolean isTradeInStacks(int id)
+ {
+ return config.getBoolean("trade-in-stacks-" + id, false);
+ }
+
+ @Override
+ public boolean isEcoDisabled()
+ {
+ return config.getBoolean("disable-eco", false);
+ }
+
+ @Override
+ public boolean getProtectPreventSpawn(final String creatureName)
+ {
+ return config.getBoolean("protect.prevent.spawn." + creatureName, false);
+ }
+
+ @Override
+ public List<Integer> getProtectList(final String configName)
+ {
+ final List<Integer> list = new ArrayList<Integer>();
+ for (String itemName : config.getString(configName, "").split(","))
+ {
+ itemName = itemName.trim();
+ if (itemName.isEmpty())
+ {
+ continue;
+ }
+ ItemStack itemStack;
+ try
+ {
+ itemStack = ess.getItemDb().get(itemName);
+ list.add(itemStack.getTypeId());
+ }
+ catch (Exception ex)
+ {
+ logger.log(Level.SEVERE, _("unknownItemInList", itemName, configName));
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public String getProtectString(final String configName)
+ {
+ return config.getString(configName, null);
+ }
+
+ @Override
+ public boolean getProtectBoolean(final String configName, boolean def)
+ {
+ return config.getBoolean(configName, def);
+ }
+ private final static double MAXMONEY = 10000000000000.0;
+
+ @Override
+ public double getMaxMoney()
+ {
+ double max = config.getDouble("max-money", MAXMONEY);
+ if (Math.abs(max) > MAXMONEY)
+ {
+ max = max < 0 ? -MAXMONEY : MAXMONEY;
+ }
+ return max;
+ }
+ private final static double MINMONEY = -10000000000000.0;
+
+ @Override
+ public double getMinMoney()
+ {
+ double min = config.getDouble("min-money", MINMONEY);
+ if (min > 0)
+ {
+ min = -min;
+ }
+ if (min < MINMONEY)
+ {
+ min = MINMONEY;
+ }
+ return min;
+ }
+
+ @Override
+ public boolean isEcoLogEnabled()
+ {
+ return config.getBoolean("economy-log-enabled", false);
+ }
+
+ @Override
+ public boolean isEcoLogUpdateEnabled()
+ {
+ return config.getBoolean("economy-log-update-enabled", false);
+ }
+
+ @Override
+ public boolean removeGodOnDisconnect()
+ {
+ return config.getBoolean("remove-god-on-disconnect", false);
+ }
+ private boolean changeDisplayName = true;
+
+ private boolean _changeDisplayName()
+ {
+ return config.getBoolean("change-displayname", true);
+ }
+
+ @Override
+ public boolean changeDisplayName()
+ {
+ return changeDisplayName;
+ }
+ private boolean changePlayerListName = false;
+
+ private boolean _changePlayerListName()
+ {
+ return config.getBoolean("change-playerlist", false);
+ }
+
+ @Override
+ public boolean changePlayerListName()
+ {
+ return changePlayerListName;
+ }
+
+ @Override
+ public boolean useBukkitPermissions()
+ {
+ return config.getBoolean("use-bukkit-permissions", false);
+ }
+ private boolean prefixsuffixconfigured = false;
+ private boolean addprefixsuffix = false;
+ private boolean essentialsChatActive = false;
+
+ private boolean _addPrefixSuffix()
+ {
+ return config.getBoolean("add-prefix-suffix", false);
+ }
+
+ private boolean _isPrefixSuffixConfigured()
+ {
+ return config.hasProperty("add-prefix-suffix");
+ }
+
+ @Override
+ public void setEssentialsChatActive(boolean essentialsChatActive)
+ {
+ this.essentialsChatActive = essentialsChatActive;
+ }
+
+ @Override
+ public boolean addPrefixSuffix()
+ {
+ return prefixsuffixconfigured ? addprefixsuffix : essentialsChatActive;
+ }
+ private boolean disablePrefix = false;
+
+ private boolean _disablePrefix()
+ {
+ return config.getBoolean("disablePrefix", false);
+ }
+
+ @Override
+ public boolean disablePrefix()
+ {
+ return disablePrefix;
+ }
+ private boolean disableSuffix = false;
+
+ private boolean _disableSuffix()
+ {
+ return config.getBoolean("disableSuffix", false);
+ }
+
+ @Override
+ public boolean disableSuffix()
+ {
+ return disableSuffix;
+ }
+
+ @Override
+ public long getAutoAfk()
+ {
+ return config.getLong("auto-afk", 300);
+ }
+
+ @Override
+ public long getAutoAfkKick()
+ {
+ return config.getLong("auto-afk-kick", -1);
+ }
+ private boolean getFreezeAfkPlayers;
+
+ @Override
+ public boolean getFreezeAfkPlayers()
+ {
+ return getFreezeAfkPlayers;
+ }
+
+ private boolean _getFreezeAfkPlayers()
+ {
+ return config.getBoolean("freeze-afk-players", false);
+ }
+ private boolean cancelAfkOnMove;
+
+ @Override
+ public boolean cancelAfkOnMove()
+ {
+ return cancelAfkOnMove;
+ }
+
+ private boolean _cancelAfkOnMove()
+ {
+ return config.getBoolean("cancel-afk-on-move", true);
+ }
+
+ @Override
+ public boolean areDeathMessagesEnabled()
+ {
+ return config.getBoolean("death-messages", true);
+ }
+ private Set<String> noGodWorlds = new HashSet<String>();
+
+ @Override
+ public Set<String> getNoGodWorlds()
+ {
+ return noGodWorlds;
+ }
+
+ @Override
+ public void setDebug(final boolean debug)
+ {
+ this.debug = debug;
+ }
+
+ @Override
+ public boolean getRepairEnchanted()
+ {
+ return config.getBoolean("repair-enchanted", true);
+ }
+
+ @Override
+ public boolean isWorldTeleportPermissions()
+ {
+ return config.getBoolean("world-teleport-permissions", false);
+ }
+
+ @Override
+ public boolean isWorldHomePermissions()
+ {
+ return config.getBoolean("world-home-permissions", false);
+ }
+ private boolean registerBackInListener;
+
+ @Override
+ public boolean registerBackInListener()
+ {
+ return registerBackInListener;
+ }
+
+ private boolean _registerBackInListener()
+ {
+ return config.getBoolean("register-back-in-listener", false);
+ }
+ private boolean disableItemPickupWhileAfk;
+
+ @Override
+ public boolean getDisableItemPickupWhileAfk()
+ {
+ return disableItemPickupWhileAfk;
+ }
+
+ private boolean _getDisableItemPickupWhileAfk()
+ {
+ return config.getBoolean("disable-item-pickup-while-afk", false);
+ }
+
+ @Override
+ public EventPriority getRespawnPriority()
+ {
+ String priority = config.getString("respawn-listener-priority", "normal").toLowerCase(Locale.ENGLISH);
+ if ("lowest".equals(priority))
+ {
+ return EventPriority.LOWEST;
+ }
+ if ("low".equals(priority))
+ {
+ return EventPriority.LOW;
+ }
+ if ("normal".equals(priority))
+ {
+ return EventPriority.NORMAL;
+ }
+ if ("high".equals(priority))
+ {
+ return EventPriority.HIGH;
+ }
+ if ("highest".equals(priority))
+ {
+ return EventPriority.HIGHEST;
+ }
+ return EventPriority.NORMAL;
+ }
+
+ @Override
+ public long getTpaAcceptCancellation()
+ {
+ return config.getLong("tpa-accept-cancellation", 0);
+ }
+
+ @Override
+ public boolean isMetricsEnabled()
+ {
+ return metricsEnabled;
+ }
+
+ @Override
+ public void setMetricsEnabled(boolean metricsEnabled)
+ {
+ this.metricsEnabled = metricsEnabled;
+ }
+ private boolean teleportInvulnerability;
+
+ @Override
+ public long getTeleportInvulnerability()
+ {
+ return config.getLong("teleport-invulnerability", 0) * 1000;
+ }
+
+ private boolean _isTeleportInvulnerability()
+ {
+ return (config.getLong("teleport-invulnerability", 0) > 0);
+ }
+
+ @Override
+ public boolean isTeleportInvulnerability()
+ {
+ return teleportInvulnerability;
+ }
+ private long loginAttackDelay;
+
+ private long _getLoginAttackDelay()
+ {
+ return config.getLong("login-attack-delay", 0) * 1000;
+ }
+
+ @Override
+ public long getLoginAttackDelay()
+ {
+ 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;
+ }
+
+ @Override
+ public double getMaxFlySpeed()
+ {
+ double maxSpeed = config.getDouble("max-fly-speed", 1.0);
+ 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
+ public double getMaxWalkSpeed()
+ {
+ double maxSpeed = config.getDouble("max-walk-speed", 0.8);
+ return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
+ }
+
+ private int mailsPerMinute;
+
+ private int _getMailsPerMinute() {
+ return config.getInt("mails-per-minute", 1000);
+ }
+ @Override
+ public int getMailsPerMinute()
+ {
+ return mailsPerMinute;
+ }
+} \ No newline at end of file
diff --git a/Essentials2Compat/src/com/earth2me/essentials/UpdateSettings.java b/Essentials2Compat/src/com/earth2me/essentials/UpdateSettings.java
new file mode 100644
index 000000000..b269f2711
--- /dev/null
+++ b/Essentials2Compat/src/com/earth2me/essentials/UpdateSettings.java
@@ -0,0 +1,64 @@
+package com.earth2me.essentials;
+
+import java.io.File;
+import net.ess3.api.IEssentials;
+import net.ess3.settings.General;
+
+
+public class UpdateSettings
+{
+ UpdateSettings(File config, IEssentials ess)
+ {
+ Settings settings = new Settings(ess, config);
+ net.ess3.settings.Settings data = ess.getSettings().getData();
+ data.getChat().setChangeDisplayname(settings.changeDisplayName());
+ data.getChat().setDefaultFormat(settings.getDefaultChatformat());
+ data.getChat().setLocalRadius(settings.getChatRadius());
+ data.getChat().setNicknamePrefix(settings.getNicknamePrefix());
+ data.getCommands().getAfk().setAutoAFK(settings.getAutoAfk());
+ data.getCommands().getAfk().setAutoAFKKick(settings.getAutoAfkKick());
+ data.getCommands().getAfk().setDisableItemPickupWhileAfk(settings.getDisableItemPickupWhileAfk());
+ data.getCommands().getAfk().setFreezeAFKPlayers(settings.getFreezeAfkPlayers());
+ data.getCommands().getBack().setRegisterBackInListener(settings.registerBackInListener());
+ data.getCommands().getGod().setRemoveOnDisconnect(settings.removeGodOnDisconnect());
+ data.getCommands().getHelp().setHidePermissionlessCommands(settings.hidePermissionlessHelp());
+ data.getCommands().getHelp().setShowNonEssCommandsInHelp(settings.showNonEssCommandsInHelp());
+ data.getCommands().getHome().setBedSetsHome(false); //TODO
+ data.getCommands().getHome().setRespawnAtHome(settings.getRespawnAtHome());
+ data.getCommands().getHome().setSpawnIfNoHome(false); //TODO
+ data.getCommands().getHome().setUpdateBedAtDaytime(false); //TODO
+ data.getCommands().getLightning().setWarnPlayer(settings.warnOnSmite());
+ data.getCommands().getList().setSortByGroups(settings.getSortListByGroups());
+ data.getCommands().getNear().setDefaultRadius(0); //TODO
+ data.getCommands().getSocialspy().setSocialspyCommands(null); //TODO
+ data.getCommands().getSpawnmob().setLimit(settings.getSpawnMobLimit());
+ data.getCommands().getSpeed().setMaxFlySpeed(settings.getMaxFlySpeed());
+ data.getCommands().getSpeed().setMaxWalkSpeed(settings.getMaxWalkSpeed());
+ data.getCommands().getTpa().setCancelTpRequestsOnWorldChange(false); //TODO
+ data.getCommands().getTpa().setTimeout(0); //TODO
+ data.getEconomy().setCurrencySymbol(settings.getCurrencySymbol());
+ data.getEconomy().setLogEnabled(settings.isEcoLogEnabled());
+ data.getEconomy().setMaxMoney(settings.getMaxMoney());
+ data.getEconomy().setMinMoney(settings.getMinMoney());
+ data.getEconomy().setStartingBalance(settings.getStartingBalance());
+ data.getEconomy().setTradeInStacks(settings.isTradeInStacks(0)); //TODO
+ data.getEconomy().getWorth(); //TODO
+ data.getGeneral().getBackup().setCommand(settings.getBackupCommand());
+ data.getGeneral().getBackup().setInterval(settings.getBackupInterval());
+ data.getGeneral().setDeathMessages(settings.areDeathMessagesEnabled());
+ data.getGeneral().setDebug(settings.isDebug());
+ data.getGeneral().setDefaultStacksize(settings.getDefaultStackSize());
+ data.getGeneral().setGroupStorage(General.GroupStorage.FILE); //TODO
+ data.getGeneral().setJoinMessage(null); //TODO
+ data.getGeneral().setLeaveMessage(null); //TODO
+ data.getGeneral().setLocale(settings.getLocale());
+ data.getGeneral().setLoginAttackDelay(settings.getLoginAttackDelay());
+ data.getGeneral().setMetricsEnabled(settings.isMetricsEnabled());
+ data.getGeneral().setOversizedStacksize(settings.getOversizedStackSize());
+ data.getGeneral().setTeleportInvulnerability(settings.getTeleportInvulnerability());
+ data.getGeneral().setWorldHomePermissions(settings.isWorldHomePermissions());
+ data.getGeneral().setWorldTeleportPermissions(settings.isWorldTeleportPermissions());
+ data.getWorldOptions(null); //TODO
+ ess.getSettings().queueSave();
+ }
+}