diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index e7a57f9b5..b308407c2 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -48,7 +48,7 @@ public class Essentials extends JavaPlugin implements IEssentials { public static final int BUKKIT_VERSION = 974; private static final Logger LOGGER = Logger.getLogger("Minecraft"); - private transient Settings settings; + private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); private transient Spawn spawn; private transient Jail jail; @@ -65,7 +65,7 @@ public class Essentials extends JavaPlugin implements IEssentials private transient final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler(); private transient IPermissionsHandler permissionsHandler; - public Settings getSettings() + public ISettings getSettings() { return settings; } diff --git a/Essentials/src/com/earth2me/essentials/IEssentials.java b/Essentials/src/com/earth2me/essentials/IEssentials.java index 3e5dbbbd3..b1c420e7d 100644 --- a/Essentials/src/com/earth2me/essentials/IEssentials.java +++ b/Essentials/src/com/earth2me/essentials/IEssentials.java @@ -25,7 +25,7 @@ public interface IEssentials extends Plugin int broadcastMessage(String name, String message); - Settings getSettings(); + ISettings getSettings(); CraftScheduler getScheduler(); diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java new file mode 100644 index 000000000..c641a8b3f --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -0,0 +1,129 @@ +package com.earth2me.essentials; + +import com.earth2me.essentials.commands.IEssentialsCommand; +import java.util.List; +import java.util.Map; +import org.bukkit.ChatColor; + + +public interface ISettings extends IConf +{ + + boolean areSignsDisabled(); + + String format(String format, IUser user); + + String getAnnounceNewPlayerFormat(IUser user); + + boolean getAnnounceNewPlayers(); + + String getBackupCommand(); + + long getBackupInterval(); + + boolean getBedSetsHome(); + + String getChatFormat(String group); + + int getChatRadius(); + + double getCommandCost(IEssentialsCommand cmd); + + double getCommandCost(String label); + + String getCurrencySymbol(); + + int getDefaultStackSize(); + + boolean getGenerateExitPortals(); + + double getHealCooldown(); + + Object getKit(String name); + + Map getKits(); + + String getLocale(); + + String getNetherName(); + + boolean getNetherPortalsEnabled(); + + double getNetherRatio(); + + String getNewbieSpawn(); + + String getNicknamePrefix(); + + ChatColor getOperatorColor() throws Exception; + + boolean getPerWarpPermission(); + + boolean getProtectBoolean(final String configName, boolean def); + + int getProtectCreeperMaxHeight(); + + List getProtectList(final String configName); + + boolean getProtectPreventSpawn(final String creatureName); + + String getProtectString(final String configName); + + boolean getReclaimSetting(); + + boolean getRespawnAtHome(); + + boolean getSortListByGroups(); + + int getSpawnMobLimit(); + + int getStartingBalance(); + + double getTeleportCooldown(); + + double getTeleportDelay(); + + boolean hidePermissionlessHelp(); + + boolean isCommandDisabled(final IEssentialsCommand cmd); + + boolean isCommandDisabled(String label); + + boolean isCommandOverridden(String name); + + boolean isCommandRestricted(IEssentialsCommand cmd); + + boolean isCommandRestricted(String label); + + boolean isDebug(); + + boolean isEcoDisabled(); + + boolean isNetherEnabled(); + + boolean isTradeInStacks(int id); + + List itemSpawnBlacklist(); + + boolean permissionBasedItemSpawn(); + + void reloadConfig(); + + boolean showNonEssCommandsInHelp(); + + boolean spawnIfNoHome(); + + boolean use1to1RatioInNether(); + + boolean warnOnBuildDisallow(); + + boolean warnOnSmite(); + + double getMaxMoney(); + + boolean isEcoLogEnabled(); + + boolean removeGodOnDisconnect(); + + boolean changeDisplayName(); +} diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 17248a6cc..75063a15b 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -11,7 +11,7 @@ import java.util.Map; import org.bukkit.inventory.ItemStack; -public class Settings implements IConf +public class Settings implements ISettings { private final transient EssentialsConf config; private final static Logger logger = Logger.getLogger("Minecraft"); @@ -22,49 +22,58 @@ public class Settings implements IConf this.ess = ess; config = new EssentialsConf(new File(ess.getDataFolder(), "config.yml")); config.setTemplateName("/config.yml"); - config.load(); + reloadConfig(); } + @Override public boolean getRespawnAtHome() { return config.getBoolean("respawn-at-home", false); } + @Override public boolean getBedSetsHome() { return config.getBoolean("bed-sethome", false); } + @Override public int getChatRadius() { return config.getInt("chat.radius", config.getInt("chat-radius", 0)); } + @Override public double getTeleportDelay() { return config.getDouble("teleport-delay", 0); } + @Override public int getDefaultStackSize() { return config.getInt("default-stack-size", 64); } + @Override public int getStartingBalance() { return config.getInt("starting-balance", 0); } + @Override public boolean getNetherPortalsEnabled() { return isNetherEnabled() && config.getBoolean("nether.portals-enabled", false); } + @Override public boolean isCommandDisabled(final IEssentialsCommand cmd) { return isCommandDisabled(cmd.getName()); } + @Override public boolean isCommandDisabled(String label) { for (String c : config.getStringList("disabled-commands", new ArrayList(0))) @@ -75,11 +84,13 @@ public class Settings implements IConf return config.getBoolean("disable-" + label.toLowerCase(), false); } + @Override public boolean isCommandRestricted(IEssentialsCommand cmd) { return isCommandRestricted(cmd.getName()); } + @Override public boolean isCommandRestricted(String label) { for (String c : config.getStringList("restricted-commands", new ArrayList(0))) @@ -90,6 +101,7 @@ public class Settings implements IConf return config.getBoolean("restrict-" + label.toLowerCase(), false); } + @Override public boolean isCommandOverridden(String name) { List defaultList = new ArrayList(1); @@ -103,11 +115,13 @@ public class Settings implements IConf return config.getBoolean("override-" + name.toLowerCase(), false); } + @Override public double getCommandCost(IEssentialsCommand cmd) { return getCommandCost(cmd.getName()); } + @Override public double getCommandCost(String label) { double cost = config.getDouble("command-costs." + label, 0.0); @@ -116,26 +130,25 @@ public class Settings implements IConf return cost; } - public String getCommandPrefix() - { - return config.getString("command-prefix", ""); - } - + @Override public String getNicknamePrefix() { return config.getString("nickname-prefix", "~"); } + @Override public double getTeleportCooldown() { return config.getDouble("teleport-cooldown", 60); } + @Override public double getHealCooldown() { return config.getDouble("heal-cooldown", 60); } + @Override public Object getKit(String name) { Map kits = (Map)config.getProperty("kits"); @@ -148,11 +161,13 @@ public class Settings implements IConf return null; } + @Override public Map getKits() { return (Map)config.getProperty("kits"); } + @Override public ChatColor getOperatorColor() throws Exception { String colorName = config.getString("ops-name-color", null); @@ -173,100 +188,120 @@ public class Settings implements IConf return ChatColor.getByCode(Integer.parseInt(colorName, 16)); } + @Override public boolean getReclaimSetting() { return config.getBoolean("reclaim-onlogout", true); } + @Override public String getNetherName() { return config.getString("nether.folder", "nether"); } + @Override public boolean isNetherEnabled() { return config.getBoolean("nether.enabled", true); } + @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 config.getBoolean("signs-disabled", false); } + @Override public long getBackupInterval() { return config.getInt("backup.interval", 1440); // 1440 = 24 * 60 } + @Override public String getBackupCommand() { return config.getString("backup.command", null); } + @Override public String getChatFormat(String group) { return config.getString("chat.group-formats." + (group == null ? "Default" : group), config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}")); } + @Override public boolean getGenerateExitPortals() { return config.getBoolean("nether.generate-exit-portals", true); } + @Override public boolean getAnnounceNewPlayers() { return !config.getString("newbies.announce-format", "-").isEmpty(); } + @Override public String getAnnounceNewPlayerFormat(IUser user) { return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user); } + @Override public String format(String format, IUser user) { return format.replace('&', '§').replace("§§", "&").replace("{PLAYER}", user.getDisplayName()).replace("{DISPLAYNAME}", user.getDisplayName()).replace("{GROUP}", user.getGroup()).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getAddress().toString()); } + @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); } + @Override public void reloadConfig() { config.load(); } + @Override public List itemSpawnBlacklist() { final List epItemSpwn = new ArrayList(); @@ -286,21 +321,25 @@ public class Settings implements IConf return epItemSpwn; } + @Override public boolean spawnIfNoHome() { return config.getBoolean("spawn-if-no-home", false); } + @Override public boolean warnOnBuildDisallow() { return config.getBoolean("protect.disable.warn-on-build-disallow", false); } + @Override public boolean use1to1RatioInNether() { return config.getBoolean("nether.use-1to1-ratio", false); } + @Override public double getNetherRatio() { if (config.getBoolean("nether.use-1to1-ratio", false)) { @@ -309,46 +348,55 @@ public class Settings implements IConf return config.getDouble("nether.ratio", 16.0); } + @Override public boolean isDebug() { return config.getBoolean("debug", false); } + @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", "$").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 getProtectList(final String configName) { final List list = new ArrayList(); @@ -368,18 +416,20 @@ public class Settings implements IConf 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; - double getMaxMoney() + public double getMaxMoney() { double max = config.getDouble("max-money", MAXMONEY); if (Math.abs(max) > MAXMONEY) { @@ -388,17 +438,17 @@ public class Settings implements IConf return max; } - boolean isEcoLogEnabled() + public boolean isEcoLogEnabled() { return config.getBoolean("economy-log-enabled", false); } - boolean removeGodOnDisconnect() + public boolean removeGodOnDisconnect() { return config.getBoolean("remove-god-on-disconnect", false); } - boolean changeDisplayName() + public boolean changeDisplayName() { return config.getBoolean("change-displayname", true); }