diff --git a/src/cc/co/evenprime/bukkit/nocheat/NoCheat.java b/src/cc/co/evenprime/bukkit/nocheat/NoCheat.java index 97ec1f6a..a4e1a404 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/NoCheat.java +++ b/src/cc/co/evenprime/bukkit/nocheat/NoCheat.java @@ -194,7 +194,7 @@ public class NoCheat extends JavaPlugin implements CommandSender { public void run() { serverTicks += 10; long time = System.currentTimeMillis(); - serverLagInMilliSeconds = (time - lastServerTime - 500)*2; + serverLagInMilliSeconds = Math.abs((time - lastServerTime - 500)*2); lastServerTime = time; } }, 10, 10); @@ -287,7 +287,8 @@ public class NoCheat extends JavaPlugin implements CommandSender { try { if(permissions == null) { if(checkOPs) { - return true; + // OPs don't get special treatment + return false; } else { return player.isOp(); diff --git a/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java b/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java index 4c2e53f9..e666b72a 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java +++ b/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java @@ -33,7 +33,7 @@ public class SpeedhackCheck extends Check { super(plugin, "speedhack", PermissionData.PERMISSION_SPEEDHACK, config); } - private static final int violationsLimit = 2; + private static final int violationsLimit = 3; // Limits for the speedhack check per second private int limits[]; @@ -56,7 +56,7 @@ public class SpeedhackCheck extends Check { } // During world transfers many events of same location get sent, ignore them all - if(event.getFrom().getX() == event.getTo().getX() && event.getFrom().getZ() == event.getTo().getZ() && event.getFrom().getY() == event.getTo().getY()) { + if(event.getFrom().equals(event.getTo())) { return; } @@ -77,9 +77,9 @@ public class SpeedhackCheck extends Check { data.setBackPoint = event.getFrom(); } - if(plugin.getServerLag() > 200) { + if(plugin.getServerLag() > 150) { // Any data would likely be unreliable with that lag - resetData(data, event.getFrom(), ticks); + resetData(data, event.getFrom()); } else { final int low = (limits[0]+1) / 2; @@ -91,8 +91,9 @@ public class SpeedhackCheck extends Check { if(data.eventsSinceLastCheck > high) level = 2; else if(data.eventsSinceLastCheck > med) level = 1; else if(data.eventsSinceLastCheck > low) level = 0; - else resetData(data, event.getFrom(), ticks); - + else { + resetData(data, event.getFrom()); + } if(level >= 0) { data.violationsInARowTotal++; @@ -112,18 +113,18 @@ public class SpeedhackCheck extends Check { else if(data.lastCheckTicks + 10 < ticks) { // The player didn't move for the last 10 ticks - resetData(data, event.getFrom(), ticks); + resetData(data, event.getFrom()); + data.lastCheckTicks = ticks; } } - private static void resetData(SpeedhackData data, Location l, int ticks) { + private static void resetData(SpeedhackData data, Location l) { data.violationsInARow[0] = 0; data.violationsInARow[1] = 0; data.violationsInARow[2] = 0; data.violationsInARowTotal = 0; data.eventsSinceLastCheck = 0; data.setBackPoint = l; - data.lastCheckTicks = ticks; } private void action(Action actions[], PlayerMoveEvent event, int violations, SpeedhackData data) { @@ -202,10 +203,7 @@ public class SpeedhackCheck extends Check { } public void teleported(PlayerTeleportEvent event) { - SpeedhackData data = SpeedhackData.get(event.getPlayer()); - - data.setBackPoint = event.getTo(); - data.eventsSinceLastCheck = 0; + resetData(data, event.getTo()); } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/BooleanOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/BooleanOption.java index e160331b..b5a37170 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/BooleanOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/BooleanOption.java @@ -7,24 +7,24 @@ public class BooleanOption extends ChildOption { * */ private static final long serialVersionUID = 2258827414736580449L; - + private boolean value; - - public BooleanOption(String name, String parentName, boolean initialValue) { - - super(name, parentName); + + public BooleanOption(String name, boolean initialValue) { + + super(name); this.value = initialValue; } - + public void setValue(boolean value) { this.value = value; } - + @Override public String getValue() { return Boolean.toString(value); } - + public boolean getBooleanValue() { return value; } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/ChildOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/ChildOption.java index 3c4b6db2..6ff4a0f4 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/ChildOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/ChildOption.java @@ -1,5 +1,7 @@ package cc.co.evenprime.bukkit.nocheat.config; +import cc.co.evenprime.bukkit.nocheat.wizard.gui.Explainations; + public abstract class ChildOption extends Option { @@ -7,22 +9,21 @@ public abstract class ChildOption extends Option { * */ private static final long serialVersionUID = -4648294833934457776L; - - public ChildOption(String identifier, String parentIdentifier) { - - super(identifier, parentIdentifier); + + public ChildOption(String identifier) { + super(identifier); } - - + + public abstract String getValue(); - + @Override public String toYAMLString(String prefix) { return prefix + getIdentifier() + ": \"" + getValue() + "\"\r\n"; } - + @Override public String toDescriptionString(String prefix) { - return prefix + getIdentifier() + ": \"" + getDescription().replace("\n", "\r\n" + prefix + "\t\t") + "\"\r\n"; + return prefix + getIdentifier() + ": \"" + Explainations.get(getFullIdentifier()).replace("\n", "\r\n" + prefix + "\t\t") + "\"\r\n"; } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/CustomActionOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/CustomActionOption.java index 447eaadc..2f36d96f 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/CustomActionOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/CustomActionOption.java @@ -7,17 +7,17 @@ public class CustomActionOption extends ChildOption { private int firstAfter; private boolean repeat; private String command; - - - public CustomActionOption(String identifier, String parentName, String command) { - - super(identifier, parentName); - + + + public CustomActionOption(String identifier, String command) { + + super(identifier); + this.parseCommand(command); } - + private void parseCommand(String com) { - + if(com.matches("\\[[0-9]*,[a-z]*\\] .*")) { String s[] = com.split(" ", 2); String s2[] = s[0].replace("[", "").replace("]", "").split(","); @@ -38,7 +38,7 @@ public class CustomActionOption extends ChildOption { command = com; } } - + @Override public String getValue() { if(firstAfter <= 1 && repeat) { @@ -51,8 +51,8 @@ public class CustomActionOption extends ChildOption { return "["+firstAfter+","+repeat+"] "+ command; } } - - + + public CustomAction getCustomActionValue() { return new CustomAction(firstAfter, repeat, command); } @@ -60,14 +60,14 @@ public class CustomActionOption extends ChildOption { public String getCommandValue() { return command; } - + public void setCommandValue(String command) { this.command = command; } public void setRepeatValue(boolean value) { this.repeat = value; - + } public boolean getRepeatValue() { @@ -80,7 +80,7 @@ public class CustomActionOption extends ChildOption { public void setFirsttAfterValue(int value) { this.firstAfter = value; - + } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/IntegerOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/IntegerOption.java index 41625189..27f88eeb 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/IntegerOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/IntegerOption.java @@ -8,9 +8,9 @@ public class IntegerOption extends TextFieldOption { */ private static final long serialVersionUID = 2258827414736580449L; - public IntegerOption(String name, String parentName, int initialValue) { + public IntegerOption(String name, int initialValue) { - super(name, parentName, String.valueOf(initialValue), 5); + super(name, String.valueOf(initialValue), 5); } @Override diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/LevelOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/LevelOption.java index cdf03896..57fd1308 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/LevelOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/LevelOption.java @@ -13,8 +13,8 @@ public class LevelOption extends ChildOption { private LogLevel option; public enum LogLevel { - - + + OFF("off", "never", Level.OFF), LOW("low", "all messages", Level.INFO), MED("med", "important messages", Level.WARNING), @@ -56,9 +56,9 @@ public class LevelOption extends ChildOption { } } - public LevelOption(String identifier, String parentName, LogLevel initialValue) { + public LevelOption(String identifier, LogLevel initialValue) { - super(identifier, parentName); + super(identifier); this.option = initialValue; } @@ -75,7 +75,7 @@ public class LevelOption extends ChildOption { public LogLevel getOptionValue() { return this.option; } - + public Level getLevelValue() { return this.option.getLevel(); } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/LongStringOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/LongStringOption.java index c2c69094..4254ca75 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/LongStringOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/LongStringOption.java @@ -7,7 +7,7 @@ public class LongStringOption extends TextFieldOption { */ private static final long serialVersionUID = 2258827414736580449L; - public LongStringOption(String name, String parentName, String initialValue) { - super(name, parentName, initialValue, 60); + public LongStringOption(String name, String initialValue) { + super(name, initialValue, 60); } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/MediumStringOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/MediumStringOption.java index 8ac1c9c2..6c57029f 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/MediumStringOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/MediumStringOption.java @@ -7,7 +7,7 @@ public class MediumStringOption extends TextFieldOption { */ private static final long serialVersionUID = 2258827414736580449L; - public MediumStringOption(String name, String parentName, String initialValue) { - super(name, parentName, initialValue, 30); + public MediumStringOption(String name, String initialValue) { + super(name, initialValue, 30); } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/NoCheatConfiguration.java b/src/cc/co/evenprime/bukkit/nocheat/config/NoCheatConfiguration.java index 617f499b..f03a0434 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/NoCheatConfiguration.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/NoCheatConfiguration.java @@ -67,190 +67,190 @@ public class NoCheatConfiguration { } - root = new ParentOption("", "", false); + root = new ParentOption("", false); /*** LOGGING section ***/ { - ParentOption loggingNode = new ParentOption("logging", root.getFullIdentifier(), false); + ParentOption loggingNode = new ParentOption("logging", false); root.add(loggingNode); - loggingNode.add(new MediumStringOption("filename", loggingNode.getFullIdentifier(), + loggingNode.add(new MediumStringOption("filename", SimpleYaml.getString("logging.filename", "plugins/NoCheat/nocheat.log", yamlContent))); - loggingNode.add(new LevelOption("logtofile", loggingNode.getFullIdentifier(), + loggingNode.add(new LevelOption("logtofile", LogLevel.getLogLevelFromString(SimpleYaml.getString("logging.logtofile", LogLevel.LOW.asString(), yamlContent)))); - loggingNode.add(new LevelOption("logtoconsole", loggingNode.getFullIdentifier(), + loggingNode.add(new LevelOption("logtoconsole", LogLevel.getLogLevelFromString(SimpleYaml.getString("logging.logtoconsole", LogLevel.HIGH.asString(), yamlContent)))); - loggingNode.add(new LevelOption("logtochat", loggingNode.getFullIdentifier(), + loggingNode.add(new LevelOption("logtochat", LogLevel.getLogLevelFromString(SimpleYaml.getString("logging.logtochat", LogLevel.MED.asString(), yamlContent)))); - loggingNode.add(new LevelOption("logtoirc", loggingNode.getFullIdentifier(), + loggingNode.add(new LevelOption("logtoirc", LogLevel.getLogLevelFromString(SimpleYaml.getString("logging.logtoirc", LogLevel.MED.asString(), yamlContent)))); - loggingNode.add(new ShortStringOption("logtoirctag", loggingNode.getFullIdentifier(), + loggingNode.add(new ShortStringOption("logtoirctag", SimpleYaml.getString("logging.logtoirctag", "nocheat", yamlContent))); } /*** ACTIVE section ***/ { - ParentOption activeNode = new ParentOption("active", root.getFullIdentifier(), false); + ParentOption activeNode = new ParentOption("active", false); root.add(activeNode); - activeNode.add(new BooleanOption("speedhack", activeNode.getFullIdentifier(), + activeNode.add(new BooleanOption("speedhack", SimpleYaml.getBoolean("active.speedhack", true, yamlContent))); - activeNode.add(new BooleanOption("moving", activeNode.getFullIdentifier(), + activeNode.add(new BooleanOption("moving", SimpleYaml.getBoolean("active.moving", true, yamlContent))); - activeNode.add(new BooleanOption("airbuild", activeNode.getFullIdentifier(), + activeNode.add(new BooleanOption("airbuild", SimpleYaml.getBoolean("active.airbuild", false, yamlContent))); - activeNode.add(new BooleanOption("bedteleport", activeNode.getFullIdentifier(), + activeNode.add(new BooleanOption("bedteleport", SimpleYaml.getBoolean("active.bedteleport", true, yamlContent))); - activeNode.add(new BooleanOption("bogusitems", activeNode.getFullIdentifier(), + activeNode.add(new BooleanOption("bogusitems", SimpleYaml.getBoolean("active.bogusitems", false, yamlContent))); } /*** SPEEDHACK section ***/ { - ParentOption speedhackNode = new ParentOption("speedhack", root.getFullIdentifier(), false); + ParentOption speedhackNode = new ParentOption("speedhack", false); root.add(speedhackNode); - speedhackNode.add(new LongStringOption("logmessage", speedhackNode.getFullIdentifier(), + speedhackNode.add(new LongStringOption("logmessage", SimpleYaml.getString("speedhack.logmessage", "[player] sent [events] move events, but only [limit] were allowed. Speedhack?", yamlContent))); - speedhackNode.add(new BooleanOption("checkops", speedhackNode.getFullIdentifier(), + speedhackNode.add(new BooleanOption("checkops", SimpleYaml.getBoolean("speedhack.checkops", false, yamlContent))); - + /*** SPEEDHACK LIMITS section ***/ { - ParentOption speedhackLimitsNode = new ParentOption("limits", speedhackNode.getFullIdentifier(), false); + ParentOption speedhackLimitsNode = new ParentOption("limits", false); speedhackNode.add(speedhackLimitsNode); - speedhackLimitsNode.add(new IntegerOption("low", speedhackLimitsNode.getFullIdentifier(), + speedhackLimitsNode.add(new IntegerOption("low", SimpleYaml.getInt("speedhack.limits.low", 22, yamlContent))); - speedhackLimitsNode.add(new IntegerOption("med", speedhackLimitsNode.getFullIdentifier(), + speedhackLimitsNode.add(new IntegerOption("med", SimpleYaml.getInt("speedhack.limits.med", 33, yamlContent))); - speedhackLimitsNode.add(new IntegerOption("high", speedhackLimitsNode.getFullIdentifier(), + speedhackLimitsNode.add(new IntegerOption("high", SimpleYaml.getInt("speedhack.limits.high", 44, yamlContent))); } /*** SPEEDHACK ACTIONS section ***/ { - ParentOption speedhackActionNode = new ParentOption("action", speedhackNode.getFullIdentifier(), false); + ParentOption speedhackActionNode = new ParentOption("action", false); speedhackNode.add(speedhackActionNode); - speedhackActionNode.add(new MediumStringOption("low", speedhackActionNode.getFullIdentifier(), + speedhackActionNode.add(new MediumStringOption("low", SimpleYaml.getString("speedhack.action.low", "loglow cancel", yamlContent))); - speedhackActionNode.add(new MediumStringOption("med", speedhackActionNode.getFullIdentifier(), + speedhackActionNode.add(new MediumStringOption("med", SimpleYaml.getString("speedhack.action.med", "logmed cancel", yamlContent))); - speedhackActionNode.add(new MediumStringOption("high", speedhackActionNode.getFullIdentifier(), + speedhackActionNode.add(new MediumStringOption("high", SimpleYaml.getString("speedhack.action.high", "loghigh cancel", yamlContent))); } } /*** MOVING section ***/ { - ParentOption movingNode = new ParentOption("moving", root.getFullIdentifier(), false); + ParentOption movingNode = new ParentOption("moving", false); root.add(movingNode); - movingNode.add(new LongStringOption("logmessage", movingNode.getFullIdentifier(), + movingNode.add(new LongStringOption("logmessage", SimpleYaml.getString("moving.logmessage", "Moving violation: [player] from [world] [from] to [to] distance [distance]", yamlContent))); - - movingNode.add(new LongStringOption("summarymessage", movingNode.getFullIdentifier(), + + movingNode.add(new LongStringOption("summarymessage", SimpleYaml.getString("moving.summarymessage", "Moving summary of last ~[timeframe] seconds: [player] total Violations: [violations]", yamlContent))); - - movingNode.add(new BooleanOption("allowflying", movingNode.getFullIdentifier(), + + movingNode.add(new BooleanOption("allowflying", SimpleYaml.getBoolean("moving.allowflying", false, yamlContent))); - movingNode.add(new BooleanOption("allowfakesneak", movingNode.getFullIdentifier(), + movingNode.add(new BooleanOption("allowfakesneak", SimpleYaml.getBoolean("moving.allowfakesneak", true, yamlContent))); - movingNode.add(new BooleanOption("allowfastswim", movingNode.getFullIdentifier(), + movingNode.add(new BooleanOption("allowfastswim", SimpleYaml.getBoolean("moving.allowfastswim", false, yamlContent))); - movingNode.add(new BooleanOption("waterelevators", movingNode.getFullIdentifier(), + movingNode.add(new BooleanOption("waterelevators", SimpleYaml.getBoolean("moving.waterelevators", false, yamlContent))); - movingNode.add(new BooleanOption("checkops", movingNode.getFullIdentifier(), + movingNode.add(new BooleanOption("checkops", SimpleYaml.getBoolean("moving.checkops", false, yamlContent))); - - movingNode.add(new BooleanOption("enforceteleport", movingNode.getFullIdentifier(), + + movingNode.add(new BooleanOption("enforceteleport", SimpleYaml.getBoolean("moving.enforceteleport", false, yamlContent))); - + /*** MOVING ACTION section ***/ { - ParentOption movingActionNode = new ParentOption("action", movingNode.getFullIdentifier(), false); + ParentOption movingActionNode = new ParentOption("action", false); movingNode.add(movingActionNode); - movingActionNode.add(new MediumStringOption("low", movingActionNode.getFullIdentifier(), + movingActionNode.add(new MediumStringOption("low", SimpleYaml.getString("moving.action.low", "loglow cancel", yamlContent))); - movingActionNode.add(new MediumStringOption("med", movingActionNode.getFullIdentifier(), + movingActionNode.add(new MediumStringOption("med", SimpleYaml.getString("moving.action.med", "logmed cancel", yamlContent))); - movingActionNode.add(new MediumStringOption("high", movingActionNode.getFullIdentifier(), + movingActionNode.add(new MediumStringOption("high", SimpleYaml.getString("moving.action.high", "loghigh cancel", yamlContent))); } } /*** AIRBUILD section ***/ { - ParentOption airbuildNode = new ParentOption("airbuild", root.getFullIdentifier(), false); + ParentOption airbuildNode = new ParentOption("airbuild", false); root.add(airbuildNode); - - airbuildNode.add(new BooleanOption("checkops", airbuildNode.getFullIdentifier(), + + airbuildNode.add(new BooleanOption("checkops", SimpleYaml.getBoolean("airbuild.checkops", false, yamlContent))); /*** AIRBUILD LIMITS section ***/ { - ParentOption airbuildLimitsNode = new ParentOption("limits", airbuildNode.getFullIdentifier(), false); + ParentOption airbuildLimitsNode = new ParentOption("limits", false); airbuildNode.add(airbuildLimitsNode); - airbuildLimitsNode.add(new IntegerOption("low", airbuildLimitsNode.getFullIdentifier(), + airbuildLimitsNode.add(new IntegerOption("low", SimpleYaml.getInt("airbuild.limits.low", 1, yamlContent))); - airbuildLimitsNode.add(new IntegerOption("med", airbuildLimitsNode.getFullIdentifier(), + airbuildLimitsNode.add(new IntegerOption("med", SimpleYaml.getInt("airbuild.limits.med", 3, yamlContent))); - airbuildLimitsNode.add(new IntegerOption("high", airbuildLimitsNode.getFullIdentifier(), + airbuildLimitsNode.add(new IntegerOption("high", SimpleYaml.getInt("airbuild.limits.high", 10, yamlContent))); } /*** AIRBUILD ACTION section ***/ { - ParentOption airbuildActionNode = new ParentOption("action", airbuildNode.getFullIdentifier(), false); + ParentOption airbuildActionNode = new ParentOption("action", false); airbuildNode.add(airbuildActionNode); - airbuildActionNode.add(new MediumStringOption("low", airbuildActionNode.getFullIdentifier(), + airbuildActionNode.add(new MediumStringOption("low", SimpleYaml.getString("airbuild.action.low", "loglow cancel", yamlContent))); - airbuildActionNode.add(new MediumStringOption("med", airbuildActionNode.getFullIdentifier(), + airbuildActionNode.add(new MediumStringOption("med", SimpleYaml.getString("airbuild.action.med", "logmed cancel", yamlContent))); - airbuildActionNode.add(new MediumStringOption("high", airbuildActionNode.getFullIdentifier(), + airbuildActionNode.add(new MediumStringOption("high", SimpleYaml.getString("airbuild.action.high", "loghigh cancel", yamlContent))); } - - + + } /*** BEDTELEPORT section ***/ { - ParentOption bedteleportNode = new ParentOption("bedteleport", root.getFullIdentifier(), false); + ParentOption bedteleportNode = new ParentOption("bedteleport", false); root.add(bedteleportNode); - - bedteleportNode.add(new BooleanOption("checkops", bedteleportNode.getFullIdentifier(), + + bedteleportNode.add(new BooleanOption("checkops", SimpleYaml.getBoolean("bedteleport.checkops", false, yamlContent))); } /*** BOGUSITEMS section ***/ { - ParentOption bogusitemsNode = new ParentOption("bogusitems", root.getFullIdentifier(), false); + ParentOption bogusitemsNode = new ParentOption("bogusitems", false); root.add(bogusitemsNode); - - bogusitemsNode.add(new BooleanOption("checkops", bogusitemsNode.getFullIdentifier(), + + bogusitemsNode.add(new BooleanOption("checkops", SimpleYaml.getBoolean("bogusitems.checkops", false, yamlContent))); } /*** CUSTOMACTIONS section ***/ { - ParentOption customActionsNode = new ParentOption("customactions", root.getFullIdentifier(), true); + ParentOption customActionsNode = new ParentOption("customactions", true); root.add(customActionsNode); Set customs = SimpleYaml.getKeys("customactions", yamlContent); for(String s : customs) { - CustomActionOption o = new CustomActionOption(s, customActionsNode.getFullIdentifier(), SimpleYaml.getString("customactions."+s, "unknown", yamlContent)); + CustomActionOption o = new CustomActionOption(s, SimpleYaml.getString("customactions."+s, "unknown", yamlContent)); customActionsNode.add(o); actionMap.put(s, o.getCustomActionValue()); @@ -258,7 +258,7 @@ public class NoCheatConfiguration { } writeConfigFile(configurationFile, this); - writeDescriptionFile(descriptionsFile, this); + //writeDescriptionFile(descriptionsFile, this); } public void setupFileLogger() { @@ -337,7 +337,7 @@ public class NoCheatConfiguration { e.printStackTrace(); } } - + /** * Write a file with the descriptions of all options * @param f diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/Option.java b/src/cc/co/evenprime/bukkit/nocheat/config/Option.java index 0f7cd374..67134937 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/Option.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/Option.java @@ -1,29 +1,24 @@ package cc.co.evenprime.bukkit.nocheat.config; -import cc.co.evenprime.bukkit.nocheat.wizard.gui.Explainations; - public abstract class Option { private final String identifier; - private final String parentIdentifier; - private final String description; + private Option parent; - public Option(String identifier, String parentIdentifier) { + public Option(String identifier) { this.identifier = identifier; - this.parentIdentifier = parentIdentifier; - this.description = Explainations.get(parentIdentifier == null || parentIdentifier.equals("") ? identifier : parentIdentifier + "." + identifier); } public final String getIdentifier() { return identifier; } - - public final String getDescription() { - return description; + + public final void setParent(Option parent) { + this.parent = parent; } public final String getFullIdentifier() { - return (parentIdentifier == null || parentIdentifier == "") ? identifier : parentIdentifier + "." + identifier; + return (parent == null || parent.getFullIdentifier() == "") ? identifier : parent.getFullIdentifier() + "." + identifier; } public abstract String toYAMLString(String prefix); diff --git a/src/cc/co/evenprime/bukkit/nocheat/config/ParentOption.java b/src/cc/co/evenprime/bukkit/nocheat/config/ParentOption.java index abbdaa44..e5a9c382 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/config/ParentOption.java +++ b/src/cc/co/evenprime/bukkit/nocheat/config/ParentOption.java @@ -15,8 +15,8 @@ public class ParentOption extends Option { private LinkedList