Created an interface for settings.

This commit is contained in:
snowleo 2011-07-16 02:38:22 +02:00
parent ad8ad8b574
commit 78c376af79
4 changed files with 193 additions and 14 deletions

View file

@ -48,7 +48,7 @@ public class Essentials extends JavaPlugin implements IEssentials
{ {
public static final int BUKKIT_VERSION = 974; public static final int BUKKIT_VERSION = 974;
private static final Logger LOGGER = Logger.getLogger("Minecraft"); 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 final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);
private transient Spawn spawn; private transient Spawn spawn;
private transient Jail jail; private transient Jail jail;
@ -65,7 +65,7 @@ public class Essentials extends JavaPlugin implements IEssentials
private transient final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler(); private transient final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler();
private transient IPermissionsHandler permissionsHandler; private transient IPermissionsHandler permissionsHandler;
public Settings getSettings() public ISettings getSettings()
{ {
return settings; return settings;
} }

View file

@ -25,7 +25,7 @@ public interface IEssentials extends Plugin
int broadcastMessage(String name, String message); int broadcastMessage(String name, String message);
Settings getSettings(); ISettings getSettings();
CraftScheduler getScheduler(); CraftScheduler getScheduler();

View file

@ -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<String, Object> 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<Integer> 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<Integer> itemSpawnBlacklist();
boolean permissionBasedItemSpawn();
void reloadConfig();
boolean showNonEssCommandsInHelp();
boolean spawnIfNoHome();
boolean use1to1RatioInNether();
boolean warnOnBuildDisallow();
boolean warnOnSmite();
double getMaxMoney();
boolean isEcoLogEnabled();
boolean removeGodOnDisconnect();
boolean changeDisplayName();
}

View file

@ -11,7 +11,7 @@ import java.util.Map;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
public class Settings implements IConf public class Settings implements ISettings
{ {
private final transient EssentialsConf config; private final transient EssentialsConf config;
private final static Logger logger = Logger.getLogger("Minecraft"); private final static Logger logger = Logger.getLogger("Minecraft");
@ -22,49 +22,58 @@ public class Settings implements IConf
this.ess = ess; this.ess = ess;
config = new EssentialsConf(new File(ess.getDataFolder(), "config.yml")); config = new EssentialsConf(new File(ess.getDataFolder(), "config.yml"));
config.setTemplateName("/config.yml"); config.setTemplateName("/config.yml");
config.load(); reloadConfig();
} }
@Override
public boolean getRespawnAtHome() public boolean getRespawnAtHome()
{ {
return config.getBoolean("respawn-at-home", false); return config.getBoolean("respawn-at-home", false);
} }
@Override
public boolean getBedSetsHome() public boolean getBedSetsHome()
{ {
return config.getBoolean("bed-sethome", false); return config.getBoolean("bed-sethome", false);
} }
@Override
public int getChatRadius() public int getChatRadius()
{ {
return config.getInt("chat.radius", config.getInt("chat-radius", 0)); return config.getInt("chat.radius", config.getInt("chat-radius", 0));
} }
@Override
public double getTeleportDelay() public double getTeleportDelay()
{ {
return config.getDouble("teleport-delay", 0); return config.getDouble("teleport-delay", 0);
} }
@Override
public int getDefaultStackSize() public int getDefaultStackSize()
{ {
return config.getInt("default-stack-size", 64); return config.getInt("default-stack-size", 64);
} }
@Override
public int getStartingBalance() public int getStartingBalance()
{ {
return config.getInt("starting-balance", 0); return config.getInt("starting-balance", 0);
} }
@Override
public boolean getNetherPortalsEnabled() public boolean getNetherPortalsEnabled()
{ {
return isNetherEnabled() && config.getBoolean("nether.portals-enabled", false); return isNetherEnabled() && config.getBoolean("nether.portals-enabled", false);
} }
@Override
public boolean isCommandDisabled(final IEssentialsCommand cmd) public boolean isCommandDisabled(final IEssentialsCommand cmd)
{ {
return isCommandDisabled(cmd.getName()); return isCommandDisabled(cmd.getName());
} }
@Override
public boolean isCommandDisabled(String label) public boolean isCommandDisabled(String label)
{ {
for (String c : config.getStringList("disabled-commands", new ArrayList<String>(0))) for (String c : config.getStringList("disabled-commands", new ArrayList<String>(0)))
@ -75,11 +84,13 @@ public class Settings implements IConf
return config.getBoolean("disable-" + label.toLowerCase(), false); return config.getBoolean("disable-" + label.toLowerCase(), false);
} }
@Override
public boolean isCommandRestricted(IEssentialsCommand cmd) public boolean isCommandRestricted(IEssentialsCommand cmd)
{ {
return isCommandRestricted(cmd.getName()); return isCommandRestricted(cmd.getName());
} }
@Override
public boolean isCommandRestricted(String label) public boolean isCommandRestricted(String label)
{ {
for (String c : config.getStringList("restricted-commands", new ArrayList<String>(0))) for (String c : config.getStringList("restricted-commands", new ArrayList<String>(0)))
@ -90,6 +101,7 @@ public class Settings implements IConf
return config.getBoolean("restrict-" + label.toLowerCase(), false); return config.getBoolean("restrict-" + label.toLowerCase(), false);
} }
@Override
public boolean isCommandOverridden(String name) public boolean isCommandOverridden(String name)
{ {
List<String> defaultList = new ArrayList<String>(1); List<String> defaultList = new ArrayList<String>(1);
@ -103,11 +115,13 @@ public class Settings implements IConf
return config.getBoolean("override-" + name.toLowerCase(), false); return config.getBoolean("override-" + name.toLowerCase(), false);
} }
@Override
public double getCommandCost(IEssentialsCommand cmd) public double getCommandCost(IEssentialsCommand cmd)
{ {
return getCommandCost(cmd.getName()); return getCommandCost(cmd.getName());
} }
@Override
public double getCommandCost(String label) public double getCommandCost(String label)
{ {
double cost = config.getDouble("command-costs." + label, 0.0); double cost = config.getDouble("command-costs." + label, 0.0);
@ -116,26 +130,25 @@ public class Settings implements IConf
return cost; return cost;
} }
public String getCommandPrefix() @Override
{
return config.getString("command-prefix", "");
}
public String getNicknamePrefix() public String getNicknamePrefix()
{ {
return config.getString("nickname-prefix", "~"); return config.getString("nickname-prefix", "~");
} }
@Override
public double getTeleportCooldown() public double getTeleportCooldown()
{ {
return config.getDouble("teleport-cooldown", 60); return config.getDouble("teleport-cooldown", 60);
} }
@Override
public double getHealCooldown() public double getHealCooldown()
{ {
return config.getDouble("heal-cooldown", 60); return config.getDouble("heal-cooldown", 60);
} }
@Override
public Object getKit(String name) public Object getKit(String name)
{ {
Map<String, Object> kits = (Map<String, Object>)config.getProperty("kits"); Map<String, Object> kits = (Map<String, Object>)config.getProperty("kits");
@ -148,11 +161,13 @@ public class Settings implements IConf
return null; return null;
} }
@Override
public Map<String, Object> getKits() public Map<String, Object> getKits()
{ {
return (Map<String, Object>)config.getProperty("kits"); return (Map<String, Object>)config.getProperty("kits");
} }
@Override
public ChatColor getOperatorColor() throws Exception public ChatColor getOperatorColor() throws Exception
{ {
String colorName = config.getString("ops-name-color", null); String colorName = config.getString("ops-name-color", null);
@ -173,100 +188,120 @@ public class Settings implements IConf
return ChatColor.getByCode(Integer.parseInt(colorName, 16)); return ChatColor.getByCode(Integer.parseInt(colorName, 16));
} }
@Override
public boolean getReclaimSetting() public boolean getReclaimSetting()
{ {
return config.getBoolean("reclaim-onlogout", true); return config.getBoolean("reclaim-onlogout", true);
} }
@Override
public String getNetherName() public String getNetherName()
{ {
return config.getString("nether.folder", "nether"); return config.getString("nether.folder", "nether");
} }
@Override
public boolean isNetherEnabled() public boolean isNetherEnabled()
{ {
return config.getBoolean("nether.enabled", true); return config.getBoolean("nether.enabled", true);
} }
@Override
public int getSpawnMobLimit() public int getSpawnMobLimit()
{ {
return config.getInt("spawnmob-limit", 10); return config.getInt("spawnmob-limit", 10);
} }
@Override
public boolean showNonEssCommandsInHelp() public boolean showNonEssCommandsInHelp()
{ {
return config.getBoolean("non-ess-in-help", true); return config.getBoolean("non-ess-in-help", true);
} }
@Override
public boolean hidePermissionlessHelp() public boolean hidePermissionlessHelp()
{ {
return config.getBoolean("hide-permissionless-help", true); return config.getBoolean("hide-permissionless-help", true);
} }
@Override
public int getProtectCreeperMaxHeight() public int getProtectCreeperMaxHeight()
{ {
return config.getInt("protect.creeper.max-height", -1); return config.getInt("protect.creeper.max-height", -1);
} }
@Override
public boolean areSignsDisabled() public boolean areSignsDisabled()
{ {
return config.getBoolean("signs-disabled", false); return config.getBoolean("signs-disabled", false);
} }
@Override
public long getBackupInterval() public long getBackupInterval()
{ {
return config.getInt("backup.interval", 1440); // 1440 = 24 * 60 return config.getInt("backup.interval", 1440); // 1440 = 24 * 60
} }
@Override
public String getBackupCommand() public String getBackupCommand()
{ {
return config.getString("backup.command", null); return config.getString("backup.command", null);
} }
@Override
public String getChatFormat(String group) public String getChatFormat(String group)
{ {
return config.getString("chat.group-formats." + (group == null ? "Default" : group), return config.getString("chat.group-formats." + (group == null ? "Default" : group),
config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}")); config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}"));
} }
@Override
public boolean getGenerateExitPortals() public boolean getGenerateExitPortals()
{ {
return config.getBoolean("nether.generate-exit-portals", true); return config.getBoolean("nether.generate-exit-portals", true);
} }
@Override
public boolean getAnnounceNewPlayers() public boolean getAnnounceNewPlayers()
{ {
return !config.getString("newbies.announce-format", "-").isEmpty(); return !config.getString("newbies.announce-format", "-").isEmpty();
} }
@Override
public String getAnnounceNewPlayerFormat(IUser user) public String getAnnounceNewPlayerFormat(IUser user)
{ {
return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user); return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user);
} }
@Override
public String format(String format, IUser user) 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()); 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() public String getNewbieSpawn()
{ {
return config.getString("newbies.spawnpoint", "default"); return config.getString("newbies.spawnpoint", "default");
} }
@Override
public boolean getPerWarpPermission() public boolean getPerWarpPermission()
{ {
return config.getBoolean("per-warp-permission", false); return config.getBoolean("per-warp-permission", false);
} }
@Override
public boolean getSortListByGroups() public boolean getSortListByGroups()
{ {
return config.getBoolean("sort-list-by-groups", true); return config.getBoolean("sort-list-by-groups", true);
} }
@Override
public void reloadConfig() { public void reloadConfig() {
config.load(); config.load();
} }
@Override
public List<Integer> itemSpawnBlacklist() public List<Integer> itemSpawnBlacklist()
{ {
final List<Integer> epItemSpwn = new ArrayList<Integer>(); final List<Integer> epItemSpwn = new ArrayList<Integer>();
@ -286,21 +321,25 @@ public class Settings implements IConf
return epItemSpwn; return epItemSpwn;
} }
@Override
public boolean spawnIfNoHome() public boolean spawnIfNoHome()
{ {
return config.getBoolean("spawn-if-no-home", false); return config.getBoolean("spawn-if-no-home", false);
} }
@Override
public boolean warnOnBuildDisallow() public boolean warnOnBuildDisallow()
{ {
return config.getBoolean("protect.disable.warn-on-build-disallow", false); return config.getBoolean("protect.disable.warn-on-build-disallow", false);
} }
@Override
public boolean use1to1RatioInNether() public boolean use1to1RatioInNether()
{ {
return config.getBoolean("nether.use-1to1-ratio", false); return config.getBoolean("nether.use-1to1-ratio", false);
} }
@Override
public double getNetherRatio() public double getNetherRatio()
{ {
if (config.getBoolean("nether.use-1to1-ratio", false)) { if (config.getBoolean("nether.use-1to1-ratio", false)) {
@ -309,46 +348,55 @@ public class Settings implements IConf
return config.getDouble("nether.ratio", 16.0); return config.getDouble("nether.ratio", 16.0);
} }
@Override
public boolean isDebug() public boolean isDebug()
{ {
return config.getBoolean("debug", false); return config.getBoolean("debug", false);
} }
@Override
public boolean warnOnSmite() public boolean warnOnSmite()
{ {
return config.getBoolean("warn-on-smite" ,true); return config.getBoolean("warn-on-smite" ,true);
} }
@Override
public boolean permissionBasedItemSpawn() public boolean permissionBasedItemSpawn()
{ {
return config.getBoolean("permission-based-item-spawn", false); return config.getBoolean("permission-based-item-spawn", false);
} }
@Override
public String getLocale() public String getLocale()
{ {
return config.getString("locale", ""); return config.getString("locale", "");
} }
@Override
public String getCurrencySymbol() public String getCurrencySymbol()
{ {
return config.getString("currency-symbol", "$").substring(0, 1).replaceAll("[0-9]", "$"); return config.getString("currency-symbol", "$").substring(0, 1).replaceAll("[0-9]", "$");
} }
@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);
} }
@Override
public boolean isEcoDisabled() public boolean isEcoDisabled()
{ {
return config.getBoolean("disable-eco", false); return config.getBoolean("disable-eco", false);
} }
@Override
public boolean getProtectPreventSpawn(final String creatureName) public boolean getProtectPreventSpawn(final String creatureName)
{ {
return config.getBoolean("protect.prevent.spawn."+creatureName, false); return config.getBoolean("protect.prevent.spawn."+creatureName, false);
} }
@Override
public List<Integer> getProtectList(final String configName) public List<Integer> getProtectList(final String configName)
{ {
final List<Integer> list = new ArrayList<Integer>(); final List<Integer> list = new ArrayList<Integer>();
@ -368,18 +416,20 @@ public class Settings implements IConf
return list; return list;
} }
@Override
public String getProtectString(final String configName) public String getProtectString(final String configName)
{ {
return config.getString(configName, null); return config.getString(configName, null);
} }
@Override
public boolean getProtectBoolean(final String configName, boolean def) public boolean getProtectBoolean(final String configName, boolean def)
{ {
return config.getBoolean(configName, def); return config.getBoolean(configName, def);
} }
private final static double MAXMONEY = 10000000000000.0; private final static double MAXMONEY = 10000000000000.0;
double getMaxMoney() public double getMaxMoney()
{ {
double max = config.getDouble("max-money", MAXMONEY); double max = config.getDouble("max-money", MAXMONEY);
if (Math.abs(max) > MAXMONEY) { if (Math.abs(max) > MAXMONEY) {
@ -388,17 +438,17 @@ public class Settings implements IConf
return max; return max;
} }
boolean isEcoLogEnabled() public boolean isEcoLogEnabled()
{ {
return config.getBoolean("economy-log-enabled", false); return config.getBoolean("economy-log-enabled", false);
} }
boolean removeGodOnDisconnect() public boolean removeGodOnDisconnect()
{ {
return config.getBoolean("remove-god-on-disconnect", false); return config.getBoolean("remove-god-on-disconnect", false);
} }
boolean changeDisplayName() public boolean changeDisplayName()
{ {
return config.getBoolean("change-displayname", true); return config.getBoolean("change-displayname", true);
} }