mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-08-30 17:19:32 +02:00
[API CHANGE] Add debug flags to check data [missing: use that one].
For debug output now data.debug is used instead of config.debug, so the data is initialized with the config.debug value. As an effect of this, removing the data or reloading will override flags that have been set by means of API-access only. Affected: * Adds getDebug and setDebug to ICheckData. * Adds appropriate configs to all constructors of check data. * Some per-check debug flags have been removed. Extras: * spaces * import cleanup.
This commit is contained in:
parent
a2e4db7c94
commit
04d2896f7e
|
@ -1,6 +1,5 @@
|
||||||
package fr.neatmonster.nocheatplus.utilities.ds.corw;
|
package fr.neatmonster.nocheatplus.utilities.ds.corw;
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import fr.neatmonster.nocheatplus.config.ConfigFile;
|
||||||
public abstract class ACheckConfig implements ICheckConfig {
|
public abstract class ACheckConfig implements ICheckConfig {
|
||||||
|
|
||||||
/** For on the fly debug setting. */
|
/** 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. */
|
/** If to adapt to server side lag. */
|
||||||
public final boolean lag;
|
public final boolean lag;
|
||||||
|
|
|
@ -7,18 +7,34 @@ package fr.neatmonster.nocheatplus.checks.access;
|
||||||
*/
|
*/
|
||||||
public abstract class ACheckData implements ICheckData {
|
public abstract class ACheckData implements ICheckData {
|
||||||
|
|
||||||
@Override
|
public boolean debug; // TODO: Might make private.
|
||||||
public boolean hasCachedPermissionEntry(String permission) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
public ACheckData(ICheckConfig config) {
|
||||||
public boolean hasCachedPermission(String permission) {
|
setDebug(config.getDebug());
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCachedPermission(String permission, boolean value) {
|
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) {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,26 +11,30 @@ import java.util.Map;
|
||||||
*/
|
*/
|
||||||
public abstract class AsyncCheckData extends ACheckData {
|
public abstract class AsyncCheckData extends ACheckData {
|
||||||
|
|
||||||
// TODO: consider using a PermissionEntry class with a timestamp to schedule renewing it.
|
// 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.
|
// 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. */
|
public AsyncCheckData(ICheckConfig config) {
|
||||||
protected final Map<String, Boolean> cachedPermissions = Collections.synchronizedMap(new HashMap<String, Boolean>());
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
/** The permissions that are actually cached. */
|
||||||
public boolean hasCachedPermissionEntry(final String permission) {
|
protected final Map<String, Boolean> cachedPermissions = Collections.synchronizedMap(new HashMap<String, Boolean>());
|
||||||
return cachedPermissions.containsKey(permission);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasCachedPermission(final String permission) {
|
public boolean hasCachedPermissionEntry(final String permission) {
|
||||||
final Boolean has = cachedPermissions.get(permission);
|
return cachedPermissions.containsKey(permission);
|
||||||
return (has == null) ? false : has.booleanValue();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCachedPermission(final String permission, final boolean has){
|
public boolean hasCachedPermission(final String permission) {
|
||||||
cachedPermissions.put(permission, has);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,36 @@ import fr.neatmonster.nocheatplus.components.IData;
|
||||||
*/
|
*/
|
||||||
public interface ICheckData extends IData{
|
public interface ICheckData extends IData{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if an entry for the given permission exists.
|
* Set if to trace/debug this player for the associated checks.
|
||||||
* @param permission
|
* @param debug
|
||||||
* @return
|
*/
|
||||||
*/
|
public void setDebug(boolean debug);
|
||||||
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.
|
* Test if to trace/debug this player for the associated checks.
|
||||||
* @param permission
|
* @return
|
||||||
* @param value
|
*/
|
||||||
*/
|
public boolean getDebug();
|
||||||
public void setCachedPermission(String permission, boolean value);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,6 @@ public class BlockBreakConfig extends ACheckConfig {
|
||||||
|
|
||||||
public final boolean fastBreakCheck;
|
public final boolean fastBreakCheck;
|
||||||
public final boolean fastBreakStrict;
|
public final boolean fastBreakStrict;
|
||||||
public final boolean fastBreakDebug;
|
|
||||||
public final int fastBreakBuckets;
|
public final int fastBreakBuckets;
|
||||||
public final long fastBreakBucketDur;
|
public final long fastBreakBucketDur;
|
||||||
public final float fastBreakBucketFactor;
|
public final float fastBreakBucketFactor;
|
||||||
|
@ -105,7 +104,6 @@ public class BlockBreakConfig extends ACheckConfig {
|
||||||
// Fastbreak.
|
// Fastbreak.
|
||||||
fastBreakCheck = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_CHECK);
|
fastBreakCheck = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_CHECK);
|
||||||
fastBreakStrict = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_STRICT);
|
fastBreakStrict = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_STRICT);
|
||||||
fastBreakDebug = data.getBoolean(ConfPaths.BLOCKBREAK_FASTBREAK_DEBUG, false);
|
|
||||||
fastBreakDelay = data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_DELAY);
|
fastBreakDelay = data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_DELAY);
|
||||||
fastBreakGrace = Math.max(data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_BUCKETS_CONTENTION, 2000), data.getLong(ConfPaths.BLOCKBREAK_FASTBREAK_GRACE));
|
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);
|
fastBreakBucketDur = data.getInt(ConfPaths.BLOCKBREAK_FASTBREAK_BUCKETS_DUR, 4000);
|
||||||
|
|
|
@ -19,28 +19,28 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
||||||
*/
|
*/
|
||||||
public class BlockBreakData extends ACheckData {
|
public class BlockBreakData extends ACheckData {
|
||||||
|
|
||||||
/** The factory creating data. */
|
/** The factory creating data. */
|
||||||
public static final CheckDataFactory factory = new CheckDataFactory() {
|
public static final CheckDataFactory factory = new CheckDataFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckData getData(final Player player) {
|
public final ICheckData getData(final Player player) {
|
||||||
return BlockBreakData.getData(player);
|
return BlockBreakData.getData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICheckData removeData(final String playerName) {
|
public ICheckData removeData(final String playerName) {
|
||||||
return BlockBreakData.removeData(playerName);
|
return BlockBreakData.removeData(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllData() {
|
public void removeAllData() {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The map containing the data per players. */
|
/** The map containing the data per players. */
|
||||||
private static final Map<String, BlockBreakData> playersMap = new HashMap<String, BlockBreakData>();
|
private static final Map<String, BlockBreakData> playersMap = new HashMap<String, BlockBreakData>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the data of a specified player.
|
* Gets the data of a specified player.
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player
|
||||||
|
@ -54,14 +54,14 @@ public class BlockBreakData extends ACheckData {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ICheckData removeData(final String playerName) {
|
public static ICheckData removeData(final String playerName) {
|
||||||
return playersMap.remove(playerName);
|
return playersMap.remove(playerName);
|
||||||
}
|
|
||||||
|
|
||||||
public static void clear(){
|
|
||||||
playersMap.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Violation levels.
|
public static void clear(){
|
||||||
|
playersMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Violation levels.
|
||||||
public double directionVL;
|
public double directionVL;
|
||||||
public double fastBreakVL;
|
public double fastBreakVL;
|
||||||
public double frequencyVL;
|
public double frequencyVL;
|
||||||
|
@ -70,28 +70,28 @@ public class BlockBreakData extends ACheckData {
|
||||||
public final ActionFrequency wrongBlockVL;
|
public final ActionFrequency wrongBlockVL;
|
||||||
|
|
||||||
// Shared data.
|
// Shared data.
|
||||||
public int clickedX = Integer.MAX_VALUE;
|
public int clickedX = Integer.MAX_VALUE;
|
||||||
public int clickedY;
|
public int clickedY;
|
||||||
public int clickedZ;
|
public int clickedZ;
|
||||||
public int clickedTick;
|
public int clickedTick;
|
||||||
/** Tool that the block was clicked with, null for the case of air. */
|
/** Tool that the block was clicked with, null for the case of air. */
|
||||||
public Material clickedTool = null;
|
public Material clickedTool = null;
|
||||||
|
|
||||||
// TODO: use tick here too ?
|
// TODO: use tick here too ?
|
||||||
public long wasInstaBreak;
|
public long wasInstaBreak;
|
||||||
|
|
||||||
public final Timings stats;
|
public Timings stats;
|
||||||
|
|
||||||
// Data of the fast break check.
|
// Data of the fast break check.
|
||||||
public final ActionFrequency fastBreakPenalties;
|
public final ActionFrequency fastBreakPenalties;
|
||||||
public int fastBreakBuffer;
|
public int fastBreakBuffer;
|
||||||
public long fastBreakBreakTime = System.currentTimeMillis() - 1000L;
|
public long fastBreakBreakTime = System.currentTimeMillis() - 1000L;
|
||||||
/** First time interaction with a block. */
|
/** First time interaction with a block. */
|
||||||
public long fastBreakfirstDamage = System.currentTimeMillis();
|
public long fastBreakfirstDamage = System.currentTimeMillis();
|
||||||
|
|
||||||
public final ActionFrequency frequencyBuckets;
|
public final ActionFrequency frequencyBuckets;
|
||||||
public int frequencyShortTermCount;
|
public int frequencyShortTermCount;
|
||||||
public int frequencyShortTermTick;
|
public int frequencyShortTermTick;
|
||||||
|
|
||||||
// Data of the no swing check.
|
// Data of the no swing check.
|
||||||
public boolean noSwingArmSwung = true;
|
public boolean noSwingArmSwung = true;
|
||||||
|
@ -101,11 +101,28 @@ public class BlockBreakData extends ACheckData {
|
||||||
|
|
||||||
|
|
||||||
public BlockBreakData(final BlockBreakConfig cc) {
|
public BlockBreakData(final BlockBreakConfig cc) {
|
||||||
stats = cc.fastBreakDebug?(new Timings("NCP/FASTBREAK")):null;
|
super(cc);
|
||||||
fastBreakPenalties = new ActionFrequency(cc.fastBreakBuckets, cc.fastBreakBucketDur);
|
setStats();
|
||||||
frequencyBuckets = new ActionFrequency(cc.frequencyBuckets, cc.frequencyBucketDur);
|
fastBreakPenalties = new ActionFrequency(cc.fastBreakBuckets, cc.fastBreakBucketDur);
|
||||||
wrongBlockVL = new ActionFrequency(6, 20000);
|
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.
|
* Meant to record the first click/damage on a block (not subsequent clicking), forces internals update.
|
||||||
|
@ -115,7 +132,7 @@ public class BlockBreakData extends ACheckData {
|
||||||
* @param mat
|
* @param mat
|
||||||
*/
|
*/
|
||||||
public void setClickedBlock(Block block, int tick, long now, Material tool) {
|
public void setClickedBlock(Block block, int tick, long now, Material tool) {
|
||||||
fastBreakfirstDamage = now;
|
fastBreakfirstDamage = now;
|
||||||
// Also set last clicked blocks position.
|
// Also set last clicked blocks position.
|
||||||
clickedX = block.getX();
|
clickedX = block.getX();
|
||||||
clickedY = block.getY();
|
clickedY = block.getY();
|
||||||
|
@ -128,22 +145,22 @@ public class BlockBreakData extends ACheckData {
|
||||||
* Reset clicked block (as if not clicked anything before).
|
* Reset clicked block (as if not clicked anything before).
|
||||||
*/
|
*/
|
||||||
public void resetClickedBlock() {
|
public void resetClickedBlock() {
|
||||||
clickedX = Integer.MAX_VALUE;
|
clickedX = Integer.MAX_VALUE;
|
||||||
clickedTick = 0;
|
clickedTick = 0;
|
||||||
fastBreakfirstDamage = 0;
|
fastBreakfirstDamage = 0;
|
||||||
clickedTool = null;
|
clickedTool = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean toolChanged(ItemStack stack) {
|
public boolean toolChanged(ItemStack stack) {
|
||||||
return toolChanged(stack == null ? null: stack.getType());
|
return toolChanged(stack == null ? null: stack.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean toolChanged(Material mat) {
|
public boolean toolChanged(Material mat) {
|
||||||
if (mat == Material.AIR) {
|
if (mat == Material.AIR) {
|
||||||
return clickedTool != null;
|
return clickedTool != null;
|
||||||
} else {
|
} else {
|
||||||
return clickedTool != mat;
|
return clickedTool != mat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@ public class FastBreak extends Check {
|
||||||
data.fastBreakVL *= 0.9D;
|
data.fastBreakVL *= 0.9D;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((cc.fastBreakDebug || cc.debug) && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) {
|
if ((data.debug) && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)) {
|
||||||
// General stats:
|
// General stats:
|
||||||
if (data.stats != null) {
|
if (data.stats != null) {
|
||||||
data.stats.addStats(data.stats.getId(blockType+ "/u", true), elapsedTime);
|
data.stats.addStats(data.stats.getId(blockType+ "/u", true), elapsedTime);
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class WrongBlock extends Check {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wrongBlock) {
|
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);
|
player.sendMessage("WrongBlock failure with dist: " + dist);
|
||||||
}
|
}
|
||||||
data.wrongBlockVL.add(now, (float) (dist + 1) / 2f);
|
data.wrongBlockVL.add(now, (float) (dist + 1) / 2f);
|
||||||
|
|
|
@ -18,23 +18,23 @@ import fr.neatmonster.nocheatplus.utilities.TickTask;
|
||||||
*/
|
*/
|
||||||
public class BlockInteractData extends ACheckData {
|
public class BlockInteractData extends ACheckData {
|
||||||
|
|
||||||
/** The factory creating data. */
|
/** The factory creating data. */
|
||||||
public static final CheckDataFactory factory = new CheckDataFactory() {
|
public static final CheckDataFactory factory = new CheckDataFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckData getData(final Player player) {
|
public final ICheckData getData(final Player player) {
|
||||||
return BlockInteractData.getData(player);
|
return BlockInteractData.getData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICheckData removeData(final String playerName) {
|
public ICheckData removeData(final String playerName) {
|
||||||
return BlockInteractData.removeData(playerName);
|
return BlockInteractData.removeData(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllData() {
|
public void removeAllData() {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The map containing the data per players. */
|
/** The map containing the data per players. */
|
||||||
private static final Map<String, BlockInteractData> playersMap = new HashMap<String, BlockInteractData>();
|
private static final Map<String, BlockInteractData> playersMap = new HashMap<String, BlockInteractData>();
|
||||||
|
@ -48,19 +48,19 @@ public class BlockInteractData extends ACheckData {
|
||||||
*/
|
*/
|
||||||
public static BlockInteractData getData(final Player player) {
|
public static BlockInteractData getData(final Player player) {
|
||||||
if (!playersMap.containsKey(player.getName()))
|
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());
|
return playersMap.get(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ICheckData removeData(final String playerName) {
|
public static ICheckData removeData(final String playerName) {
|
||||||
return playersMap.remove(playerName);
|
return playersMap.remove(playerName);
|
||||||
}
|
|
||||||
|
|
||||||
public static void clear(){
|
|
||||||
playersMap.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Violation levels.
|
public static void clear(){
|
||||||
|
playersMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Violation levels.
|
||||||
public double directionVL = 0;
|
public double directionVL = 0;
|
||||||
public double reachVL = 0;
|
public double reachVL = 0;
|
||||||
public double speedVL = 0;
|
public double speedVL = 0;
|
||||||
|
@ -83,27 +83,31 @@ public class BlockInteractData extends ACheckData {
|
||||||
/** Number of interactions since last reset-time. */
|
/** Number of interactions since last reset-time. */
|
||||||
public int speedCount = 0;
|
public int speedCount = 0;
|
||||||
|
|
||||||
|
public BlockInteractData(final BlockInteractConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Last interacted block.
|
* Last interacted block.
|
||||||
* @param block
|
* @param block
|
||||||
*/
|
*/
|
||||||
public void setLastBlock(Block block, Action action) {
|
public void setLastBlock(Block block, Action action) {
|
||||||
lastX = block.getX();
|
lastX = block.getX();
|
||||||
lastY = block.getY();
|
lastY = block.getY();
|
||||||
lastZ = block.getZ();
|
lastZ = block.getZ();
|
||||||
lastType = block.getType();
|
lastType = block.getType();
|
||||||
if (lastType == Material.AIR) {
|
if (lastType == Material.AIR) {
|
||||||
lastType = null;
|
lastType = null;
|
||||||
}
|
}
|
||||||
lastTick = TickTask.getTick();
|
lastTick = TickTask.getTick();
|
||||||
lastAction = action;
|
lastAction = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetLastBlock() {
|
public void resetLastBlock() {
|
||||||
lastTick = 0;
|
lastTick = 0;
|
||||||
lastAction = null;
|
lastAction = null;
|
||||||
lastX = Integer.MAX_VALUE;
|
lastX = Integer.MAX_VALUE;
|
||||||
lastType = null;
|
lastType = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class Speed extends Check {
|
||||||
data.speedVL *= 0.99;
|
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);
|
player.sendMessage("Interact speed: " + data.speedCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ public class Visible extends Check {
|
||||||
blockCache.cleanup();
|
blockCache.cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cc.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){
|
if (data.debug && player.hasPermission(Permissions.ADMINISTRATION_DEBUG)){
|
||||||
// TODO: Tags
|
// TODO: Tags
|
||||||
player.sendMessage("Interact visible: " + (action == Action.RIGHT_CLICK_BLOCK ? "right" : "left") + " collide=" + rayTracing.collides());
|
player.sendMessage("Interact visible: " + (action == Action.RIGHT_CLICK_BLOCK ? "right" : "left") + " collide=" + rayTracing.collides());
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,23 +15,23 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
||||||
*/
|
*/
|
||||||
public class BlockPlaceData extends ACheckData {
|
public class BlockPlaceData extends ACheckData {
|
||||||
|
|
||||||
/** The factory creating data. */
|
/** The factory creating data. */
|
||||||
public static final CheckDataFactory factory = new CheckDataFactory() {
|
public static final CheckDataFactory factory = new CheckDataFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckData getData(final Player player) {
|
public final ICheckData getData(final Player player) {
|
||||||
return BlockPlaceData.getData(player);
|
return BlockPlaceData.getData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICheckData removeData(final String playerName) {
|
public ICheckData removeData(final String playerName) {
|
||||||
return BlockPlaceData.removeData(playerName);
|
return BlockPlaceData.removeData(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllData() {
|
public void removeAllData() {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The map containing the data per players. */
|
/** The map containing the data per players. */
|
||||||
private static final Map<String, BlockPlaceData> playersMap = new HashMap<String, BlockPlaceData>();
|
private static final Map<String, BlockPlaceData> playersMap = new HashMap<String, BlockPlaceData>();
|
||||||
|
@ -45,26 +45,26 @@ public class BlockPlaceData extends ACheckData {
|
||||||
*/
|
*/
|
||||||
public static BlockPlaceData getData(final Player player) {
|
public static BlockPlaceData getData(final Player player) {
|
||||||
if (!playersMap.containsKey(player.getName()))
|
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());
|
return playersMap.get(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ICheckData removeData(final String playerName) {
|
public static ICheckData removeData(final String playerName) {
|
||||||
return playersMap.remove(playerName);
|
return playersMap.remove(playerName);
|
||||||
}
|
|
||||||
|
|
||||||
public static void clear(){
|
|
||||||
playersMap.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Violation levels.
|
public static void clear(){
|
||||||
|
playersMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Violation levels.
|
||||||
public double againstVL = 0;
|
public double againstVL = 0;
|
||||||
public double autoSignVL = 0;
|
public double autoSignVL = 0;
|
||||||
public double directionVL = 0;
|
public double directionVL = 0;
|
||||||
public double fastPlaceVL = 0;
|
public double fastPlaceVL = 0;
|
||||||
public double noSwingVL = 0;
|
public double noSwingVL = 0;
|
||||||
public double reachVL = 0;
|
public double reachVL = 0;
|
||||||
public double speedVL = 0;
|
public double speedVL = 0;
|
||||||
|
|
||||||
// AutoSign.
|
// AutoSign.
|
||||||
public long autoSignPlacedTime = 0;
|
public long autoSignPlacedTime = 0;
|
||||||
|
@ -85,4 +85,9 @@ public class BlockPlaceData extends ACheckData {
|
||||||
// Data of the speed check;
|
// Data of the speed check;
|
||||||
public boolean speedLastRefused;
|
public boolean speedLastRefused;
|
||||||
public long speedLastTime;
|
public long speedLastTime;
|
||||||
|
|
||||||
|
public BlockPlaceData(final BlockPlaceConfig config) {
|
||||||
|
super (config);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,23 +15,23 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
||||||
*/
|
*/
|
||||||
public class ChatData extends AsyncCheckData {
|
public class ChatData extends AsyncCheckData {
|
||||||
|
|
||||||
/** The factory creating data. */
|
/** The factory creating data. */
|
||||||
public static final CheckDataFactory factory = new CheckDataFactory() {
|
public static final CheckDataFactory factory = new CheckDataFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckData getData(final Player player) {
|
public final ICheckData getData(final Player player) {
|
||||||
return ChatData.getData(player);
|
return ChatData.getData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICheckData removeData(final String playerName) {
|
public ICheckData removeData(final String playerName) {
|
||||||
return ChatData.removeData(playerName);
|
return ChatData.removeData(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllData() {
|
public void removeAllData() {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The map containing the data per players. */
|
/** The map containing the data per players. */
|
||||||
private static final Map<String, ChatData> playersMap = new HashMap<String, ChatData>();
|
private static final Map<String, ChatData> playersMap = new HashMap<String, ChatData>();
|
||||||
|
@ -45,19 +45,19 @@ public class ChatData extends AsyncCheckData {
|
||||||
*/
|
*/
|
||||||
public static synchronized ChatData getData(final Player player) {
|
public static synchronized ChatData getData(final Player player) {
|
||||||
if (!playersMap.containsKey(player.getName()))
|
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());
|
return playersMap.get(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static synchronized ICheckData removeData(final String playerName) {
|
public static synchronized ICheckData removeData(final String playerName) {
|
||||||
return playersMap.remove(playerName);
|
return playersMap.remove(playerName);
|
||||||
}
|
|
||||||
|
|
||||||
public static synchronized void clear(){
|
|
||||||
playersMap.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Violation levels.
|
public static synchronized void clear(){
|
||||||
|
playersMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Violation levels.
|
||||||
public double captchaVL;
|
public double captchaVL;
|
||||||
public double colorVL;
|
public double colorVL;
|
||||||
public double commandsVL;
|
public double commandsVL;
|
||||||
|
@ -89,6 +89,10 @@ public class ChatData extends AsyncCheckData {
|
||||||
public int relogWarnings;
|
public int relogWarnings;
|
||||||
public long relogWarningTime;
|
public long relogWarningTime;
|
||||||
|
|
||||||
|
public ChatData(final ChatConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear the data of the no pwnage check.
|
* Clear the data of the no pwnage check.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -115,7 +115,7 @@ public class Text extends Check implements INotifyReload {
|
||||||
|
|
||||||
boolean cancel = false;
|
boolean cancel = false;
|
||||||
|
|
||||||
boolean debug = cc.textDebug || cc.debug;
|
boolean debug = data.debug;
|
||||||
|
|
||||||
final List<String> debugParts;
|
final List<String> debugParts;
|
||||||
if (debug) {
|
if (debug) {
|
||||||
|
|
|
@ -4,7 +4,6 @@ import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import fr.neatmonster.nocheatplus.checks.Check;
|
import fr.neatmonster.nocheatplus.checks.Check;
|
||||||
import fr.neatmonster.nocheatplus.checks.CheckType;
|
import fr.neatmonster.nocheatplus.checks.CheckType;
|
||||||
import fr.neatmonster.nocheatplus.compat.AlmostBoolean;
|
|
||||||
|
|
||||||
public class BedLeave extends Check {
|
public class BedLeave extends Check {
|
||||||
|
|
||||||
|
|
|
@ -8,83 +8,81 @@ import org.bukkit.entity.Player;
|
||||||
import fr.neatmonster.nocheatplus.checks.access.ACheckData;
|
import fr.neatmonster.nocheatplus.checks.access.ACheckData;
|
||||||
import fr.neatmonster.nocheatplus.checks.access.CheckDataFactory;
|
import fr.neatmonster.nocheatplus.checks.access.CheckDataFactory;
|
||||||
import fr.neatmonster.nocheatplus.checks.access.ICheckData;
|
import fr.neatmonster.nocheatplus.checks.access.ICheckData;
|
||||||
import fr.neatmonster.nocheatplus.compat.AlmostBoolean;
|
|
||||||
import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
||||||
import fr.neatmonster.nocheatplus.utilities.PenaltyTime;
|
import fr.neatmonster.nocheatplus.utilities.PenaltyTime;
|
||||||
|
|
||||||
public class CombinedData extends ACheckData {
|
public class CombinedData extends ACheckData {
|
||||||
|
|
||||||
/** The factory creating data. */
|
/** The factory creating data. */
|
||||||
public static final CheckDataFactory factory = new CheckDataFactory() {
|
public static final CheckDataFactory factory = new CheckDataFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckData getData(final Player player) {
|
public final ICheckData getData(final Player player) {
|
||||||
return CombinedData.getData(player);
|
return CombinedData.getData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICheckData removeData(final String playerName) {
|
public ICheckData removeData(final String playerName) {
|
||||||
return CombinedData.removeData(playerName);
|
return CombinedData.removeData(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllData() {
|
public void removeAllData() {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Map<String, CombinedData> playersMap = new HashMap<String, CombinedData>();
|
private static final Map<String, CombinedData> playersMap = new HashMap<String, CombinedData>();
|
||||||
|
|
||||||
public static CombinedData getData(final Player player) {
|
public static CombinedData getData(final Player player) {
|
||||||
final String playerName = player.getName();
|
final String playerName = player.getName();
|
||||||
CombinedData data = playersMap.get(playerName);
|
CombinedData data = playersMap.get(playerName);
|
||||||
if (data == null){
|
if (data == null){
|
||||||
data = new CombinedData(player);
|
data = new CombinedData(CombinedConfig.getConfig(player));
|
||||||
playersMap.put(playerName, data);
|
playersMap.put(playerName, data);
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ICheckData removeData(final String playerName) {
|
public static ICheckData removeData(final String playerName) {
|
||||||
return playersMap.remove(playerName);
|
return playersMap.remove(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void clear(){
|
public static void clear(){
|
||||||
playersMap.clear();
|
playersMap.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// VLs
|
// VLs
|
||||||
public double bedLeaveVL = 0;
|
public double bedLeaveVL = 0;
|
||||||
public double improbableVL = 0;
|
public double improbableVL = 0;
|
||||||
public double munchHausenVL = 0;
|
public double munchHausenVL = 0;
|
||||||
|
|
||||||
// Invulnerable management:
|
// Invulnerable management:
|
||||||
/** This is the tick from which on the player is vulnerable again. */
|
/** This is the tick from which on the player is vulnerable again. */
|
||||||
public int invulnerableTick = Integer.MIN_VALUE;
|
public int invulnerableTick = Integer.MIN_VALUE;
|
||||||
|
|
||||||
// Yawrate check.
|
// Yawrate check.
|
||||||
public float lastYaw;
|
public float lastYaw;
|
||||||
public long lastYawTime;
|
public long lastYawTime;
|
||||||
public float sumYaw;
|
public float sumYaw;
|
||||||
public final ActionFrequency yawFreq = new ActionFrequency(3, 333);
|
public final ActionFrequency yawFreq = new ActionFrequency(3, 333);
|
||||||
|
|
||||||
// General penalty time. Used for fighting mainly, but not only close combat (!), set by yawrate check.
|
// General penalty time. Used for fighting mainly, but not only close combat (!), set by yawrate check.
|
||||||
public final PenaltyTime timeFreeze = new PenaltyTime();
|
public final PenaltyTime timeFreeze = new PenaltyTime();
|
||||||
|
|
||||||
// Bedleave check
|
// Bedleave check
|
||||||
public boolean wasInBed = false;
|
public boolean wasInBed = false;
|
||||||
|
|
||||||
// Improbable check
|
// Improbable check
|
||||||
public final ActionFrequency improbableCount = new ActionFrequency(20, 3000);
|
public final ActionFrequency improbableCount = new ActionFrequency(20, 3000);
|
||||||
|
|
||||||
// General data
|
// General data
|
||||||
public String lastWorld = "";
|
public String lastWorld = "";
|
||||||
public long lastJoinTime;
|
public long lastJoinTime;
|
||||||
public long lastLogoutTime;
|
public long lastLogoutTime;
|
||||||
public long lastMoveTime;
|
public long lastMoveTime;
|
||||||
|
|
||||||
public CombinedData(final Player player){
|
public CombinedData(final CombinedConfig config){
|
||||||
// final CombinedConfig cc = CombinedConfig.getConfig(player);
|
super(config);
|
||||||
// TODO: Get some things from the config.
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class Critical extends Check {
|
||||||
final double mcFallDistance = (double) player.getFallDistance();
|
final double mcFallDistance = (double) player.getFallDistance();
|
||||||
final MovingConfig mCc = MovingConfig.getConfig(player);
|
final MovingConfig mCc = MovingConfig.getConfig(player);
|
||||||
// TODO: All debugging to the trace (later allow hooking your own trace).
|
// 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);
|
final MovingData mData = MovingData.getData(player);
|
||||||
|
|
||||||
if (MovingListener.shouldCheckSurvivalFly(player, mData, mCc) && CheckType.MOVING_NOFALL.isEnabled(player)) {
|
if (MovingListener.shouldCheckSurvivalFly(player, mData, mCc) && CheckType.MOVING_NOFALL.isEnabled(player)) {
|
||||||
|
|
|
@ -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);
|
player.sendMessage("Regain health(SATIATED): " + (time - data.fastHealRefTime) + " ms "+ "(buffer=" + data.fastHealBuffer + ")" +" , cancel=" + cancel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -192,10 +192,11 @@ public class FightData extends ACheckData {
|
||||||
public int lastExplosionEntityId = Integer.MAX_VALUE;
|
public int lastExplosionEntityId = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
|
||||||
public FightData(final FightConfig cc){
|
public FightData(final FightConfig config){
|
||||||
speedBuckets = new ActionFrequency(cc.speedBuckets, cc.speedBucketDur);
|
super(config);
|
||||||
|
speedBuckets = new ActionFrequency(config.speedBuckets, config.speedBucketDur);
|
||||||
// Start with full fast-heal buffer.
|
// Start with full fast-heal buffer.
|
||||||
fastHealBuffer = cc.fastHealBuffer;
|
fastHealBuffer = config.fastHealBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onWorldChange() {
|
public void onWorldChange() {
|
||||||
|
|
|
@ -158,7 +158,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{
|
||||||
// damagedPlayer.getLocation(useLoc2);
|
// damagedPlayer.getLocation(useLoc2);
|
||||||
// }
|
// }
|
||||||
// Log.
|
// 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());
|
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.)
|
// 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.
|
// Angle check.
|
||||||
if (angle.check(player, worldChanged, data, cc)) {
|
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.");
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " fight.angle cancel without yawrate cancel.");
|
||||||
}
|
}
|
||||||
cancelled = true;
|
cancelled = true;
|
||||||
|
@ -298,7 +298,7 @@ public class FightListener extends CheckListener implements JoinLeaveListener{
|
||||||
// Judge as "lost sprint" problem.
|
// Judge as "lost sprint" problem.
|
||||||
// TODO: What would mData.lostSprintCount > 0 mean here?
|
// TODO: What would mData.lostSprintCount > 0 mean here?
|
||||||
mData.lostSprintCount = 7;
|
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);
|
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).
|
// (Cancel after sprinting hacks, because of potential fp).
|
||||||
if (!cancelled && data.attackPenalty.isPenalty(now)) {
|
if (!cancelled && data.attackPenalty.isPenalty(now)) {
|
||||||
cancelled = true;
|
cancelled = true;
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " ~ attack penalty.");
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " ~ attack penalty.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,7 @@ public class Reach extends Check {
|
||||||
data.reachMod = Math.min(1.0, data.reachMod + DYNAMIC_STEP);
|
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));
|
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);
|
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));
|
player.sendMessage("NC+: Attack/reach " + damaged.getType()+ " height="+ StringUtil.fdec3.format(context.damagedHeight) + " dist=" + StringUtil.fdec3.format(lenpRel) +" @" + StringUtil.fdec3.format(data.reachMod));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ public class FastClick extends Check {
|
||||||
cancel = executeActions(vd);
|
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);
|
player.sendMessage("FastClick: " + data.fastClickFreq.bucketScore(0) + " | " + data.fastClickFreq.score(1f) + " | cursor=" + cursor + " | clicked=" + clicked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 +")");
|
player.sendMessage(ChatColor.YELLOW + "NCP: " + ChatColor.GRAY + "Bow shot - force: " + force +", " + (cc.instantBowStrict || pullDuration < 2 * expectedPullDuration ? ("pull time: " + pullDuration) : "") + "(" + expectedPullDuration +")");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,23 +16,23 @@ import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
||||||
*/
|
*/
|
||||||
public class InventoryData extends ACheckData {
|
public class InventoryData extends ACheckData {
|
||||||
|
|
||||||
/** The factory creating data. */
|
/** The factory creating data. */
|
||||||
public static final CheckDataFactory factory = new CheckDataFactory() {
|
public static final CheckDataFactory factory = new CheckDataFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckData getData(final Player player) {
|
public final ICheckData getData(final Player player) {
|
||||||
return InventoryData.getData(player);
|
return InventoryData.getData(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICheckData removeData(final String playerName) {
|
public ICheckData removeData(final String playerName) {
|
||||||
return InventoryData.removeData(playerName);
|
return InventoryData.removeData(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeAllData() {
|
public void removeAllData() {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The map containing the data per players. */
|
/** The map containing the data per players. */
|
||||||
private static final Map<String, InventoryData> playersMap = new HashMap<String, InventoryData>();
|
private static final Map<String, InventoryData> playersMap = new HashMap<String, InventoryData>();
|
||||||
|
@ -46,19 +46,19 @@ public class InventoryData extends ACheckData {
|
||||||
*/
|
*/
|
||||||
public static InventoryData getData(final Player player) {
|
public static InventoryData getData(final Player player) {
|
||||||
if (!playersMap.containsKey(player.getName()))
|
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());
|
return playersMap.get(player.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ICheckData removeData(final String playerName) {
|
public static ICheckData removeData(final String playerName) {
|
||||||
return playersMap.remove(playerName);
|
return playersMap.remove(playerName);
|
||||||
}
|
|
||||||
|
|
||||||
public static void clear(){
|
|
||||||
playersMap.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Violation levels.
|
public static void clear(){
|
||||||
|
playersMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Violation levels.
|
||||||
public double dropVL;
|
public double dropVL;
|
||||||
public double fastClickVL;
|
public double fastClickVL;
|
||||||
public double instantBowVL;
|
public double instantBowVL;
|
||||||
|
@ -72,14 +72,14 @@ public class InventoryData extends ACheckData {
|
||||||
public long dropLastTime;
|
public long dropLastTime;
|
||||||
|
|
||||||
// Data of the fast click check.
|
// Data of the fast click check.
|
||||||
// public boolean fastClickLastCancelled;
|
// public boolean fastClickLastCancelled;
|
||||||
public final ActionFrequency fastClickFreq = new ActionFrequency(5, 200L);
|
public final ActionFrequency fastClickFreq = new ActionFrequency(5, 200L);
|
||||||
public Material fastClickLastCursor = null;
|
public Material fastClickLastCursor = null;
|
||||||
public Material fastClickLastClicked = null;
|
public Material fastClickLastClicked = null;
|
||||||
public int fastClickLastCursorAmount = 0;
|
public int fastClickLastCursorAmount = 0;
|
||||||
|
|
||||||
// Data of the instant bow check.
|
// 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 instantBowInteract = 0;
|
||||||
public long instantBowShoot;
|
public long instantBowShoot;
|
||||||
|
|
||||||
|
@ -87,4 +87,8 @@ public class InventoryData extends ACheckData {
|
||||||
public Material instantEatFood;
|
public Material instantEatFood;
|
||||||
public long instantEatInteract;
|
public long instantEatInteract;
|
||||||
|
|
||||||
|
public InventoryData(final InventoryConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class MorePackets extends Check {
|
||||||
|
|
||||||
// Violation handling.
|
// Violation handling.
|
||||||
final ViolationData vd = new ViolationData(this, player, data.morePacketsVL, violation, cc.morePacketsActions);
|
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.PACKETS, Integer.toString(new Double(violation).intValue()));
|
||||||
vd.setParameter(ParameterName.TAGS, StringUtil.join(tags, "+"));
|
vd.setParameter(ParameterName.TAGS, StringUtil.join(tags, "+"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
// Execute whatever actions are associated with this check and the violation level and find out if we should
|
||||||
// cancel the event.
|
// cancel the event.
|
||||||
final ViolationData vd = new ViolationData(this, player, data.morePacketsVehicleVL, -data.morePacketsVehicleBuffer, cc.morePacketsVehicleActions);
|
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));
|
vd.setParameter(ParameterName.PACKETS, Integer.toString(-data.morePacketsVehicleBuffer));
|
||||||
}
|
}
|
||||||
if (executeActions(vd)){
|
if (executeActions(vd)){
|
||||||
|
|
|
@ -20,13 +20,13 @@ import fr.neatmonster.nocheatplus.permissions.Permissions;
|
||||||
*/
|
*/
|
||||||
public class MovingConfig extends ACheckConfig {
|
public class MovingConfig extends ACheckConfig {
|
||||||
|
|
||||||
/** The factory creating configurations. */
|
/** The factory creating configurations. */
|
||||||
public static final CheckConfigFactory factory = new CheckConfigFactory() {
|
public static final CheckConfigFactory factory = new CheckConfigFactory() {
|
||||||
@Override
|
@Override
|
||||||
public final ICheckConfig getConfig(final Player player) {
|
public final ICheckConfig getConfig(final Player player) {
|
||||||
return MovingConfig.getConfig(player);
|
return MovingConfig.getConfig(player);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The map containing the configurations per world. */
|
/** The map containing the configurations per world. */
|
||||||
private static final Map<String, MovingConfig> worldsMap = new HashMap<String, MovingConfig>();
|
private static final Map<String, MovingConfig> worldsMap = new HashMap<String, MovingConfig>();
|
||||||
|
@ -56,9 +56,9 @@ public class MovingConfig extends ACheckConfig {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static MovingConfig getConfig(final String worldName) {
|
public static MovingConfig getConfig(final String worldName) {
|
||||||
final MovingConfig cc = worldsMap.get(worldName);
|
final MovingConfig cc = worldsMap.get(worldName);
|
||||||
if (cc != null){
|
if (cc != null){
|
||||||
return cc;
|
return cc;
|
||||||
}
|
}
|
||||||
final MovingConfig ccNew = new MovingConfig(ConfigManager.getConfigFile(worldName));
|
final MovingConfig ccNew = new MovingConfig(ConfigManager.getConfigFile(worldName));
|
||||||
worldsMap.put(worldName, ccNew);
|
worldsMap.put(worldName, ccNew);
|
||||||
|
@ -66,8 +66,8 @@ public class MovingConfig extends ACheckConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public final boolean ignoreCreative;
|
public final boolean ignoreCreative;
|
||||||
public final boolean ignoreAllowFlight;
|
public final boolean ignoreAllowFlight;
|
||||||
|
|
||||||
public final boolean creativeFlyCheck;
|
public final boolean creativeFlyCheck;
|
||||||
public final int creativeFlyHorizontalSpeed;
|
public final int creativeFlyHorizontalSpeed;
|
||||||
|
@ -80,6 +80,7 @@ public class MovingConfig extends ACheckConfig {
|
||||||
public final float morePacketsEPSIdeal;
|
public final float morePacketsEPSIdeal;
|
||||||
/** The maximum number of packets per second that we accept. */
|
/** The maximum number of packets per second that we accept. */
|
||||||
public final float morePacketsEPSMax;
|
public final float morePacketsEPSMax;
|
||||||
|
public final int morePacketsEPSBuckets;
|
||||||
public final float morePacketsBurstPackets;
|
public final float morePacketsBurstPackets;
|
||||||
public final double morePacketsBurstDirect;
|
public final double morePacketsBurstDirect;
|
||||||
public final double morePacketsBurstEPM;
|
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. */
|
/** Deal damage instead of Minecraft, whenever a player is judged to be on ground. */
|
||||||
public final boolean noFallDealDamage;
|
public final boolean noFallDealDamage;
|
||||||
/** Reset data on violation, i.e. a player taking fall damage without being on ground. */
|
/** Reset data on violation, i.e. a player taking fall damage without being on ground. */
|
||||||
public final boolean noFallViolationReset;
|
public final boolean noFallViolationReset;
|
||||||
/** Reset data on tp. */
|
/** Reset data on tp. */
|
||||||
public final boolean noFallTpReset;
|
public final boolean noFallTpReset;
|
||||||
/** Reset if in vehicle. */
|
/** Reset if in vehicle. */
|
||||||
public final boolean noFallVehicleReset;
|
public final boolean noFallVehicleReset;
|
||||||
/** Reset fd to 0 if on ground (dealdamage only). */
|
/** Reset fd to 0 if on ground (dealdamage only). */
|
||||||
public final boolean noFallAntiCriticals;
|
public final boolean noFallAntiCriticals;
|
||||||
public final ActionList noFallActions;
|
public final ActionList noFallActions;
|
||||||
|
|
||||||
public final boolean passableCheck;
|
public final boolean passableCheck;
|
||||||
public final boolean passableRayTracingCheck;
|
public final boolean passableRayTracingCheck;
|
||||||
public final boolean passableRayTracingBlockChangeOnly;
|
public final boolean passableRayTracingBlockChangeOnly;
|
||||||
// TODO: passableAccuracy: also use if not using ray-tracing
|
// TODO: passableAccuracy: also use if not using ray-tracing
|
||||||
public final ActionList passableActions;
|
public final ActionList passableActions;
|
||||||
|
|
||||||
public final boolean survivalFlyCheck;
|
public final boolean survivalFlyCheck;
|
||||||
public final int survivalFlyBlockingSpeed;
|
public final int survivalFlyBlockingSpeed;
|
||||||
|
@ -121,37 +122,37 @@ public class MovingConfig extends ACheckConfig {
|
||||||
public final long survivalFlyVLFreeze;
|
public final long survivalFlyVLFreeze;
|
||||||
public final ActionList survivalFlyActions;
|
public final ActionList survivalFlyActions;
|
||||||
|
|
||||||
public final boolean sfHoverCheck;
|
public final boolean sfHoverCheck;
|
||||||
public final int sfHoverTicks;
|
public final int sfHoverTicks;
|
||||||
public final int sfHoverLoginTicks;
|
public final int sfHoverLoginTicks;
|
||||||
public final boolean sfHoverFallDamage;
|
public final boolean sfHoverFallDamage;
|
||||||
public final double sfHoverViolation;
|
public final double sfHoverViolation;
|
||||||
|
|
||||||
// Special tolerance values:
|
// Special tolerance values:
|
||||||
/** This is not strictly ticks, but packets, for now.*/
|
/** This is not strictly ticks, but packets, for now.*/
|
||||||
public final int velocityGraceTicks;
|
public final int velocityGraceTicks;
|
||||||
public final int velocityActivationCounter;
|
public final int velocityActivationCounter;
|
||||||
public final int velocityActivationTicks;
|
public final int velocityActivationTicks;
|
||||||
public final boolean velocityStrictInvalidation;
|
public final boolean velocityStrictInvalidation;
|
||||||
public final double noFallyOnGround;
|
public final double noFallyOnGround;
|
||||||
public final double yOnGround;
|
public final double yOnGround;
|
||||||
public final double yStep;
|
public final double yStep;
|
||||||
|
|
||||||
// General things.
|
// General things.
|
||||||
public final boolean tempKickIllegal;
|
public final boolean tempKickIllegal;
|
||||||
public final boolean loadChunksOnJoin;
|
public final boolean loadChunksOnJoin;
|
||||||
public final long sprintingGrace;
|
public final long sprintingGrace;
|
||||||
public final boolean assumeSprint;
|
public final boolean assumeSprint;
|
||||||
public final int speedGrace;
|
public final int speedGrace;
|
||||||
public final boolean enforceLocation;
|
public final boolean enforceLocation;
|
||||||
|
|
||||||
// Vehicles
|
// Vehicles
|
||||||
public final boolean vehicleEnforceLocation;
|
public final boolean vehicleEnforceLocation;
|
||||||
public final boolean vehiclePreventDestroyOwn;
|
public final boolean vehiclePreventDestroyOwn;
|
||||||
|
|
||||||
// Trace
|
// Trace
|
||||||
public final int traceSize;
|
public final int traceSize;
|
||||||
public final double traceMergeDist;
|
public final double traceMergeDist;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,8 +164,8 @@ public class MovingConfig extends ACheckConfig {
|
||||||
public MovingConfig(final ConfigFile config) {
|
public MovingConfig(final ConfigFile config) {
|
||||||
super(config, ConfPaths.MOVING);
|
super(config, ConfPaths.MOVING);
|
||||||
|
|
||||||
ignoreCreative = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE);
|
ignoreCreative = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE);
|
||||||
ignoreAllowFlight = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT);
|
ignoreAllowFlight = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT);
|
||||||
|
|
||||||
creativeFlyCheck = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_CHECK);
|
creativeFlyCheck = config.getBoolean(ConfPaths.MOVING_CREATIVEFLY_CHECK);
|
||||||
creativeFlyHorizontalSpeed = config.getInt(ConfPaths.MOVING_CREATIVEFLY_HORIZONTALSPEED);
|
creativeFlyHorizontalSpeed = config.getInt(ConfPaths.MOVING_CREATIVEFLY_HORIZONTALSPEED);
|
||||||
|
@ -175,6 +176,7 @@ public class MovingConfig extends ACheckConfig {
|
||||||
morePacketsCheck = config.getBoolean(ConfPaths.MOVING_MOREPACKETS_CHECK);
|
morePacketsCheck = config.getBoolean(ConfPaths.MOVING_MOREPACKETS_CHECK);
|
||||||
morePacketsEPSIdeal = config.getInt(ConfPaths.MOVING_MOREPACKETS_EPSIDEAL);
|
morePacketsEPSIdeal = config.getInt(ConfPaths.MOVING_MOREPACKETS_EPSIDEAL);
|
||||||
morePacketsEPSMax = Math.max(morePacketsEPSIdeal, config.getInt(ConfPaths.MOVING_MOREPACKETS_EPSMAX));
|
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);
|
morePacketsBurstPackets = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_EPM);
|
||||||
morePacketsBurstDirect = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_DIRECT);
|
morePacketsBurstDirect = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_DIRECT);
|
||||||
morePacketsBurstEPM = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_EPM);
|
morePacketsBurstEPM = config.getInt(ConfPaths.MOVING_MOREPACKETS_BURST_EPM);
|
||||||
|
@ -193,8 +195,8 @@ public class MovingConfig extends ACheckConfig {
|
||||||
noFallActions = config.getOptimizedActionList(ConfPaths.MOVING_NOFALL_ACTIONS, Permissions.MOVING_NOFALL);
|
noFallActions = config.getOptimizedActionList(ConfPaths.MOVING_NOFALL_ACTIONS, Permissions.MOVING_NOFALL);
|
||||||
|
|
||||||
passableCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_CHECK);
|
passableCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_CHECK);
|
||||||
passableRayTracingCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_CHECK);
|
passableRayTracingCheck = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_CHECK);
|
||||||
passableRayTracingBlockChangeOnly = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY);
|
passableRayTracingBlockChangeOnly = config.getBoolean(ConfPaths.MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY);
|
||||||
passableActions = config.getOptimizedActionList(ConfPaths.MOVING_PASSABLE_ACTIONS, Permissions.MOVING_PASSABLE);
|
passableActions = config.getOptimizedActionList(ConfPaths.MOVING_PASSABLE_ACTIONS, Permissions.MOVING_PASSABLE);
|
||||||
|
|
||||||
survivalFlyCheck = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_CHECK);
|
survivalFlyCheck = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_CHECK);
|
||||||
|
@ -255,7 +257,7 @@ public class MovingConfig extends ACheckConfig {
|
||||||
case MOVING_SURVIVALFLY:
|
case MOVING_SURVIVALFLY:
|
||||||
return survivalFlyCheck;
|
return survivalFlyCheck;
|
||||||
case MOVING_PASSABLE:
|
case MOVING_PASSABLE:
|
||||||
return passableCheck;
|
return passableCheck;
|
||||||
case MOVING_MOREPACKETS:
|
case MOVING_MOREPACKETS:
|
||||||
return morePacketsCheck;
|
return morePacketsCheck;
|
||||||
case MOVING_MOREPACKETSVEHICLE:
|
case MOVING_MOREPACKETSVEHICLE:
|
||||||
|
|
|
@ -10,9 +10,6 @@ import org.bukkit.entity.Player;
|
||||||
import fr.neatmonster.nocheatplus.checks.access.ACheckData;
|
import fr.neatmonster.nocheatplus.checks.access.ACheckData;
|
||||||
import fr.neatmonster.nocheatplus.checks.access.CheckDataFactory;
|
import fr.neatmonster.nocheatplus.checks.access.CheckDataFactory;
|
||||||
import fr.neatmonster.nocheatplus.checks.access.ICheckData;
|
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.ActionAccumulator;
|
||||||
import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
import fr.neatmonster.nocheatplus.utilities.ActionFrequency;
|
||||||
import fr.neatmonster.nocheatplus.utilities.PlayerLocation;
|
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.
|
// Note that the trace might be null after just calling this.
|
||||||
MovingData data = playersMap.get(player.getName());
|
MovingData data = playersMap.get(player.getName());
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
data = new MovingData(ConfigManager.getConfigFile(player.getWorld().getName()));
|
data = new MovingData(MovingConfig.getConfig(player));
|
||||||
playersMap.put(player.getName(), data);
|
playersMap.put(player.getName(), data);
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
|
@ -209,10 +206,9 @@ public class MovingData extends ACheckData {
|
||||||
public boolean wasInVehicle = false;
|
public boolean wasInVehicle = false;
|
||||||
public MoveConsistency vehicleConsistency = MoveConsistency.INCONSISTENT;
|
public MoveConsistency vehicleConsistency = MoveConsistency.INCONSISTENT;
|
||||||
|
|
||||||
public MovingData(final ConfigFile config) {
|
public MovingData(final MovingConfig config) {
|
||||||
// TODO: Parameters from cc.
|
super(config);
|
||||||
final int nob = 2 * Math.max(1, Math.min(60, config.getInt(ConfPaths.MOVING_MOREPACKETS_SECONDS)));
|
morePacketsFreq = new ActionFrequency(config.morePacketsEPSBuckets, 500);
|
||||||
morePacketsFreq = new ActionFrequency(nob, 500);
|
|
||||||
morePacketsBurstFreq = new ActionFrequency(12, 5000);
|
morePacketsBurstFreq = new ActionFrequency(12, 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -447,7 +447,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
data.noFallAssumeGround = false;
|
data.noFallAssumeGround = false;
|
||||||
data.resetTeleported();
|
data.resetTeleported();
|
||||||
// Debug.
|
// Debug.
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
DebugUtil.outputMoveDebug(player, moveInfo.from, moveInfo.to, Math.max(cc.noFallyOnGround, cc.yOnGround), mcAccess);
|
DebugUtil.outputMoveDebug(player, moveInfo.from, moveInfo.to, Math.max(cc.noFallyOnGround, cc.yOnGround), mcAccess);
|
||||||
}
|
}
|
||||||
// Check for illegal move and bounding box etc.
|
// Check for illegal move and bounding box etc.
|
||||||
|
@ -694,7 +694,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
event.setTo(newTo);
|
event.setTo(newTo);
|
||||||
|
|
||||||
// Debug.
|
// 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()));
|
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
|
* @param cc
|
||||||
*/
|
*/
|
||||||
private void onVehicleLeaveMiss(final Player player, final MovingData data, final MovingConfig 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());
|
StaticLog.logWarning("[NoCheatPlus] VehicleExitEvent missing for: " + player.getName());
|
||||||
}
|
}
|
||||||
onPlayerVehicleLeave(player, null);
|
onPlayerVehicleLeave(player, null);
|
||||||
|
@ -981,7 +981,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
data.sfHoverTicks = -1; // Important against concurrent modification exception.
|
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);
|
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.
|
// Cancelled, not a set back, ignore it, basically.
|
||||||
// Better reset teleported (compatibility). Might have drawbacks.
|
// Better reset teleported (compatibility). Might have drawbacks.
|
||||||
data.resetTeleported();
|
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);
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " TP (cancelled): " + to);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -1028,7 +1028,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
|
|
||||||
final Vector velocity = event.getVelocity();
|
final Vector velocity = event.getVelocity();
|
||||||
|
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, event.getPlayer().getName() + " new velocity: " + velocity);
|
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();
|
data.clearNoFallData();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
// Log move.
|
// Log move.
|
||||||
DebugUtil.outputDebugVehicleMove(player, vehicle, from, to, fake);
|
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: 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: 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?
|
// 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);
|
useLoc.setWorld(null);
|
||||||
}
|
}
|
||||||
|
@ -1213,7 +1213,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
final float fallDistance = player.getFallDistance();
|
final float fallDistance = player.getFallDistance();
|
||||||
final double damage = BridgeHealth.getDamage(event);
|
final double damage = BridgeHealth.getDamage(event);
|
||||||
final float yDiff = (float) (data.noFallMaxY - loc.getY());
|
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);
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " damage(FALL): " + damage + " / dist=" + player.getFallDistance() + " nf=" + data.noFallFallDistance + " yDiff=" + yDiff);
|
||||||
}
|
}
|
||||||
// Fall-back check.
|
// Fall-back check.
|
||||||
|
@ -1221,7 +1221,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
if (maxD > damage) {
|
if (maxD > damage) {
|
||||||
// TODO: respect dealDamage ?
|
// TODO: respect dealDamage ?
|
||||||
BridgeHealth.setDamage(event, maxD);
|
BridgeHealth.setDamage(event, maxD);
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Adjust fall damage to: " + maxD);
|
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.
|
// Check loaded chunks.
|
||||||
if (cc.loadChunksOnJoin) {
|
if (cc.loadChunksOnJoin) {
|
||||||
final int loaded = BlockCache.ensureChunksLoaded(loc.getWorld(), loc.getX(), loc.getZ(), 3.0);
|
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
|
// DEBUG
|
||||||
StaticLog.logInfo("[NoCheatPlus] Player join: Loaded " + loaded + " chunk" + (loaded == 1 ? "" : "s") + " for the world " + loc.getWorld().getName() + " for player: " + player.getName());
|
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
|
@Override
|
||||||
public void playerLeaves(final Player player) {
|
public void playerLeaves(final Player player) {
|
||||||
final MovingConfig cc = MovingConfig.getConfig(player);
|
|
||||||
final MovingData data = MovingData.getData(player);
|
final MovingData data = MovingData.getData(player);
|
||||||
final Location loc = player.getLocation(useLoc);
|
final Location loc = player.getLocation(useLoc);
|
||||||
// Debug logout.
|
// Debug logout.
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
StaticLog.logInfo("[NoCheatPlus] Player " + player.getName() + " leaves at location: " + loc.toString());
|
StaticLog.logInfo("[NoCheatPlus] Player " + player.getName() + " leaves at location: " + loc.toString());
|
||||||
}
|
}
|
||||||
if (!player.isSleeping() && !player.isDead()) {
|
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));
|
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);
|
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()));
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " vehicle leave: " + pLoc.toString() + (pLoc.equals(loc) ? "" : " / player at: " + pLoc.toString()));
|
||||||
}
|
}
|
||||||
data.resetPositions(loc);
|
data.resetPositions(loc);
|
||||||
|
@ -1642,7 +1641,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||||
final boolean res;
|
final boolean res;
|
||||||
// TODO: Collect flags, more margin ?
|
// TODO: Collect flags, more margin ?
|
||||||
final int loaded = info.from.ensureChunksLoaded();
|
final int loaded = info.from.ensureChunksLoaded();
|
||||||
if (loaded > 0 && cc.debug && BuildParameters.debugLevel > 0) {
|
if (loaded > 0 && data.debug && BuildParameters.debugLevel > 0) {
|
||||||
// DEBUG
|
// 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());
|
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());
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class NoFall extends Check {
|
||||||
if (maxD >= 1.0){
|
if (maxD >= 1.0){
|
||||||
// Damage to be dealt.
|
// Damage to be dealt.
|
||||||
// TODO: more effects like sounds, maybe use custom event with violation added.
|
// 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);
|
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]
|
// 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)){
|
else if (cc.noFallAntiCriticals && (toReset || toOnGround || (fromReset || fromOnGround || data.noFallAssumeGround) && yDiff >= 0)){
|
||||||
final double max = Math.max(data.noFallFallDistance, mcFallDistance);
|
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 (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);
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " NoFall: Reset fall distance (anticriticals): mc=" + mcFallDistance +" / nf=" + data.noFallFallDistance);
|
||||||
}
|
}
|
||||||
if (data.noFallFallDistance > 0){
|
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);
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " NoFall: mc=" + mcFallDistance +" / nf=" + data.noFallFallDistance + (oldNFDist < data.noFallFallDistance ? " (+" + (data.noFallFallDistance - oldNFDist) + ")" : "") + " | ymax=" + data.noFallMaxY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class Passable extends Check {
|
||||||
toPassable = false;
|
toPassable = false;
|
||||||
tags = "raytracing_2x_";
|
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.");
|
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.isPassable(from.getBlockCache(), ref) || loc == null || TrigUtil.distance(from, loc) > 0.13) {
|
||||||
// if (BlockProperties.isPassableExact(from.getBlockCache(), ref)) {
|
// if (BlockProperties.isPassableExact(from.getBlockCache(), ref)) {
|
||||||
loc = ref;
|
loc = ref;
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Using set-back location for passable.");
|
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.");
|
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.
|
// Return the reset position.
|
||||||
data.passableVL += 1d;
|
data.passableVL += 1d;
|
||||||
final ViolationData vd = new ViolationData(this, player, data.passableVL, 1, cc.passableActions);
|
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_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.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)));
|
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);
|
newTo = LocUtil.clone(loc);
|
||||||
} else {
|
} else {
|
||||||
newTo = from.getLocation();
|
newTo = from.getLocation();
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Using from location for passable.");
|
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Using from location for passable.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -261,7 +261,7 @@ public class SurvivalFly extends Check {
|
||||||
vDistanceAboveLimit = res[1];
|
vDistanceAboveLimit = res[1];
|
||||||
if (res[0] == Double.MIN_VALUE && res[1] == Double.MIN_VALUE) {
|
if (res[0] == Double.MIN_VALUE && res[1] == Double.MIN_VALUE) {
|
||||||
// Silent set-back.
|
// Silent set-back.
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
tags.add("silentsbcobweb");
|
tags.add("silentsbcobweb");
|
||||||
outputDebug(player, to, data, cc, hDistance, hAllowedDistance, hFreedom, yDistance, vAllowedDistance, fromOnGround, resetFrom, toOnGround, resetTo);
|
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
|
// TODO: on ground -> on ground improvements
|
||||||
|
|
||||||
// Debug output.
|
// Debug output.
|
||||||
if (cc.debug) {
|
if (data.debug) {
|
||||||
outputDebug(player, to, data, cc, hDistance, hAllowedDistance, hFreedom, yDistance, vAllowedDistance, fromOnGround, resetFrom, toOnGround, resetTo);
|
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: too many false positives with just checking from ?
|
||||||
// TODO: Sneaking and blocking applies to when in water !
|
// TODO: Sneaking and blocking applies to when in water !
|
||||||
hAllowedDistance = modSwim * walkSpeed * cc.survivalFlySwimmingSpeed / 100D;
|
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))) {
|
} else if (!sfDirty && player.isSneaking() && reallySneaking.contains(player.getName()) && (!checkPermissions || !player.hasPermission(Permissions.MOVING_SURVIVALFLY_SNEAKING))) {
|
||||||
hAllowedDistance = modSneak * walkSpeed * cc.survivalFlySneakingSpeed / 100D;
|
hAllowedDistance = modSneak * walkSpeed * cc.survivalFlySneakingSpeed / 100D;
|
||||||
}
|
}
|
||||||
|
@ -545,8 +546,10 @@ public class SurvivalFly extends Check {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Short cut.
|
// Short cut.
|
||||||
// TODO: Check if a) early return makes sense and b) do it ofr all following parts.
|
// TODO: Check if a) early return makes sense and b) do it for each of the following parts.
|
||||||
if (hDistance <= hAllowedDistance && !cc.debug) {
|
// 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.
|
// Shortcut for debug disabled.
|
||||||
return hAllowedDistance;
|
return hAllowedDistance;
|
||||||
}
|
}
|
||||||
|
@ -556,6 +559,8 @@ public class SurvivalFly extends Check {
|
||||||
hAllowedDistance *= modIce;
|
hAllowedDistance *= modIce;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Attributes
|
||||||
|
|
||||||
// Speed amplifier.
|
// Speed amplifier.
|
||||||
final double speedAmplifier = mcAccess.getFasterMovementAmplifier(player);
|
final double speedAmplifier = mcAccess.getFasterMovementAmplifier(player);
|
||||||
if (speedAmplifier != Double.NEGATIVE_INFINITY) {
|
if (speedAmplifier != Double.NEGATIVE_INFINITY) {
|
||||||
|
|
|
@ -4,7 +4,6 @@ import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import fr.neatmonster.nocheatplus.command.AbstractCommand;
|
import fr.neatmonster.nocheatplus.command.AbstractCommand;
|
||||||
|
|
|
@ -6,7 +6,6 @@ import java.util.List;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import fr.neatmonster.nocheatplus.NCPAPIProvider;
|
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.command.NoCheatPlusCommand.NCPReloadEvent;
|
||||||
import fr.neatmonster.nocheatplus.components.INotifyReload;
|
import fr.neatmonster.nocheatplus.components.INotifyReload;
|
||||||
import fr.neatmonster.nocheatplus.components.order.Order;
|
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.config.ConfigManager;
|
||||||
import fr.neatmonster.nocheatplus.logging.LogManager;
|
import fr.neatmonster.nocheatplus.logging.LogManager;
|
||||||
import fr.neatmonster.nocheatplus.logging.Streams;
|
import fr.neatmonster.nocheatplus.logging.Streams;
|
||||||
|
|
|
@ -6,26 +6,26 @@ package fr.neatmonster.nocheatplus.config;
|
||||||
public abstract class ConfPaths {
|
public abstract class ConfPaths {
|
||||||
|
|
||||||
// Sub-paths that are used with different path prefixes potentially.
|
// 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_DEBUG = "debug";
|
||||||
public static final String SUB_IGNOREPASSABLE = "ignorepassable";
|
public static final String SUB_IGNOREPASSABLE = "ignorepassable";
|
||||||
public static final String SUB_ALLOWINSTANTBREAK = "allowinstantbreak";
|
public static final String SUB_ALLOWINSTANTBREAK = "allowinstantbreak";
|
||||||
public static final String SUB_OVERRIDEFLAGS = "overrideflags";
|
public static final String SUB_OVERRIDEFLAGS = "overrideflags";
|
||||||
public static final String SUB_LAG = "lag";
|
public static final String SUB_LAG = "lag";
|
||||||
|
|
||||||
// General.
|
// General.
|
||||||
public static final String SAVEBACKCONFIG = "savebackconfig";
|
public static final String SAVEBACKCONFIG = "savebackconfig";
|
||||||
|
|
||||||
// Configuration version.
|
// Configuration version.
|
||||||
@GlobalConfig // TODO: Per file versions should also be supported. Better with per-path comparison?
|
@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 = "configversion.";
|
||||||
public static final String CONFIGVERSION_NOTIFY = CONFIGVERSION + "notify";
|
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. */
|
/** 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";
|
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. */
|
/** 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";
|
public static final String CONFIGVERSION_SAVED = CONFIGVERSION + "saved";
|
||||||
|
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
private static final String LOGGING = "logging.";
|
private static final String LOGGING = "logging.";
|
||||||
public static final String LOGGING_ACTIVE = LOGGING + "active";
|
public static final String LOGGING_ACTIVE = LOGGING + "active";
|
||||||
public static final String LOGGING_DEBUG = LOGGING + "debug";
|
public static final String LOGGING_DEBUG = LOGGING + "debug";
|
||||||
|
@ -45,68 +45,68 @@ public abstract class ConfPaths {
|
||||||
public static final String LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS = LOGGING_BACKEND_INGAMECHAT + "subscriptions";
|
public static final String LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS = LOGGING_BACKEND_INGAMECHAT + "subscriptions";
|
||||||
public static final String LOGGING_BACKEND_INGAMECHAT_PREFIX = LOGGING_BACKEND_INGAMECHAT + "prefix";
|
public static final String LOGGING_BACKEND_INGAMECHAT_PREFIX = LOGGING_BACKEND_INGAMECHAT + "prefix";
|
||||||
|
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
private static final String MISCELLANEOUS = "miscellaneous.";
|
private static final String MISCELLANEOUS = "miscellaneous.";
|
||||||
//public static final String MISCELLANEOUS_CHECKFORUPDATES = MISCELLANEOUS + "checkforupdates";
|
//public static final String MISCELLANEOUS_CHECKFORUPDATES = MISCELLANEOUS + "checkforupdates";
|
||||||
//public static final String MISCELLANEOUS_UPDATETIMEOUT = MISCELLANEOUS + "updatetimeout";
|
//public static final String MISCELLANEOUS_UPDATETIMEOUT = MISCELLANEOUS + "updatetimeout";
|
||||||
|
|
||||||
/** TEMP: hidden flag to disable all lag adaption with one flag. */
|
/** TEMP: hidden flag to disable all lag adaption with one flag. */
|
||||||
public static final String MISCELLANEOUS_LAG = MISCELLANEOUS + "lag";
|
public static final String MISCELLANEOUS_LAG = MISCELLANEOUS + "lag";
|
||||||
|
|
||||||
// Extended data-related settings.
|
// Extended data-related settings.
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
private static final String DATA = "data.";
|
private static final String DATA = "data.";
|
||||||
// Expired data removal.
|
// Expired data removal.
|
||||||
private static final String DATA_EXPIRATION = DATA + "expiration.";
|
private static final String DATA_EXPIRATION = DATA + "expiration.";
|
||||||
public static final String DATA_EXPIRATION_ACTIVE = DATA_EXPIRATION + "active";
|
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_DURATION = DATA_EXPIRATION + "duration";
|
||||||
public static final String DATA_EXPIRATION_DATA = DATA_EXPIRATION + "data";
|
public static final String DATA_EXPIRATION_DATA = DATA_EXPIRATION + "data";
|
||||||
public static final String DATA_EXPIRATION_HISTORY = DATA_EXPIRATION + "history";
|
public static final String DATA_EXPIRATION_HISTORY = DATA_EXPIRATION + "history";
|
||||||
// Consistency checking.
|
// Consistency checking.
|
||||||
private static final String DATA_CONSISTENCYCHECKS = DATA + "consistencychecks.";
|
private static final String DATA_CONSISTENCYCHECKS = DATA + "consistencychecks.";
|
||||||
public static final String DATA_CONSISTENCYCHECKS_CHECK = DATA_CONSISTENCYCHECKS + "active";
|
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_INTERVAL = DATA_CONSISTENCYCHECKS + "interval";
|
||||||
public static final String DATA_CONSISTENCYCHECKS_MAXTIME = DATA_CONSISTENCYCHECKS + "maxtime";
|
public static final String DATA_CONSISTENCYCHECKS_MAXTIME = DATA_CONSISTENCYCHECKS + "maxtime";
|
||||||
/**
|
/**
|
||||||
* This might not might not be used by checks. <br>
|
* This might not might not be used by checks. <br>
|
||||||
* Used by: DataMan/Player-instances
|
* Used by: DataMan/Player-instances
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static final String DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS = DATA_CONSISTENCYCHECKS + "suppresswarnings";
|
public static final String DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS = DATA_CONSISTENCYCHECKS + "suppresswarnings";
|
||||||
|
|
||||||
private static final String PROTECT = "protection.";
|
private static final String PROTECT = "protection.";
|
||||||
// Clients settings.
|
// Clients settings.
|
||||||
private static final String PROTECT_CLIENTS = PROTECT + "clients.";
|
private static final String PROTECT_CLIENTS = PROTECT + "clients.";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
private static final String PROTECT_CLIENTS_MOTD = PROTECT_CLIENTS + "motd.";
|
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_ACTIVE = PROTECT_CLIENTS_MOTD + "active";
|
||||||
public static final String PROTECT_CLIENTS_MOTD_ALLOWALL = PROTECT_CLIENTS_MOTD + "allowall";
|
public static final String PROTECT_CLIENTS_MOTD_ALLOWALL = PROTECT_CLIENTS_MOTD + "allowall";
|
||||||
// Other commands settings
|
// Other commands settings
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
private static final String PROTECT_COMMANDS = PROTECT + "commands.";
|
private static final String PROTECT_COMMANDS = PROTECT + "commands.";
|
||||||
private static final String PROTECT_COMMANDS_CONSOLEONLY = PROTECT_COMMANDS + "consoleonly.";
|
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_ACTIVE = PROTECT_COMMANDS_CONSOLEONLY + "active";
|
||||||
public static final String PROTECT_COMMANDS_CONSOLEONLY_MSG = PROTECT_COMMANDS_CONSOLEONLY + "message";
|
public static final String PROTECT_COMMANDS_CONSOLEONLY_MSG = PROTECT_COMMANDS_CONSOLEONLY + "message";
|
||||||
public static final String PROTECT_COMMANDS_CONSOLEONLY_CMDS = PROTECT_COMMANDS_CONSOLEONLY + "commands";
|
public static final String PROTECT_COMMANDS_CONSOLEONLY_CMDS = PROTECT_COMMANDS_CONSOLEONLY + "commands";
|
||||||
// Plugins settings.
|
// Plugins settings.
|
||||||
private static final String PROTECT_PLUGINS = PROTECT + "plugins.";
|
private static final String PROTECT_PLUGINS = PROTECT + "plugins.";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
private static final String PROTECT_PLUGINS_HIDE = PROTECT_PLUGINS + "hide.";
|
private static final String PROTECT_PLUGINS_HIDE = PROTECT_PLUGINS + "hide.";
|
||||||
public static final String PROTECT_PLUGINS_HIDE_ACTIVE = PROTECT_PLUGINS_HIDE + "active";
|
public static final String PROTECT_PLUGINS_HIDE_ACTIVE = PROTECT_PLUGINS_HIDE + "active";
|
||||||
private static final String PROTECT_PLUGINS_HIDE_NOCOMMAND = PROTECT_PLUGINS_HIDE + "unknowncommand.";
|
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_MSG = PROTECT_PLUGINS_HIDE_NOCOMMAND + "message";
|
||||||
public static final String PROTECT_PLUGINS_HIDE_NOCOMMAND_CMDS = PROTECT_PLUGINS_HIDE_NOCOMMAND + "commands";
|
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.";
|
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_MSG = PROTECT_PLUGINS_HIDE_NOPERMISSION + "message";
|
||||||
public static final String PROTECT_PLUGINS_HIDE_NOPERMISSION_CMDS = PROTECT_PLUGINS_HIDE_NOPERMISSION + "commands";
|
public static final String PROTECT_PLUGINS_HIDE_NOPERMISSION_CMDS = PROTECT_PLUGINS_HIDE_NOPERMISSION + "commands";
|
||||||
|
|
||||||
// Checks!
|
// Checks!
|
||||||
private static final String CHECKS = "checks.";
|
private static final String CHECKS = "checks.";
|
||||||
/** Debug flag to debug all checks (!), individual sections debug flags override this, if present. */
|
/** 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 = 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.";
|
private static final String BLOCKBREAK_DIRECTION = BLOCKBREAK + "direction.";
|
||||||
|
@ -116,33 +116,32 @@ public abstract class ConfPaths {
|
||||||
private static final String BLOCKBREAK_FASTBREAK = BLOCKBREAK + "fastbreak.";
|
private static final String BLOCKBREAK_FASTBREAK = BLOCKBREAK + "fastbreak.";
|
||||||
public static final String BLOCKBREAK_FASTBREAK_CHECK = BLOCKBREAK_FASTBREAK + "active";
|
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_STRICT = BLOCKBREAK_FASTBREAK + "strict";
|
||||||
public static final String BLOCKBREAK_FASTBREAK_DEBUG = BLOCKBREAK_FASTBREAK + "debug";
|
|
||||||
private static final String BLOCKBREAK_FASTBREAK_BUCKETS = BLOCKBREAK + "buckets.";
|
private static final String BLOCKBREAK_FASTBREAK_BUCKETS = BLOCKBREAK + "buckets.";
|
||||||
public static final String BLOCKBREAK_FASTBREAK_BUCKETS_CONTENTION = BLOCKBREAK_FASTBREAK_BUCKETS + "contention";
|
public static final String BLOCKBREAK_FASTBREAK_BUCKETS_CONTENTION = BLOCKBREAK_FASTBREAK_BUCKETS + "contention";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String BLOCKBREAK_FASTBREAK_BUCKETS_N = BLOCKBREAK_FASTBREAK_BUCKETS + "number";
|
public static final String BLOCKBREAK_FASTBREAK_BUCKETS_N = BLOCKBREAK_FASTBREAK_BUCKETS + "number";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String BLOCKBREAK_FASTBREAK_BUCKETS_DUR = BLOCKBREAK_FASTBREAK_BUCKETS + "duration";
|
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_BUCKETS_FACTOR = BLOCKBREAK_FASTBREAK_BUCKETS + "factor";
|
||||||
public static final String BLOCKBREAK_FASTBREAK_DELAY = BLOCKBREAK_FASTBREAK + "delay";
|
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_GRACE = BLOCKBREAK_FASTBREAK + "grace";
|
||||||
public static final String BLOCKBREAK_FASTBREAK_MOD_SURVIVAL = BLOCKBREAK_FASTBREAK + "intervalsurvival";
|
public static final String BLOCKBREAK_FASTBREAK_MOD_SURVIVAL = BLOCKBREAK_FASTBREAK + "intervalsurvival";
|
||||||
public static final String BLOCKBREAK_FASTBREAK_ACTIONS = BLOCKBREAK_FASTBREAK + "actions";
|
public static final String BLOCKBREAK_FASTBREAK_ACTIONS = BLOCKBREAK_FASTBREAK + "actions";
|
||||||
|
|
||||||
private static final String BLOCKBREAK_FREQUENCY = BLOCKBREAK + "frequency.";
|
private static final String BLOCKBREAK_FREQUENCY = BLOCKBREAK + "frequency.";
|
||||||
public static final String BLOCKBREAK_FREQUENCY_CHECK = BLOCKBREAK_FREQUENCY + "active";
|
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_CREATIVE = BLOCKBREAK_FREQUENCY + "intervalcreative";
|
||||||
public static final String BLOCKBREAK_FREQUENCY_MOD_SURVIVAL = BLOCKBREAK_FREQUENCY + "intervalsurvival";
|
public static final String BLOCKBREAK_FREQUENCY_MOD_SURVIVAL = BLOCKBREAK_FREQUENCY + "intervalsurvival";
|
||||||
private static final String BLOCKBREAK_FREQUENCY_BUCKETS = BLOCKBREAK_FREQUENCY + "buckets.";
|
private static final String BLOCKBREAK_FREQUENCY_BUCKETS = BLOCKBREAK_FREQUENCY + "buckets.";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String BLOCKBREAK_FREQUENCY_BUCKETS_DUR = BLOCKBREAK_FREQUENCY_BUCKETS + "duration";
|
public static final String BLOCKBREAK_FREQUENCY_BUCKETS_DUR = BLOCKBREAK_FREQUENCY_BUCKETS + "duration";
|
||||||
public static final String BLOCKBREAK_FREQUENCY_BUCKETS_FACTOR = BLOCKBREAK_FREQUENCY_BUCKETS + "factor";
|
public static final String BLOCKBREAK_FREQUENCY_BUCKETS_FACTOR = BLOCKBREAK_FREQUENCY_BUCKETS + "factor";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String BLOCKBREAK_FREQUENCY_BUCKETS_N = BLOCKBREAK_FREQUENCY_BUCKETS + "number";
|
public static final String BLOCKBREAK_FREQUENCY_BUCKETS_N = BLOCKBREAK_FREQUENCY_BUCKETS + "number";
|
||||||
private static final String BLOCKBREAK_FREQUENCY_SHORTTERM = BLOCKBREAK_FREQUENCY + "shortterm.";
|
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_LIMIT = BLOCKBREAK_FREQUENCY_SHORTTERM + "limit";
|
||||||
public static final String BLOCKBREAK_FREQUENCY_SHORTTERM_TICKS = BLOCKBREAK_FREQUENCY_SHORTTERM + "ticks";
|
public static final String BLOCKBREAK_FREQUENCY_SHORTTERM_TICKS = BLOCKBREAK_FREQUENCY_SHORTTERM + "ticks";
|
||||||
public static final String BLOCKBREAK_FREQUENCY_ACTIONS = BLOCKBREAK_FREQUENCY + "actions";
|
public static final String BLOCKBREAK_FREQUENCY_ACTIONS = BLOCKBREAK_FREQUENCY + "actions";
|
||||||
|
|
||||||
private static final String BLOCKBREAK_NOSWING = BLOCKBREAK + "noswing.";
|
private static final String BLOCKBREAK_NOSWING = BLOCKBREAK + "noswing.";
|
||||||
public static final String BLOCKBREAK_NOSWING_CHECK = BLOCKBREAK_NOSWING + "active";
|
public static final String BLOCKBREAK_NOSWING_CHECK = BLOCKBREAK_NOSWING + "active";
|
||||||
|
@ -153,9 +152,9 @@ public abstract class ConfPaths {
|
||||||
public static final String BLOCKBREAK_REACH_ACTIONS = BLOCKBREAK_REACH + "actions";
|
public static final String BLOCKBREAK_REACH_ACTIONS = BLOCKBREAK_REACH + "actions";
|
||||||
|
|
||||||
private static final String BLOCKBREAK_WRONGBLOCK = BLOCKBREAK + "wrongblock.";
|
private static final String BLOCKBREAK_WRONGBLOCK = BLOCKBREAK + "wrongblock.";
|
||||||
public static final String BLOCKBREAK_WRONGBLOCK_CHECK = BLOCKBREAK_WRONGBLOCK + "active";
|
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_LEVEL = BLOCKBREAK_WRONGBLOCK + "level";
|
||||||
public static final String BLOCKBREAK_WRONGBLOCK_ACTIONS = BLOCKBREAK_WRONGBLOCK + "actions";
|
public static final String BLOCKBREAK_WRONGBLOCK_ACTIONS = BLOCKBREAK_WRONGBLOCK + "actions";
|
||||||
|
|
||||||
public static final String BLOCKINTERACT = CHECKS + "blockinteract.";
|
public static final String BLOCKINTERACT = CHECKS + "blockinteract.";
|
||||||
|
|
||||||
|
@ -168,25 +167,25 @@ public abstract class ConfPaths {
|
||||||
public static final String BLOCKINTERACT_REACH_ACTIONS = BLOCKINTERACT_REACH + "actions";
|
public static final String BLOCKINTERACT_REACH_ACTIONS = BLOCKINTERACT_REACH + "actions";
|
||||||
|
|
||||||
private static final String BLOCKINTERACT_SPEED = BLOCKINTERACT + "speed.";
|
private static final String BLOCKINTERACT_SPEED = BLOCKINTERACT + "speed.";
|
||||||
public static final String BLOCKINTERACT_SPEED_CHECK = BLOCKINTERACT_SPEED + "active";
|
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_INTERVAL = BLOCKINTERACT_SPEED + "interval";
|
||||||
public static final String BLOCKINTERACT_SPEED_LIMIT = BLOCKINTERACT_SPEED + "limit";
|
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_ACTIONS = BLOCKINTERACT_SPEED + "actions";
|
||||||
|
|
||||||
private static final String BLOCKINTERACT_VISIBLE = BLOCKINTERACT + "visible.";
|
private static final String BLOCKINTERACT_VISIBLE = BLOCKINTERACT + "visible.";
|
||||||
public static final String BLOCKINTERACT_VISIBLE_CHECK = BLOCKINTERACT_VISIBLE + "active";
|
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_ACTIONS = BLOCKINTERACT_VISIBLE + "actions";
|
||||||
|
|
||||||
// BLOCKPLACE
|
// BLOCKPLACE
|
||||||
public static final String BLOCKPLACE = CHECKS + "blockplace.";
|
public static final String BLOCKPLACE = CHECKS + "blockplace.";
|
||||||
|
|
||||||
private static final String BLOCKPLACE_AGAINST = BLOCKPLACE + "against.";
|
private static final String BLOCKPLACE_AGAINST = BLOCKPLACE + "against.";
|
||||||
public static final String BLOCKPLACE_AGAINST_CHECK = BLOCKPLACE_AGAINST + "active";
|
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.";
|
private static final String BLOCKPLACE_AUTOSIGN = BLOCKPLACE + "autosign.";
|
||||||
public static final String BLOCKPLACE_AUTOSIGN_CHECK = BLOCKPLACE_AUTOSIGN + "active";
|
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_ACTIONS = BLOCKPLACE_AUTOSIGN + "actions";
|
||||||
|
|
||||||
private static final String BLOCKPLACE_DIRECTION = BLOCKPLACE + "direction.";
|
private static final String BLOCKPLACE_DIRECTION = BLOCKPLACE + "direction.";
|
||||||
public static final String BLOCKPLACE_DIRECTION_CHECK = BLOCKPLACE_DIRECTION + "active";
|
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.";
|
private static final String BLOCKPLACE_FASTPLACE = BLOCKPLACE + "fastplace.";
|
||||||
public static final String BLOCKPLACE_FASTPLACE_CHECK = BLOCKPLACE_FASTPLACE + "active";
|
public static final String BLOCKPLACE_FASTPLACE_CHECK = BLOCKPLACE_FASTPLACE + "active";
|
||||||
public static final String BLOCKPLACE_FASTPLACE_LIMIT = BLOCKPLACE_FASTPLACE + "limit";
|
public static final String BLOCKPLACE_FASTPLACE_LIMIT = BLOCKPLACE_FASTPLACE + "limit";
|
||||||
private static final String BLOCKPLACE_FASTPLACE_SHORTTERM = BLOCKPLACE_FASTPLACE + "shortterm.";
|
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_TICKS = BLOCKPLACE_FASTPLACE_SHORTTERM + "ticks";
|
||||||
public static final String BLOCKPLACE_FASTPLACE_SHORTTERM_LIMIT = BLOCKPLACE_FASTPLACE_SHORTTERM + "limit";
|
public static final String BLOCKPLACE_FASTPLACE_SHORTTERM_LIMIT = BLOCKPLACE_FASTPLACE_SHORTTERM + "limit";
|
||||||
public static final String BLOCKPLACE_FASTPLACE_ACTIONS = BLOCKPLACE_FASTPLACE + "actions";
|
public static final String BLOCKPLACE_FASTPLACE_ACTIONS = BLOCKPLACE_FASTPLACE + "actions";
|
||||||
|
|
||||||
private static final String BLOCKPLACE_NOSWING = BLOCKPLACE + "noswing.";
|
private static final String BLOCKPLACE_NOSWING = BLOCKPLACE + "noswing.";
|
||||||
|
@ -244,29 +243,29 @@ public abstract class ConfPaths {
|
||||||
// Text
|
// Text
|
||||||
private static final String CHAT_TEXT = CHAT + "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_CHECK = CHAT_TEXT + "active";
|
||||||
public static final String CHAT_TEXT_DEBUG = CHAT_TEXT + "debug";
|
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_ENGINE_MAXIMUM = CHAT_TEXT + "maximum";
|
||||||
public static final String CHAT_TEXT_ALLOWVLRESET = CHAT_TEXT + "allowvlreset";
|
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 = CHAT_TEXT + "frequency.";
|
||||||
public static final String CHAT_TEXT_FREQ_NORM = CHAT_TEXT_FREQ + "normal.";
|
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_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_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_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_MIN = CHAT_TEXT_FREQ_NORM + "minimum";
|
||||||
public static final String CHAT_TEXT_FREQ_NORM_ACTIONS = CHAT_TEXT_FREQ_NORM + "actions";
|
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_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_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_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_MIN = CHAT_TEXT_FREQ_SHORTTERM + "minimum";
|
||||||
public static final String CHAT_TEXT_FREQ_SHORTTERM_ACTIONS = CHAT_TEXT_FREQ_SHORTTERM + "actions";
|
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.)
|
// (Some of the following paths must be public for generic config reading.)
|
||||||
// Per message checks.
|
// Per message checks.
|
||||||
private static final String CHAT_TEXT_MSG = CHAT_TEXT + "message.";
|
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_LETTERCOUNT = CHAT_TEXT_MSG + "lettercount";
|
||||||
public static final String CHAT_TEXT_MSG_PARTITION = CHAT_TEXT_MSG + "partition";
|
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_REPEATCANCEL = CHAT_TEXT_MSG + "repeatviolation";
|
||||||
public static final String CHAT_TEXT_MSG_AFTERJOIN = CHAT_TEXT_MSG + "afterjoin";
|
public static final String CHAT_TEXT_MSG_AFTERJOIN = CHAT_TEXT_MSG + "afterjoin";
|
||||||
|
@ -274,36 +273,36 @@ public abstract class ConfPaths {
|
||||||
public static final String CHAT_TEXT_MSG_REPEATGLOBAL = CHAT_TEXT_MSG + "repeatglobal";
|
public static final String CHAT_TEXT_MSG_REPEATGLOBAL = CHAT_TEXT_MSG + "repeatglobal";
|
||||||
public static final String CHAT_TEXT_MSG_NOMOVING = CHAT_TEXT_MSG + "nomoving";
|
public static final String CHAT_TEXT_MSG_NOMOVING = CHAT_TEXT_MSG + "nomoving";
|
||||||
|
|
||||||
private static final String CHAT_TEXT_MSG_WORDS = CHAT_TEXT_MSG + "words.";
|
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_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_LENGTHMSG = CHAT_TEXT_MSG_WORDS + "lengthmsg";
|
||||||
public static final String CHAT_TEXT_MSG_WORDS_NOLETTER = CHAT_TEXT_MSG_WORDS + "noletter";
|
public static final String CHAT_TEXT_MSG_WORDS_NOLETTER = CHAT_TEXT_MSG_WORDS + "noletter";
|
||||||
// Extended global checks.
|
// Extended global checks.
|
||||||
private static final String CHAT_TEXT_GL = CHAT_TEXT + "global.";
|
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_CHECK = CHAT_TEXT_GL + "active";
|
||||||
public static final String CHAT_TEXT_GL_WEIGHT = CHAT_TEXT_GL + "weight";
|
public static final String CHAT_TEXT_GL_WEIGHT = CHAT_TEXT_GL + "weight";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String CHAT_TEXT_GL_WORDS = CHAT_TEXT_GL + "words.";
|
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";
|
public static final String CHAT_TEXT_GL_WORDS_CHECK = CHAT_TEXT_GL_WORDS + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String CHAT_TEXT_GL_PREFIXES = CHAT_TEXT_GL + "prefixes.";
|
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";
|
public static final String CHAT_TEXT_GL_PREFIXES_CHECK = CHAT_TEXT_GL_PREFIXES + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String CHAT_TEXT_GL_SIMILARITY = CHAT_TEXT_GL + "similarity.";
|
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";
|
public static final String CHAT_TEXT_GL_SIMILARITY_CHECK = CHAT_TEXT_GL_SIMILARITY + "active";
|
||||||
// Extended per player checks.
|
// Extended per player checks.
|
||||||
private static final String CHAT_TEXT_PP = CHAT_TEXT + "player.";
|
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_CHECK = CHAT_TEXT_PP + "active";
|
||||||
public static final String CHAT_TEXT_PP_WEIGHT = CHAT_TEXT_PP + "weight";
|
public static final String CHAT_TEXT_PP_WEIGHT = CHAT_TEXT_PP + "weight";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String CHAT_TEXT_PP_PREFIXES = CHAT_TEXT_PP + "prefixes.";
|
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";
|
public static final String CHAT_TEXT_PP_PREFIXES_CHECK = CHAT_TEXT_PP_PREFIXES + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String CHAT_TEXT_PP_WORDS = CHAT_TEXT_PP + "words.";
|
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";
|
public static final String CHAT_TEXT_PP_WORDS_CHECK = CHAT_TEXT_PP_WORDS + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String CHAT_TEXT_PP_SIMILARITY = CHAT_TEXT_PP + "similarity.";
|
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_PP_SIMILARITY_CHECK = CHAT_TEXT_PP_SIMILARITY + "active";
|
||||||
|
|
||||||
private static final String CHAT_WARNING = CHAT + "warning.";
|
private static final String CHAT_WARNING = CHAT + "warning.";
|
||||||
public static final String CHAT_WARNING_CHECK = CHAT_WARNING + "active";
|
public static final String CHAT_WARNING_CHECK = CHAT_WARNING + "active";
|
||||||
|
@ -337,24 +336,24 @@ public abstract class ConfPaths {
|
||||||
|
|
||||||
private static final String COMBINED_BEDLEAVE = COMBINED + "bedleave.";
|
private static final String COMBINED_BEDLEAVE = COMBINED + "bedleave.";
|
||||||
public static final String COMBINED_BEDLEAVE_CHECK = COMBINED_BEDLEAVE + "active";
|
public static final String COMBINED_BEDLEAVE_CHECK = COMBINED_BEDLEAVE + "active";
|
||||||
public static final String COMBINED_BEDLEAVE_ACTIONS = COMBINED_BEDLEAVE + "actions";
|
public static final String COMBINED_BEDLEAVE_ACTIONS = COMBINED_BEDLEAVE + "actions";
|
||||||
|
|
||||||
private static final String COMBINED_ENDERPEARL = COMBINED + "enderpearl.";
|
private static final String COMBINED_ENDERPEARL = COMBINED + "enderpearl.";
|
||||||
public static final String COMBINED_ENDERPEARL_CHECK = COMBINED_ENDERPEARL + "active";
|
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_ENDERPEARL_PREVENTCLICKBLOCK = COMBINED_ENDERPEARL + "preventclickblock";
|
||||||
|
|
||||||
private static final String COMBINED_IMPROBABLE = COMBINED + "improbable.";
|
private static final String COMBINED_IMPROBABLE = COMBINED + "improbable.";
|
||||||
public static final String COMBINED_IMPROBABLE_CHECK = COMBINED_IMPROBABLE + "active";
|
public static final String COMBINED_IMPROBABLE_CHECK = COMBINED_IMPROBABLE + "active";
|
||||||
public static final String COMBINED_IMPROBABLE_LEVEL = COMBINED_IMPROBABLE + "level";
|
public static final String COMBINED_IMPROBABLE_LEVEL = COMBINED_IMPROBABLE + "level";
|
||||||
|
|
||||||
// private static final String COMBINED_IMPROBABLE_CHECKS = COMBINED_IMPROBABLE + "options.";
|
// 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_FASTBREAK_CHECK = COMBINED_IMPROBABLE_CHECKS + "fastbreak";
|
||||||
|
|
||||||
public static final String COMBINED_IMPROBABLE_ACTIONS = COMBINED_IMPROBABLE + "actions";
|
public static final String COMBINED_IMPROBABLE_ACTIONS = COMBINED_IMPROBABLE + "actions";
|
||||||
|
|
||||||
private static final String COMBINED_INVULNERABLE = COMBINED + "invulnerable.";
|
private static final String COMBINED_INVULNERABLE = COMBINED + "invulnerable.";
|
||||||
public static final String COMBINED_INVULNERABLE_CHECK = COMBINED_INVULNERABLE + "active";
|
public static final String COMBINED_INVULNERABLE_CHECK = COMBINED_INVULNERABLE + "active";
|
||||||
private static final String COMBINED_INVULNERABLE_INITIALTICKS = COMBINED_INVULNERABLE + "initialticks.";
|
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_INITIALTICKS_JOIN = COMBINED_INVULNERABLE_INITIALTICKS + "join";
|
||||||
public static final String COMBINED_INVULNERABLE_IGNORE = COMBINED_INVULNERABLE + "ignore";
|
public static final String COMBINED_INVULNERABLE_IGNORE = COMBINED_INVULNERABLE + "ignore";
|
||||||
public static final String COMBINED_INVULNERABLE_MODIFIERS = COMBINED_INVULNERABLE + "modifiers"; // no dot !
|
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_INVULNERABLE_TRIGGERS_FALLDISTANCE = COMBINED_INVULNERABLE_TRIGGERS + "falldistance";
|
||||||
|
|
||||||
public static final String COMBINED_MUNCHHAUSEN = COMBINED + "munchhausen.";
|
public static final String COMBINED_MUNCHHAUSEN = COMBINED + "munchhausen.";
|
||||||
public static final String COMBINED_MUNCHHAUSEN_CHECK = COMBINED_MUNCHHAUSEN + "active";
|
public static final String COMBINED_MUNCHHAUSEN_CHECK = COMBINED_MUNCHHAUSEN + "active";
|
||||||
public static final String COMBINED_MUNCHHAUSEN_ACTIONS = COMBINED_MUNCHHAUSEN + "actions";
|
public static final String COMBINED_MUNCHHAUSEN_ACTIONS = COMBINED_MUNCHHAUSEN + "actions";
|
||||||
|
|
||||||
private static final String COMBINED_YAWRATE = COMBINED + "yawrate.";
|
private static final String COMBINED_YAWRATE = COMBINED + "yawrate.";
|
||||||
public static final String COMBINED_YAWRATE_RATE = COMBINED_YAWRATE + "rate";
|
public static final String COMBINED_YAWRATE_RATE = COMBINED_YAWRATE + "rate";
|
||||||
public static final String COMBINED_YAWRATE_IMPROBABLE = COMBINED_YAWRATE + "improbable";
|
public static final String COMBINED_YAWRATE_IMPROBABLE = COMBINED_YAWRATE + "improbable";
|
||||||
private static final String COMBINED_YAWRATE_PENALTY = COMBINED_YAWRATE + "penalty.";
|
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_FACTOR = COMBINED_YAWRATE_PENALTY + "factor";
|
||||||
public static final String COMBINED_YAWRATE_PENALTY_MIN = COMBINED_YAWRATE_PENALTY + "minimum";
|
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 COMBINED_YAWRATE_PENALTY_MAX = COMBINED_YAWRATE_PENALTY + "maximum";
|
||||||
|
|
||||||
public static final String FIGHT = CHECKS + "fight.";
|
public static final String FIGHT = CHECKS + "fight.";
|
||||||
|
|
||||||
public static final String FIGHT_CANCELDEAD = FIGHT + "canceldead";
|
public static final String FIGHT_CANCELDEAD = FIGHT + "canceldead";
|
||||||
public static final String FIGHT_TOOLCHANGEPENALTY = FIGHT + "toolchangepenalty";
|
public static final String FIGHT_TOOLCHANGEPENALTY = FIGHT + "toolchangepenalty";
|
||||||
|
|
||||||
private static final String FIGHT_ANGLE = FIGHT + "angle.";
|
private static final String FIGHT_ANGLE = FIGHT + "angle.";
|
||||||
public static final String FIGHT_ANGLE_CHECK = FIGHT_ANGLE + "active";
|
public static final String FIGHT_ANGLE_CHECK = FIGHT_ANGLE + "active";
|
||||||
|
@ -391,20 +390,20 @@ public abstract class ConfPaths {
|
||||||
|
|
||||||
private static final String FIGHT_DIRECTION = FIGHT + "direction.";
|
private static final String FIGHT_DIRECTION = FIGHT + "direction.";
|
||||||
public static final String FIGHT_DIRECTION_CHECK = FIGHT_DIRECTION + "active";
|
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_PENALTY = FIGHT_DIRECTION + "penalty";
|
||||||
public static final String FIGHT_DIRECTION_ACTIONS = FIGHT_DIRECTION + "actions";
|
public static final String FIGHT_DIRECTION_ACTIONS = FIGHT_DIRECTION + "actions";
|
||||||
|
|
||||||
private static final String FIGHT_FASTHEAL = FIGHT + "fastheal.";
|
private static final String FIGHT_FASTHEAL = FIGHT + "fastheal.";
|
||||||
public static final String FIGHT_FASTHEAL_CHECK = FIGHT_FASTHEAL + "active";
|
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_INTERVAL = FIGHT_FASTHEAL + "interval";
|
||||||
public static final String FIGHT_FASTHEAL_BUFFER = FIGHT_FASTHEAL + "buffer";
|
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_ACTIONS = FIGHT_FASTHEAL + "actions";
|
||||||
|
|
||||||
private static final String FIGHT_GODMODE = FIGHT + "godmode.";
|
private static final String FIGHT_GODMODE = FIGHT + "godmode.";
|
||||||
public static final String FIGHT_GODMODE_CHECK = FIGHT_GODMODE + "active";
|
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_LAGMINAGE = FIGHT_GODMODE + "minage";
|
||||||
public static final String FIGHT_GODMODE_LAGMAXAGE = FIGHT_GODMODE + "maxage";
|
public static final String FIGHT_GODMODE_LAGMAXAGE = FIGHT_GODMODE + "maxage";
|
||||||
public static final String FIGHT_GODMODE_ACTIONS = FIGHT_GODMODE + "actions";
|
public static final String FIGHT_GODMODE_ACTIONS = FIGHT_GODMODE + "actions";
|
||||||
|
|
||||||
private static final String FIGHT_KNOCKBACK = FIGHT + "knockback.";
|
private static final String FIGHT_KNOCKBACK = FIGHT + "knockback.";
|
||||||
|
@ -418,17 +417,17 @@ public abstract class ConfPaths {
|
||||||
|
|
||||||
private static final String FIGHT_REACH = FIGHT + "reach.";
|
private static final String FIGHT_REACH = FIGHT + "reach.";
|
||||||
public static final String FIGHT_REACH_CHECK = FIGHT_REACH + "active";
|
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_PENALTY = FIGHT_REACH + "penalty";
|
||||||
public static final String FIGHT_REACH_PRECISION = FIGHT_REACH + "precision";
|
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_REDUCE = FIGHT_REACH + "reduce";
|
||||||
public static final String FIGHT_REACH_REDUCEDISTANCE = FIGHT_REACH + "reducedistance";
|
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_REDUCESTEP = FIGHT_REACH + "reducestep";
|
||||||
public static final String FIGHT_REACH_ACTIONS = FIGHT_REACH + "actions";
|
public static final String FIGHT_REACH_ACTIONS = FIGHT_REACH + "actions";
|
||||||
|
|
||||||
public static final String FIGHT_SELFHIT = FIGHT + "selfhit.";
|
public static final String FIGHT_SELFHIT = FIGHT + "selfhit.";
|
||||||
public static final String FIGHT_SELFHIT_CHECK = FIGHT_SELFHIT + "active";
|
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.";
|
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";
|
public static final String FIGHT_SPEED_LIMIT = FIGHT_SPEED + "limit";
|
||||||
private static final String FIGHT_SPEED_BUCKETS = FIGHT_SPEED + "buckets.";
|
private static final String FIGHT_SPEED_BUCKETS = FIGHT_SPEED + "buckets.";
|
||||||
@GlobalConfig
|
@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
|
@GlobalConfig
|
||||||
public static final String FIGHT_SPEED_BUCKETS_DUR = FIGHT_SPEED_BUCKETS + "duration";
|
public static final String FIGHT_SPEED_BUCKETS_DUR = FIGHT_SPEED_BUCKETS + "duration";
|
||||||
public static final String FIGHT_SPEED_BUCKETS_FACTOR = FIGHT_SPEED_BUCKETS + "factor";
|
public static final String FIGHT_SPEED_BUCKETS_FACTOR = FIGHT_SPEED_BUCKETS + "factor";
|
||||||
private static final String FIGHT_SPEED_SHORTTERM = FIGHT_SPEED + "shortterm.";
|
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_LIMIT = FIGHT_SPEED_SHORTTERM + "limit";
|
||||||
public static final String FIGHT_SPEED_SHORTTERM_TICKS = FIGHT_SPEED_SHORTTERM + "ticks";
|
public static final String FIGHT_SPEED_SHORTTERM_TICKS = FIGHT_SPEED_SHORTTERM + "ticks";
|
||||||
public static final String FIGHT_SPEED_ACTIONS = FIGHT_SPEED + "actions";
|
public static final String FIGHT_SPEED_ACTIONS = FIGHT_SPEED + "actions";
|
||||||
|
|
||||||
private static final String FIGHT_YAWRATE = FIGHT + "yawrate.";
|
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.";
|
public static final String INVENTORY = CHECKS + "inventory.";
|
||||||
|
|
||||||
|
@ -459,22 +458,22 @@ public abstract class ConfPaths {
|
||||||
private static final String INVENTORY_FASTCLICK = INVENTORY + "fastclick.";
|
private static final String INVENTORY_FASTCLICK = INVENTORY + "fastclick.";
|
||||||
public static final String INVENTORY_FASTCLICK_CHECK = INVENTORY_FASTCLICK + "active";
|
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_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.";
|
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_SHORTTERM = INVENTORY_FASTCLICK_LIMIT + "shortterm";
|
||||||
public static final String INVENTORY_FASTCLICK_LIMIT_NORMAL = INVENTORY_FASTCLICK_LIMIT + "normal";
|
public static final String INVENTORY_FASTCLICK_LIMIT_NORMAL = INVENTORY_FASTCLICK_LIMIT + "normal";
|
||||||
public static final String INVENTORY_FASTCLICK_ACTIONS = INVENTORY_FASTCLICK + "actions";
|
public static final String INVENTORY_FASTCLICK_ACTIONS = INVENTORY_FASTCLICK + "actions";
|
||||||
|
|
||||||
private static final String INVENTORY_FASTCONSUME = INVENTORY + "fastconsume.";
|
private static final String INVENTORY_FASTCONSUME = INVENTORY + "fastconsume.";
|
||||||
public static final String INVENTORY_FASTCONSUME_CHECK = INVENTORY_FASTCONSUME + "active";
|
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_DURATION = INVENTORY_FASTCONSUME + "duration";
|
||||||
public static final String INVENTORY_FASTCONSUME_WHITELIST = INVENTORY_FASTCONSUME + "whitelist";
|
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_ITEMS = INVENTORY_FASTCONSUME + "items";
|
||||||
public static final String INVENTORY_FASTCONSUME_ACTIONS = INVENTORY_FASTCONSUME + "actions";
|
public static final String INVENTORY_FASTCONSUME_ACTIONS = INVENTORY_FASTCONSUME + "actions";
|
||||||
|
|
||||||
private static final String INVENTORY_INSTANTBOW = INVENTORY + "instantbow.";
|
private static final String INVENTORY_INSTANTBOW = INVENTORY + "instantbow.";
|
||||||
public static final String INVENTORY_INSTANTBOW_CHECK = INVENTORY_INSTANTBOW + "active";
|
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_DELAY = INVENTORY_INSTANTBOW + "delay";
|
||||||
public static final String INVENTORY_INSTANTBOW_ACTIONS = INVENTORY_INSTANTBOW + "actions";
|
public static final String INVENTORY_INSTANTBOW_ACTIONS = INVENTORY_INSTANTBOW + "actions";
|
||||||
|
|
||||||
|
@ -495,8 +494,8 @@ public abstract class ConfPaths {
|
||||||
|
|
||||||
private static final String MOVING_CREATIVEFLY = MOVING + "creativefly.";
|
private static final String MOVING_CREATIVEFLY = MOVING + "creativefly.";
|
||||||
public static final String MOVING_CREATIVEFLY_CHECK = MOVING_CREATIVEFLY + "active";
|
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_IGNORECREATIVE = MOVING_CREATIVEFLY + "ignorecreative";
|
||||||
public static final String MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT = MOVING_CREATIVEFLY + "ignoreallowflight";
|
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_HORIZONTALSPEED = MOVING_CREATIVEFLY + "horizontalspeed";
|
||||||
public static final String MOVING_CREATIVEFLY_MAXHEIGHT = MOVING_CREATIVEFLY + "maxheight";
|
public static final String MOVING_CREATIVEFLY_MAXHEIGHT = MOVING_CREATIVEFLY + "maxheight";
|
||||||
public static final String MOVING_CREATIVEFLY_VERTICALSPEED = MOVING_CREATIVEFLY + "verticalspeed";
|
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_CHECK = MOVING_MOREPACKETS + "active";
|
||||||
public static final String MOVING_MOREPACKETS_SECONDS = MOVING_MOREPACKETS + "seconds";
|
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_EPSIDEAL = MOVING_MOREPACKETS + "epsideal";
|
||||||
public static final String MOVING_MOREPACKETS_EPSMAX = MOVING_MOREPACKETS + "epsmax";
|
public static final String MOVING_MOREPACKETS_EPSMAX = MOVING_MOREPACKETS + "epsmax";
|
||||||
private static final String MOVING_MOREPACKETS_BURST = MOVING_MOREPACKETS + "burst.";
|
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_PACKETS = MOVING_MOREPACKETS_BURST + "packets";
|
||||||
public static final String MOVING_MOREPACKETS_BURST_DIRECT = MOVING_MOREPACKETS_BURST + "directviolation";
|
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_BURST_EPM = MOVING_MOREPACKETS_BURST + "epmviolation";
|
||||||
public static final String MOVING_MOREPACKETS_ACTIONS = MOVING_MOREPACKETS + "actions";
|
public static final String MOVING_MOREPACKETS_ACTIONS = MOVING_MOREPACKETS + "actions";
|
||||||
|
|
||||||
private static final String MOVING_MOREPACKETSVEHICLE = MOVING + "morepacketsvehicle.";
|
private static final String MOVING_MOREPACKETSVEHICLE = MOVING + "morepacketsvehicle.";
|
||||||
|
@ -520,85 +519,85 @@ public abstract class ConfPaths {
|
||||||
private static final String MOVING_NOFALL = MOVING + "nofall.";
|
private static final String MOVING_NOFALL = MOVING + "nofall.";
|
||||||
public static final String MOVING_NOFALL_CHECK = MOVING_NOFALL + "active";
|
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_DEALDAMAGE = MOVING_NOFALL + "dealdamage";
|
||||||
public static final String MOVING_NOFALL_RESETONVL = MOVING_NOFALL + "resetonviolation";
|
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_RESETONTP = MOVING_NOFALL + "resetonteleport";
|
||||||
public static final String MOVING_NOFALL_RESETONVEHICLE = MOVING_NOFALL + "resetonvehicle";
|
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_ANTICRITICALS = MOVING_NOFALL + "anticriticals";
|
||||||
public static final String MOVING_NOFALL_ACTIONS = MOVING_NOFALL + "actions";
|
public static final String MOVING_NOFALL_ACTIONS = MOVING_NOFALL + "actions";
|
||||||
|
|
||||||
public static final String MOVING_PASSABLE = MOVING + "passable.";
|
public static final String MOVING_PASSABLE = MOVING + "passable.";
|
||||||
public static final String MOVING_PASSABLE_CHECK = MOVING_PASSABLE + "active";
|
public static final String MOVING_PASSABLE_CHECK = MOVING_PASSABLE + "active";
|
||||||
private static final String MOVING_PASSABLE_RAYTRACING = MOVING_PASSABLE + "raytracing.";
|
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_CHECK = MOVING_PASSABLE_RAYTRACING + "active";
|
||||||
public static final String MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY= MOVING_PASSABLE_RAYTRACING + "blockchangeonly";
|
public static final String MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY= MOVING_PASSABLE_RAYTRACING + "blockchangeonly";
|
||||||
public static final String MOVING_PASSABLE_ACTIONS = MOVING_PASSABLE + "actions";
|
public static final String MOVING_PASSABLE_ACTIONS = MOVING_PASSABLE + "actions";
|
||||||
|
|
||||||
private static final String MOVING_SURVIVALFLY = MOVING + "survivalfly.";
|
private static final String MOVING_SURVIVALFLY = MOVING + "survivalfly.";
|
||||||
public static final String MOVING_SURVIVALFLY_CHECK = MOVING_SURVIVALFLY + "active";
|
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_BLOCKINGSPEED = MOVING_SURVIVALFLY + "blockingspeed";
|
||||||
public static final String MOVING_SURVIVALFLY_SNEAKINGSPEED = MOVING_SURVIVALFLY + "sneakingspeed";
|
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_SPEEDINGSPEED = MOVING_SURVIVALFLY + "speedingspeed";
|
||||||
public static final String MOVING_SURVIVALFLY_SPRINTINGSPEED = MOVING_SURVIVALFLY + "sprintingspeed";
|
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_SWIMMINGSPEED = MOVING_SURVIVALFLY + "swimmingspeed";
|
||||||
public static final String MOVING_SURVIVALFLY_WALKINGSPEED = MOVING_SURVIVALFLY + "walkingspeed";
|
public static final String MOVING_SURVIVALFLY_WALKINGSPEED = MOVING_SURVIVALFLY + "walkingspeed";
|
||||||
public static final String MOVING_SURVIVALFLY_COBWEBHACK = MOVING_SURVIVALFLY + "cobwebhack";
|
public static final String MOVING_SURVIVALFLY_COBWEBHACK = MOVING_SURVIVALFLY + "cobwebhack";
|
||||||
private static final String MOVING_SURVIVALFLY_EXTENDED = MOVING_SURVIVALFLY + "extended.";
|
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_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_EXTENDED_VACC = MOVING_SURVIVALFLY_EXTENDED + "vertical-accounting";
|
||||||
public static final String MOVING_SURVIVALFLY_FALLDAMAGE = MOVING_SURVIVALFLY + "falldamage";
|
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_VLFREEZE = MOVING_SURVIVALFLY + "vlfreeze";
|
||||||
public static final String MOVING_SURVIVALFLY_ACTIONS = MOVING_SURVIVALFLY + "actions";
|
public static final String MOVING_SURVIVALFLY_ACTIONS = MOVING_SURVIVALFLY + "actions";
|
||||||
|
|
||||||
private static final String MOVING_SURVIVALFLY_HOVER = MOVING_SURVIVALFLY + "hover.";
|
private static final String MOVING_SURVIVALFLY_HOVER = MOVING_SURVIVALFLY + "hover.";
|
||||||
public static final String MOVING_SURVIVALFLY_HOVER_CHECK = MOVING_SURVIVALFLY_HOVER + "active";
|
public static final String MOVING_SURVIVALFLY_HOVER_CHECK = MOVING_SURVIVALFLY_HOVER + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String MOVING_SURVIVALFLY_HOVER_STEP = MOVING_SURVIVALFLY_HOVER + "step";
|
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_TICKS = MOVING_SURVIVALFLY_HOVER + "ticks";
|
||||||
public static final String MOVING_SURVIVALFLY_HOVER_LOGINTICKS = MOVING_SURVIVALFLY_HOVER + "loginticks";
|
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_FALLDAMAGE = MOVING_SURVIVALFLY_HOVER + "falldamage";
|
||||||
public static final String MOVING_SURVIVALFLY_HOVER_SFVIOLATION = MOVING_SURVIVALFLY_HOVER + "sfviolation";
|
public static final String MOVING_SURVIVALFLY_HOVER_SFVIOLATION = MOVING_SURVIVALFLY_HOVER + "sfviolation";
|
||||||
|
|
||||||
// Special (to be sorted in or factored out).
|
// Special (to be sorted in or factored out).
|
||||||
private static final String MOVING_VELOCITY = MOVING + "velocity.";
|
private static final String MOVING_VELOCITY = MOVING + "velocity.";
|
||||||
public static final String MOVING_VELOCITY_GRACETICKS = MOVING_VELOCITY + "graceticks";
|
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_ACTIVATIONCOUNTER = MOVING_VELOCITY + "activationcounter";
|
||||||
public static final String MOVING_VELOCITY_ACTIVATIONTICKS = MOVING_VELOCITY + "activationticks";
|
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_VELOCITY_STRICTINVALIDATION = MOVING_VELOCITY + "strictinvalidation";
|
||||||
|
|
||||||
public static final String MOVING_NOFALL_YONGROUND = MOVING_NOFALL + "yonground";
|
public static final String MOVING_NOFALL_YONGROUND = MOVING_NOFALL + "yonground";
|
||||||
public static final String MOVING_YONGROUND = MOVING + "yonground";
|
public static final String MOVING_YONGROUND = MOVING + "yonground";
|
||||||
public static final String MOVING_SURVIVALFLY_YSTEP = MOVING_SURVIVALFLY + "ystep";
|
public static final String MOVING_SURVIVALFLY_YSTEP = MOVING_SURVIVALFLY + "ystep";
|
||||||
|
|
||||||
// General.
|
// General.
|
||||||
public static final String MOVING_TEMPKICKILLEGAL = MOVING + "tempkickillegal";
|
public static final String MOVING_TEMPKICKILLEGAL = MOVING + "tempkickillegal";
|
||||||
private static final String MOVING_LOADCHUNKS = MOVING + "loadchunks.";
|
private static final String MOVING_LOADCHUNKS = MOVING + "loadchunks.";
|
||||||
public static final String MOVING_LOADCHUNKS_JOIN = MOVING_LOADCHUNKS + "join";
|
public static final String MOVING_LOADCHUNKS_JOIN = MOVING_LOADCHUNKS + "join";
|
||||||
public static final String MOVING_SPRINTINGGRACE = MOVING + "sprintinggrace";
|
public static final String MOVING_SPRINTINGGRACE = MOVING + "sprintinggrace";
|
||||||
public static final String MOVING_ASSUMESPRINT = MOVING + "assumesprint";
|
public static final String MOVING_ASSUMESPRINT = MOVING + "assumesprint";
|
||||||
public static final String MOVING_SPEEDGRACE = MOVING + "speedgrace";
|
public static final String MOVING_SPEEDGRACE = MOVING + "speedgrace";
|
||||||
public static final String MOVING_ENFORCELOCATION = MOVING + "enforcelocation";
|
public static final String MOVING_ENFORCELOCATION = MOVING + "enforcelocation";
|
||||||
|
|
||||||
private static final String MOVING_VEHICLES = MOVING + "vehicles.";
|
private static final String MOVING_VEHICLES = MOVING + "vehicles.";
|
||||||
public static final String MOVING_VEHICLES_ENFORCELOCATION = MOVING_VEHICLES + "enforcelocation";
|
public static final String MOVING_VEHICLES_ENFORCELOCATION = MOVING_VEHICLES + "enforcelocation";
|
||||||
public static final String MOVING_VEHICLES_PREVENTDESTROYOWN = MOVING_VEHICLES + "preventdestroyown";
|
public static final String MOVING_VEHICLES_PREVENTDESTROYOWN = MOVING_VEHICLES + "preventdestroyown";
|
||||||
|
|
||||||
private static final String MOVING_TRACE = MOVING + "trace.";
|
private static final String MOVING_TRACE = MOVING + "trace.";
|
||||||
public static final String MOVING_TRACE_SIZE = MOVING_TRACE + "size";
|
public static final String MOVING_TRACE_SIZE = MOVING_TRACE + "size";
|
||||||
public static final String MOVING_TRACE_MERGEDIST = MOVING_TRACE + "mergedist";
|
public static final String MOVING_TRACE_MERGEDIST = MOVING_TRACE + "mergedist";
|
||||||
|
|
||||||
private static final String NET = CHECKS + "net.";
|
private static final String NET = CHECKS + "net.";
|
||||||
|
|
||||||
private static final String NET_SOUNDDISTANCE = NET + "sounddistance.";
|
private static final String NET_SOUNDDISTANCE = NET + "sounddistance.";
|
||||||
public static final String NET_SOUNDDISTANCE_ACTIVE = NET_SOUNDDISTANCE + "active";
|
public static final String NET_SOUNDDISTANCE_ACTIVE = NET_SOUNDDISTANCE + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String NET_SOUNDDISTANCE_MAXDISTANCE = NET_SOUNDDISTANCE + "maxdistance";
|
public static final String NET_SOUNDDISTANCE_MAXDISTANCE = NET_SOUNDDISTANCE + "maxdistance";
|
||||||
|
|
||||||
private static final String NET_FLYINGFREQUENCY = NET + "flyingfrequency.";
|
private static final String NET_FLYINGFREQUENCY = NET + "flyingfrequency.";
|
||||||
public static final String NET_FLYINGFREQUENCY_ACTIVE = NET_FLYINGFREQUENCY + "active";
|
public static final String NET_FLYINGFREQUENCY_ACTIVE = NET_FLYINGFREQUENCY + "active";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String NET_FLYINGFREQUENCY_SECONDS = NET_FLYINGFREQUENCY + "seconds";
|
public static final String NET_FLYINGFREQUENCY_SECONDS = NET_FLYINGFREQUENCY + "seconds";
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String NET_FLYINGFREQUENCY_MAXPACKETS = NET_FLYINGFREQUENCY + "maxpackets";
|
public static final String NET_FLYINGFREQUENCY_MAXPACKETS = NET_FLYINGFREQUENCY + "maxpackets";
|
||||||
|
|
||||||
|
|
||||||
public static final String STRINGS = "strings";
|
public static final String STRINGS = "strings";
|
||||||
|
@ -607,7 +606,7 @@ public abstract class ConfPaths {
|
||||||
@GlobalConfig
|
@GlobalConfig
|
||||||
public static final String COMPATIBILITY = "compatibility.";
|
public static final String COMPATIBILITY = "compatibility.";
|
||||||
public static final String COMPATIBILITY_MANAGELISTENERS = COMPATIBILITY + "managelisteners";
|
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.";
|
public static final String COMPATIBILITY_BLOCKS = COMPATIBILITY + "blocks.";
|
||||||
|
|
||||||
// Deprecated (don't use fields from above).
|
// Deprecated (don't use fields from above).
|
||||||
|
@ -621,28 +620,30 @@ public abstract class ConfPaths {
|
||||||
public static final String LOGGING_INGAMECHAT = "logging.ingamechat";
|
public static final String LOGGING_INGAMECHAT = "logging.ingamechat";
|
||||||
@Moved(newPath = LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS)
|
@Moved(newPath = LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS)
|
||||||
public static final String LOGGING_USESUBSCRIPTIONS = "logging.usesubscriptions";
|
public static final String LOGGING_USESUBSCRIPTIONS = "logging.usesubscriptions";
|
||||||
@Moved(newPath = PROTECT_PLUGINS_HIDE_ACTIVE)
|
@Moved(newPath = PROTECT_PLUGINS_HIDE_ACTIVE)
|
||||||
public static final String MISCELLANEOUS_PROTECTPLUGINS = "miscellaneous.protectplugins";
|
public static final String MISCELLANEOUS_PROTECTPLUGINS = "miscellaneous.protectplugins";
|
||||||
@Moved(newPath = PROTECT_CLIENTS_MOTD_ALLOWALL)
|
@Moved(newPath = PROTECT_CLIENTS_MOTD_ALLOWALL)
|
||||||
public static final String MISCELLANEOUS_ALLOWCLIENTMODS = "miscellaneous.allowclientmods";
|
public static final String MISCELLANEOUS_ALLOWCLIENTMODS = "miscellaneous.allowclientmods";
|
||||||
@Moved(newPath = PROTECT_PLUGINS_HIDE_NOCOMMAND_MSG)
|
@Moved(newPath = PROTECT_PLUGINS_HIDE_NOCOMMAND_MSG)
|
||||||
public static final String PROTECT_PLUGINS_HIDE_MSG_NOCOMMAND = "protection.plugins.hide.messages.unknowncommand";
|
public static final String PROTECT_PLUGINS_HIDE_MSG_NOCOMMAND = "protection.plugins.hide.messages.unknowncommand";
|
||||||
@Moved(newPath = PROTECT_PLUGINS_HIDE_NOPERMISSION_MSG)
|
@Moved(newPath = PROTECT_PLUGINS_HIDE_NOPERMISSION_MSG)
|
||||||
public static final String PROTECT_PLUGINS_HIDE_MSG_NOPERMISSION = "protection.plugins.hide.messages.nopermission";
|
public static final String PROTECT_PLUGINS_HIDE_MSG_NOPERMISSION = "protection.plugins.hide.messages.nopermission";
|
||||||
@Moved(newPath = PROTECT_COMMANDS_CONSOLEONLY_ACTIVE)
|
@Moved(newPath = PROTECT_COMMANDS_CONSOLEONLY_ACTIVE)
|
||||||
public static final String MISCELLANEOUS_OPINCONSOLEONLY = "miscellaneous.opinconsoleonly";
|
public static final String MISCELLANEOUS_OPINCONSOLEONLY = "miscellaneous.opinconsoleonly";
|
||||||
@Moved(newPath = COMPATIBILITY_MANAGELISTENERS)
|
@Moved(newPath = COMPATIBILITY_MANAGELISTENERS)
|
||||||
public static final String MISCELLANEOUS_MANAGELISTENERS = "miscellaneous.managelisteners";
|
public static final String MISCELLANEOUS_MANAGELISTENERS = "miscellaneous.managelisteners";
|
||||||
@Moved(newPath = INVENTORY_OPEN_CHECK)
|
@Moved(newPath = INVENTORY_OPEN_CHECK)
|
||||||
public static final String INVENTORY_ENSURECLOSE = "checks.inventory.ensureclose";
|
public static final String INVENTORY_ENSURECLOSE = "checks.inventory.ensureclose";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static final String MISCELLANEOUS_REPORTTOMETRICS = "miscellaneous.reporttometrics";
|
public static final String MISCELLANEOUS_REPORTTOMETRICS = "miscellaneous.reporttometrics";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static final String BLOCKBREAK_FASTBREAK_MOD_CREATIVE = "checks.blockbreak.fastbreak.intervalcreative";
|
public static final String BLOCKBREAK_FASTBREAK_MOD_CREATIVE = "checks.blockbreak.fastbreak.intervalcreative";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static final String MOVING_PASSABLE_RAYTRACING_VCLIPONLY = "checks.moving.passable.raytracing.vcliponly";
|
public static final String MOVING_PASSABLE_RAYTRACING_VCLIPONLY = "checks.moving.passable.raytracing.vcliponly";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static final String FIGHT_CRITICAL_VELOCITY = "checks.fight.critical.velocity";
|
public static final String FIGHT_CRITICAL_VELOCITY = "checks.fight.critical.velocity";
|
||||||
|
@Deprecated
|
||||||
|
public static final String BLOCKBREAK_FASTBREAK_DEBUG = "checks.blockbreak.fastbreak.debug";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1034,7 +1034,7 @@ public class NoCheatPlus extends JavaPlugin implements NoCheatPlusAPI {
|
||||||
// Debug information about unknown blocks.
|
// Debug information about unknown blocks.
|
||||||
// (Probably removed later.)
|
// (Probably removed later.)
|
||||||
ConfigFile config = ConfigManager.getConfigFile();
|
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)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user