From 04d2896f7e0cb3f777627241ac08512caeff890b Mon Sep 17 00:00:00 2001 From: asofold Date: Thu, 4 Dec 2014 02:02:37 +0100 Subject: [PATCH] [API CHANGE] Add debug flags to check data [missing: use that one]. For debug output now data.debug is used instead of config.debug, so the data is initialized with the config.debug value. As an effect of this, removing the data or reloading will override flags that have been set by means of API-access only. Affected: * Adds getDebug and setDebug to ICheckData. * Adds appropriate configs to all constructors of check data. * Some per-check debug flags have been removed. Extras: * spaces * import cleanup. --- .../utilities/ds/corw/QueueRORA.java | 1 - .../checks/access/ACheckConfig.java | 2 +- .../nocheatplus/checks/access/ACheckData.java | 40 +- .../checks/access/AsyncCheckData.java | 46 +- .../nocheatplus/checks/access/ICheckData.java | 53 +- .../checks/blockbreak/BlockBreakConfig.java | 2 - .../checks/blockbreak/BlockBreakData.java | 135 ++-- .../checks/blockbreak/FastBreak.java | 2 +- .../checks/blockbreak/WrongBlock.java | 2 +- .../blockinteract/BlockInteractData.java | 90 +-- .../checks/blockinteract/Speed.java | 2 +- .../checks/blockinteract/Visible.java | 2 +- .../checks/blockplace/BlockPlaceData.java | 65 +- .../nocheatplus/checks/chat/ChatData.java | 62 +- .../nocheatplus/checks/chat/Text.java | 2 +- .../nocheatplus/checks/combined/BedLeave.java | 1 - .../checks/combined/CombinedData.java | 120 ++-- .../nocheatplus/checks/fight/Critical.java | 2 +- .../nocheatplus/checks/fight/FastHeal.java | 2 +- .../nocheatplus/checks/fight/FightData.java | 7 +- .../checks/fight/FightListener.java | 8 +- .../nocheatplus/checks/fight/Reach.java | 4 +- .../checks/inventory/FastClick.java | 2 +- .../checks/inventory/InstantBow.java | 2 +- .../checks/inventory/InventoryData.java | 60 +- .../checks/moving/MorePackets.java | 2 +- .../checks/moving/MorePacketsVehicle.java | 2 +- .../checks/moving/MovingConfig.java | 144 ++-- .../nocheatplus/checks/moving/MovingData.java | 12 +- .../checks/moving/MovingListener.java | 31 +- .../nocheatplus/checks/moving/NoFall.java | 6 +- .../nocheatplus/checks/moving/Passable.java | 10 +- .../checks/moving/SurvivalFly.java | 13 +- .../command/actions/delay/DelayCommand.java | 1 - .../command/admin/ReloadCommand.java | 3 - .../nocheatplus/config/ConfPaths.java | 673 +++++++++--------- .../neatmonster/nocheatplus/NoCheatPlus.java | 2 +- 37 files changed, 837 insertions(+), 776 deletions(-) diff --git a/NCPCommons/src/main/java/fr/neatmonster/nocheatplus/utilities/ds/corw/QueueRORA.java b/NCPCommons/src/main/java/fr/neatmonster/nocheatplus/utilities/ds/corw/QueueRORA.java index 43dd847f..74c43c8e 100644 --- a/NCPCommons/src/main/java/fr/neatmonster/nocheatplus/utilities/ds/corw/QueueRORA.java +++ b/NCPCommons/src/main/java/fr/neatmonster/nocheatplus/utilities/ds/corw/QueueRORA.java @@ -1,6 +1,5 @@ package fr.neatmonster.nocheatplus.utilities.ds.corw; -import java.util.Iterator; import java.util.LinkedList; import java.util.List; diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckConfig.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckConfig.java index 0e77c9bd..ecf79bd8 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckConfig.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckConfig.java @@ -11,7 +11,7 @@ import fr.neatmonster.nocheatplus.config.ConfigFile; public abstract class ACheckConfig implements ICheckConfig { /** For on the fly debug setting. */ - public boolean debug = false; + public boolean debug = false; // TODO: Might make private. /** If to adapt to server side lag. */ public final boolean lag; diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckData.java index 1bebc7f7..b893f35c 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ACheckData.java @@ -7,18 +7,34 @@ package fr.neatmonster.nocheatplus.checks.access; */ public abstract class ACheckData implements ICheckData { - @Override - public boolean hasCachedPermissionEntry(String permission) { - return false; - } + public boolean debug; // TODO: Might make private. + + public ACheckData(ICheckConfig config) { + setDebug(config.getDebug()); + } - @Override - public boolean hasCachedPermission(String permission) { - return false; - } + @Override + public void setDebug(boolean debug) { + this.debug = debug; + } + + @Override + public boolean getDebug() { + return debug; + } + + @Override + public boolean hasCachedPermissionEntry(String permission) { + return false; + } + + @Override + public boolean hasCachedPermission(String permission) { + return false; + } + + @Override + public void setCachedPermission(String permission, boolean value) { + } - @Override - public void setCachedPermission(String permission, boolean value) { - } - } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/AsyncCheckData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/AsyncCheckData.java index e6f0a42d..de576b1a 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/AsyncCheckData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/AsyncCheckData.java @@ -11,26 +11,30 @@ import java.util.Map; */ public abstract class AsyncCheckData extends ACheckData { - // TODO: consider using a PermissionEntry class with a timestamp to schedule renewing it. - // TODO: consider using a normal HashMap and ensure by contract that the permissions get filled at login, so updates are thread safe. - - /** The permissions that are actually cached. */ - protected final Map cachedPermissions = Collections.synchronizedMap(new HashMap()); - - @Override - public boolean hasCachedPermissionEntry(final String permission) { - return cachedPermissions.containsKey(permission); - } + // TODO: consider using a PermissionEntry class with a timestamp to schedule renewing it. + // TODO: consider using a normal HashMap and ensure by contract that the permissions get filled at login, so updates are thread safe. + + public AsyncCheckData(ICheckConfig config) { + super(config); + } + + /** The permissions that are actually cached. */ + protected final Map cachedPermissions = Collections.synchronizedMap(new HashMap()); + + @Override + public boolean hasCachedPermissionEntry(final String permission) { + return cachedPermissions.containsKey(permission); + } + + @Override + public boolean hasCachedPermission(final String permission) { + final Boolean has = cachedPermissions.get(permission); + return (has == null) ? false : has.booleanValue(); + } + + @Override + public void setCachedPermission(final String permission, final boolean has){ + cachedPermissions.put(permission, has); + } - @Override - public boolean hasCachedPermission(final String permission) { - final Boolean has = cachedPermissions.get(permission); - return (has == null) ? false : has.booleanValue(); - } - - @Override - public void setCachedPermission(final String permission, final boolean has){ - cachedPermissions.put(permission, has); - } - } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ICheckData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ICheckData.java index ef0e16ac..5d6a8a68 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ICheckData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/access/ICheckData.java @@ -11,24 +11,37 @@ import fr.neatmonster.nocheatplus.components.IData; * @author asofold */ public interface ICheckData extends IData{ - - /** - * Check if an entry for the given permission exists. - * @param permission - * @return - */ - public boolean hasCachedPermissionEntry(String permission); - /** - * Check if the user has the permission. If no entry is present, a false result is assumed an after failure check is made and the cache must be registered for updating. - * @param permission - * @return - */ - public boolean hasCachedPermission(String permission); - - /** - * Set a cached permission. - * @param permission - * @param value - */ - public void setCachedPermission(String permission, boolean value); + + /** + * Set if to trace/debug this player for the associated checks. + * @param debug + */ + public void setDebug(boolean debug); + + /** + * Test if to trace/debug this player for the associated checks. + * @return + */ + public boolean getDebug(); + + + /** + * Check if an entry for the given permission exists. + * @param permission + * @return + */ + public boolean hasCachedPermissionEntry(String permission); + /** + * Check if the user has the permission. If no entry is present, a false result is assumed an after failure check is made and the cache must be registered for updating. + * @param permission + * @return + */ + public boolean hasCachedPermission(String permission); + + /** + * Set a cached permission. + * @param permission + * @param value + */ + public void setCachedPermission(String permission, boolean value); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakConfig.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakConfig.java index 5196d375..99f7498c 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakConfig.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakConfig.java @@ -58,7 +58,6 @@ public class BlockBreakConfig extends ACheckConfig { public final boolean fastBreakCheck; public final boolean fastBreakStrict; - public final boolean fastBreakDebug; public final int fastBreakBuckets; public final long fastBreakBucketDur; public final float fastBreakBucketFactor; @@ -105,7 +104,6 @@ public class BlockBreakConfig extends ACheckConfig { // Fastbreak. fastBreakCheck = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_CHECK); fastBreakStrict = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_STRICT); - fastBreakDebug = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_DEBUG, false); fastBreakDelay = data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_DELAY); fastBreakGrace = Math.max(data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_BUCKETS_CONTENTION, 2000), data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_GRACE)); fastBreakBucketDur = data.getInt(ConfPaths.BLOCKBREAK_FASTBREAK_BUCKETS_DUR, 4000); diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakData.java index 72668654..2a292a58 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/BlockBreakData.java @@ -19,28 +19,28 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency; */ public class BlockBreakData extends ACheckData { - /** The factory creating data. */ - public static final CheckDataFactory factory = new CheckDataFactory() { - @Override - public final ICheckData getData(final Player player) { - return BlockBreakData.getData(player); - } + /** The factory creating data. */ + public static final CheckDataFactory factory = new CheckDataFactory() { + @Override + public final ICheckData getData(final Player player) { + return BlockBreakData.getData(player); + } - @Override - public ICheckData removeData(final String playerName) { - return BlockBreakData.removeData(playerName); - } + @Override + public ICheckData removeData(final String playerName) { + return BlockBreakData.removeData(playerName); + } - @Override - public void removeAllData() { - clear(); - } - }; + @Override + public void removeAllData() { + clear(); + } + }; /** The map containing the data per players. */ private static final Map playersMap = new HashMap(); - /** + /** * Gets the data of a specified player. * * @param player @@ -54,59 +54,76 @@ public class BlockBreakData extends ACheckData { } public static ICheckData removeData(final String playerName) { - return playersMap.remove(playerName); - } - - public static void clear(){ - playersMap.clear(); + return playersMap.remove(playerName); } - // Violation levels. + public static void clear(){ + playersMap.clear(); + } + + // Violation levels. public double directionVL; public double fastBreakVL; public double frequencyVL; public double noSwingVL; public double reachVL; public final ActionFrequency wrongBlockVL; - + // Shared data. - public int clickedX = Integer.MAX_VALUE; - public int clickedY; - public int clickedZ; - public int clickedTick; - /** Tool that the block was clicked with, null for the case of air. */ - public Material clickedTool = null; - - // TODO: use tick here too ? - public long wasInstaBreak; - - public final Timings stats; + public int clickedX = Integer.MAX_VALUE; + public int clickedY; + public int clickedZ; + public int clickedTick; + /** Tool that the block was clicked with, null for the case of air. */ + public Material clickedTool = null; + + // TODO: use tick here too ? + public long wasInstaBreak; + + public Timings stats; // Data of the fast break check. - public final ActionFrequency fastBreakPenalties; + public final ActionFrequency fastBreakPenalties; public int fastBreakBuffer; public long fastBreakBreakTime = System.currentTimeMillis() - 1000L; /** First time interaction with a block. */ public long fastBreakfirstDamage = System.currentTimeMillis(); - + public final ActionFrequency frequencyBuckets; - public int frequencyShortTermCount; - public int frequencyShortTermTick; + public int frequencyShortTermCount; + public int frequencyShortTermTick; // Data of the no swing check. public boolean noSwingArmSwung = true; // Data of the reach check. public double reachDistance; - + public BlockBreakData(final BlockBreakConfig cc) { - stats = cc.fastBreakDebug?(new Timings("NCP/FASTBREAK")):null; - fastBreakPenalties = new ActionFrequency(cc.fastBreakBuckets, cc.fastBreakBucketDur); - frequencyBuckets = new ActionFrequency(cc.frequencyBuckets, cc.frequencyBucketDur); - wrongBlockVL = new ActionFrequency(6, 20000); - } - + super(cc); + setStats(); + fastBreakPenalties = new ActionFrequency(cc.fastBreakBuckets, cc.fastBreakBucketDur); + frequencyBuckets = new ActionFrequency(cc.frequencyBuckets, cc.frequencyBucketDur); + wrongBlockVL = new ActionFrequency(6, 20000); + } + + @Override + public void setDebug(boolean debug) { + super.setDebug(debug); + setStats(); + } + + private void setStats() { + if (getDebug()) { + if (stats == null) { + stats = new Timings("NCP/FASTBREAK"); + } + } else { + stats = null; + } + } + /** * Meant to record the first click/damage on a block (not subsequent clicking), forces internals update. * @param block @@ -115,7 +132,7 @@ public class BlockBreakData extends ACheckData { * @param mat */ public void setClickedBlock(Block block, int tick, long now, Material tool) { - fastBreakfirstDamage = now; + fastBreakfirstDamage = now; // Also set last clicked blocks position. clickedX = block.getX(); clickedY = block.getY(); @@ -123,27 +140,27 @@ public class BlockBreakData extends ACheckData { clickedTick = tick; clickedTool = tool == Material.AIR ? null : tool; } - + /** * Reset clicked block (as if not clicked anything before). */ public void resetClickedBlock() { - clickedX = Integer.MAX_VALUE; - clickedTick = 0; - fastBreakfirstDamage = 0; - clickedTool = null; + clickedX = Integer.MAX_VALUE; + clickedTick = 0; + fastBreakfirstDamage = 0; + clickedTool = null; } - + public boolean toolChanged(ItemStack stack) { - return toolChanged(stack == null ? null: stack.getType()); + return toolChanged(stack == null ? null: stack.getType()); } - + public boolean toolChanged(Material mat) { - if (mat == Material.AIR) { - return clickedTool != null; - } else { - return clickedTool != mat; - } + if (mat == Material.AIR) { + return clickedTool != null; + } else { + return clickedTool != mat; + } } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/FastBreak.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/FastBreak.java index 391cd6ba..5d7bdf2c 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/FastBreak.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/FastBreak.java @@ -103,7 +103,7 @@ public class FastBreak extends Check { data.fastBreakVL *= 0.9D; } - if ((cc.fastBreakDebug || cc.debug) && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { + if ((data.debug) && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { // General stats: if (data.stats != null) { data.stats.addStats(data.stats.getId(blockType+ "/u", true), elapsedTime); diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/WrongBlock.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/WrongBlock.java index 4341395d..d9ef1bd6 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/WrongBlock.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockbreak/WrongBlock.java @@ -59,7 +59,7 @@ public class WrongBlock extends Check { } if (wrongBlock) { - if ((cc.fastBreakDebug || cc.debug) && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { + if ((data.debug) && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { player.sendMessage("WrongBlock failure with dist: " + dist); } data.wrongBlockVL.add(now, (float) (dist + 1) / 2f); diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/BlockInteractData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/BlockInteractData.java index 05e77c2b..c95a4f1d 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/BlockInteractData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/BlockInteractData.java @@ -18,23 +18,23 @@ import fr.neatmonster.nocheatplus.utilities.TickTask; */ public class BlockInteractData extends ACheckData { - /** The factory creating data. */ - public static final CheckDataFactory factory = new CheckDataFactory() { - @Override - public final ICheckData getData(final Player player) { - return BlockInteractData.getData(player); - } + /** The factory creating data. */ + public static final CheckDataFactory factory = new CheckDataFactory() { + @Override + public final ICheckData getData(final Player player) { + return BlockInteractData.getData(player); + } - @Override - public ICheckData removeData(final String playerName) { - return BlockInteractData.removeData(playerName); - } + @Override + public ICheckData removeData(final String playerName) { + return BlockInteractData.removeData(playerName); + } - @Override - public void removeAllData() { - clear(); - } - }; + @Override + public void removeAllData() { + clear(); + } + }; /** The map containing the data per players. */ private static final Map playersMap = new HashMap(); @@ -48,24 +48,24 @@ public class BlockInteractData extends ACheckData { */ public static BlockInteractData getData(final Player player) { if (!playersMap.containsKey(player.getName())) - playersMap.put(player.getName(), new BlockInteractData()); + playersMap.put(player.getName(), new BlockInteractData(BlockInteractConfig.getConfig(player))); return playersMap.get(player.getName()); } public static ICheckData removeData(final String playerName) { - return playersMap.remove(playerName); - } - - public static void clear(){ - playersMap.clear(); + return playersMap.remove(playerName); } - // Violation levels. + public static void clear(){ + playersMap.clear(); + } + + // Violation levels. public double directionVL = 0; public double reachVL = 0; public double speedVL = 0; public double visibleVL = 0; - + // General data // Last block interacted with public int lastX = Integer.MAX_VALUE; @@ -77,33 +77,37 @@ public class BlockInteractData extends ACheckData { // Data of the reach check. public double reachDistance; - + /** Last reset time. */ public long speedTime = 0; /** Number of interactions since last reset-time. */ public int speedCount = 0; - + + public BlockInteractData(final BlockInteractConfig config) { + super(config); + } + /** * Last interacted block. * @param block */ - public void setLastBlock(Block block, Action action) { - lastX = block.getX(); - lastY = block.getY(); - lastZ = block.getZ(); - lastType = block.getType(); - if (lastType == Material.AIR) { - lastType = null; - } - lastTick = TickTask.getTick(); - lastAction = action; - } + public void setLastBlock(Block block, Action action) { + lastX = block.getX(); + lastY = block.getY(); + lastZ = block.getZ(); + lastType = block.getType(); + if (lastType == Material.AIR) { + lastType = null; + } + lastTick = TickTask.getTick(); + lastAction = action; + } + + public void resetLastBlock() { + lastTick = 0; + lastAction = null; + lastX = Integer.MAX_VALUE; + lastType = null; + } - public void resetLastBlock() { - lastTick = 0; - lastAction = null; - lastX = Integer.MAX_VALUE; - lastType = null; - } - } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Speed.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Speed.java index 96e00be9..d7775960 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Speed.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Speed.java @@ -42,7 +42,7 @@ public class Speed extends Check { data.speedVL *= 0.99; } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ player.sendMessage("Interact speed: " + data.speedCount); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Visible.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Visible.java index d76d00cb..b31f0575 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Visible.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockinteract/Visible.java @@ -91,7 +91,7 @@ public class Visible extends Check { blockCache.cleanup(); } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ // TODO: Tags player.sendMessage("Interact visible: " + (action == Action.RIGHT_CLICK_BLOCK ? "right" : "left") + " collide=" + rayTracing.collides()); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockplace/BlockPlaceData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockplace/BlockPlaceData.java index c3154083..d66c901a 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockplace/BlockPlaceData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/blockplace/BlockPlaceData.java @@ -15,23 +15,23 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency; */ public class BlockPlaceData extends ACheckData { - /** The factory creating data. */ - public static final CheckDataFactory factory = new CheckDataFactory() { - @Override - public final ICheckData getData(final Player player) { - return BlockPlaceData.getData(player); - } + /** The factory creating data. */ + public static final CheckDataFactory factory = new CheckDataFactory() { + @Override + public final ICheckData getData(final Player player) { + return BlockPlaceData.getData(player); + } - @Override - public ICheckData removeData(final String playerName) { - return BlockPlaceData.removeData(playerName); - } + @Override + public ICheckData removeData(final String playerName) { + return BlockPlaceData.removeData(playerName); + } - @Override - public void removeAllData() { - clear(); - } - }; + @Override + public void removeAllData() { + clear(); + } + }; /** The map containing the data per players. */ private static final Map playersMap = new HashMap(); @@ -45,32 +45,32 @@ public class BlockPlaceData extends ACheckData { */ public static BlockPlaceData getData(final Player player) { if (!playersMap.containsKey(player.getName())) - playersMap.put(player.getName(), new BlockPlaceData()); + playersMap.put(player.getName(), new BlockPlaceData(BlockPlaceConfig.getConfig(player))); return playersMap.get(player.getName()); } public static ICheckData removeData(final String playerName) { - return playersMap.remove(playerName); - } - - public static void clear(){ - playersMap.clear(); + return playersMap.remove(playerName); } - // Violation levels. + public static void clear(){ + playersMap.clear(); + } + + // Violation levels. public double againstVL = 0; - public double autoSignVL = 0; - public double directionVL = 0; - public double fastPlaceVL = 0; - public double noSwingVL = 0; - public double reachVL = 0; - public double speedVL = 0; - + public double autoSignVL = 0; + public double directionVL = 0; + public double fastPlaceVL = 0; + public double noSwingVL = 0; + public double reachVL = 0; + public double speedVL = 0; + // AutoSign. public long autoSignPlacedTime = 0; /** Using Material.SIGN . */ public long autoSignPlacedHash = 0; - + // Data of the fast place check. public final ActionFrequency fastPlaceBuckets = new ActionFrequency(2, 1000); public int fastPlaceShortTermTick = 0; @@ -85,4 +85,9 @@ public class BlockPlaceData extends ACheckData { // Data of the speed check; public boolean speedLastRefused; public long speedLastTime; + + public BlockPlaceData(final BlockPlaceConfig config) { + super (config); + } + } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/ChatData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/ChatData.java index 4772e533..67824e19 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/ChatData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/ChatData.java @@ -15,23 +15,23 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency; */ public class ChatData extends AsyncCheckData { - /** The factory creating data. */ - public static final CheckDataFactory factory = new CheckDataFactory() { - @Override - public final ICheckData getData(final Player player) { - return ChatData.getData(player); - } + /** The factory creating data. */ + public static final CheckDataFactory factory = new CheckDataFactory() { + @Override + public final ICheckData getData(final Player player) { + return ChatData.getData(player); + } - @Override - public ICheckData removeData(final String playerName) { - return ChatData.removeData(playerName); - } + @Override + public ICheckData removeData(final String playerName) { + return ChatData.removeData(playerName); + } - @Override - public void removeAllData() { - clear(); - } - }; + @Override + public void removeAllData() { + clear(); + } + }; /** The map containing the data per players. */ private static final Map playersMap = new HashMap(); @@ -45,50 +45,54 @@ public class ChatData extends AsyncCheckData { */ public static synchronized ChatData getData(final Player player) { if (!playersMap.containsKey(player.getName())) - playersMap.put(player.getName(), new ChatData()); + playersMap.put(player.getName(), new ChatData(ChatConfig.getConfig(player))); return playersMap.get(player.getName()); } public static synchronized ICheckData removeData(final String playerName) { - return playersMap.remove(playerName); - } - - public static synchronized void clear(){ - playersMap.clear(); + return playersMap.remove(playerName); } - // Violation levels. + public static synchronized void clear(){ + playersMap.clear(); + } + + // Violation levels. public double captchaVL; public double colorVL; public double commandsVL; public double textVL; public double relogVL; - + // Captcha data. public int captchTries; public String captchaGenerated; public boolean captchaStarted; - + /// Commands data. public final ActionFrequency commandsWeights = new ActionFrequency(5, 1000); public long commandsShortTermTick; public double commandsShortTermWeight; - + // Data of the text check. public final ActionFrequency chatFrequency = new ActionFrequency(10, 3000); public final ActionFrequency chatShortTermFrequency = new ActionFrequency(6, 500); - - + + // Data of the no pwnage check. public String chatLastMessage; public long chatLastTime; public long chatWarningTime; - - + + public int relogWarnings; public long relogWarningTime; + public ChatData(final ChatConfig config) { + super(config); + } + /** * Clear the data of the no pwnage check. */ diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/Text.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/Text.java index 62d9b389..0b6a75ab 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/Text.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/chat/Text.java @@ -115,7 +115,7 @@ public class Text extends Check implements INotifyReload { boolean cancel = false; - boolean debug = cc.textDebug || cc.debug; + boolean debug = data.debug; final List debugParts; if (debug) { diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/BedLeave.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/BedLeave.java index f823b9f6..fa57fe3b 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/BedLeave.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/BedLeave.java @@ -4,7 +4,6 @@ import org.bukkit.entity.Player; import fr.neatmonster.nocheatplus.checks.Check; import fr.neatmonster.nocheatplus.checks.CheckType; -import fr.neatmonster.nocheatplus.compat.AlmostBoolean; public class BedLeave extends Check { diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/CombinedData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/CombinedData.java index 504f4d67..843b0f81 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/CombinedData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/combined/CombinedData.java @@ -8,83 +8,81 @@ import org.bukkit.entity.Player; import fr.neatmonster.nocheatplus.checks.access.ACheckData; import fr.neatmonster.nocheatplus.checks.access.CheckDataFactory; import fr.neatmonster.nocheatplus.checks.access.ICheckData; -import fr.neatmonster.nocheatplus.compat.AlmostBoolean; import fr.neatmonster.nocheatplus.utilities.ActionFrequency; import fr.neatmonster.nocheatplus.utilities.PenaltyTime; public class CombinedData extends ACheckData { - - /** The factory creating data. */ - public static final CheckDataFactory factory = new CheckDataFactory() { - @Override - public final ICheckData getData(final Player player) { - return CombinedData.getData(player); - } - @Override - public ICheckData removeData(final String playerName) { - return CombinedData.removeData(playerName); - } + /** The factory creating data. */ + public static final CheckDataFactory factory = new CheckDataFactory() { + @Override + public final ICheckData getData(final Player player) { + return CombinedData.getData(player); + } + + @Override + public ICheckData removeData(final String playerName) { + return CombinedData.removeData(playerName); + } + + @Override + public void removeAllData() { + clear(); + } + }; - @Override - public void removeAllData() { - clear(); - } - }; - private static final Map playersMap = new HashMap(); - public static CombinedData getData(final Player player) { - final String playerName = player.getName(); - CombinedData data = playersMap.get(playerName); - if (data == null){ - data = new CombinedData(player); - playersMap.put(playerName, data); - } - return data; - } - - public static ICheckData removeData(final String playerName) { - return playersMap.remove(playerName); - } - + public static CombinedData getData(final Player player) { + final String playerName = player.getName(); + CombinedData data = playersMap.get(playerName); + if (data == null){ + data = new CombinedData(CombinedConfig.getConfig(player)); + playersMap.put(playerName, data); + } + return data; + } + + public static ICheckData removeData(final String playerName) { + return playersMap.remove(playerName); + } + public static void clear(){ - playersMap.clear(); + playersMap.clear(); } // VLs - public double bedLeaveVL = 0; - public double improbableVL = 0; - public double munchHausenVL = 0; - - // Invulnerable management: + public double bedLeaveVL = 0; + public double improbableVL = 0; + public double munchHausenVL = 0; + + // Invulnerable management: /** This is the tick from which on the player is vulnerable again. */ public int invulnerableTick = Integer.MIN_VALUE; - + // Yawrate check. - public float lastYaw; - public long lastYawTime; - public float sumYaw; - public final ActionFrequency yawFreq = new ActionFrequency(3, 333); + public float lastYaw; + public long lastYawTime; + public float sumYaw; + public final ActionFrequency yawFreq = new ActionFrequency(3, 333); - // General penalty time. Used for fighting mainly, but not only close combat (!), set by yawrate check. - public final PenaltyTime timeFreeze = new PenaltyTime(); - - // Bedleave check - public boolean wasInBed = false; - - // Improbable check - public final ActionFrequency improbableCount = new ActionFrequency(20, 3000); + // General penalty time. Used for fighting mainly, but not only close combat (!), set by yawrate check. + public final PenaltyTime timeFreeze = new PenaltyTime(); - // General data - public String lastWorld = ""; - public long lastJoinTime; - public long lastLogoutTime; - public long lastMoveTime; - - public CombinedData(final Player player){ -// final CombinedConfig cc = CombinedConfig.getConfig(player); - // TODO: Get some things from the config. - } + // Bedleave check + public boolean wasInBed = false; + + // Improbable check + public final ActionFrequency improbableCount = new ActionFrequency(20, 3000); + + // General data + public String lastWorld = ""; + public long lastJoinTime; + public long lastLogoutTime; + public long lastMoveTime; + + public CombinedData(final CombinedConfig config){ + super(config); + } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Critical.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Critical.java index f2a625ab..65b63d44 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Critical.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Critical.java @@ -43,7 +43,7 @@ public class Critical extends Check { final double mcFallDistance = (double) player.getFallDistance(); final MovingConfig mCc = MovingConfig.getConfig(player); // TODO: All debugging to the trace (later allow hooking your own trace). - if (mcFallDistance > 0.0 && cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { + if (mcFallDistance > 0.0 && data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { final MovingData mData = MovingData.getData(player); if (MovingListener.shouldCheckSurvivalFly(player, mData, mCc) && CheckType.MOVING_NOFALL.isEnabled(player)) { diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FastHeal.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FastHeal.java index a610f4cc..052bd73f 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FastHeal.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FastHeal.java @@ -46,7 +46,7 @@ public class FastHeal extends Check { } } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ player.sendMessage("Regain health(SATIATED): " + (time - data.fastHealRefTime) + " ms "+ "(buffer=" + data.fastHealBuffer + ")" +" , cancel=" + cancel); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java index 04f3371f..99c4406f 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java @@ -192,10 +192,11 @@ public class FightData extends ACheckData { public int lastExplosionEntityId = Integer.MAX_VALUE; - public FightData(final FightConfig cc){ - speedBuckets = new ActionFrequency(cc.speedBuckets, cc.speedBucketDur); + public FightData(final FightConfig config){ + super(config); + speedBuckets = new ActionFrequency(config.speedBuckets, config.speedBucketDur); // Start with full fast-heal buffer. - fastHealBuffer = cc.fastHealBuffer; + fastHealBuffer = config.fastHealBuffer; } public void onWorldChange() { diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java index fc2e27ae..ce5118be 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java @@ -158,7 +158,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ // damagedPlayer.getLocation(useLoc2); // } // Log. - if (cc.debug && damagedPlayer.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && damagedPlayer.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ damagedPlayer.sendMessage("Attacked by " + player.getName() + ": inv=" + mcAccess.getInvulnerableTicks(damagedPlayer) + " ndt=" + damagedPlayer.getNoDamageTicks()); } // Check for self hit exploits (mind that projectiles are excluded from this.) @@ -266,7 +266,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ } // Angle check. if (angle.check(player, worldChanged, data, cc)) { - if (!cancelled && cc.debug) { + if (!cancelled && data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " fight.angle cancel without yawrate cancel."); } cancelled = true; @@ -298,7 +298,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ // Judge as "lost sprint" problem. // TODO: What would mData.lostSprintCount > 0 mean here? mData.lostSprintCount = 7; - if ((cc.debug || mc.debug) && BuildParameters.debugLevel > 0){ + if ((data.debug || mc.debug) && BuildParameters.debugLevel > 0){ NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " (lostsprint) hDist to last from: " + hDist + " | targetdist=" + TrigUtil.distance(loc.getX(), loc.getZ(), damagedLoc.getX(), damagedLoc.getZ()) + " | sprinting=" + player.isSprinting() + " | food=" + player.getFoodLevel() +" | hbuf=" + mData.sfHorizontalBuffer); } } @@ -310,7 +310,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ // (Cancel after sprinting hacks, because of potential fp). if (!cancelled && data.attackPenalty.isPenalty(now)) { cancelled = true; - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " ~ attack penalty."); } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Reach.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Reach.java index 9e4e1acb..2e3c9b38 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Reach.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Reach.java @@ -128,7 +128,7 @@ public class Reach extends Check { data.reachMod = Math.min(1.0, data.reachMod + DYNAMIC_STEP); } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ player.sendMessage("NC+: Attack/reach " + damaged.getType()+ " height="+ StringUtil.fdec3.format(height) + " dist=" + StringUtil.fdec3.format(lenpRel) +" @" + StringUtil.fdec3.format(reachMod)); } @@ -263,7 +263,7 @@ public class Reach extends Check { data.reachMod = Math.min(1.0, data.reachMod + DYNAMIC_STEP); } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ player.sendMessage("NC+: Attack/reach " + damaged.getType()+ " height="+ StringUtil.fdec3.format(context.damagedHeight) + " dist=" + StringUtil.fdec3.format(lenpRel) +" @" + StringUtil.fdec3.format(data.reachMod)); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/FastClick.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/FastClick.java index d484d9cc..87e5e3c8 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/FastClick.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/FastClick.java @@ -131,7 +131,7 @@ public class FastClick extends Check { cancel = executeActions(vd); } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){ player.sendMessage("FastClick: " + data.fastClickFreq.bucketScore(0) + " | " + data.fastClickFreq.score(1f) + " | cursor=" + cursor + " | clicked=" + clicked); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InstantBow.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InstantBow.java index b270d3de..f4b42f4c 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InstantBow.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InstantBow.java @@ -78,7 +78,7 @@ public class InstantBow extends Check { } } - if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { + if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) { player.sendMessage(ChatColor.YELLOW + "NCP: " + ChatColor.GRAY + "Bow shot - force: " + force +", " + (cc.instantBowStrict || pullDuration < 2 * expectedPullDuration ? ("pull time: " + pullDuration) : "") + "(" + expectedPullDuration +")"); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InventoryData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InventoryData.java index 25f67678..376cc275 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InventoryData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/inventory/InventoryData.java @@ -16,23 +16,23 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency; */ public class InventoryData extends ACheckData { - /** The factory creating data. */ - public static final CheckDataFactory factory = new CheckDataFactory() { - @Override - public final ICheckData getData(final Player player) { - return InventoryData.getData(player); - } + /** The factory creating data. */ + public static final CheckDataFactory factory = new CheckDataFactory() { + @Override + public final ICheckData getData(final Player player) { + return InventoryData.getData(player); + } - @Override - public ICheckData removeData(final String playerName) { - return InventoryData.removeData(playerName); - } + @Override + public ICheckData removeData(final String playerName) { + return InventoryData.removeData(playerName); + } - @Override - public void removeAllData() { - clear(); - } - }; + @Override + public void removeAllData() { + clear(); + } + }; /** The map containing the data per players. */ private static final Map playersMap = new HashMap(); @@ -46,24 +46,24 @@ public class InventoryData extends ACheckData { */ public static InventoryData getData(final Player player) { if (!playersMap.containsKey(player.getName())) - playersMap.put(player.getName(), new InventoryData()); + playersMap.put(player.getName(), new InventoryData(InventoryConfig.getConfig(player))); return playersMap.get(player.getName()); } public static ICheckData removeData(final String playerName) { - return playersMap.remove(playerName); - } - - public static void clear(){ - playersMap.clear(); + return playersMap.remove(playerName); } - // Violation levels. + public static void clear(){ + playersMap.clear(); + } + + // Violation levels. public double dropVL; public double fastClickVL; public double instantBowVL; public double instantEatVL; - + // General. public long lastClickTime = 0; @@ -72,14 +72,14 @@ public class InventoryData extends ACheckData { public long dropLastTime; // Data of the fast click check. -// public boolean fastClickLastCancelled; + // public boolean fastClickLastCancelled; public final ActionFrequency fastClickFreq = new ActionFrequency(5, 200L); - public Material fastClickLastCursor = null; - public Material fastClickLastClicked = null; - public int fastClickLastCursorAmount = 0; + public Material fastClickLastCursor = null; + public Material fastClickLastClicked = null; + public int fastClickLastCursorAmount = 0; // Data of the instant bow check. - /** Last time right click interact on bow. A value of 0 means 'invalid'.*/ + /** Last time right click interact on bow. A value of 0 means 'invalid'.*/ public long instantBowInteract = 0; public long instantBowShoot; @@ -87,4 +87,8 @@ public class InventoryData extends ACheckData { public Material instantEatFood; public long instantEatInteract; + public InventoryData(final InventoryConfig config) { + super(config); + } + } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePackets.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePackets.java index faec8c72..d9c692da 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePackets.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePackets.java @@ -77,7 +77,7 @@ public class MorePackets extends Check { // Violation handling. final ViolationData vd = new ViolationData(this, player, data.morePacketsVL, violation, cc.morePacketsActions); - if (cc.debug || vd.needsParameters()) { + if (data.debug || vd.needsParameters()) { vd.setParameter(ParameterName.PACKETS, Integer.toString(new Double(violation).intValue())); vd.setParameter(ParameterName.TAGS, StringUtil.join(tags, "+")); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePacketsVehicle.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePacketsVehicle.java index b80178b1..b2f23ce1 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePacketsVehicle.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MorePacketsVehicle.java @@ -75,7 +75,7 @@ public class MorePacketsVehicle extends Check { // Execute whatever actions are associated with this check and the violation level and find out if we should // cancel the event. final ViolationData vd = new ViolationData(this, player, data.morePacketsVehicleVL, -data.morePacketsVehicleBuffer, cc.morePacketsVehicleActions); - if (cc.debug || vd.needsParameters()) { + if (data.debug || vd.needsParameters()) { vd.setParameter(ParameterName.PACKETS, Integer.toString(-data.morePacketsVehicleBuffer)); } if (executeActions(vd)){ diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java index 9178f347..a124c371 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java @@ -20,13 +20,13 @@ import fr.neatmonster.nocheatplus.permissions.Permissions; */ public class MovingConfig extends ACheckConfig { - /** The factory creating configurations. */ - public static final CheckConfigFactory factory = new CheckConfigFactory() { - @Override - public final ICheckConfig getConfig(final Player player) { - return MovingConfig.getConfig(player); - } - }; + /** The factory creating configurations. */ + public static final CheckConfigFactory factory = new CheckConfigFactory() { + @Override + public final ICheckConfig getConfig(final Player player) { + return MovingConfig.getConfig(player); + } + }; /** The map containing the configurations per world. */ private static final Map worldsMap = new HashMap(); @@ -49,26 +49,26 @@ public class MovingConfig extends ACheckConfig { public static MovingConfig getConfig(final Player player) { return getConfig(player.getWorld().getName()); } - + /** * Get a per-world config. * @param worldName Exact case world name. * @return */ public static MovingConfig getConfig(final String worldName) { - final MovingConfig cc = worldsMap.get(worldName); + final MovingConfig cc = worldsMap.get(worldName); if (cc != null){ - return cc; + return cc; } final MovingConfig ccNew = new MovingConfig(ConfigManager.getConfigFile(worldName)); worldsMap.put(worldName, ccNew); return ccNew; } - - public final boolean ignoreCreative; - public final boolean ignoreAllowFlight; - + + public final boolean ignoreCreative; + public final boolean ignoreAllowFlight; + public final boolean creativeFlyCheck; public final int creativeFlyHorizontalSpeed; public final int creativeFlyMaxHeight; @@ -80,6 +80,7 @@ public class MovingConfig extends ACheckConfig { public final float morePacketsEPSIdeal; /** The maximum number of packets per second that we accept. */ public final float morePacketsEPSMax; + public final int morePacketsEPSBuckets; public final float morePacketsBurstPackets; public final double morePacketsBurstDirect; public final double morePacketsBurstEPM; @@ -92,20 +93,20 @@ public class MovingConfig extends ACheckConfig { /** Deal damage instead of Minecraft, whenever a player is judged to be on ground. */ public final boolean noFallDealDamage; /** Reset data on violation, i.e. a player taking fall damage without being on ground. */ - public final boolean noFallViolationReset; - /** Reset data on tp. */ - public final boolean noFallTpReset; - /** Reset if in vehicle. */ - public final boolean noFallVehicleReset; + public final boolean noFallViolationReset; + /** Reset data on tp. */ + public final boolean noFallTpReset; + /** Reset if in vehicle. */ + public final boolean noFallVehicleReset; /** Reset fd to 0 if on ground (dealdamage only). */ - public final boolean noFallAntiCriticals; + public final boolean noFallAntiCriticals; public final ActionList noFallActions; - - public final boolean passableCheck; - public final boolean passableRayTracingCheck; - public final boolean passableRayTracingBlockChangeOnly; - // TODO: passableAccuracy: also use if not using ray-tracing - public final ActionList passableActions; + + public final boolean passableCheck; + public final boolean passableRayTracingCheck; + public final boolean passableRayTracingBlockChangeOnly; + // TODO: passableAccuracy: also use if not using ray-tracing + public final ActionList passableActions; public final boolean survivalFlyCheck; public final int survivalFlyBlockingSpeed; @@ -120,39 +121,39 @@ public class MovingConfig extends ACheckConfig { public final boolean sfFallDamage; public final long survivalFlyVLFreeze; public final ActionList survivalFlyActions; - - public final boolean sfHoverCheck; - public final int sfHoverTicks; - public final int sfHoverLoginTicks; - public final boolean sfHoverFallDamage; - public final double sfHoverViolation; - + + public final boolean sfHoverCheck; + public final int sfHoverTicks; + public final int sfHoverLoginTicks; + public final boolean sfHoverFallDamage; + public final double sfHoverViolation; + // Special tolerance values: - /** This is not strictly ticks, but packets, for now.*/ - public final int velocityGraceTicks; - public final int velocityActivationCounter; - public final int velocityActivationTicks; - public final boolean velocityStrictInvalidation; + /** This is not strictly ticks, but packets, for now.*/ + public final int velocityGraceTicks; + public final int velocityActivationCounter; + public final int velocityActivationTicks; + public final boolean velocityStrictInvalidation; public final double noFallyOnGround; public final double yOnGround; - public final double yStep; - - // General things. - public final boolean tempKickIllegal; - public final boolean loadChunksOnJoin; - public final long sprintingGrace; - public final boolean assumeSprint; - public final int speedGrace; - public final boolean enforceLocation; - - // Vehicles - public final boolean vehicleEnforceLocation; - public final boolean vehiclePreventDestroyOwn; - - // Trace - public final int traceSize; - public final double traceMergeDist; - + public final double yStep; + + // General things. + public final boolean tempKickIllegal; + public final boolean loadChunksOnJoin; + public final long sprintingGrace; + public final boolean assumeSprint; + public final int speedGrace; + public final boolean enforceLocation; + + // Vehicles + public final boolean vehicleEnforceLocation; + public final boolean vehiclePreventDestroyOwn; + + // Trace + public final int traceSize; + public final double traceMergeDist; + /** * Instantiates a new moving configuration. @@ -162,10 +163,10 @@ public class MovingConfig extends ACheckConfig { */ public MovingConfig(final ConfigFile config) { super(config, ConfPaths.MOVING); - - ignoreCreative = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE); - ignoreAllowFlight = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT); - + + ignoreCreative = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE); + ignoreAllowFlight = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT); + creativeFlyCheck = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_CHECK); creativeFlyHorizontalSpeed = config.getInt(ConfPaths.MOVING_CREATIVEFLY_HORIZONTALSPEED); creativeFlyMaxHeight = config.getInt(ConfPaths.MOVING_CREATIVEFLY_MAXHEIGHT); @@ -175,6 +176,7 @@ public class MovingConfig extends ACheckConfig { morePacketsCheck = config.getBoolean(ConfPaths.MOVING_MOREPACKETS_CHECK); morePacketsEPSIdeal = config.getInt(ConfPaths.MOVING_MOREPACKETS_EPSIDEAL); morePacketsEPSMax = Math.max(morePacketsEPSIdeal, config.getInt(ConfPaths.MOVING_MOREPACKETS_EPSMAX)); + morePacketsEPSBuckets = 2 * Math.max(1, Math.min(60, config.getInt(ConfPaths.MOVING_MOREPACKETS_SECONDS))); morePacketsBurstPackets = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_EPM); morePacketsBurstDirect = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_DIRECT); morePacketsBurstEPM = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_EPM); @@ -191,10 +193,10 @@ public class MovingConfig extends ACheckConfig { noFallVehicleReset = config.getBoolean(ConfPaths.MOVING_NOFALL_RESETONVEHICLE); noFallAntiCriticals = config.getBoolean(ConfPaths.MOVING_NOFALL_ANTICRITICALS); noFallActions = config.getOptimizedActionList(ConfPaths.MOVING_NOFALL_ACTIONS, Permissions.MOVING_NOFALL); - + passableCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_CHECK); - passableRayTracingCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_CHECK); - passableRayTracingBlockChangeOnly = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY); + passableRayTracingCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_CHECK); + passableRayTracingBlockChangeOnly = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY); passableActions = config.getOptimizedActionList(ConfPaths.MOVING_PASSABLE_ACTIONS, Permissions.MOVING_PASSABLE); survivalFlyCheck = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_CHECK); @@ -211,13 +213,13 @@ public class MovingConfig extends ACheckConfig { sfFallDamage = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_FALLDAMAGE); survivalFlyVLFreeze = config.getLong(ConfPaths.MOVING_SURVIVALFLY_VLFREEZE, 2000L); survivalFlyActions = config.getOptimizedActionList(ConfPaths.MOVING_SURVIVALFLY_ACTIONS, Permissions.MOVING_SURVIVALFLY); - + sfHoverCheck = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_HOVER_CHECK); sfHoverTicks = config.getInt(ConfPaths.MOVING_SURVIVALFLY_HOVER_TICKS); sfHoverLoginTicks = Math.max(0, config.getInt(ConfPaths.MOVING_SURVIVALFLY_HOVER_LOGINTICKS)); sfHoverFallDamage = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_HOVER_FALLDAMAGE); sfHoverViolation = config.getDouble(ConfPaths.MOVING_SURVIVALFLY_HOVER_SFVIOLATION); - + velocityGraceTicks = config.getInt(ConfPaths.MOVING_VELOCITY_GRACETICKS); velocityActivationCounter = config.getInt(ConfPaths.MOVING_VELOCITY_ACTIVATIONCOUNTER); velocityActivationTicks = config.getInt(ConfPaths.MOVING_VELOCITY_ACTIVATIONTICKS); @@ -226,22 +228,22 @@ public class MovingConfig extends ACheckConfig { noFallyOnGround = config.getDouble(ConfPaths.MOVING_NOFALL_YONGROUND, 0.001, 2.0, yOnGround); // ystep is set to 0.45 by default, for stairs / steps. yStep = config.getDouble(ConfPaths.MOVING_SURVIVALFLY_YSTEP, 0.001, 0.45, 0.1); - + tempKickIllegal = config.getBoolean(ConfPaths.MOVING_TEMPKICKILLEGAL); loadChunksOnJoin = config.getBoolean(ConfPaths.MOVING_LOADCHUNKS_JOIN); sprintingGrace = Math.max(0L, (long) (config.getDouble(ConfPaths.MOVING_SPRINTINGGRACE) * 1000.0)); // Config: seconds. assumeSprint = config.getBoolean(ConfPaths.MOVING_ASSUMESPRINT); speedGrace = Math.max(0, (int) Math.round(config.getDouble(ConfPaths.MOVING_SPEEDGRACE) * 20.0)); // Config: seconds enforceLocation = config.getBoolean(ConfPaths.MOVING_ENFORCELOCATION); - + vehicleEnforceLocation = config.getBoolean(ConfPaths.MOVING_VEHICLES_ENFORCELOCATION); vehiclePreventDestroyOwn = config.getBoolean(ConfPaths.MOVING_VEHICLES_PREVENTDESTROYOWN); - + traceSize = config.getInt(ConfPaths.MOVING_TRACE_SIZE); traceMergeDist = config.getDouble(ConfPaths.MOVING_TRACE_MERGEDIST); - + } - + /* (non-Javadoc) @@ -255,7 +257,7 @@ public class MovingConfig extends ACheckConfig { case MOVING_SURVIVALFLY: return survivalFlyCheck; case MOVING_PASSABLE: - return passableCheck; + return passableCheck; case MOVING_MOREPACKETS: return morePacketsCheck; case MOVING_MOREPACKETSVEHICLE: diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingData.java index c2c3c963..377ca7f5 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingData.java @@ -10,9 +10,6 @@ import org.bukkit.entity.Player; import fr.neatmonster.nocheatplus.checks.access.ACheckData; import fr.neatmonster.nocheatplus.checks.access.CheckDataFactory; import fr.neatmonster.nocheatplus.checks.access.ICheckData; -import fr.neatmonster.nocheatplus.config.ConfPaths; -import fr.neatmonster.nocheatplus.config.ConfigFile; -import fr.neatmonster.nocheatplus.config.ConfigManager; import fr.neatmonster.nocheatplus.utilities.ActionAccumulator; import fr.neatmonster.nocheatplus.utilities.ActionFrequency; import fr.neatmonster.nocheatplus.utilities.PlayerLocation; @@ -61,7 +58,7 @@ public class MovingData extends ACheckData { // Note that the trace might be null after just calling this. MovingData data = playersMap.get(player.getName()); if (data == null) { - data = new MovingData(ConfigManager.getConfigFile(player.getWorld().getName())); + data = new MovingData(MovingConfig.getConfig(player)); playersMap.put(player.getName(), data); } return data; @@ -209,10 +206,9 @@ public class MovingData extends ACheckData { public boolean wasInVehicle = false; public MoveConsistency vehicleConsistency = MoveConsistency.INCONSISTENT; - public MovingData(final ConfigFile config) { - // TODO: Parameters from cc. - final int nob = 2 * Math.max(1, Math.min(60, config.getInt(ConfPaths.MOVING_MOREPACKETS_SECONDS))); - morePacketsFreq = new ActionFrequency(nob, 500); + public MovingData(final MovingConfig config) { + super(config); + morePacketsFreq = new ActionFrequency(config.morePacketsEPSBuckets, 500); morePacketsBurstFreq = new ActionFrequency(12, 5000); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java index 8657ccd1..276cc56f 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java @@ -447,7 +447,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo data.noFallAssumeGround = false; data.resetTeleported(); // Debug. - if (cc.debug) { + if (data.debug) { DebugUtil.outputMoveDebug(player, moveInfo.from, moveInfo.to, Math.max(cc.noFallyOnGround, cc.yOnGround), mcAccess); } // Check for illegal move and bounding box etc. @@ -694,7 +694,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo event.setTo(newTo); // Debug. - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " set back to: " + newTo.getWorld() + StringUtil.fdec3.format(newTo.getX()) + ", " + StringUtil.fdec3.format(newTo.getY()) + ", " + StringUtil.fdec3.format(newTo.getZ())); } } @@ -747,7 +747,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo * @param cc */ private void onVehicleLeaveMiss(final Player player, final MovingData data, final MovingConfig cc) { - if (cc.debug) { + if (data.debug) { StaticLog.logWarning("[NoCheatPlus] VehicleExitEvent missing for: " + player.getName()); } onPlayerVehicleLeave(player, null); @@ -981,7 +981,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo data.sfHoverTicks = -1; // Important against concurrent modification exception. } - if (cc.debug && BuildParameters.debugLevel > 0) { + if (data.debug && BuildParameters.debugLevel > 0) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " TP" + (smallRange ? " (small-range)" : "") + (cancel ? " (cancelled)" : "") + ": " + to); } } @@ -989,7 +989,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo // Cancelled, not a set back, ignore it, basically. // Better reset teleported (compatibility). Might have drawbacks. data.resetTeleported(); - if (cc.debug && BuildParameters.debugLevel > 0) { + if (data.debug && BuildParameters.debugLevel > 0) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " TP (cancelled): " + to); } return; @@ -1028,7 +1028,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo final Vector velocity = event.getVelocity(); - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, event.getPlayer().getName() + " new velocity: " + velocity); } @@ -1128,7 +1128,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo data.clearNoFallData(); } - if (cc.debug) { + if (data.debug) { // Log move. DebugUtil.outputDebugVehicleMove(player, vehicle, from, to, fake); } @@ -1149,7 +1149,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo // TODO: Might log debug if skipping. // TODO: Problem: scheduling allows a lot of things to happen until the task is run. Thus control about some things might be necessary. // TODO: Reset on world changes or not? - data.morePacketsVehicleTaskId = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new VehicleSetBack(vehicle, player, newTo, cc.debug)); + data.morePacketsVehicleTaskId = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new VehicleSetBack(vehicle, player, newTo, data.debug)); } useLoc.setWorld(null); } @@ -1213,7 +1213,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo final float fallDistance = player.getFallDistance(); final double damage = BridgeHealth.getDamage(event); final float yDiff = (float) (data.noFallMaxY - loc.getY()); - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " damage(FALL): " + damage + " / dist=" + player.getFallDistance() + " nf=" + data.noFallFallDistance + " yDiff=" + yDiff); } // Fall-back check. @@ -1221,7 +1221,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo if (maxD > damage) { // TODO: respect dealDamage ? BridgeHealth.setDamage(event, maxD); - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Adjust fall damage to: " + maxD); } } @@ -1286,7 +1286,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo // Check loaded chunks. if (cc.loadChunksOnJoin) { final int loaded = BlockCache.ensureChunksLoaded(loc.getWorld(), loc.getX(), loc.getZ(), 3.0); - if (loaded > 0 && cc.debug && BuildParameters.debugLevel > 0) { + if (loaded > 0 && data.debug && BuildParameters.debugLevel > 0) { // DEBUG StaticLog.logInfo("[NoCheatPlus] Player join: Loaded " + loaded + " chunk" + (loaded == 1 ? "" : "s") + " for the world " + loc.getWorld().getName() + " for player: " + player.getName()); } @@ -1354,11 +1354,10 @@ public class MovingListener extends CheckListener implements TickListener, IRemo @Override public void playerLeaves(final Player player) { - final MovingConfig cc = MovingConfig.getConfig(player); final MovingData data = MovingData.getData(player); final Location loc = player.getLocation(useLoc); // Debug logout. - if (cc.debug) { + if (data.debug) { StaticLog.logInfo("[NoCheatPlus] Player " + player.getName() + " leaves at location: " + loc.toString()); } if (!player.isSleeping() && !player.isDead()) { @@ -1487,7 +1486,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo } } - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " vehicle leave: " + vehicle.getType() + "@" + pLoc.distance(vLoc)); } } @@ -1497,7 +1496,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo loc.setY(Location.locToBlock(loc.getY()) + 1.25); } - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " vehicle leave: " + pLoc.toString() + (pLoc.equals(loc) ? "" : " / player at: " + pLoc.toString())); } data.resetPositions(loc); @@ -1642,7 +1641,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo final boolean res; // TODO: Collect flags, more margin ? final int loaded = info.from.ensureChunksLoaded(); - if (loaded > 0 && cc.debug && BuildParameters.debugLevel > 0) { + if (loaded > 0 && data.debug && BuildParameters.debugLevel > 0) { // DEBUG StaticLog.logInfo("[NoCheatPlus] Hover check: Needed to load " + loaded + " chunk" + (loaded == 1 ? "" : "s") + " for the world " + loc.getWorld().getName() + " around " + loc.getBlockX() + "," + loc.getBlockZ() + " in order to check player: " + player.getName()); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/NoFall.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/NoFall.java index 8d722965..6baba6d7 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/NoFall.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/NoFall.java @@ -53,7 +53,7 @@ public class NoFall extends Check { if (maxD >= 1.0){ // Damage to be dealt. // TODO: more effects like sounds, maybe use custom event with violation added. - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " NoFall deal damage" + (reallyOnGround ? "" : "violation") + ": " + maxD); } // TODO: might not be necessary: if (mcPlayer.invulnerableTicks <= 0) [no damage event for resetting] @@ -173,7 +173,7 @@ public class NoFall extends Check { else if (cc.noFallAntiCriticals && (toReset || toOnGround || (fromReset || fromOnGround || data.noFallAssumeGround) && yDiff >= 0)){ final double max = Math.max(data.noFallFallDistance, mcFallDistance); if (max > 0.0 && max < 0.75){ // (Ensure this does not conflict with deal-damage set to false.) - if (cc.debug){ + if (data.debug){ NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " NoFall: Reset fall distance (anticriticals): mc=" + mcFallDistance +" / nf=" + data.noFallFallDistance); } if (data.noFallFallDistance > 0){ @@ -185,7 +185,7 @@ public class NoFall extends Check { } } - if (cc.debug){ + if (data.debug){ NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " NoFall: mc=" + mcFallDistance +" / nf=" + data.noFallFallDistance + (oldNFDist < data.noFallFallDistance ? " (+" + (data.noFallFallDistance - oldNFDist) + ")" : "") + " | ymax=" + data.noFallMaxY); } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/Passable.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/Passable.java index 24e24303..201d3a53 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/Passable.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/Passable.java @@ -57,7 +57,7 @@ public class Passable extends Check { toPassable = false; tags = "raytracing_2x_"; } - else if (cc.debug) { + else if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " passable: allow moving out of a block."); } } @@ -148,10 +148,10 @@ public class Passable extends Check { if (BlockProperties.isPassable(from.getBlockCache(), ref) || loc == null || TrigUtil.distance(from, loc) > 0.13) { // if (BlockProperties.isPassableExact(from.getBlockCache(), ref)) { loc = ref; - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Using set-back location for passable."); } - } else if (cc.debug) { + } else if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Ignoring set-back for passable."); } } @@ -161,7 +161,7 @@ public class Passable extends Check { // Return the reset position. data.passableVL += 1d; final ViolationData vd = new ViolationData(this, player, data.passableVL, 1, cc.passableActions); - if (cc.debug || vd.needsParameters()) { + if (data.debug || vd.needsParameters()) { vd.setParameter(ParameterName.LOCATION_FROM, String.format(Locale.US, "%.2f, %.2f, %.2f", from.getX(), from.getY(), from.getZ())); vd.setParameter(ParameterName.LOCATION_TO, String.format(Locale.US, "%.2f, %.2f, %.2f", to.getX(), to.getY(), to.getZ())); vd.setParameter(ParameterName.DISTANCE, String.format(Locale.US, "%.2f", TrigUtil.distance(from, to))); @@ -179,7 +179,7 @@ public class Passable extends Check { newTo = LocUtil.clone(loc); } else { newTo = from.getLocation(); - if (cc.debug) { + if (data.debug) { NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Using from location for passable."); } } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java index 3dfaa88f..9fb87b08 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java @@ -261,7 +261,7 @@ public class SurvivalFly extends Check { vDistanceAboveLimit = res[1]; if (res[0] == Double.MIN_VALUE && res[1] == Double.MIN_VALUE) { // Silent set-back. - if (cc.debug) { + if (data.debug) { tags.add("silentsbcobweb"); outputDebug(player, to, data, cc, hDistance, hAllowedDistance, hFreedom, yDistance, vAllowedDistance, fromOnGround, resetFrom, toOnGround, resetTo); } @@ -357,7 +357,7 @@ public class SurvivalFly extends Check { // TODO: on ground -> on ground improvements // Debug output. - if (cc.debug) { + if (data.debug) { outputDebug(player, to, data, cc, hDistance, hAllowedDistance, hFreedom, yDistance, vAllowedDistance, fromOnGround, resetFrom, toOnGround, resetTo); } @@ -522,6 +522,7 @@ public class SurvivalFly extends Check { // TODO: too many false positives with just checking from ? // TODO: Sneaking and blocking applies to when in water ! hAllowedDistance = modSwim * walkSpeed * cc.survivalFlySwimmingSpeed / 100D; + // TODO: Depth strider. } else if (!sfDirty && player.isSneaking() && reallySneaking.contains(player.getName()) && (!checkPermissions || !player.hasPermission(Permissions.MOVING_SURVIVALFLY_SNEAKING))) { hAllowedDistance = modSneak * walkSpeed * cc.survivalFlySneakingSpeed / 100D; } @@ -545,8 +546,10 @@ public class SurvivalFly extends Check { } // Short cut. - // TODO: Check if a) early return makes sense and b) do it ofr all following parts. - if (hDistance <= hAllowedDistance && !cc.debug) { + // TODO: Check if a) early return makes sense and b) do it for each of the following parts. + // TODO: Should debug really make a difference? Do early return before permission check only? + // TODO: Consider logging early vs. full. + if (hDistance <= hAllowedDistance && !data.debug) { // Shortcut for debug disabled. return hAllowedDistance; } @@ -555,6 +558,8 @@ public class SurvivalFly extends Check { if (data.sfOnIce > 0) { hAllowedDistance *= modIce; } + + // TODO: Attributes // Speed amplifier. final double speedAmplifier = mcAccess.getFasterMovementAmplifier(player); diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/actions/delay/DelayCommand.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/actions/delay/DelayCommand.java index 529dfca4..3cefaaa0 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/actions/delay/DelayCommand.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/actions/delay/DelayCommand.java @@ -4,7 +4,6 @@ import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.plugin.java.JavaPlugin; import fr.neatmonster.nocheatplus.command.AbstractCommand; diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/ReloadCommand.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/ReloadCommand.java index ef6d43a5..37226f3b 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/ReloadCommand.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/command/admin/ReloadCommand.java @@ -6,7 +6,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.plugin.java.JavaPlugin; import fr.neatmonster.nocheatplus.NCPAPIProvider; @@ -15,8 +14,6 @@ import fr.neatmonster.nocheatplus.command.BaseCommand; import fr.neatmonster.nocheatplus.command.NoCheatPlusCommand.NCPReloadEvent; import fr.neatmonster.nocheatplus.components.INotifyReload; import fr.neatmonster.nocheatplus.components.order.Order; -import fr.neatmonster.nocheatplus.config.ConfPaths; -import fr.neatmonster.nocheatplus.config.ConfigFile; import fr.neatmonster.nocheatplus.config.ConfigManager; import fr.neatmonster.nocheatplus.logging.LogManager; import fr.neatmonster.nocheatplus.logging.Streams; diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java index 832cac6c..9dc625da 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java @@ -4,33 +4,33 @@ package fr.neatmonster.nocheatplus.config; * Paths for the configuration options. Making everything final static prevents accidentally modifying any of these. */ public abstract class ConfPaths { - + // Sub-paths that are used with different path prefixes potentially. - // TODO: These might better be in another class. + // TODO: These might better be in another class. public static final String SUB_DEBUG = "debug"; public static final String SUB_IGNOREPASSABLE = "ignorepassable"; - public static final String SUB_ALLOWINSTANTBREAK = "allowinstantbreak"; - public static final String SUB_OVERRIDEFLAGS = "overrideflags"; + public static final String SUB_ALLOWINSTANTBREAK = "allowinstantbreak"; + public static final String SUB_OVERRIDEFLAGS = "overrideflags"; public static final String SUB_LAG = "lag"; - - // General. - public static final String SAVEBACKCONFIG = "savebackconfig"; - - // Configuration version. - @GlobalConfig // TODO: Per file versions should also be supported. Better with per-path comparison? - public static final String CONFIGVERSION = "configversion."; - public static final String CONFIGVERSION_NOTIFY = CONFIGVERSION + "notify"; - /** Build number of the build for which the default config was first created (DefaultConfig.buildNumber), updated with first save. */ - public static final String CONFIGVERSION_CREATED = CONFIGVERSION + "created"; - /** Build number of the build for which the default config was first created (DefaultConfig.buildNumber), updated with each save. */ - public static final String CONFIGVERSION_SAVED = CONFIGVERSION + "saved"; - @GlobalConfig + // General. + public static final String SAVEBACKCONFIG = "savebackconfig"; + + // Configuration version. + @GlobalConfig // TODO: Per file versions should also be supported. Better with per-path comparison? + public static final String CONFIGVERSION = "configversion."; + public static final String CONFIGVERSION_NOTIFY = CONFIGVERSION + "notify"; + /** Build number of the build for which the default config was first created (DefaultConfig.buildNumber), updated with first save. */ + public static final String CONFIGVERSION_CREATED = CONFIGVERSION + "created"; + /** Build number of the build for which the default config was first created (DefaultConfig.buildNumber), updated with each save. */ + public static final String CONFIGVERSION_SAVED = CONFIGVERSION + "saved"; + + @GlobalConfig private static final String LOGGING = "logging."; public static final String LOGGING_ACTIVE = LOGGING + "active"; public static final String LOGGING_DEBUG = LOGGING + "debug"; public static final String LOGGING_MAXQUEUESIZE = LOGGING + "maxqueuesize"; - + private static final String LOGGING_BACKEND = LOGGING + "backend."; private static final String LOGGING_BACKEND_CONSOLE = LOGGING_BACKEND + "console."; public static final String LOGGING_BACKEND_CONSOLE_ACTIVE = LOGGING_BACKEND_CONSOLE + "active"; @@ -45,69 +45,69 @@ public abstract class ConfPaths { public static final String LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS = LOGGING_BACKEND_INGAMECHAT + "subscriptions"; public static final String LOGGING_BACKEND_INGAMECHAT_PREFIX = LOGGING_BACKEND_INGAMECHAT + "prefix"; - @GlobalConfig - private static final String MISCELLANEOUS = "miscellaneous."; - //public static final String MISCELLANEOUS_CHECKFORUPDATES = MISCELLANEOUS + "checkforupdates"; - //public static final String MISCELLANEOUS_UPDATETIMEOUT = MISCELLANEOUS + "updatetimeout"; + @GlobalConfig + private static final String MISCELLANEOUS = "miscellaneous."; + //public static final String MISCELLANEOUS_CHECKFORUPDATES = MISCELLANEOUS + "checkforupdates"; + //public static final String MISCELLANEOUS_UPDATETIMEOUT = MISCELLANEOUS + "updatetimeout"; - /** TEMP: hidden flag to disable all lag adaption with one flag. */ - public static final String MISCELLANEOUS_LAG = MISCELLANEOUS + "lag"; + /** TEMP: hidden flag to disable all lag adaption with one flag. */ + public static final String MISCELLANEOUS_LAG = MISCELLANEOUS + "lag"; - // Extended data-related settings. + // Extended data-related settings. @GlobalConfig private static final String DATA = "data."; // Expired data removal. private static final String DATA_EXPIRATION = DATA + "expiration."; public static final String DATA_EXPIRATION_ACTIVE = DATA_EXPIRATION + "active"; - public static final String DATA_EXPIRATION_DURATION = DATA_EXPIRATION + "duration"; - public static final String DATA_EXPIRATION_DATA = DATA_EXPIRATION + "data"; - public static final String DATA_EXPIRATION_HISTORY = DATA_EXPIRATION + "history"; - // Consistency checking. - private static final String DATA_CONSISTENCYCHECKS = DATA + "consistencychecks."; - public static final String DATA_CONSISTENCYCHECKS_CHECK = DATA_CONSISTENCYCHECKS + "active"; - public static final String DATA_CONSISTENCYCHECKS_INTERVAL = DATA_CONSISTENCYCHECKS + "interval"; - public static final String DATA_CONSISTENCYCHECKS_MAXTIME = DATA_CONSISTENCYCHECKS + "maxtime"; - /** - * This might not might not be used by checks.
- * Used by: DataMan/Player-instances - * - */ - public static final String DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS = DATA_CONSISTENCYCHECKS + "suppresswarnings"; - - private static final String PROTECT = "protection."; - // Clients settings. - private static final String PROTECT_CLIENTS = PROTECT + "clients."; - @GlobalConfig - private static final String PROTECT_CLIENTS_MOTD = PROTECT_CLIENTS + "motd."; - public static final String PROTECT_CLIENTS_MOTD_ACTIVE = PROTECT_CLIENTS_MOTD + "active"; - public static final String PROTECT_CLIENTS_MOTD_ALLOWALL = PROTECT_CLIENTS_MOTD + "allowall"; - // Other commands settings - @GlobalConfig - private static final String PROTECT_COMMANDS = PROTECT + "commands."; - private static final String PROTECT_COMMANDS_CONSOLEONLY = PROTECT_COMMANDS + "consoleonly."; - public static final String PROTECT_COMMANDS_CONSOLEONLY_ACTIVE = PROTECT_COMMANDS_CONSOLEONLY + "active"; - public static final String PROTECT_COMMANDS_CONSOLEONLY_MSG = PROTECT_COMMANDS_CONSOLEONLY + "message"; - public static final String PROTECT_COMMANDS_CONSOLEONLY_CMDS = PROTECT_COMMANDS_CONSOLEONLY + "commands"; - // Plugins settings. - private static final String PROTECT_PLUGINS = PROTECT + "plugins."; - @GlobalConfig - private static final String PROTECT_PLUGINS_HIDE = PROTECT_PLUGINS + "hide."; - public static final String PROTECT_PLUGINS_HIDE_ACTIVE = PROTECT_PLUGINS_HIDE + "active"; - private static final String PROTECT_PLUGINS_HIDE_NOCOMMAND = PROTECT_PLUGINS_HIDE + "unknowncommand."; - public static final String PROTECT_PLUGINS_HIDE_NOCOMMAND_MSG = PROTECT_PLUGINS_HIDE_NOCOMMAND + "message"; - public static final String PROTECT_PLUGINS_HIDE_NOCOMMAND_CMDS = PROTECT_PLUGINS_HIDE_NOCOMMAND + "commands"; - private static final String PROTECT_PLUGINS_HIDE_NOPERMISSION = PROTECT_PLUGINS_HIDE + "nopermission."; - public static final String PROTECT_PLUGINS_HIDE_NOPERMISSION_MSG = PROTECT_PLUGINS_HIDE_NOPERMISSION + "message"; - public static final String PROTECT_PLUGINS_HIDE_NOPERMISSION_CMDS = PROTECT_PLUGINS_HIDE_NOPERMISSION + "commands"; - - // Checks! + public static final String DATA_EXPIRATION_DURATION = DATA_EXPIRATION + "duration"; + public static final String DATA_EXPIRATION_DATA = DATA_EXPIRATION + "data"; + public static final String DATA_EXPIRATION_HISTORY = DATA_EXPIRATION + "history"; + // Consistency checking. + private static final String DATA_CONSISTENCYCHECKS = DATA + "consistencychecks."; + public static final String DATA_CONSISTENCYCHECKS_CHECK = DATA_CONSISTENCYCHECKS + "active"; + public static final String DATA_CONSISTENCYCHECKS_INTERVAL = DATA_CONSISTENCYCHECKS + "interval"; + public static final String DATA_CONSISTENCYCHECKS_MAXTIME = DATA_CONSISTENCYCHECKS + "maxtime"; + /** + * This might not might not be used by checks.
+ * Used by: DataMan/Player-instances + * + */ + public static final String DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS = DATA_CONSISTENCYCHECKS + "suppresswarnings"; + + private static final String PROTECT = "protection."; + // Clients settings. + private static final String PROTECT_CLIENTS = PROTECT + "clients."; + @GlobalConfig + private static final String PROTECT_CLIENTS_MOTD = PROTECT_CLIENTS + "motd."; + public static final String PROTECT_CLIENTS_MOTD_ACTIVE = PROTECT_CLIENTS_MOTD + "active"; + public static final String PROTECT_CLIENTS_MOTD_ALLOWALL = PROTECT_CLIENTS_MOTD + "allowall"; + // Other commands settings + @GlobalConfig + private static final String PROTECT_COMMANDS = PROTECT + "commands."; + private static final String PROTECT_COMMANDS_CONSOLEONLY = PROTECT_COMMANDS + "consoleonly."; + public static final String PROTECT_COMMANDS_CONSOLEONLY_ACTIVE = PROTECT_COMMANDS_CONSOLEONLY + "active"; + public static final String PROTECT_COMMANDS_CONSOLEONLY_MSG = PROTECT_COMMANDS_CONSOLEONLY + "message"; + public static final String PROTECT_COMMANDS_CONSOLEONLY_CMDS = PROTECT_COMMANDS_CONSOLEONLY + "commands"; + // Plugins settings. + private static final String PROTECT_PLUGINS = PROTECT + "plugins."; + @GlobalConfig + private static final String PROTECT_PLUGINS_HIDE = PROTECT_PLUGINS + "hide."; + public static final String PROTECT_PLUGINS_HIDE_ACTIVE = PROTECT_PLUGINS_HIDE + "active"; + private static final String PROTECT_PLUGINS_HIDE_NOCOMMAND = PROTECT_PLUGINS_HIDE + "unknowncommand."; + public static final String PROTECT_PLUGINS_HIDE_NOCOMMAND_MSG = PROTECT_PLUGINS_HIDE_NOCOMMAND + "message"; + public static final String PROTECT_PLUGINS_HIDE_NOCOMMAND_CMDS = PROTECT_PLUGINS_HIDE_NOCOMMAND + "commands"; + private static final String PROTECT_PLUGINS_HIDE_NOPERMISSION = PROTECT_PLUGINS_HIDE + "nopermission."; + public static final String PROTECT_PLUGINS_HIDE_NOPERMISSION_MSG = PROTECT_PLUGINS_HIDE_NOPERMISSION + "message"; + public static final String PROTECT_PLUGINS_HIDE_NOPERMISSION_CMDS = PROTECT_PLUGINS_HIDE_NOPERMISSION + "commands"; + + // Checks! private static final String CHECKS = "checks."; /** Debug flag to debug all checks (!), individual sections debug flags override this, if present. */ - public static final String CHECKS_DEBUG = CHECKS + SUB_DEBUG; + public static final String CHECKS_DEBUG = CHECKS + SUB_DEBUG; public static final String BLOCKBREAK = CHECKS + "blockbreak."; - - public static final String BLOCKBREAK_DEBUG = BLOCKBREAK + "debug"; - + + public static final String BLOCKBREAK_DEBUG = BLOCKBREAK + "debug"; + private static final String BLOCKBREAK_DIRECTION = BLOCKBREAK + "direction."; public static final String BLOCKBREAK_DIRECTION_CHECK = BLOCKBREAK_DIRECTION + "active"; @@ -116,33 +116,32 @@ public abstract class ConfPaths { private static final String BLOCKBREAK_FASTBREAK = BLOCKBREAK + "fastbreak."; public static final String BLOCKBREAK_FASTBREAK_CHECK = BLOCKBREAK_FASTBREAK + "active"; public static final String BLOCKBREAK_FASTBREAK_STRICT = BLOCKBREAK_FASTBREAK + "strict"; - public static final String BLOCKBREAK_FASTBREAK_DEBUG = BLOCKBREAK_FASTBREAK + "debug"; private static final String BLOCKBREAK_FASTBREAK_BUCKETS = BLOCKBREAK + "buckets."; - public static final String BLOCKBREAK_FASTBREAK_BUCKETS_CONTENTION = BLOCKBREAK_FASTBREAK_BUCKETS + "contention"; - @GlobalConfig - public static final String BLOCKBREAK_FASTBREAK_BUCKETS_N = BLOCKBREAK_FASTBREAK_BUCKETS + "number"; - @GlobalConfig - public static final String BLOCKBREAK_FASTBREAK_BUCKETS_DUR = BLOCKBREAK_FASTBREAK_BUCKETS + "duration"; - public static final String BLOCKBREAK_FASTBREAK_BUCKETS_FACTOR = BLOCKBREAK_FASTBREAK_BUCKETS + "factor"; - public static final String BLOCKBREAK_FASTBREAK_DELAY = BLOCKBREAK_FASTBREAK + "delay"; - public static final String BLOCKBREAK_FASTBREAK_GRACE = BLOCKBREAK_FASTBREAK + "grace"; - public static final String BLOCKBREAK_FASTBREAK_MOD_SURVIVAL = BLOCKBREAK_FASTBREAK + "intervalsurvival"; + public static final String BLOCKBREAK_FASTBREAK_BUCKETS_CONTENTION = BLOCKBREAK_FASTBREAK_BUCKETS + "contention"; + @GlobalConfig + public static final String BLOCKBREAK_FASTBREAK_BUCKETS_N = BLOCKBREAK_FASTBREAK_BUCKETS + "number"; + @GlobalConfig + public static final String BLOCKBREAK_FASTBREAK_BUCKETS_DUR = BLOCKBREAK_FASTBREAK_BUCKETS + "duration"; + public static final String BLOCKBREAK_FASTBREAK_BUCKETS_FACTOR = BLOCKBREAK_FASTBREAK_BUCKETS + "factor"; + public static final String BLOCKBREAK_FASTBREAK_DELAY = BLOCKBREAK_FASTBREAK + "delay"; + public static final String BLOCKBREAK_FASTBREAK_GRACE = BLOCKBREAK_FASTBREAK + "grace"; + public static final String BLOCKBREAK_FASTBREAK_MOD_SURVIVAL = BLOCKBREAK_FASTBREAK + "intervalsurvival"; public static final String BLOCKBREAK_FASTBREAK_ACTIONS = BLOCKBREAK_FASTBREAK + "actions"; - - private static final String BLOCKBREAK_FREQUENCY = BLOCKBREAK + "frequency."; - public static final String BLOCKBREAK_FREQUENCY_CHECK = BLOCKBREAK_FREQUENCY + "active"; - public static final String BLOCKBREAK_FREQUENCY_MOD_CREATIVE = BLOCKBREAK_FREQUENCY + "intervalcreative"; - public static final String BLOCKBREAK_FREQUENCY_MOD_SURVIVAL = BLOCKBREAK_FREQUENCY + "intervalsurvival"; - private static final String BLOCKBREAK_FREQUENCY_BUCKETS = BLOCKBREAK_FREQUENCY + "buckets."; - @GlobalConfig - public static final String BLOCKBREAK_FREQUENCY_BUCKETS_DUR = BLOCKBREAK_FREQUENCY_BUCKETS + "duration"; - public static final String BLOCKBREAK_FREQUENCY_BUCKETS_FACTOR = BLOCKBREAK_FREQUENCY_BUCKETS + "factor"; - @GlobalConfig - public static final String BLOCKBREAK_FREQUENCY_BUCKETS_N = BLOCKBREAK_FREQUENCY_BUCKETS + "number"; - private static final String BLOCKBREAK_FREQUENCY_SHORTTERM = BLOCKBREAK_FREQUENCY + "shortterm."; - public static final String BLOCKBREAK_FREQUENCY_SHORTTERM_LIMIT = BLOCKBREAK_FREQUENCY_SHORTTERM + "limit"; - public static final String BLOCKBREAK_FREQUENCY_SHORTTERM_TICKS = BLOCKBREAK_FREQUENCY_SHORTTERM + "ticks"; - public static final String BLOCKBREAK_FREQUENCY_ACTIONS = BLOCKBREAK_FREQUENCY + "actions"; + + private static final String BLOCKBREAK_FREQUENCY = BLOCKBREAK + "frequency."; + public static final String BLOCKBREAK_FREQUENCY_CHECK = BLOCKBREAK_FREQUENCY + "active"; + public static final String BLOCKBREAK_FREQUENCY_MOD_CREATIVE = BLOCKBREAK_FREQUENCY + "intervalcreative"; + public static final String BLOCKBREAK_FREQUENCY_MOD_SURVIVAL = BLOCKBREAK_FREQUENCY + "intervalsurvival"; + private static final String BLOCKBREAK_FREQUENCY_BUCKETS = BLOCKBREAK_FREQUENCY + "buckets."; + @GlobalConfig + public static final String BLOCKBREAK_FREQUENCY_BUCKETS_DUR = BLOCKBREAK_FREQUENCY_BUCKETS + "duration"; + public static final String BLOCKBREAK_FREQUENCY_BUCKETS_FACTOR = BLOCKBREAK_FREQUENCY_BUCKETS + "factor"; + @GlobalConfig + public static final String BLOCKBREAK_FREQUENCY_BUCKETS_N = BLOCKBREAK_FREQUENCY_BUCKETS + "number"; + private static final String BLOCKBREAK_FREQUENCY_SHORTTERM = BLOCKBREAK_FREQUENCY + "shortterm."; + public static final String BLOCKBREAK_FREQUENCY_SHORTTERM_LIMIT = BLOCKBREAK_FREQUENCY_SHORTTERM + "limit"; + public static final String BLOCKBREAK_FREQUENCY_SHORTTERM_TICKS = BLOCKBREAK_FREQUENCY_SHORTTERM + "ticks"; + public static final String BLOCKBREAK_FREQUENCY_ACTIONS = BLOCKBREAK_FREQUENCY + "actions"; private static final String BLOCKBREAK_NOSWING = BLOCKBREAK + "noswing."; public static final String BLOCKBREAK_NOSWING_CHECK = BLOCKBREAK_NOSWING + "active"; @@ -151,11 +150,11 @@ public abstract class ConfPaths { private static final String BLOCKBREAK_REACH = BLOCKBREAK + "reach."; public static final String BLOCKBREAK_REACH_CHECK = BLOCKBREAK_REACH + "active"; public static final String BLOCKBREAK_REACH_ACTIONS = BLOCKBREAK_REACH + "actions"; - + private static final String BLOCKBREAK_WRONGBLOCK = BLOCKBREAK + "wrongblock."; - public static final String BLOCKBREAK_WRONGBLOCK_CHECK = BLOCKBREAK_WRONGBLOCK + "active"; - public static final String BLOCKBREAK_WRONGBLOCK_LEVEL = BLOCKBREAK_WRONGBLOCK + "level"; - public static final String BLOCKBREAK_WRONGBLOCK_ACTIONS = BLOCKBREAK_WRONGBLOCK + "actions"; + public static final String BLOCKBREAK_WRONGBLOCK_CHECK = BLOCKBREAK_WRONGBLOCK + "active"; + public static final String BLOCKBREAK_WRONGBLOCK_LEVEL = BLOCKBREAK_WRONGBLOCK + "level"; + public static final String BLOCKBREAK_WRONGBLOCK_ACTIONS = BLOCKBREAK_WRONGBLOCK + "actions"; public static final String BLOCKINTERACT = CHECKS + "blockinteract."; @@ -166,27 +165,27 @@ public abstract class ConfPaths { private static final String BLOCKINTERACT_REACH = BLOCKINTERACT + "reach."; public static final String BLOCKINTERACT_REACH_CHECK = BLOCKINTERACT_REACH + "active"; public static final String BLOCKINTERACT_REACH_ACTIONS = BLOCKINTERACT_REACH + "actions"; - + private static final String BLOCKINTERACT_SPEED = BLOCKINTERACT + "speed."; - public static final String BLOCKINTERACT_SPEED_CHECK = BLOCKINTERACT_SPEED + "active"; - public static final String BLOCKINTERACT_SPEED_INTERVAL = BLOCKINTERACT_SPEED + "interval"; - public static final String BLOCKINTERACT_SPEED_LIMIT = BLOCKINTERACT_SPEED + "limit"; - public static final String BLOCKINTERACT_SPEED_ACTIONS = BLOCKINTERACT_SPEED + "actions"; - + public static final String BLOCKINTERACT_SPEED_CHECK = BLOCKINTERACT_SPEED + "active"; + public static final String BLOCKINTERACT_SPEED_INTERVAL = BLOCKINTERACT_SPEED + "interval"; + public static final String BLOCKINTERACT_SPEED_LIMIT = BLOCKINTERACT_SPEED + "limit"; + public static final String BLOCKINTERACT_SPEED_ACTIONS = BLOCKINTERACT_SPEED + "actions"; + private static final String BLOCKINTERACT_VISIBLE = BLOCKINTERACT + "visible."; - public static final String BLOCKINTERACT_VISIBLE_CHECK = BLOCKINTERACT_VISIBLE + "active"; - public static final String BLOCKINTERACT_VISIBLE_ACTIONS = BLOCKINTERACT_VISIBLE + "actions"; + public static final String BLOCKINTERACT_VISIBLE_CHECK = BLOCKINTERACT_VISIBLE + "active"; + public static final String BLOCKINTERACT_VISIBLE_ACTIONS = BLOCKINTERACT_VISIBLE + "actions"; // BLOCKPLACE public static final String BLOCKPLACE = CHECKS + "blockplace."; - + private static final String BLOCKPLACE_AGAINST = BLOCKPLACE + "against."; public static final String BLOCKPLACE_AGAINST_CHECK = BLOCKPLACE_AGAINST + "active"; - public static final String BLOCKPLACE_AGAINST_ACTIONS = BLOCKPLACE_AGAINST + "actions"; - + public static final String BLOCKPLACE_AGAINST_ACTIONS = BLOCKPLACE_AGAINST + "actions"; + private static final String BLOCKPLACE_AUTOSIGN = BLOCKPLACE + "autosign."; - public static final String BLOCKPLACE_AUTOSIGN_CHECK = BLOCKPLACE_AUTOSIGN + "active"; - public static final String BLOCKPLACE_AUTOSIGN_ACTIONS = BLOCKPLACE_AUTOSIGN + "actions"; + public static final String BLOCKPLACE_AUTOSIGN_CHECK = BLOCKPLACE_AUTOSIGN + "active"; + public static final String BLOCKPLACE_AUTOSIGN_ACTIONS = BLOCKPLACE_AUTOSIGN + "actions"; private static final String BLOCKPLACE_DIRECTION = BLOCKPLACE + "direction."; public static final String BLOCKPLACE_DIRECTION_CHECK = BLOCKPLACE_DIRECTION + "active"; @@ -194,10 +193,10 @@ public abstract class ConfPaths { private static final String BLOCKPLACE_FASTPLACE = BLOCKPLACE + "fastplace."; public static final String BLOCKPLACE_FASTPLACE_CHECK = BLOCKPLACE_FASTPLACE + "active"; - public static final String BLOCKPLACE_FASTPLACE_LIMIT = BLOCKPLACE_FASTPLACE + "limit"; - private static final String BLOCKPLACE_FASTPLACE_SHORTTERM = BLOCKPLACE_FASTPLACE + "shortterm."; - public static final String BLOCKPLACE_FASTPLACE_SHORTTERM_TICKS = BLOCKPLACE_FASTPLACE_SHORTTERM + "ticks"; - public static final String BLOCKPLACE_FASTPLACE_SHORTTERM_LIMIT = BLOCKPLACE_FASTPLACE_SHORTTERM + "limit"; + public static final String BLOCKPLACE_FASTPLACE_LIMIT = BLOCKPLACE_FASTPLACE + "limit"; + private static final String BLOCKPLACE_FASTPLACE_SHORTTERM = BLOCKPLACE_FASTPLACE + "shortterm."; + public static final String BLOCKPLACE_FASTPLACE_SHORTTERM_TICKS = BLOCKPLACE_FASTPLACE_SHORTTERM + "ticks"; + public static final String BLOCKPLACE_FASTPLACE_SHORTTERM_LIMIT = BLOCKPLACE_FASTPLACE_SHORTTERM + "limit"; public static final String BLOCKPLACE_FASTPLACE_ACTIONS = BLOCKPLACE_FASTPLACE + "actions"; private static final String BLOCKPLACE_NOSWING = BLOCKPLACE + "noswing."; @@ -224,11 +223,11 @@ public abstract class ConfPaths { public static final String CHAT_CAPTCHA_SUCCESS = CHAT_CAPTCHA + "success"; public static final String CHAT_CAPTCHA_TRIES = CHAT_CAPTCHA + "tries"; public static final String CHAT_CAPTCHA_ACTIONS = CHAT_CAPTCHA + "actions"; - + private static final String CHAT_COLOR = CHAT + "color."; public static final String CHAT_COLOR_CHECK = CHAT_COLOR + "active"; public static final String CHAT_COLOR_ACTIONS = CHAT_COLOR + "actions"; - + private static final String CHAT_COMMANDS = CHAT + "commands."; public static final String CHAT_COMMANDS_CHECK = CHAT_COMMANDS + "active"; @GlobalConfig @@ -240,77 +239,77 @@ public abstract class ConfPaths { public static final String CHAT_COMMANDS_SHORTTERM_TICKS = CHAT_COMMANDS_SHORTTERM + "ticks"; public static final String CHAT_COMMANDS_SHORTTERM_LEVEL = CHAT_COMMANDS_SHORTTERM + "level"; public static final String CHAT_COMMANDS_ACTIONS = CHAT_COMMANDS + "actions"; - + // Text private static final String CHAT_TEXT = CHAT + "text."; public static final String CHAT_TEXT_CHECK = CHAT_TEXT + "active"; - public static final String CHAT_TEXT_DEBUG = CHAT_TEXT + "debug"; - public static final String CHAT_TEXT_ENGINE_MAXIMUM = CHAT_TEXT + "maximum"; - public static final String CHAT_TEXT_ALLOWVLRESET = CHAT_TEXT + "allowvlreset"; + public static final String CHAT_TEXT_DEBUG = CHAT_TEXT + "debug"; + public static final String CHAT_TEXT_ENGINE_MAXIMUM = CHAT_TEXT + "maximum"; + public static final String CHAT_TEXT_ALLOWVLRESET = CHAT_TEXT + "allowvlreset"; public static final String CHAT_TEXT_FREQ = CHAT_TEXT + "frequency."; public static final String CHAT_TEXT_FREQ_NORM = CHAT_TEXT_FREQ + "normal."; - public static final String CHAT_TEXT_FREQ_NORM_FACTOR = CHAT_TEXT_FREQ_NORM + "factor"; - public static final String CHAT_TEXT_FREQ_NORM_LEVEL = CHAT_TEXT_FREQ_NORM + "level"; - public static final String CHAT_TEXT_FREQ_NORM_WEIGHT = CHAT_TEXT_FREQ_NORM + "weight"; - public static final String CHAT_TEXT_FREQ_NORM_MIN = CHAT_TEXT_FREQ_NORM + "minimum"; + public static final String CHAT_TEXT_FREQ_NORM_FACTOR = CHAT_TEXT_FREQ_NORM + "factor"; + public static final String CHAT_TEXT_FREQ_NORM_LEVEL = CHAT_TEXT_FREQ_NORM + "level"; + public static final String CHAT_TEXT_FREQ_NORM_WEIGHT = CHAT_TEXT_FREQ_NORM + "weight"; + public static final String CHAT_TEXT_FREQ_NORM_MIN = CHAT_TEXT_FREQ_NORM + "minimum"; public static final String CHAT_TEXT_FREQ_NORM_ACTIONS = CHAT_TEXT_FREQ_NORM + "actions"; - private static final String CHAT_TEXT_FREQ_SHORTTERM = CHAT_TEXT_FREQ + "shortterm."; + private static final String CHAT_TEXT_FREQ_SHORTTERM = CHAT_TEXT_FREQ + "shortterm."; public static final String CHAT_TEXT_FREQ_SHORTTERM_FACTOR = CHAT_TEXT_FREQ_SHORTTERM + "factor"; public static final String CHAT_TEXT_FREQ_SHORTTERM_LEVEL = CHAT_TEXT_FREQ_SHORTTERM + "level"; public static final String CHAT_TEXT_FREQ_SHORTTERM_WEIGHT = CHAT_TEXT_FREQ_SHORTTERM + "weight"; public static final String CHAT_TEXT_FREQ_SHORTTERM_MIN = CHAT_TEXT_FREQ_SHORTTERM + "minimum"; public static final String CHAT_TEXT_FREQ_SHORTTERM_ACTIONS = CHAT_TEXT_FREQ_SHORTTERM + "actions"; - - // (Some of the following paths must be public for generic config reading.) - // Per message checks. - private static final String CHAT_TEXT_MSG = CHAT_TEXT + "message."; + + // (Some of the following paths must be public for generic config reading.) + // Per message checks. + private static final String CHAT_TEXT_MSG = CHAT_TEXT + "message."; public static final String CHAT_TEXT_MSG_LETTERCOUNT = CHAT_TEXT_MSG + "lettercount"; public static final String CHAT_TEXT_MSG_PARTITION = CHAT_TEXT_MSG + "partition"; - public static final String CHAT_TEXT_MSG_UPPERCASE = CHAT_TEXT_MSG + "uppercase"; - + public static final String CHAT_TEXT_MSG_UPPERCASE = CHAT_TEXT_MSG + "uppercase"; + public static final String CHAT_TEXT_MSG_REPEATCANCEL = CHAT_TEXT_MSG + "repeatviolation"; public static final String CHAT_TEXT_MSG_AFTERJOIN = CHAT_TEXT_MSG + "afterjoin"; public static final String CHAT_TEXT_MSG_REPEATSELF = CHAT_TEXT_MSG + "repeatself"; public static final String CHAT_TEXT_MSG_REPEATGLOBAL = CHAT_TEXT_MSG + "repeatglobal"; public static final String CHAT_TEXT_MSG_NOMOVING = CHAT_TEXT_MSG + "nomoving"; - - private static final String CHAT_TEXT_MSG_WORDS = CHAT_TEXT_MSG + "words."; - public static final String CHAT_TEXT_MSG_WORDS_LENGTHAV = CHAT_TEXT_MSG_WORDS + "lengthav"; - public static final String CHAT_TEXT_MSG_WORDS_LENGTHMSG = CHAT_TEXT_MSG_WORDS + "lengthmsg"; - public static final String CHAT_TEXT_MSG_WORDS_NOLETTER = CHAT_TEXT_MSG_WORDS + "noletter"; + + private static final String CHAT_TEXT_MSG_WORDS = CHAT_TEXT_MSG + "words."; + public static final String CHAT_TEXT_MSG_WORDS_LENGTHAV = CHAT_TEXT_MSG_WORDS + "lengthav"; + public static final String CHAT_TEXT_MSG_WORDS_LENGTHMSG = CHAT_TEXT_MSG_WORDS + "lengthmsg"; + public static final String CHAT_TEXT_MSG_WORDS_NOLETTER = CHAT_TEXT_MSG_WORDS + "noletter"; // Extended global checks. private static final String CHAT_TEXT_GL = CHAT_TEXT + "global."; - public static final String CHAT_TEXT_GL_CHECK = CHAT_TEXT_GL + "active"; - public static final String CHAT_TEXT_GL_WEIGHT = CHAT_TEXT_GL + "weight"; - @GlobalConfig + public static final String CHAT_TEXT_GL_CHECK = CHAT_TEXT_GL + "active"; + public static final String CHAT_TEXT_GL_WEIGHT = CHAT_TEXT_GL + "weight"; + @GlobalConfig public static final String CHAT_TEXT_GL_WORDS = CHAT_TEXT_GL + "words."; - public static final String CHAT_TEXT_GL_WORDS_CHECK = CHAT_TEXT_GL_WORDS + "active"; - @GlobalConfig - public static final String CHAT_TEXT_GL_PREFIXES = CHAT_TEXT_GL + "prefixes."; - public static final String CHAT_TEXT_GL_PREFIXES_CHECK = CHAT_TEXT_GL_PREFIXES + "active"; - @GlobalConfig - public static final String CHAT_TEXT_GL_SIMILARITY = CHAT_TEXT_GL + "similarity."; - public static final String CHAT_TEXT_GL_SIMILARITY_CHECK = CHAT_TEXT_GL_SIMILARITY + "active"; - // Extended per player checks. - private static final String CHAT_TEXT_PP = CHAT_TEXT + "player."; - public static final String CHAT_TEXT_PP_CHECK = CHAT_TEXT_PP + "active"; - public static final String CHAT_TEXT_PP_WEIGHT = CHAT_TEXT_PP + "weight"; - @GlobalConfig - public static final String CHAT_TEXT_PP_PREFIXES = CHAT_TEXT_PP + "prefixes."; - public static final String CHAT_TEXT_PP_PREFIXES_CHECK = CHAT_TEXT_PP_PREFIXES + "active"; - @GlobalConfig - public static final String CHAT_TEXT_PP_WORDS = CHAT_TEXT_PP + "words."; - public static final String CHAT_TEXT_PP_WORDS_CHECK = CHAT_TEXT_PP_WORDS + "active"; - @GlobalConfig - public static final String CHAT_TEXT_PP_SIMILARITY = CHAT_TEXT_PP + "similarity."; - public static final String CHAT_TEXT_PP_SIMILARITY_CHECK = CHAT_TEXT_PP_SIMILARITY + "active"; - + public static final String CHAT_TEXT_GL_WORDS_CHECK = CHAT_TEXT_GL_WORDS + "active"; + @GlobalConfig + public static final String CHAT_TEXT_GL_PREFIXES = CHAT_TEXT_GL + "prefixes."; + public static final String CHAT_TEXT_GL_PREFIXES_CHECK = CHAT_TEXT_GL_PREFIXES + "active"; + @GlobalConfig + public static final String CHAT_TEXT_GL_SIMILARITY = CHAT_TEXT_GL + "similarity."; + public static final String CHAT_TEXT_GL_SIMILARITY_CHECK = CHAT_TEXT_GL_SIMILARITY + "active"; + // Extended per player checks. + private static final String CHAT_TEXT_PP = CHAT_TEXT + "player."; + public static final String CHAT_TEXT_PP_CHECK = CHAT_TEXT_PP + "active"; + public static final String CHAT_TEXT_PP_WEIGHT = CHAT_TEXT_PP + "weight"; + @GlobalConfig + public static final String CHAT_TEXT_PP_PREFIXES = CHAT_TEXT_PP + "prefixes."; + public static final String CHAT_TEXT_PP_PREFIXES_CHECK = CHAT_TEXT_PP_PREFIXES + "active"; + @GlobalConfig + public static final String CHAT_TEXT_PP_WORDS = CHAT_TEXT_PP + "words."; + public static final String CHAT_TEXT_PP_WORDS_CHECK = CHAT_TEXT_PP_WORDS + "active"; + @GlobalConfig + public static final String CHAT_TEXT_PP_SIMILARITY = CHAT_TEXT_PP + "similarity."; + public static final String CHAT_TEXT_PP_SIMILARITY_CHECK = CHAT_TEXT_PP_SIMILARITY + "active"; + private static final String CHAT_WARNING = CHAT + "warning."; public static final String CHAT_WARNING_CHECK = CHAT_WARNING + "active"; public static final String CHAT_WARNING_LEVEL = CHAT_WARNING + "level"; public static final String CHAT_WARNING_MESSAGE = CHAT_WARNING + "message"; public static final String CHAT_WARNING_TIMEOUT = CHAT_WARNING + "timeout"; - + // NOT YET IN USE private static final String CHAT_LOGINS = CHAT + "logins."; public static final String CHAT_LOGINS_CHECK = CHAT_LOGINS + "active"; @@ -319,7 +318,7 @@ public abstract class ConfPaths { public static final String CHAT_LOGINS_LIMIT = CHAT_LOGINS + "limit"; public static final String CHAT_LOGINS_KICKMESSAGE = CHAT_LOGINS + "kickmessage"; public static final String CHAT_LOGINS_STARTUPDELAY = CHAT_LOGINS + "startupdelay"; - + private static final String CHAT_RELOG = CHAT + "relog."; public static final String CHAT_RELOG_CHECK = CHAT_RELOG + "active"; public static final String CHAT_RELOG_KICKMESSAGE = CHAT_RELOG + "kickmessage"; @@ -334,27 +333,27 @@ public abstract class ConfPaths { * Combined ! */ public static final String COMBINED = CHECKS + "combined."; - + private static final String COMBINED_BEDLEAVE = COMBINED + "bedleave."; public static final String COMBINED_BEDLEAVE_CHECK = COMBINED_BEDLEAVE + "active"; - public static final String COMBINED_BEDLEAVE_ACTIONS = COMBINED_BEDLEAVE + "actions"; - - private static final String COMBINED_ENDERPEARL = COMBINED + "enderpearl."; - public static final String COMBINED_ENDERPEARL_CHECK = COMBINED_ENDERPEARL + "active"; - public static final String COMBINED_ENDERPEARL_PREVENTCLICKBLOCK = COMBINED_ENDERPEARL + "preventclickblock"; - + public static final String COMBINED_BEDLEAVE_ACTIONS = COMBINED_BEDLEAVE + "actions"; + + private static final String COMBINED_ENDERPEARL = COMBINED + "enderpearl."; + public static final String COMBINED_ENDERPEARL_CHECK = COMBINED_ENDERPEARL + "active"; + public static final String COMBINED_ENDERPEARL_PREVENTCLICKBLOCK = COMBINED_ENDERPEARL + "preventclickblock"; + private static final String COMBINED_IMPROBABLE = COMBINED + "improbable."; - public static final String COMBINED_IMPROBABLE_CHECK = COMBINED_IMPROBABLE + "active"; - public static final String COMBINED_IMPROBABLE_LEVEL = COMBINED_IMPROBABLE + "level"; - -// private static final String COMBINED_IMPROBABLE_CHECKS = COMBINED_IMPROBABLE + "options."; -// public static final String COMBINED_IMPROBABLE_FASTBREAK_CHECK = COMBINED_IMPROBABLE_CHECKS + "fastbreak"; - - public static final String COMBINED_IMPROBABLE_ACTIONS = COMBINED_IMPROBABLE + "actions"; - - private static final String COMBINED_INVULNERABLE = COMBINED + "invulnerable."; - public static final String COMBINED_INVULNERABLE_CHECK = COMBINED_INVULNERABLE + "active"; - private static final String COMBINED_INVULNERABLE_INITIALTICKS = COMBINED_INVULNERABLE + "initialticks."; + public static final String COMBINED_IMPROBABLE_CHECK = COMBINED_IMPROBABLE + "active"; + public static final String COMBINED_IMPROBABLE_LEVEL = COMBINED_IMPROBABLE + "level"; + + // private static final String COMBINED_IMPROBABLE_CHECKS = COMBINED_IMPROBABLE + "options."; + // public static final String COMBINED_IMPROBABLE_FASTBREAK_CHECK = COMBINED_IMPROBABLE_CHECKS + "fastbreak"; + + public static final String COMBINED_IMPROBABLE_ACTIONS = COMBINED_IMPROBABLE + "actions"; + + private static final String COMBINED_INVULNERABLE = COMBINED + "invulnerable."; + public static final String COMBINED_INVULNERABLE_CHECK = COMBINED_INVULNERABLE + "active"; + private static final String COMBINED_INVULNERABLE_INITIALTICKS = COMBINED_INVULNERABLE + "initialticks."; public static final String COMBINED_INVULNERABLE_INITIALTICKS_JOIN = COMBINED_INVULNERABLE_INITIALTICKS + "join"; public static final String COMBINED_INVULNERABLE_IGNORE = COMBINED_INVULNERABLE + "ignore"; public static final String COMBINED_INVULNERABLE_MODIFIERS = COMBINED_INVULNERABLE + "modifiers"; // no dot ! @@ -363,21 +362,21 @@ public abstract class ConfPaths { public static final String COMBINED_INVULNERABLE_TRIGGERS_FALLDISTANCE = COMBINED_INVULNERABLE_TRIGGERS + "falldistance"; public static final String COMBINED_MUNCHHAUSEN = COMBINED + "munchhausen."; - public static final String COMBINED_MUNCHHAUSEN_CHECK = COMBINED_MUNCHHAUSEN + "active"; - public static final String COMBINED_MUNCHHAUSEN_ACTIONS = COMBINED_MUNCHHAUSEN + "actions"; - - private static final String COMBINED_YAWRATE = COMBINED + "yawrate."; - public static final String COMBINED_YAWRATE_RATE = COMBINED_YAWRATE + "rate"; - public static final String COMBINED_YAWRATE_IMPROBABLE = COMBINED_YAWRATE + "improbable"; - private static final String COMBINED_YAWRATE_PENALTY = COMBINED_YAWRATE + "penalty."; + public static final String COMBINED_MUNCHHAUSEN_CHECK = COMBINED_MUNCHHAUSEN + "active"; + public static final String COMBINED_MUNCHHAUSEN_ACTIONS = COMBINED_MUNCHHAUSEN + "actions"; + + private static final String COMBINED_YAWRATE = COMBINED + "yawrate."; + public static final String COMBINED_YAWRATE_RATE = COMBINED_YAWRATE + "rate"; + public static final String COMBINED_YAWRATE_IMPROBABLE = COMBINED_YAWRATE + "improbable"; + private static final String COMBINED_YAWRATE_PENALTY = COMBINED_YAWRATE + "penalty."; public static final String COMBINED_YAWRATE_PENALTY_FACTOR = COMBINED_YAWRATE_PENALTY + "factor"; public static final String COMBINED_YAWRATE_PENALTY_MIN = COMBINED_YAWRATE_PENALTY + "minimum"; public static final String COMBINED_YAWRATE_PENALTY_MAX = COMBINED_YAWRATE_PENALTY + "maximum"; - + public static final String FIGHT = CHECKS + "fight."; - - public static final String FIGHT_CANCELDEAD = FIGHT + "canceldead"; - public static final String FIGHT_TOOLCHANGEPENALTY = FIGHT + "toolchangepenalty"; + + public static final String FIGHT_CANCELDEAD = FIGHT + "canceldead"; + public static final String FIGHT_TOOLCHANGEPENALTY = FIGHT + "toolchangepenalty"; private static final String FIGHT_ANGLE = FIGHT + "angle."; public static final String FIGHT_ANGLE_CHECK = FIGHT_ANGLE + "active"; @@ -391,22 +390,22 @@ public abstract class ConfPaths { private static final String FIGHT_DIRECTION = FIGHT + "direction."; public static final String FIGHT_DIRECTION_CHECK = FIGHT_DIRECTION + "active"; - public static final String FIGHT_DIRECTION_STRICT = FIGHT_DIRECTION + "strict"; + public static final String FIGHT_DIRECTION_STRICT = FIGHT_DIRECTION + "strict"; public static final String FIGHT_DIRECTION_PENALTY = FIGHT_DIRECTION + "penalty"; public static final String FIGHT_DIRECTION_ACTIONS = FIGHT_DIRECTION + "actions"; - + private static final String FIGHT_FASTHEAL = FIGHT + "fastheal."; public static final String FIGHT_FASTHEAL_CHECK = FIGHT_FASTHEAL + "active"; - public static final String FIGHT_FASTHEAL_INTERVAL = FIGHT_FASTHEAL + "interval"; - public static final String FIGHT_FASTHEAL_BUFFER = FIGHT_FASTHEAL + "buffer"; - public static final String FIGHT_FASTHEAL_ACTIONS = FIGHT_FASTHEAL + "actions"; + public static final String FIGHT_FASTHEAL_INTERVAL = FIGHT_FASTHEAL + "interval"; + public static final String FIGHT_FASTHEAL_BUFFER = FIGHT_FASTHEAL + "buffer"; + public static final String FIGHT_FASTHEAL_ACTIONS = FIGHT_FASTHEAL + "actions"; private static final String FIGHT_GODMODE = FIGHT + "godmode."; public static final String FIGHT_GODMODE_CHECK = FIGHT_GODMODE + "active"; - public static final String FIGHT_GODMODE_LAGMINAGE = FIGHT_GODMODE + "minage"; - public static final String FIGHT_GODMODE_LAGMAXAGE = FIGHT_GODMODE + "maxage"; + public static final String FIGHT_GODMODE_LAGMINAGE = FIGHT_GODMODE + "minage"; + public static final String FIGHT_GODMODE_LAGMAXAGE = FIGHT_GODMODE + "maxage"; public static final String FIGHT_GODMODE_ACTIONS = FIGHT_GODMODE + "actions"; - + private static final String FIGHT_KNOCKBACK = FIGHT + "knockback."; public static final String FIGHT_KNOCKBACK_CHECK = FIGHT_KNOCKBACK + "active"; public static final String FIGHT_KNOCKBACK_INTERVAL = FIGHT_KNOCKBACK + "interval"; @@ -418,17 +417,17 @@ public abstract class ConfPaths { private static final String FIGHT_REACH = FIGHT + "reach."; public static final String FIGHT_REACH_CHECK = FIGHT_REACH + "active"; - public static final String FIGHT_REACH_SURVIVALDISTANCE = FIGHT_REACH + "survivaldistance"; + public static final String FIGHT_REACH_SURVIVALDISTANCE = FIGHT_REACH + "survivaldistance"; public static final String FIGHT_REACH_PENALTY = FIGHT_REACH + "penalty"; - public static final String FIGHT_REACH_PRECISION = FIGHT_REACH + "precision"; - public static final String FIGHT_REACH_REDUCE = FIGHT_REACH + "reduce"; - public static final String FIGHT_REACH_REDUCEDISTANCE = FIGHT_REACH + "reducedistance"; - public static final String FIGHT_REACH_REDUCESTEP = FIGHT_REACH + "reducestep"; + public static final String FIGHT_REACH_PRECISION = FIGHT_REACH + "precision"; + public static final String FIGHT_REACH_REDUCE = FIGHT_REACH + "reduce"; + public static final String FIGHT_REACH_REDUCEDISTANCE = FIGHT_REACH + "reducedistance"; + public static final String FIGHT_REACH_REDUCESTEP = FIGHT_REACH + "reducestep"; public static final String FIGHT_REACH_ACTIONS = FIGHT_REACH + "actions"; - + public static final String FIGHT_SELFHIT = FIGHT + "selfhit."; public static final String FIGHT_SELFHIT_CHECK = FIGHT_SELFHIT + "active"; - public static final String FIGHT_SELFHIT_ACTIONS = FIGHT_SELFHIT + "actions"; + public static final String FIGHT_SELFHIT_ACTIONS = FIGHT_SELFHIT + "actions"; private static final String FIGHT_SPEED = FIGHT + "speed."; @@ -436,17 +435,17 @@ public abstract class ConfPaths { public static final String FIGHT_SPEED_LIMIT = FIGHT_SPEED + "limit"; private static final String FIGHT_SPEED_BUCKETS = FIGHT_SPEED + "buckets."; @GlobalConfig - public static final String FIGHT_SPEED_BUCKETS_N = FIGHT_SPEED_BUCKETS + "number"; + public static final String FIGHT_SPEED_BUCKETS_N = FIGHT_SPEED_BUCKETS + "number"; @GlobalConfig - public static final String FIGHT_SPEED_BUCKETS_DUR = FIGHT_SPEED_BUCKETS + "duration"; - public static final String FIGHT_SPEED_BUCKETS_FACTOR = FIGHT_SPEED_BUCKETS + "factor"; - private static final String FIGHT_SPEED_SHORTTERM = FIGHT_SPEED + "shortterm."; - public static final String FIGHT_SPEED_SHORTTERM_LIMIT = FIGHT_SPEED_SHORTTERM + "limit"; - public static final String FIGHT_SPEED_SHORTTERM_TICKS = FIGHT_SPEED_SHORTTERM + "ticks"; + public static final String FIGHT_SPEED_BUCKETS_DUR = FIGHT_SPEED_BUCKETS + "duration"; + public static final String FIGHT_SPEED_BUCKETS_FACTOR = FIGHT_SPEED_BUCKETS + "factor"; + private static final String FIGHT_SPEED_SHORTTERM = FIGHT_SPEED + "shortterm."; + public static final String FIGHT_SPEED_SHORTTERM_LIMIT = FIGHT_SPEED_SHORTTERM + "limit"; + public static final String FIGHT_SPEED_SHORTTERM_TICKS = FIGHT_SPEED_SHORTTERM + "ticks"; public static final String FIGHT_SPEED_ACTIONS = FIGHT_SPEED + "actions"; - + private static final String FIGHT_YAWRATE = FIGHT + "yawrate."; - public static final String FIGHT_YAWRATE_CHECK = FIGHT_YAWRATE + "active"; + public static final String FIGHT_YAWRATE_CHECK = FIGHT_YAWRATE + "active"; public static final String INVENTORY = CHECKS + "inventory."; @@ -459,44 +458,44 @@ public abstract class ConfPaths { private static final String INVENTORY_FASTCLICK = INVENTORY + "fastclick."; public static final String INVENTORY_FASTCLICK_CHECK = INVENTORY_FASTCLICK + "active"; public static final String INVENTORY_FASTCLICK_SPARECREATIVE = INVENTORY_FASTCLICK + "sparecreative"; - public static final String INVENTORY_FASTCLICK_TWEAKS1_5 = INVENTORY_FASTCLICK + "tweaks1_5"; + public static final String INVENTORY_FASTCLICK_TWEAKS1_5 = INVENTORY_FASTCLICK + "tweaks1_5"; private static final String INVENTORY_FASTCLICK_LIMIT = INVENTORY_FASTCLICK + "limit."; - public static final String INVENTORY_FASTCLICK_LIMIT_SHORTTERM = INVENTORY_FASTCLICK_LIMIT + "shortterm"; - public static final String INVENTORY_FASTCLICK_LIMIT_NORMAL = INVENTORY_FASTCLICK_LIMIT + "normal"; + public static final String INVENTORY_FASTCLICK_LIMIT_SHORTTERM = INVENTORY_FASTCLICK_LIMIT + "shortterm"; + public static final String INVENTORY_FASTCLICK_LIMIT_NORMAL = INVENTORY_FASTCLICK_LIMIT + "normal"; public static final String INVENTORY_FASTCLICK_ACTIONS = INVENTORY_FASTCLICK + "actions"; - + private static final String INVENTORY_FASTCONSUME = INVENTORY + "fastconsume."; - public static final String INVENTORY_FASTCONSUME_CHECK = INVENTORY_FASTCONSUME + "active"; - public static final String INVENTORY_FASTCONSUME_DURATION = INVENTORY_FASTCONSUME + "duration"; - public static final String INVENTORY_FASTCONSUME_WHITELIST = INVENTORY_FASTCONSUME + "whitelist"; - public static final String INVENTORY_FASTCONSUME_ITEMS = INVENTORY_FASTCONSUME + "items"; - public static final String INVENTORY_FASTCONSUME_ACTIONS = INVENTORY_FASTCONSUME + "actions"; + public static final String INVENTORY_FASTCONSUME_CHECK = INVENTORY_FASTCONSUME + "active"; + public static final String INVENTORY_FASTCONSUME_DURATION = INVENTORY_FASTCONSUME + "duration"; + public static final String INVENTORY_FASTCONSUME_WHITELIST = INVENTORY_FASTCONSUME + "whitelist"; + public static final String INVENTORY_FASTCONSUME_ITEMS = INVENTORY_FASTCONSUME + "items"; + public static final String INVENTORY_FASTCONSUME_ACTIONS = INVENTORY_FASTCONSUME + "actions"; private static final String INVENTORY_INSTANTBOW = INVENTORY + "instantbow."; public static final String INVENTORY_INSTANTBOW_CHECK = INVENTORY_INSTANTBOW + "active"; - public static final String INVENTORY_INSTANTBOW_STRICT = INVENTORY_INSTANTBOW + "strict"; + public static final String INVENTORY_INSTANTBOW_STRICT = INVENTORY_INSTANTBOW + "strict"; public static final String INVENTORY_INSTANTBOW_DELAY = INVENTORY_INSTANTBOW + "delay"; public static final String INVENTORY_INSTANTBOW_ACTIONS = INVENTORY_INSTANTBOW + "actions"; private static final String INVENTORY_INSTANTEAT = INVENTORY + "instanteat."; public static final String INVENTORY_INSTANTEAT_CHECK = INVENTORY_INSTANTEAT + "active"; public static final String INVENTORY_INSTANTEAT_ACTIONS = INVENTORY_INSTANTEAT + "actions"; - + private static final String INVENTORY_ITEMS = INVENTORY + "items."; public static final String INVENTORY_ITEMS_CHECK = INVENTORY_ITEMS + "active"; - + private static final String INVENTORY_OPEN = INVENTORY + "open."; public static final String INVENTORY_OPEN_CHECK = INVENTORY_OPEN + "active"; // TODO: close and cancelother on open-section-level are temporary. public static final String INVENTORY_OPEN_CLOSE = INVENTORY_OPEN + "close"; public static final String INVENTORY_OPEN_CANCELOTHER = INVENTORY_OPEN + "cancelother"; - + public static final String MOVING = CHECKS + "moving."; private static final String MOVING_CREATIVEFLY = MOVING + "creativefly."; public static final String MOVING_CREATIVEFLY_CHECK = MOVING_CREATIVEFLY + "active"; - public static final String MOVING_CREATIVEFLY_IGNORECREATIVE = MOVING_CREATIVEFLY + "ignorecreative"; - public static final String MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT = MOVING_CREATIVEFLY + "ignoreallowflight"; + public static final String MOVING_CREATIVEFLY_IGNORECREATIVE = MOVING_CREATIVEFLY + "ignorecreative"; + public static final String MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT = MOVING_CREATIVEFLY + "ignoreallowflight"; public static final String MOVING_CREATIVEFLY_HORIZONTALSPEED = MOVING_CREATIVEFLY + "horizontalspeed"; public static final String MOVING_CREATIVEFLY_MAXHEIGHT = MOVING_CREATIVEFLY + "maxheight"; public static final String MOVING_CREATIVEFLY_VERTICALSPEED = MOVING_CREATIVEFLY + "verticalspeed"; @@ -506,11 +505,11 @@ public abstract class ConfPaths { public static final String MOVING_MOREPACKETS_CHECK = MOVING_MOREPACKETS + "active"; public static final String MOVING_MOREPACKETS_SECONDS = MOVING_MOREPACKETS + "seconds"; public static final String MOVING_MOREPACKETS_EPSIDEAL = MOVING_MOREPACKETS + "epsideal"; - public static final String MOVING_MOREPACKETS_EPSMAX = MOVING_MOREPACKETS + "epsmax"; - private static final String MOVING_MOREPACKETS_BURST = MOVING_MOREPACKETS + "burst."; - public static final String MOVING_MOREPACKETS_BURST_PACKETS = MOVING_MOREPACKETS_BURST + "packets"; - public static final String MOVING_MOREPACKETS_BURST_DIRECT = MOVING_MOREPACKETS_BURST + "directviolation"; - public static final String MOVING_MOREPACKETS_BURST_EPM = MOVING_MOREPACKETS_BURST + "epmviolation"; + public static final String MOVING_MOREPACKETS_EPSMAX = MOVING_MOREPACKETS + "epsmax"; + private static final String MOVING_MOREPACKETS_BURST = MOVING_MOREPACKETS + "burst."; + public static final String MOVING_MOREPACKETS_BURST_PACKETS = MOVING_MOREPACKETS_BURST + "packets"; + public static final String MOVING_MOREPACKETS_BURST_DIRECT = MOVING_MOREPACKETS_BURST + "directviolation"; + public static final String MOVING_MOREPACKETS_BURST_EPM = MOVING_MOREPACKETS_BURST + "epmviolation"; public static final String MOVING_MOREPACKETS_ACTIONS = MOVING_MOREPACKETS + "actions"; private static final String MOVING_MOREPACKETSVEHICLE = MOVING + "morepacketsvehicle."; @@ -520,96 +519,96 @@ public abstract class ConfPaths { private static final String MOVING_NOFALL = MOVING + "nofall."; public static final String MOVING_NOFALL_CHECK = MOVING_NOFALL + "active"; public static final String MOVING_NOFALL_DEALDAMAGE = MOVING_NOFALL + "dealdamage"; - public static final String MOVING_NOFALL_RESETONVL = MOVING_NOFALL + "resetonviolation"; - public static final String MOVING_NOFALL_RESETONTP = MOVING_NOFALL + "resetonteleport"; - public static final String MOVING_NOFALL_RESETONVEHICLE = MOVING_NOFALL + "resetonvehicle"; - public static final String MOVING_NOFALL_ANTICRITICALS = MOVING_NOFALL + "anticriticals"; + public static final String MOVING_NOFALL_RESETONVL = MOVING_NOFALL + "resetonviolation"; + public static final String MOVING_NOFALL_RESETONTP = MOVING_NOFALL + "resetonteleport"; + public static final String MOVING_NOFALL_RESETONVEHICLE = MOVING_NOFALL + "resetonvehicle"; + public static final String MOVING_NOFALL_ANTICRITICALS = MOVING_NOFALL + "anticriticals"; public static final String MOVING_NOFALL_ACTIONS = MOVING_NOFALL + "actions"; - - public static final String MOVING_PASSABLE = MOVING + "passable."; - public static final String MOVING_PASSABLE_CHECK = MOVING_PASSABLE + "active"; - private static final String MOVING_PASSABLE_RAYTRACING = MOVING_PASSABLE + "raytracing."; - public static final String MOVING_PASSABLE_RAYTRACING_CHECK = MOVING_PASSABLE_RAYTRACING + "active"; - public static final String MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY= MOVING_PASSABLE_RAYTRACING + "blockchangeonly"; - public static final String MOVING_PASSABLE_ACTIONS = MOVING_PASSABLE + "actions"; - private static final String MOVING_SURVIVALFLY = MOVING + "survivalfly."; - public static final String MOVING_SURVIVALFLY_CHECK = MOVING_SURVIVALFLY + "active"; - public static final String MOVING_SURVIVALFLY_BLOCKINGSPEED = MOVING_SURVIVALFLY + "blockingspeed"; - public static final String MOVING_SURVIVALFLY_SNEAKINGSPEED = MOVING_SURVIVALFLY + "sneakingspeed"; - public static final String MOVING_SURVIVALFLY_SPEEDINGSPEED = MOVING_SURVIVALFLY + "speedingspeed"; - public static final String MOVING_SURVIVALFLY_SPRINTINGSPEED = MOVING_SURVIVALFLY + "sprintingspeed"; - public static final String MOVING_SURVIVALFLY_SWIMMINGSPEED = MOVING_SURVIVALFLY + "swimmingspeed"; - public static final String MOVING_SURVIVALFLY_WALKINGSPEED = MOVING_SURVIVALFLY + "walkingspeed"; - public static final String MOVING_SURVIVALFLY_COBWEBHACK = MOVING_SURVIVALFLY + "cobwebhack"; - private static final String MOVING_SURVIVALFLY_EXTENDED = MOVING_SURVIVALFLY + "extended."; - public static final String MOVING_SURVIVALFLY_EXTENDED_HACC = MOVING_SURVIVALFLY_EXTENDED + "horizontal-accounting"; - public static final String MOVING_SURVIVALFLY_EXTENDED_VACC = MOVING_SURVIVALFLY_EXTENDED + "vertical-accounting"; - public static final String MOVING_SURVIVALFLY_FALLDAMAGE = MOVING_SURVIVALFLY + "falldamage"; - public static final String MOVING_SURVIVALFLY_VLFREEZE = MOVING_SURVIVALFLY + "vlfreeze"; - public static final String MOVING_SURVIVALFLY_ACTIONS = MOVING_SURVIVALFLY + "actions"; - - private static final String MOVING_SURVIVALFLY_HOVER = MOVING_SURVIVALFLY + "hover."; - public static final String MOVING_SURVIVALFLY_HOVER_CHECK = MOVING_SURVIVALFLY_HOVER + "active"; - @GlobalConfig - public static final String MOVING_SURVIVALFLY_HOVER_STEP = MOVING_SURVIVALFLY_HOVER + "step"; - public static final String MOVING_SURVIVALFLY_HOVER_TICKS = MOVING_SURVIVALFLY_HOVER + "ticks"; - public static final String MOVING_SURVIVALFLY_HOVER_LOGINTICKS = MOVING_SURVIVALFLY_HOVER + "loginticks"; - public static final String MOVING_SURVIVALFLY_HOVER_FALLDAMAGE = MOVING_SURVIVALFLY_HOVER + "falldamage"; - public static final String MOVING_SURVIVALFLY_HOVER_SFVIOLATION = MOVING_SURVIVALFLY_HOVER + "sfviolation"; + public static final String MOVING_PASSABLE = MOVING + "passable."; + public static final String MOVING_PASSABLE_CHECK = MOVING_PASSABLE + "active"; + private static final String MOVING_PASSABLE_RAYTRACING = MOVING_PASSABLE + "raytracing."; + public static final String MOVING_PASSABLE_RAYTRACING_CHECK = MOVING_PASSABLE_RAYTRACING + "active"; + public static final String MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY= MOVING_PASSABLE_RAYTRACING + "blockchangeonly"; + public static final String MOVING_PASSABLE_ACTIONS = MOVING_PASSABLE + "actions"; + + private static final String MOVING_SURVIVALFLY = MOVING + "survivalfly."; + public static final String MOVING_SURVIVALFLY_CHECK = MOVING_SURVIVALFLY + "active"; + public static final String MOVING_SURVIVALFLY_BLOCKINGSPEED = MOVING_SURVIVALFLY + "blockingspeed"; + public static final String MOVING_SURVIVALFLY_SNEAKINGSPEED = MOVING_SURVIVALFLY + "sneakingspeed"; + public static final String MOVING_SURVIVALFLY_SPEEDINGSPEED = MOVING_SURVIVALFLY + "speedingspeed"; + public static final String MOVING_SURVIVALFLY_SPRINTINGSPEED = MOVING_SURVIVALFLY + "sprintingspeed"; + public static final String MOVING_SURVIVALFLY_SWIMMINGSPEED = MOVING_SURVIVALFLY + "swimmingspeed"; + public static final String MOVING_SURVIVALFLY_WALKINGSPEED = MOVING_SURVIVALFLY + "walkingspeed"; + public static final String MOVING_SURVIVALFLY_COBWEBHACK = MOVING_SURVIVALFLY + "cobwebhack"; + private static final String MOVING_SURVIVALFLY_EXTENDED = MOVING_SURVIVALFLY + "extended."; + public static final String MOVING_SURVIVALFLY_EXTENDED_HACC = MOVING_SURVIVALFLY_EXTENDED + "horizontal-accounting"; + public static final String MOVING_SURVIVALFLY_EXTENDED_VACC = MOVING_SURVIVALFLY_EXTENDED + "vertical-accounting"; + public static final String MOVING_SURVIVALFLY_FALLDAMAGE = MOVING_SURVIVALFLY + "falldamage"; + public static final String MOVING_SURVIVALFLY_VLFREEZE = MOVING_SURVIVALFLY + "vlfreeze"; + public static final String MOVING_SURVIVALFLY_ACTIONS = MOVING_SURVIVALFLY + "actions"; + + private static final String MOVING_SURVIVALFLY_HOVER = MOVING_SURVIVALFLY + "hover."; + public static final String MOVING_SURVIVALFLY_HOVER_CHECK = MOVING_SURVIVALFLY_HOVER + "active"; + @GlobalConfig + public static final String MOVING_SURVIVALFLY_HOVER_STEP = MOVING_SURVIVALFLY_HOVER + "step"; + public static final String MOVING_SURVIVALFLY_HOVER_TICKS = MOVING_SURVIVALFLY_HOVER + "ticks"; + public static final String MOVING_SURVIVALFLY_HOVER_LOGINTICKS = MOVING_SURVIVALFLY_HOVER + "loginticks"; + public static final String MOVING_SURVIVALFLY_HOVER_FALLDAMAGE = MOVING_SURVIVALFLY_HOVER + "falldamage"; + public static final String MOVING_SURVIVALFLY_HOVER_SFVIOLATION = MOVING_SURVIVALFLY_HOVER + "sfviolation"; // Special (to be sorted in or factored out). - private static final String MOVING_VELOCITY = MOVING + "velocity."; - public static final String MOVING_VELOCITY_GRACETICKS = MOVING_VELOCITY + "graceticks"; - public static final String MOVING_VELOCITY_ACTIVATIONCOUNTER = MOVING_VELOCITY + "activationcounter"; - public static final String MOVING_VELOCITY_ACTIVATIONTICKS = MOVING_VELOCITY + "activationticks"; - public static final String MOVING_VELOCITY_STRICTINVALIDATION = MOVING_VELOCITY + "strictinvalidation"; + private static final String MOVING_VELOCITY = MOVING + "velocity."; + public static final String MOVING_VELOCITY_GRACETICKS = MOVING_VELOCITY + "graceticks"; + public static final String MOVING_VELOCITY_ACTIVATIONCOUNTER = MOVING_VELOCITY + "activationcounter"; + public static final String MOVING_VELOCITY_ACTIVATIONTICKS = MOVING_VELOCITY + "activationticks"; + public static final String MOVING_VELOCITY_STRICTINVALIDATION = MOVING_VELOCITY + "strictinvalidation"; public static final String MOVING_NOFALL_YONGROUND = MOVING_NOFALL + "yonground"; public static final String MOVING_YONGROUND = MOVING + "yonground"; - public static final String MOVING_SURVIVALFLY_YSTEP = MOVING_SURVIVALFLY + "ystep"; - - // General. - public static final String MOVING_TEMPKICKILLEGAL = MOVING + "tempkickillegal"; - private static final String MOVING_LOADCHUNKS = MOVING + "loadchunks."; - public static final String MOVING_LOADCHUNKS_JOIN = MOVING_LOADCHUNKS + "join"; - public static final String MOVING_SPRINTINGGRACE = MOVING + "sprintinggrace"; - public static final String MOVING_ASSUMESPRINT = MOVING + "assumesprint"; - public static final String MOVING_SPEEDGRACE = MOVING + "speedgrace"; - public static final String MOVING_ENFORCELOCATION = MOVING + "enforcelocation"; - - private static final String MOVING_VEHICLES = MOVING + "vehicles."; - public static final String MOVING_VEHICLES_ENFORCELOCATION = MOVING_VEHICLES + "enforcelocation"; - public static final String MOVING_VEHICLES_PREVENTDESTROYOWN = MOVING_VEHICLES + "preventdestroyown"; - - private static final String MOVING_TRACE = MOVING + "trace."; - public static final String MOVING_TRACE_SIZE = MOVING_TRACE + "size"; - public static final String MOVING_TRACE_MERGEDIST = MOVING_TRACE + "mergedist"; - - private static final String NET = CHECKS + "net."; - - private static final String NET_SOUNDDISTANCE = NET + "sounddistance."; - public static final String NET_SOUNDDISTANCE_ACTIVE = NET_SOUNDDISTANCE + "active"; - @GlobalConfig - public static final String NET_SOUNDDISTANCE_MAXDISTANCE = NET_SOUNDDISTANCE + "maxdistance"; - - private static final String NET_FLYINGFREQUENCY = NET + "flyingfrequency."; - public static final String NET_FLYINGFREQUENCY_ACTIVE = NET_FLYINGFREQUENCY + "active"; - @GlobalConfig - public static final String NET_FLYINGFREQUENCY_SECONDS = NET_FLYINGFREQUENCY + "seconds"; - @GlobalConfig - public static final String NET_FLYINGFREQUENCY_MAXPACKETS = NET_FLYINGFREQUENCY + "maxpackets"; - - + public static final String MOVING_SURVIVALFLY_YSTEP = MOVING_SURVIVALFLY + "ystep"; + + // General. + public static final String MOVING_TEMPKICKILLEGAL = MOVING + "tempkickillegal"; + private static final String MOVING_LOADCHUNKS = MOVING + "loadchunks."; + public static final String MOVING_LOADCHUNKS_JOIN = MOVING_LOADCHUNKS + "join"; + public static final String MOVING_SPRINTINGGRACE = MOVING + "sprintinggrace"; + public static final String MOVING_ASSUMESPRINT = MOVING + "assumesprint"; + public static final String MOVING_SPEEDGRACE = MOVING + "speedgrace"; + public static final String MOVING_ENFORCELOCATION = MOVING + "enforcelocation"; + + private static final String MOVING_VEHICLES = MOVING + "vehicles."; + public static final String MOVING_VEHICLES_ENFORCELOCATION = MOVING_VEHICLES + "enforcelocation"; + public static final String MOVING_VEHICLES_PREVENTDESTROYOWN = MOVING_VEHICLES + "preventdestroyown"; + + private static final String MOVING_TRACE = MOVING + "trace."; + public static final String MOVING_TRACE_SIZE = MOVING_TRACE + "size"; + public static final String MOVING_TRACE_MERGEDIST = MOVING_TRACE + "mergedist"; + + private static final String NET = CHECKS + "net."; + + private static final String NET_SOUNDDISTANCE = NET + "sounddistance."; + public static final String NET_SOUNDDISTANCE_ACTIVE = NET_SOUNDDISTANCE + "active"; + @GlobalConfig + public static final String NET_SOUNDDISTANCE_MAXDISTANCE = NET_SOUNDDISTANCE + "maxdistance"; + + private static final String NET_FLYINGFREQUENCY = NET + "flyingfrequency."; + public static final String NET_FLYINGFREQUENCY_ACTIVE = NET_FLYINGFREQUENCY + "active"; + @GlobalConfig + public static final String NET_FLYINGFREQUENCY_SECONDS = NET_FLYINGFREQUENCY + "seconds"; + @GlobalConfig + public static final String NET_FLYINGFREQUENCY_MAXPACKETS = NET_FLYINGFREQUENCY + "maxpackets"; + + public static final String STRINGS = "strings"; // Compatibility section (possibly temporary). @GlobalConfig public static final String COMPATIBILITY = "compatibility."; public static final String COMPATIBILITY_MANAGELISTENERS = COMPATIBILITY + "managelisteners"; - public static final String COMPATIBILITY_BUKKITONLY = COMPATIBILITY + "bukkitapionly"; + public static final String COMPATIBILITY_BUKKITONLY = COMPATIBILITY + "bukkitapionly"; public static final String COMPATIBILITY_BLOCKS = COMPATIBILITY + "blocks."; - + // Deprecated (don't use fields from above). @Moved(newPath = LOGGING_BACKEND_CONSOLE_ACTIVE) public static final String LOGGING_CONSOLE = "logging.console"; @@ -621,28 +620,30 @@ public abstract class ConfPaths { public static final String LOGGING_INGAMECHAT = "logging.ingamechat"; @Moved(newPath = LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS) public static final String LOGGING_USESUBSCRIPTIONS = "logging.usesubscriptions"; - @Moved(newPath = PROTECT_PLUGINS_HIDE_ACTIVE) - public static final String MISCELLANEOUS_PROTECTPLUGINS = "miscellaneous.protectplugins"; - @Moved(newPath = PROTECT_CLIENTS_MOTD_ALLOWALL) - public static final String MISCELLANEOUS_ALLOWCLIENTMODS = "miscellaneous.allowclientmods"; - @Moved(newPath = PROTECT_PLUGINS_HIDE_NOCOMMAND_MSG) - public static final String PROTECT_PLUGINS_HIDE_MSG_NOCOMMAND = "protection.plugins.hide.messages.unknowncommand"; - @Moved(newPath = PROTECT_PLUGINS_HIDE_NOPERMISSION_MSG) - public static final String PROTECT_PLUGINS_HIDE_MSG_NOPERMISSION = "protection.plugins.hide.messages.nopermission"; - @Moved(newPath = PROTECT_COMMANDS_CONSOLEONLY_ACTIVE) - public static final String MISCELLANEOUS_OPINCONSOLEONLY = "miscellaneous.opinconsoleonly"; - @Moved(newPath = COMPATIBILITY_MANAGELISTENERS) - public static final String MISCELLANEOUS_MANAGELISTENERS = "miscellaneous.managelisteners"; - @Moved(newPath = INVENTORY_OPEN_CHECK) - public static final String INVENTORY_ENSURECLOSE = "checks.inventory.ensureclose"; - @Deprecated - public static final String MISCELLANEOUS_REPORTTOMETRICS = "miscellaneous.reporttometrics"; - @Deprecated - public static final String BLOCKBREAK_FASTBREAK_MOD_CREATIVE = "checks.blockbreak.fastbreak.intervalcreative"; - @Deprecated - public static final String MOVING_PASSABLE_RAYTRACING_VCLIPONLY = "checks.moving.passable.raytracing.vcliponly"; - @Deprecated - public static final String FIGHT_CRITICAL_VELOCITY = "checks.fight.critical.velocity"; + @Moved(newPath = PROTECT_PLUGINS_HIDE_ACTIVE) + public static final String MISCELLANEOUS_PROTECTPLUGINS = "miscellaneous.protectplugins"; + @Moved(newPath = PROTECT_CLIENTS_MOTD_ALLOWALL) + public static final String MISCELLANEOUS_ALLOWCLIENTMODS = "miscellaneous.allowclientmods"; + @Moved(newPath = PROTECT_PLUGINS_HIDE_NOCOMMAND_MSG) + public static final String PROTECT_PLUGINS_HIDE_MSG_NOCOMMAND = "protection.plugins.hide.messages.unknowncommand"; + @Moved(newPath = PROTECT_PLUGINS_HIDE_NOPERMISSION_MSG) + public static final String PROTECT_PLUGINS_HIDE_MSG_NOPERMISSION = "protection.plugins.hide.messages.nopermission"; + @Moved(newPath = PROTECT_COMMANDS_CONSOLEONLY_ACTIVE) + public static final String MISCELLANEOUS_OPINCONSOLEONLY = "miscellaneous.opinconsoleonly"; + @Moved(newPath = COMPATIBILITY_MANAGELISTENERS) + public static final String MISCELLANEOUS_MANAGELISTENERS = "miscellaneous.managelisteners"; + @Moved(newPath = INVENTORY_OPEN_CHECK) + public static final String INVENTORY_ENSURECLOSE = "checks.inventory.ensureclose"; + @Deprecated + public static final String MISCELLANEOUS_REPORTTOMETRICS = "miscellaneous.reporttometrics"; + @Deprecated + public static final String BLOCKBREAK_FASTBREAK_MOD_CREATIVE = "checks.blockbreak.fastbreak.intervalcreative"; + @Deprecated + public static final String MOVING_PASSABLE_RAYTRACING_VCLIPONLY = "checks.moving.passable.raytracing.vcliponly"; + @Deprecated + public static final String FIGHT_CRITICAL_VELOCITY = "checks.fight.critical.velocity"; + @Deprecated + public static final String BLOCKBREAK_FASTBREAK_DEBUG = "checks.blockbreak.fastbreak.debug"; + - } diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/NoCheatPlus.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/NoCheatPlus.java index 0e97bb9e..fdc293da 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/NoCheatPlus.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/NoCheatPlus.java @@ -1034,7 +1034,7 @@ public class NoCheatPlus extends JavaPlugin implements NoCheatPlusAPI { // Debug information about unknown blocks. // (Probably removed later.) ConfigFile config = ConfigManager.getConfigFile(); - BlockProperties.dumpBlocks(config.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_DEBUG, config.getBoolean(ConfPaths.BLOCKBREAK_DEBUG, config.getBoolean(ConfPaths.CHECKS_DEBUG, false)))); + BlockProperties.dumpBlocks(config.getBoolean(ConfPaths.BLOCKBREAK_DEBUG, config.getBoolean(ConfPaths.CHECKS_DEBUG, false))); } }); }