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))); } }); }