Commit Graph

246 Commits

Author SHA1 Message Date
asofold
5dd09d4476 [BLEEDING, INSTABLE] Switch horizontal velocity to a new method.
This method remembers (currently) each velocity added and only uses it
when it is needed not to generate a violation. Further (currently
simple) activation and invalidation logics are applied. With this method
latency will be much less of a problem, though stacking of queued
entries (especially for rocket-boots style flying) and more
merging of entries and more invalidation logics are required, thus
bleeding+instable.

On the long term this should make cheating much more difficult, possible
steps are:
1. Use method for vertical velocity too (only positive)
2. Distinguish positive and negative vertical velocity (opens a way to
control the speed downwards in any medium!).
3. Per-axis velocity (either absolute or pos/neg with more invalidation
logic on direction changes).
2013-03-08 04:06:17 +01:00
asofold
24c1599e94 Remove angle data on players leaving. 2013-03-08 03:47:02 +01:00
asofold
5a76b22ef6 Sharpen maximum jump distance. 2013-03-07 04:20:26 +01:00
asofold
348ba34e35 Commend on potential issue with join. 2013-03-06 19:36:50 +01:00
asofold
ce3d1ba89c Attempt to fix issues with (non exact) respawn. 2013-03-06 15:40:35 +01:00
asofold
7adef83687 Change resetting of yOnGround for NoFall.
Use CheckConfig to determine if it is necessary. Move resetting to a
method. Collect block flags again.
2013-03-05 20:21:29 +01:00
asofold
8bed6fb2de Change resetting of yOnGround for NoFall.
Use CheckConfig to determine if it is necessary. Move resetting to a
method. Collect block flags again.
2013-03-05 20:11:51 +01:00
asofold
d7110b3239 Adjust/fix moving debug output. 2013-03-05 19:45:01 +01:00
asofold
680bd86dd8 Fix false positives with jump+sprint just touching water once. 2013-03-05 02:31:30 +01:00
asofold
323d0f07d1 Fix for sneaking/blocking + velocity. 2013-03-04 23:37:58 +01:00
asofold
11f139a4fa Only debug this to console for nonzero BuildParameters.testLevel. 2013-03-04 23:06:58 +01:00
asofold
078c567e4b Attempt to reduce false positives with sprint+jump+attack.
Attacking while sprinting will now activate an extra buffer for the
horizontal speed checking.
2013-03-04 03:26:31 +01:00
asofold
494c667592 Add horizontal buffer to sf debug output. 2013-03-04 01:13:58 +01:00
asofold
1d1e428d05 Add checks.debug flag for fast activation of all checks debug features. 2013-03-04 01:13:40 +01:00
asofold
a22b259cc4 Attempt to fix issues with re-join and survivalfly. 2013-03-03 18:44:37 +01:00
asofold
6b5b9ce0e4 Reset hover ticks if found on ground. 2013-03-03 18:00:21 +01:00
asofold
ec5a504d7f Only check sf/hover every n ticks (configurable). 2013-03-03 17:58:54 +01:00
asofold
7ac499af06 Add loginticks to sf/hover to allow extra counting down before really
checking.
2013-03-03 17:38:19 +01:00
asofold
f28235cf61 Tweak lost-ground workarounds.
Allow a little more on ascending, early abort on descending too fast.
2013-03-02 03:33:45 +01:00
asofold
ff409fddea Rearrange some things with MovingListener/PlayerMove(lowest).
1. Don't check sf if passable sets back already, since passable favours
the
sf-set-back-location anyway.
2. First check which checks to check, to somewhat clean up the
MovingListener
3. Reset some properties on set-back in MovingListener.
2013-03-02 03:15:49 +01:00
asofold
036c99653f Use hard limits for maximum number of steps for ray-tracing.
This concerns both blockinteract.visible and moving.passable, both set
to 60. In effect extreme moves are impossible with either check
activated. Mind that 60 steps could be something like 20 blocks for some
cases, probably even less.
2013-03-01 21:50:37 +01:00
asofold
9ba173b82e Confine lost-ground check for block edges further. 2013-03-01 19:47:50 +01:00
asofold
1c2c0dce89 Add comment. 2013-03-01 18:35:30 +01:00
asofold
5ca6e33fac Reset lastAccess and lastExpired on clear(). 2013-02-28 20:26:24 +01:00
asofold
7c90d2260e Fix LetterEngine.checkConsistency.
Reference for cleanup should be the last time an entry was removed.
2013-02-28 20:13:49 +01:00
asofold
f03ffcf0a5 Let EnginePlayerDataMap remember the last time entries were removed. 2013-02-28 20:13:32 +01:00
asofold
84d82ff339 Add setback-y-distance to debug output for survivalfly. 2013-02-28 18:32:19 +01:00
asofold
50ebbb01fb Reduce false positives with jumping onto/over edges of blocks.
This is another case of "lost-ground", also contains one fix for nofall.
2013-02-28 17:16:40 +01:00
asofold
c8ac66de2c Reduce false positives for jumping off water near half-steps.
This allows a little more jumping in shallow water.
2013-02-27 22:45:54 +01:00
asofold
eb28f4775c Fix issue with hover check on players joining.
Re-check if survivalfly is checked at all for the player in case of
exceeding hover-ticks.
2013-02-27 21:39:22 +01:00
asofold
e342b07654 Add comment. 2013-02-27 21:25:17 +01:00
asofold
e0c6e9ebdd Reduce false positives with jumping almost onto block edges.
Also begin to rearrange lostground workaround checking.
2013-02-27 21:04:12 +01:00
asofold
4a9f82ef0c Clear logins data on removing all data (ncp remove *). 2013-02-27 18:23:32 +01:00
asofold
74a935ccd6 Add periodic consistency checking.
Mainly this is now an "ability", in terms of allowing for registration
f a ConsistencyChecker component. With this commit DataMan will check
the online-players map for consistency, LetterEngine(chat.text) will
check expiration of data, NCPExemptionManager will check entity-ids.
2013-02-27 18:00:44 +01:00
asofold
e3166783bc [BLEEDING] Use same yOnGround for noFall by default.
This should be handled by workarounds in survivalfly
(noFallAssumeGround).
2013-02-26 18:37:41 +01:00
asofold
62102c7d8b Treat small range teleports differently. [Ticket: BukkitDev-452] 2013-02-26 17:52:56 +01:00
asofold
ac048474b7 Allow interacting with the block at head height if stuck. 2013-02-26 02:32:48 +01:00
asofold
ee400b7525 Keep track of online players for performance reasons.
Due to Server.getPlayerExact iterating over all online players,
DataManager will now keep track of online players and allow lookup by
exact name and lower-case name.
2013-02-26 00:39:48 +01:00
asofold
f37fd4b166 Allow exemption for prevention of breaking special blocks (e.g. liquid). 2013-02-24 14:30:38 +01:00
asofold
b72b51e317 Allow exemption for blockplace/against checks.
Adds a CheckType for this purpose.
2013-02-23 17:09:15 +01:00
asofold
47862a651f We use liquid, not fluid. 2013-02-23 16:54:50 +01:00
asofold
e6961a757b Move some debugging code to a utility. 2013-02-20 19:43:54 +01:00
asofold
1e71a02449 Update javadocs: return value. 2013-02-20 18:32:45 +01:00
asofold
66da361c5d Fix fight.speed not getting registered properly.
Should use addCheck in order to have the stored MCAccess instance reset
properly on reloading. Little relevance with this check.
2013-02-20 18:27:22 +01:00
asofold
db5a71d6d2 [Bleeding] Add FastHeal check.
Might need lower interval and higher buffer in the default config,
subject to testing.
2013-02-20 17:02:48 +01:00
asofold
4a2dfc853e Something against criticals.
NoFall will now reset fall distances to 0 if the player walks on ground
(configurable: anticriticals).
2013-02-19 02:25:49 +01:00
asofold
2304abd6e8 Add nofall fall distance to fight.criticals debug message. 2013-02-19 01:49:59 +01:00
asofold
52eb97026c [BLEEDING] Revive direction checking. Optimizations. 2013-02-18 02:55:46 +01:00
asofold
cd2cb78ad6 Don't forget to increase the VL. 2013-02-17 19:54:06 +01:00
asofold
6112d5b9fb [Bleeding] Add interact.speed check. 2013-02-17 19:45:49 +01:00
asofold
dd5f094472 Adjust debug message. 2013-02-17 19:44:50 +01:00
asofold
48ffb2f09f [Bleeding] Add blockinteract.visible check.
This check performs somewhat heuristic ray-tracing to see if a block
interacted with can actually be "seen", in terms of not reaching
through fully solid blocks. [Still needs for performance: more refined
conditions when to use + interact-speed check].
2013-02-17 17:49:50 +01:00
asofold
89cbbfdddb Optimize/correct block-interact checking. 2013-02-17 17:04:06 +01:00
asofold
5f5d571264 Also prevent using item-in-hand or using interacted-block fpor
cancelled interact events.
2013-02-17 16:25:28 +01:00
asofold
28a28b2e54 Fastest return first. 2013-02-17 14:32:29 +01:00
asofold
45ba3b931e Reduce false positives for god-mode.
At maxNoDamageTicks/2 damage can rule.
2013-02-15 20:39:11 +01:00
asofold
0fff534cd1 Allow stuck players to jump upwards if head is free. 2013-02-15 15:53:56 +01:00
asofold
1264cdb240 [Bleeding] Add ray-tracing for passable check.
By default this only checks for block-transitions and vclip down.
2013-02-15 13:59:36 +01:00
asofold
73cbac3b8f Putting workaround right. At the cost of some swimup foggyness. 2013-02-09 00:26:02 +01:00
asofold
08427fb3f1 Reduce false positives with survivalfly + swimup (jump, half-steps). 2013-02-09 00:07:03 +01:00
asofold
602b4c70b4 Basically ignore events with zero damage for god-mode. 2013-02-08 19:46:00 +01:00
asofold
43264adf40 Adjust moving debug output: Show both v/h, but only if active. 2013-02-08 14:23:45 +01:00
asofold
83eb9c8564 Reset velocity specs for one-time-use velocity. 2013-02-08 14:03:55 +01:00
asofold
aa3c48059c Attempt to further reduce false positives with exiting boats. 2013-02-08 13:52:20 +01:00
asofold
06fdca5f25 Sharpen lost-ground conditions. 2013-02-08 13:31:35 +01:00
asofold
409f5e5878 Workaround for jumping onto flower pots. 2013-02-08 13:01:35 +01:00
asofold
d3966b3ccd Adapt lost-ground check to recent fix in PlayerLocation.isOnGround.
This should reduce false positives with running down "stairs" made of
full blocks by a lot.
2013-02-08 12:28:26 +01:00
asofold
bcd62f09a8 Move some debug output to a method. 2013-02-08 11:13:46 +01:00
asofold
dd9e5d3873 Code simplification. 2013-02-08 11:10:51 +01:00
asofold
a12ffcf916 Correct vl for fastclick to include current violation. 2013-02-08 09:49:38 +01:00
asofold
df4705d0d8 Let inventory.fastclick not execute actions with heavier lag spikes.
It will execute cancel, if the actions for the former vl contain it, but
the vl will not be increased, neither will actions be executed.
2013-02-08 09:47:13 +01:00
asofold
df005b4181 More grace to velocity handling, configurable.
Before full revert or recode: a moderate (smaller than
before) minimal grace amount for the counters is used now.
2013-02-06 18:43:34 +01:00
asofold
261fca021d Add comments, reorder slightly. 2013-02-06 17:42:04 +01:00
asofold
7399bfa8ee More haste. 2013-02-05 11:02:47 +01:00
asofold
2b8dd41461 Reduce some false positives with survivalfly. [Not finished.] 2013-02-05 01:52:15 +01:00
asofold
fcd18ead24 Make god-mode lag boundaries configurable. 2013-02-04 23:48:37 +01:00
asofold
f126a13be5 Don't let freedom go below 0. 2013-02-04 23:03:04 +01:00
asofold
6c8c6adca5 Attempt to fix repeated adding of velocity.
Effects on hacks have to be evaluated further.
2013-02-04 10:10:46 +01:00
asofold
6a0a4188c1 Sharpen vertical-accounting.
Also use first bucket, if count matches.
Demand at least gravity getting added.
2013-02-03 21:55:01 +01:00
asofold
d897c99a23 [Bleeding] Adjust velocity handling.
Mainly horizontal velocity. Should reduce abuse potential for small
amounts of velocity added. Repeated adding of velocity might pose
problems, still.
2013-02-03 21:37:00 +01:00
asofold
f5676cc635 Attempt to fix ladder climb up check.
Adds concept to ignore certain flags for isOnGround checking.
2013-02-03 19:16:55 +01:00
asofold
c3b0bf1012 Fixes pending...
swimup: Speed corrected.

vertical velocity: reset only with to on ground or small velocity.
2013-02-03 18:37:06 +01:00
asofold
ec70fb1df4 [Bleeding] Change how vertical velocity is applied, reset both h/v on
certain occasions.
2013-02-03 18:20:49 +01:00
asofold
cfdbfedf56 Fix ladder+vine speed limits for moving up not being applied. 2013-02-03 17:38:44 +01:00
asofold
ab068f0a2d Attempt to fix lilypad + swimup. 2013-02-03 17:05:07 +01:00
asofold
52797769a2 Fix jumping from water onto lilypads. 2013-02-03 16:52:37 +01:00
asofold
0c0f8d1c5c Switch vertical accounting to 3 events per bucket. 2013-02-03 16:46:48 +01:00
asofold
930228bc6c Protected more against moving up (ladder, vine, water).
Prevent climbing too high up vine that are not attached to solid
blocks. Prevent too high speed moving up on ladders, vine, liquid.
Refine treatment of exiting boats.
2013-02-03 16:32:22 +01:00
asofold
71d6a46b93 Further reduce false positives for survivalfly. Adapt some debug
messages.
2013-02-03 00:24:07 +01:00
asofold
ddd61a6522 Add falldamage option to survivalfly. Not sure it is a good idea to set
it to false, though.
2013-02-02 22:22:55 +01:00
asofold
044c435180 Fix jumping out of water when next to something solid.
Problem was introduced by previous commits, which seemed to have fixed
false on-ground judgment (short-cut in PlayerLocation.isOnGround).
2013-02-02 18:14:55 +01:00
asofold
c003ccc09f Fix some issues with stairs and half-blocks.
Add stepping up half-block distances to lost-ground.
2013-02-02 17:32:45 +01:00
asofold
824e67ffe6 Use the keep-alive estimation for the new god-mode check.
Might not fully do it, but should make occasional hits possible.
2013-02-02 08:28:52 +01:00
asofold
e0f5e594be Add workaround method for keep-alive time, as a temporary solution.
Also keep track of last-regain-health time for that and other purpose.
2013-02-02 08:19:31 +01:00
asofold
25a3c9663b Switch from ActionFrequency to ActionAccumulator for vertical-accounting
(survivalfly).

This should reduce false positives due to lag of any kind. Might set
event number to 3, depending on tests.
2013-02-01 17:28:58 +01:00
asofold
ed4b551c08 Balance maxphase violation better with default config. 2013-02-01 16:13:19 +01:00
asofold
dba567ee2b [Bleeding] Bring in new god-mode check. 2013-02-01 09:38:58 +01:00
asofold
f4727ad3a2 Double.MIN_VALUE is something else. Should be Double.NEGATIVE_INFINITY. 2013-02-01 08:30:36 +01:00
asofold
a123e02251 Fix cobweb + jumping. 2013-02-01 07:42:39 +01:00
asofold
7fa1238c4e Fix moving.debug output, add output for silent cobweb set-back. 2013-02-01 07:25:06 +01:00