mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2025-01-28 10:21:22 +01:00
Adjust trampoline effect.
This commit is contained in:
parent
3eab23ae92
commit
a78f5550a2
@ -498,7 +498,11 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||
boolean checkNf = true;
|
||||
if (checkSf || checkCf) {
|
||||
// Check jumping on things like slime blocks.
|
||||
if (to.getY() < from.getY() && player.getFallDistance() > 1f && (BlockProperties.getBlockFlags(pTo.getTypeIdBelow()) & BlockProperties.F_BOUNCE25) != 0L) {
|
||||
// The center of the player must be above the block.
|
||||
if (to.getY() < from.getY() && player.getFallDistance() > 1f
|
||||
&& (BlockProperties.getBlockFlags(pTo.getTypeIdBelow()) & BlockProperties.F_BOUNCE25) != 0L
|
||||
&& to.getY() - to.getBlockY() <= Math.max(cc.yOnGround, cc.noFallyOnGround)) {
|
||||
// TODO: Check other side conditions (fluids, web, max. distance to the block top (!))
|
||||
// Apply changes to NoFall and other.
|
||||
processTrampoline(player, pFrom, pTo, data, cc);
|
||||
// Skip NoFall.
|
||||
@ -531,7 +535,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||
}
|
||||
// Only check NoFall, if not already vetoed.
|
||||
if (checkNf) {
|
||||
checkNf = cc.noFallCheck && !NCPExemptionManager.isExempted(player, CheckType.MOVING_NOFALL) && !player.hasPermission(Permissions.MOVING_NOFALL);
|
||||
checkNf = noFall.isEnabled(player, cc);
|
||||
}
|
||||
if (newTo == null) {
|
||||
// Hover.
|
||||
@ -614,30 +618,50 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||
parkedInfo.add(moveInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjust data to allow bouncing back and/or removing fall damage.<br>
|
||||
* yDistance is < 0, the middle of the player is above a slime block (to) + on ground.
|
||||
* @param player
|
||||
* @param from
|
||||
* @param to
|
||||
* @param data
|
||||
* @param cc
|
||||
*/
|
||||
private void processTrampoline(final Player player, final PlayerLocation from, final PlayerLocation to, final MovingData data, final MovingConfig cc) {
|
||||
// TODO: Where to put...
|
||||
// TODO: Other side conditions (fluids, web)
|
||||
// TODO: Fake fall distance exploit (to bounce off slime blocks :p).
|
||||
// TODO: Confine further (depends on which checks are enabled, if possible to check, e.g. noFallMaxY).
|
||||
// Check for slime block below explicitly.
|
||||
// The center of the player must be above the block.
|
||||
if (cc.debug) {
|
||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Trampoline effect...");
|
||||
}
|
||||
|
||||
// TODO: Consider making this just a checking method (use result for applying effects).
|
||||
// CHEATING: Add velocity.
|
||||
// TODO: 1. Confine for direct use (no latency here). 2. Hard set velocity? 3.. Switch to friction based.
|
||||
if (!survivalFly.isReallySneaking(player)) {
|
||||
data.addVelocity(player, cc, 0.0, (double) player.getFallDistance() / 30.0, 0.0);
|
||||
final double fallDistance;
|
||||
if (noFall.isEnabled(player, cc)) {
|
||||
// (NoFall will not be checked, if this method is called.)
|
||||
if (data.noFallMaxY >= from.getY() ) {
|
||||
fallDistance = data.noFallMaxY - to.getY();
|
||||
} else {
|
||||
fallDistance = from.getY() - to.getY();
|
||||
}
|
||||
} else {
|
||||
fallDistance = player.getFallDistance() + from.getY() - to.getY();
|
||||
}
|
||||
final double effect = Math.min(3.14, Math.sqrt(fallDistance) / 3.3); // Ancient Greek technology.
|
||||
// (Actually observed max. is near 3.5.)
|
||||
if (cc.debug) {
|
||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Trampoline effect (dY=" + fallDistance + "): " + effect);
|
||||
}
|
||||
data.addVelocity(player, cc, 0.0, effect, 0.0);
|
||||
} else {
|
||||
if (cc.debug) {
|
||||
NCPAPIProvider.getNoCheatPlusAPI().getLogManager().debug(Streams.TRACE_FILE, player.getName() + " Trampoline effect (sneaking).");
|
||||
}
|
||||
}
|
||||
// CHEATING: Remove fall distance:
|
||||
// TODO: Test under which conditions the player would still take fall damage.
|
||||
// TODO: Depends on NoFall being enabled as well.
|
||||
player.setFallDistance(0f);
|
||||
// (Ignore if NoFall is enabled or not here.)
|
||||
data.noFallFallDistance = 0f;
|
||||
data.noFallMaxY = 0.0;
|
||||
data.noFallSkipAirCheck = true;
|
||||
// (Skipping the NoFall check is necessary, because THIS move can be big.)
|
||||
// (After this the NoFall check should be skipped.)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -11,7 +11,9 @@ import fr.neatmonster.nocheatplus.NCPAPIProvider;
|
||||
import fr.neatmonster.nocheatplus.checks.Check;
|
||||
import fr.neatmonster.nocheatplus.checks.CheckType;
|
||||
import fr.neatmonster.nocheatplus.compat.BridgeHealth;
|
||||
import fr.neatmonster.nocheatplus.hooks.NCPExemptionManager;
|
||||
import fr.neatmonster.nocheatplus.logging.Streams;
|
||||
import fr.neatmonster.nocheatplus.permissions.Permissions;
|
||||
import fr.neatmonster.nocheatplus.utilities.PlayerLocation;
|
||||
|
||||
/**
|
||||
@ -247,5 +249,15 @@ public class NoFall extends Check {
|
||||
// Deal damage.
|
||||
handleOnGround(player, y, false, data, cc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method bypassing the factories.
|
||||
* @param player
|
||||
* @param cc
|
||||
* @return
|
||||
*/
|
||||
public boolean isEnabled(final Player player , final MovingConfig cc) {
|
||||
return cc.noFallCheck && !NCPExemptionManager.isExempted(player, CheckType.MOVING_NOFALL) && !player.hasPermission(Permissions.MOVING_NOFALL);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -12,28 +12,28 @@ import org.bukkit.Material;
|
||||
*/
|
||||
public class DefaultConfig extends ConfigFile {
|
||||
|
||||
/**
|
||||
* NCP build needed for this config.
|
||||
* (Should only increment with changing or removing paths.)
|
||||
*/
|
||||
public static final int buildNumber = 754;
|
||||
|
||||
// TODO: auto input full version or null to an extra variable or several [fail safe for other syntax checking]?
|
||||
/**
|
||||
* NCP build needed for this config.
|
||||
* (Should only increment with changing or removing paths.)
|
||||
*/
|
||||
public static final int buildNumber = 754;
|
||||
|
||||
// TODO: auto input full version or null to an extra variable or several [fail safe for other syntax checking]?
|
||||
|
||||
/**
|
||||
* Instantiates a new default configuration.
|
||||
*/
|
||||
public DefaultConfig() {
|
||||
super();
|
||||
|
||||
|
||||
|
||||
|
||||
// General.
|
||||
set(ConfPaths.SAVEBACKCONFIG, true);
|
||||
|
||||
|
||||
// Config version.
|
||||
set(ConfPaths.CONFIGVERSION_NOTIFY, true);
|
||||
// not set(ConfPaths.CONFIGVERSION_CREATED, -1);
|
||||
// not set(ConfPaths.CONFIGVERSION_SAVED, -1);
|
||||
// not set(ConfPaths.CONFIGVERSION_CREATED, -1);
|
||||
// not set(ConfPaths.CONFIGVERSION_SAVED, -1);
|
||||
set(ConfPaths.LOGGING_ACTIVE, true);
|
||||
set(ConfPaths.LOGGING_DEBUG, false);
|
||||
set(ConfPaths.LOGGING_MAXQUEUESIZE, 5000);
|
||||
@ -47,12 +47,12 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.LOGGING_BACKEND_INGAMECHAT_PREFIX, "&cNCP: &f");
|
||||
set(ConfPaths.LOGGING_BACKEND_INGAMECHAT_SUBSCRIPTIONS, false);
|
||||
|
||||
// set(ConfPaths.MISCELLANEOUS_CHECKFORUPDATES, true);
|
||||
// set(ConfPaths.MISCELLANEOUS_REPORTTOMETRICS, true);
|
||||
// set(ConfPaths.MISCELLANEOUS_CHECKFORUPDATES, true);
|
||||
// set(ConfPaths.MISCELLANEOUS_REPORTTOMETRICS, true);
|
||||
|
||||
// set(ConfPaths.MISCELLANEOUS_NOMOVEDTOOQUICKLY_ENABLED, false);
|
||||
// set(ConfPaths.MISCELLANEOUS_NOMOVEDTOOQUICKLY_USEPROXY, false);
|
||||
|
||||
// set(ConfPaths.MISCELLANEOUS_NOMOVEDTOOQUICKLY_ENABLED, false);
|
||||
// set(ConfPaths.MISCELLANEOUS_NOMOVEDTOOQUICKLY_USEPROXY, false);
|
||||
|
||||
// Data settings.
|
||||
// Expired offline players data.
|
||||
set(ConfPaths.DATA_EXPIRATION_ACTIVE, false);
|
||||
@ -63,7 +63,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.DATA_CONSISTENCYCHECKS_INTERVAL, 10);
|
||||
set(ConfPaths.DATA_CONSISTENCYCHECKS_MAXTIME, 2);
|
||||
set(ConfPaths.DATA_CONSISTENCYCHECKS_SUPPRESSWARNINGS, false);
|
||||
|
||||
|
||||
// Protection features.
|
||||
// Hide plugins.
|
||||
set(ConfPaths.PROTECT_PLUGINS_HIDE_ACTIVE, true);
|
||||
@ -78,7 +78,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
// Client motd.
|
||||
set(ConfPaths.PROTECT_CLIENTS_MOTD_ACTIVE, true);
|
||||
set(ConfPaths.PROTECT_CLIENTS_MOTD_ALLOWALL, false);
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKBREAK_DIRECTION_CHECK, true);
|
||||
set(ConfPaths.BLOCKBREAK_DIRECTION_ACTIONS, "cancel vl>10 log:bdirection:0:5:if cancel");
|
||||
|
||||
@ -88,7 +88,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.BLOCKBREAK_FASTBREAK_MOD_SURVIVAL, 100);
|
||||
set(ConfPaths.BLOCKBREAK_FASTBREAK_GRACE, 2000);
|
||||
set(ConfPaths.BLOCKBREAK_FASTBREAK_ACTIONS, "cancel vl>0 log:fastbreak:3:5:cif cancel");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKBREAK_FREQUENCY_CHECK, true);
|
||||
set(ConfPaths.BLOCKBREAK_FREQUENCY_MOD_CREATIVE, 95);
|
||||
set(ConfPaths.BLOCKBREAK_FREQUENCY_MOD_SURVIVAL, 45);
|
||||
@ -101,32 +101,32 @@ public class DefaultConfig extends ConfigFile {
|
||||
|
||||
set(ConfPaths.BLOCKBREAK_REACH_CHECK, true);
|
||||
set(ConfPaths.BLOCKBREAK_REACH_ACTIONS, "cancel vl>5 log:breach:0:2:if cancel");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKBREAK_WRONGBLOCK_CHECK, true);
|
||||
set(ConfPaths.BLOCKBREAK_WRONGBLOCK_LEVEL, 10);
|
||||
set(ConfPaths.BLOCKBREAK_WRONGBLOCK_ACTIONS, "cancel vl>10 log:bwrong:0:5:if cancel vl>30 log:bwrong:0:5:cif cancel cmd:kickwb");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKINTERACT_DIRECTION_CHECK, true);
|
||||
set(ConfPaths.BLOCKINTERACT_DIRECTION_ACTIONS, "cancel vl>10 log:bdirection:0:3:if cancel");
|
||||
|
||||
set(ConfPaths.BLOCKINTERACT_REACH_CHECK, true);
|
||||
set(ConfPaths.BLOCKINTERACT_REACH_ACTIONS, "cancel vl>5 log:breach:0:2:if cancel");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKINTERACT_SPEED_CHECK, true);
|
||||
set(ConfPaths.BLOCKINTERACT_SPEED_INTERVAL, 2000);
|
||||
set(ConfPaths.BLOCKINTERACT_SPEED_LIMIT, 60);
|
||||
set(ConfPaths.BLOCKINTERACT_SPEED_ACTIONS, "cancel vl>200 log:bspeed:0:2:if cancel vl>1000 cancel log:bspeed:0:2:icf cmd:kickbspeed");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKINTERACT_VISIBLE_CHECK, true);
|
||||
set(ConfPaths.BLOCKINTERACT_VISIBLE_ACTIONS, "cancel vl>100 log:bvisible:0:10:if cancel");
|
||||
|
||||
|
||||
// BLOCKPLACE
|
||||
set(ConfPaths.BLOCKPLACE_AGAINST_CHECK, true);
|
||||
set(ConfPaths.BLOCKPLACE_AGAINST_ACTIONS, "cancel");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKPLACE_AUTOSIGN_CHECK, true);
|
||||
set(ConfPaths.BLOCKPLACE_AUTOSIGN_ACTIONS, "cancel vl>10 log:bautosign:0:3:if cancel");
|
||||
|
||||
|
||||
set(ConfPaths.BLOCKPLACE_DIRECTION_CHECK, true);
|
||||
set(ConfPaths.BLOCKPLACE_DIRECTION_ACTIONS, "cancel vl>10 log:bdirection:0:3:if cancel");
|
||||
|
||||
@ -147,11 +147,11 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.BLOCKPLACE_SPEED_INTERVAL, 45L);
|
||||
set(ConfPaths.BLOCKPLACE_SPEED_ACTIONS,
|
||||
"cancel vl>150 log:bpspeed:3:5:if cancel vl>1000 log:bpspeed:3:5:cif cancel");
|
||||
|
||||
|
||||
set(ConfPaths.CHAT_COLOR_CHECK, true);
|
||||
set(ConfPaths.CHAT_COLOR_ACTIONS, "log:color:0:1:if cancel");
|
||||
|
||||
|
||||
|
||||
|
||||
set(ConfPaths.CHAT_COMMANDS_CHECK, true);
|
||||
set(ConfPaths.CHAT_COMMANDS_EXCLUSIONS, new ArrayList<String>());
|
||||
set(ConfPaths.CHAT_COMMANDS_HANDLEASCHAT, Arrays.asList("me"));
|
||||
@ -159,7 +159,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.CHAT_COMMANDS_SHORTTERM_TICKS, 18);
|
||||
set(ConfPaths.CHAT_COMMANDS_SHORTTERM_LEVEL, 3);
|
||||
set(ConfPaths.CHAT_COMMANDS_ACTIONS, "log:commands:0:5:cf cancel cmd:kickcommands vl>20 log:commands:0:5:cf cancel cmd:tempkick1");
|
||||
|
||||
|
||||
// Captcha.
|
||||
set(ConfPaths.CHAT_CAPTCHA_CHECK, false);
|
||||
set(ConfPaths.CHAT_CAPTCHA_CHARACTERS, "abcdefghjkmnpqrtuvwxyzABCDEFGHJKMNPQRTUVWXYZ2346789");
|
||||
@ -168,7 +168,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.CHAT_CAPTCHA_SUCCESS, "&aOK, it sounds like you're not a spambot.");
|
||||
set(ConfPaths.CHAT_CAPTCHA_TRIES, 3);
|
||||
set(ConfPaths.CHAT_CAPTCHA_ACTIONS, "cancel cmd:kickcaptcha vl>4 log:captcha:2:5:cf cancel cmd:kickcaptcha");
|
||||
|
||||
|
||||
// Text (ordering on purpose).
|
||||
set(ConfPaths.CHAT_TEXT_CHECK, true);
|
||||
set(ConfPaths.CHAT_TEXT_ALLOWVLRESET, true);
|
||||
@ -227,45 +227,45 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.CHAT_LOGINS_SECONDS, 10);
|
||||
set(ConfPaths.CHAT_LOGINS_LIMIT, 10);
|
||||
set(ConfPaths.CHAT_LOGINS_KICKMESSAGE, "Too many people logging in, retry soon.");
|
||||
|
||||
|
||||
/*
|
||||
* Combined !
|
||||
*/
|
||||
|
||||
|
||||
set(ConfPaths.COMBINED_BEDLEAVE_CHECK, true);
|
||||
set(ConfPaths.COMBINED_BEDLEAVE_ACTIONS, "cancel log:bedleave:0:5:if cmd:kickbedleave");
|
||||
|
||||
|
||||
set(ConfPaths.COMBINED_ENDERPEARL_CHECK, true);
|
||||
set(ConfPaths.COMBINED_ENDERPEARL_PREVENTCLICKBLOCK, true);
|
||||
|
||||
|
||||
set(ConfPaths.COMBINED_IMPROBABLE_CHECK , true);
|
||||
set(ConfPaths.COMBINED_IMPROBABLE_LEVEL, 300);
|
||||
// set(ConfPaths.COMBINED_IMPROBABLE_FASTBREAK_CHECK, false);
|
||||
// set(ConfPaths.COMBINED_IMPROBABLE_FASTBREAK_CHECK, false);
|
||||
set(ConfPaths.COMBINED_IMPROBABLE_ACTIONS, "cancel log:improbable:2:8:if");
|
||||
|
||||
|
||||
set(ConfPaths.COMBINED_INVULNERABLE_CHECK, true);
|
||||
set(ConfPaths.COMBINED_INVULNERABLE_TRIGGERS_ALWAYS, false);
|
||||
set(ConfPaths.COMBINED_INVULNERABLE_TRIGGERS_FALLDISTANCE, true);
|
||||
set(ConfPaths.COMBINED_INVULNERABLE_INITIALTICKS_JOIN, -1);
|
||||
set(ConfPaths.COMBINED_INVULNERABLE_IGNORE, Arrays.asList("FALL"));
|
||||
set(ConfPaths.COMBINED_INVULNERABLE_MODIFIERS + ".all", 0);
|
||||
|
||||
|
||||
set(ConfPaths.COMBINED_MUNCHHAUSEN_CHECK, false);
|
||||
set(ConfPaths.COMBINED_MUNCHHAUSEN_ACTIONS, "cancel vl>100 cancel log:munchhausen:0:60:if");
|
||||
|
||||
|
||||
set(ConfPaths.COMBINED_YAWRATE_RATE , 380);
|
||||
set(ConfPaths.COMBINED_YAWRATE_PENALTY_FACTOR, 1.0);
|
||||
set(ConfPaths.COMBINED_YAWRATE_PENALTY_MIN, 250);
|
||||
set(ConfPaths.COMBINED_YAWRATE_PENALTY_MAX, 2000);
|
||||
set(ConfPaths.COMBINED_YAWRATE_IMPROBABLE, true);
|
||||
|
||||
|
||||
// FIGHT
|
||||
set(ConfPaths.FIGHT_CANCELDEAD, true);
|
||||
set(ConfPaths.FIGHT_TOOLCHANGEPENALTY, 500L);
|
||||
set(ConfPaths.FIGHT_PVP_KNOCKBACKVELOCITY, true);
|
||||
|
||||
|
||||
set(ConfPaths.FIGHT_YAWRATE_CHECK, true);
|
||||
|
||||
|
||||
set(ConfPaths.FIGHT_ANGLE_CHECK, true);
|
||||
set(ConfPaths.FIGHT_ANGLE_THRESHOLD, 50);
|
||||
set(ConfPaths.FIGHT_ANGLE_ACTIONS, "cancel vl>100 log:angle:3:5:f cancel vl>250 log:angle:0:5:cif cancel");
|
||||
@ -284,7 +284,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.FIGHT_FASTHEAL_INTERVAL, 4000L);
|
||||
set(ConfPaths.FIGHT_FASTHEAL_BUFFER, 1000L);
|
||||
set(ConfPaths.FIGHT_FASTHEAL_ACTIONS, "cancel vl>10 cancel log:fastheal:0:10:i vl>30 cancel log:fastheal:0:10:if");
|
||||
|
||||
|
||||
set(ConfPaths.FIGHT_GODMODE_CHECK, true);
|
||||
set(ConfPaths.FIGHT_GODMODE_LAGMINAGE, 1100); // TODO: ndt/2 => 500-600.
|
||||
set(ConfPaths.FIGHT_GODMODE_LAGMAXAGE, 5000);
|
||||
@ -304,7 +304,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.FIGHT_REACH_REDUCEDISTANCE, 0.9);
|
||||
set(ConfPaths.FIGHT_REACH_REDUCESTEP, 0.15);
|
||||
set(ConfPaths.FIGHT_REACH_ACTIONS, "cancel vl>10 log:freach:2:5:if cancel");
|
||||
|
||||
|
||||
set(ConfPaths.FIGHT_SELFHIT_CHECK, true);
|
||||
set(ConfPaths.FIGHT_SELFHIT_ACTIONS, "log:fselfhit:0:5:if cancel vl>10 log:fselfhit:0:5:icf cancel cmd:kickselfhit");
|
||||
|
||||
@ -333,28 +333,28 @@ public class DefaultConfig extends ConfigFile {
|
||||
|
||||
set(ConfPaths.INVENTORY_INSTANTEAT_CHECK, true);
|
||||
set(ConfPaths.INVENTORY_INSTANTEAT_ACTIONS, "log:instanteat:2:5:if cancel");
|
||||
|
||||
|
||||
set(ConfPaths.INVENTORY_FASTCONSUME_CHECK, true);
|
||||
set(ConfPaths.INVENTORY_FASTCONSUME_DURATION, 0.7);
|
||||
set(ConfPaths.INVENTORY_FASTCONSUME_WHITELIST, false);
|
||||
set(ConfPaths.INVENTORY_FASTCONSUME_ITEMS, new LinkedList<String>());
|
||||
set(ConfPaths.INVENTORY_FASTCONSUME_ACTIONS, "log:fastconsume:2:5:if cancel");
|
||||
|
||||
|
||||
set(ConfPaths.INVENTORY_ITEMS_CHECK, true);
|
||||
|
||||
|
||||
set(ConfPaths.INVENTORY_OPEN_CHECK, true);
|
||||
set(ConfPaths.INVENTORY_OPEN_CLOSE, true);
|
||||
set(ConfPaths.INVENTORY_OPEN_CANCELOTHER, true);
|
||||
|
||||
// MOVING
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_CHECK, true);
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT, false);
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE, false);
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT, false); // TODO: -> true ?
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE, false); // TODO: -> true ?
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_HORIZONTALSPEED, 100);
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_MAXHEIGHT, 128);
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_VERTICALSPEED, 100);
|
||||
set(ConfPaths.MOVING_CREATIVEFLY_ACTIONS,
|
||||
"log:flyshort:3:5:f cancel vl>100 log:flyshort:0:5:if cancel vl>400 log:flylong:0:5:cif cancel");
|
||||
"log:flyshort:3:5:f cancel vl>100 log:flyshort:0:5:if cancel vl>400 log:flylong:0:5:cif cancel");
|
||||
|
||||
set(ConfPaths.MOVING_MOREPACKETS_CHECK, true);
|
||||
set(ConfPaths.MOVING_MOREPACKETS_SECONDS, 6);
|
||||
@ -376,14 +376,14 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.MOVING_NOFALL_RESETONVEHICLE, true);
|
||||
set(ConfPaths.MOVING_NOFALL_ANTICRITICALS, true);
|
||||
set(ConfPaths.MOVING_NOFALL_ACTIONS, "log:nofall:0:5:if cancel vl>30 log:nofall:0:5:icf cancel");
|
||||
|
||||
|
||||
set(ConfPaths.MOVING_PASSABLE_CHECK, true);
|
||||
set(ConfPaths.MOVING_PASSABLE_RAYTRACING_CHECK, true);
|
||||
set(ConfPaths.MOVING_PASSABLE_RAYTRACING_BLOCKCHANGEONLY, false);
|
||||
set(ConfPaths.MOVING_PASSABLE_ACTIONS, "cancel vl>10 log:passable:0:5:if cancel vl>50 log:passable:0:5:icf cancel");
|
||||
|
||||
set(ConfPaths.MOVING_SURVIVALFLY_CHECK, true);
|
||||
// set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_HACC, false);
|
||||
// set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_HACC, false);
|
||||
set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_VACC, true);
|
||||
set(ConfPaths.MOVING_SURVIVALFLY_FALLDAMAGE, true);
|
||||
// The settings aren't enabled by default. Simply write them yourself in the configuration file.
|
||||
@ -402,21 +402,21 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.MOVING_SURVIVALFLY_HOVER_LOGINTICKS, 0);
|
||||
set(ConfPaths.MOVING_SURVIVALFLY_HOVER_FALLDAMAGE, true);
|
||||
set(ConfPaths.MOVING_SURVIVALFLY_HOVER_SFVIOLATION, 500);
|
||||
|
||||
|
||||
// Moving Trace
|
||||
set(ConfPaths.MOVING_TRACE_SIZE, 60);
|
||||
set(ConfPaths.MOVING_TRACE_MERGEDIST, 0.9752); // Let all the hackers read code!
|
||||
|
||||
|
||||
// Vehicles.
|
||||
set(ConfPaths.MOVING_VEHICLES_PREVENTDESTROYOWN, true);
|
||||
set(ConfPaths.MOVING_VEHICLES_ENFORCELOCATION, true);
|
||||
|
||||
|
||||
// Velocity.
|
||||
set(ConfPaths.MOVING_VELOCITY_GRACETICKS, 20);
|
||||
set(ConfPaths.MOVING_VELOCITY_ACTIVATIONCOUNTER, 80);
|
||||
set(ConfPaths.MOVING_VELOCITY_ACTIVATIONTICKS, 140);
|
||||
set(ConfPaths.MOVING_VELOCITY_STRICTINVALIDATION, true);
|
||||
|
||||
|
||||
// General.
|
||||
set(ConfPaths.MOVING_TEMPKICKILLEGAL, true);
|
||||
set(ConfPaths.MOVING_LOADCHUNKS_JOIN, true);
|
||||
@ -424,19 +424,19 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.MOVING_ASSUMESPRINT, true);
|
||||
set(ConfPaths.MOVING_SPEEDGRACE, 4.0);
|
||||
set(ConfPaths.MOVING_ENFORCELOCATION, true);
|
||||
|
||||
|
||||
// NET
|
||||
|
||||
|
||||
// FlyingFrequency
|
||||
set(ConfPaths.NET_FLYINGFREQUENCY_ACTIVE, true);
|
||||
set(ConfPaths.NET_FLYINGFREQUENCY_SECONDS, 5);
|
||||
set(ConfPaths.NET_FLYINGFREQUENCY_MAXPACKETS, 300);
|
||||
|
||||
|
||||
// SoundDistance
|
||||
set(ConfPaths.NET_SOUNDDISTANCE_ACTIVE, true);
|
||||
set(ConfPaths.NET_SOUNDDISTANCE_MAXDISTANCE, 320);
|
||||
|
||||
|
||||
|
||||
|
||||
// TODO: An extra file might suit these.
|
||||
final String start = "[player] failed [check]: ";
|
||||
final String end = ". VL [violations].";
|
||||
@ -503,7 +503,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.STRINGS + ".tellchatnormal", tell + "&cNCP: &eToo many messages, slow down...");
|
||||
set(ConfPaths.STRINGS + ".tempkick1", "ncp tempkick [player] 1 Wait a minute!");
|
||||
set(ConfPaths.STRINGS + ".tempkick5", "ncp tempkick [player] 5 You have five minutes to think about it!");
|
||||
|
||||
|
||||
// Compatibility settings.
|
||||
set(ConfPaths.COMPATIBILITY_MANAGELISTENERS, false);
|
||||
set(ConfPaths.COMPATIBILITY_BUKKITONLY, false);
|
||||
@ -512,11 +512,11 @@ public class DefaultConfig extends ConfigFile {
|
||||
Material.TRAP_DOOR.name(),
|
||||
Material.PISTON_EXTENSION.name(),
|
||||
Material.PISTON_MOVING_PIECE.name() // TODO: ?
|
||||
));
|
||||
));
|
||||
set(ConfPaths.COMPATIBILITY_BLOCKS + ConfPaths.SUB_ALLOWINSTANTBREAK, new LinkedList<String>());
|
||||
set(ConfPaths.COMPATIBILITY_BLOCKS + ConfPaths.SUB_OVERRIDEFLAGS + ".snow", "default");
|
||||
|
||||
// // Update internal factory based on all the new entries to the "actions" section.
|
||||
// setActionFactory();
|
||||
|
||||
// // Update internal factory based on all the new entries to the "actions" section.
|
||||
// setActionFactory();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user