Commit Graph

2620 Commits

Author SHA1 Message Date
asofold
36c018bc3c Use the bounds coordinates as intended. 2016-01-26 23:51:01 +01:00
asofold
c20d593d42 Fix stepping onto boats. 2016-01-26 21:36:37 +01:00
asofold
8985b67668 [BLEEDING] Reduce fp with blockinteract.visible using ProtocolLib.
Not entirely sure this will still protect from anything, shortish:
* Remove cancelling due to coarse pre-checks.
* Rather correct the end location back onto the end block somehow.
* Retry ray-tracing with the pitch and yaw of past flying packets.
* Let the direction check handle the off-too-far part and let people
blame that one for remaining amounts of false positives.

Missing:
* Should confine by distance to last move, perhaps.
2016-01-26 01:53:40 +01:00
asofold
e278e01a3c Replace ( and ) by ~ in /ncp version. Just BLOCKSMC1_4, no (base).
Doesn't look better ingame/console, but might on GitHub.
2016-01-25 21:49:06 +01:00
asofold
0a32d55039 Swap player name and check type for standard format. 2016-01-25 21:23:30 +01:00
asofold
d62ff6754a Move moving specific logging methods back to the moving listener.
* Make them private methods.
* Use standard log message prefix (add a method for that to CheckUtils).
2016-01-25 21:10:42 +01:00
asofold
f6dfa51efe Alter tags in blockinteract.visible. 2016-01-25 20:40:05 +01:00
asofold
544e1ad14e Switch debug messages to a standard format.
Use check-specific debug methods for convenience.
Add to: Check, CheckListener, BaseAdapter.
Relay to: CheckUtils.

Side effects:
* Remove constructor: CheckListener().
2016-01-25 20:35:43 +01:00
asofold
9118aa023a Enable hooks to test for presence of applicable log actions.
This is half a guess on base of a request. Hooks can now check if there
are any log actions, or cast IViolationInfo to ViolationData and query
if anything would be logged to a certain stream.

Alterations pending (allow query for multiple streams or just get
streams/configs, what to have in the official API in IViolationInfo).
2016-01-25 11:00:20 +01:00
asofold
6282a9afbe Add isOptimized() test to Action, GenericLogAction.
This allows testing if the there will be lookups of configuration values
for GenericLogAction instances.
2016-01-25 10:19:51 +01:00
asofold
822cb90410 Allow friction based horizontal distance in creativefly. 2016-01-19 00:20:00 +01:00
asofold
57378a1f11 Make one method for all the oddXYZ stuff. 2016-01-18 18:12:50 +01:00
asofold
2e216c4ada Exclude violation on clearly accepted envelopes early. 2016-01-18 16:17:34 +01:00
asofold
2fdd9911e8 Log untracked outgoing position. Simplify onPacketSending. 2016-01-18 10:52:19 +01:00
asofold
02137600b7 [BLEEDING] Make use of workarounds for a specific case, test-wise. 2016-01-18 00:40:51 +01:00
asofold
228ed2f74a Add tests for WorkaroundSet. Related fixes/changes. 2016-01-17 23:37:30 +01:00
asofold
aacb97b26b Add tests for SimpleWorkaroundRegistry. Related fixes. 2016-01-17 21:52:40 +01:00
asofold
db462091d0 Add tests for workarounds. 2016-01-17 18:49:07 +01:00
asofold
8a70ad939b Rename interface to I... 2016-01-17 17:50:51 +01:00
asofold
f0dd67590d Don't override use in WorkaroundCountDown. Adjust java docs. 2016-01-17 16:36:03 +01:00
asofold
d2b151af99 Second iteration on the workaround infrastructure (not in use).
* Rename interfaces to I...
* Split off the statistics counting to accept/deny counters.
* Remove support for parent workarounds.
* Do use a testUse method for overriding in AbstractWorkaround.
* Add a stage counter to WorkaroundCountDown, for meta checks per stage.
* Extend/alter/implement default method signatures and interfaces.

Missing:
* Tests for the workaround package.
* Add a primary thread / moving checks registry instance.
* Add default sets and use in moving checks (primary thread only).
2016-01-17 16:27:57 +01:00
asofold
f337538ce3 A blueprint. 2016-01-17 02:31:14 +01:00
asofold
567ef1b971 Rough sketch of workaround confinement and statistics support.
Untested, unused. Intentions are:
* Be able to count any use of workarounds.
* Confine workarounds to side conditions, such as 'use once until
conditions are reset' and/or 'only use once conditions are set'.
* Have per-player objects and (attached) global counters.
* (Might think of: disable workarounds by configuration.)
2016-01-17 02:12:00 +01:00
asofold
027079320e Too fast +-. 2016-01-14 23:52:04 +01:00
asofold
88c204dd40 Log the stack trace (once) for improper API access. 2016-01-14 23:47:51 +01:00
asofold
3bcfeffdbf Reset fall distance and NoFall data on a fly-nofly transition. 2016-01-12 00:06:27 +01:00
asofold
ec2c63101e Set version to 3.13.6-SNAPSHOT for progress. 2016-01-07 22:53:53 +01:00
asofold
0634e22b6b Set version to 3.13.5-BETA for release. 2016-01-07 22:46:10 +01:00
asofold
3f4cd1008f Cherry pick from pr https://github.com/NoCheatPlus/NoCheatPlus/pull/37
(@Samistine).

Slight deviations:
* Random formatting changes.
* Use a linked list for changedCommands at first.
* Use list.clear after iteration, instead of calling remove repeatedly.
* descendingIterator instead of ListIterator + (has+) previous.
2016-01-07 10:54:33 +01:00
asofold
222a983e34 More margin for falling after data reset. 2016-01-06 23:32:40 +01:00
asofold
6b1277e981 Fix various cases with velocity around lava (swimup, vdistrel). 2016-01-06 10:33:22 +01:00
asofold
1c580c1b08 Attempt to fix bounce with carpet above slime block. 2016-01-06 00:44:47 +01:00
asofold
e54d7a207e Move some code into a method. 2016-01-03 12:41:02 +01:00
asofold
5bbd22db38 [BLIND] Fix after-data-reset workaround (skip_paper): bypass vdistrel
* Add mightBeMultipleMoves to MoveData.
* Use a utility method to test for skip_paper, both on setting
vAllowedDistance for vdistrel and in vdistsb.
* Set the skip_paper tag during setting vAllowedDistance for vdistrel,
as that is always run.
2016-01-03 12:34:43 +01:00
asofold
dcc0ac354b Add oddFriction case (near zero yDistance). 2016-01-02 00:48:35 +01:00
asofold
56666bc8b3 Move most static stuff from SurvivalFly to a Magic class. 2016-01-01 23:38:53 +01:00
asofold
856e723908 Change the 'step' detection.
Catch yDistance between step height and minimum jump gain, let vdistrel
and vdistsb catch the rest. Use the more precise flags of data.thisMove.
2016-01-01 21:02:08 +01:00
asofold
2bb605a497 Add special case using two past moves (rare). 2016-01-01 19:58:58 +01:00
asofold
37c35cd271 vDistLiquid: Extend workaround for second in-medium move (swimdown). 2016-01-01 19:13:55 +01:00
asofold
9e3e1b9774 Add oddGravity case (slightly too small decrease, moving up, velocity). 2016-01-01 18:41:33 +01:00
asofold
daf6ab78d6 Adjust oddLiquid case (moving out of water with velocity). 2016-01-01 18:30:12 +01:00
asofold
6110e9301f [BLEEDING] Split teleport handling to using multiple priorities.
* Cancel/alter on lowest.
* Override cancel on set-back on highest.
* Adjust data on monitor.

Partly simplify, e.g. by just cancelling the event (nothing should
happen) - can't recall if there has been a reason to setTo(setBack)
instead of event.setCancelled(true).
2016-01-01 00:51:22 +01:00
asofold
99598b9490 onPlayerTeleport: Only use ref locally, where needed. 2015-12-30 21:57:04 +01:00
asofold
539294c599 Further simplify onPlayerTeleport (early return). 2015-12-30 21:22:21 +01:00
asofold
65e655a989 vDistAir: Fix envelope for missing/reset past move data. 2015-12-30 20:26:38 +01:00
asofold
6c797f8561 Make 'related plugins' a headline in the 'ncp version' command. 2015-12-28 22:41:48 +01:00
asofold
1dad595faa Reset positions with extra properties, also set medium properties.
* Call both most of the time.
* A convenience measure to have last move ground set, at the cost of
setting it 'too often' (players might not get checked by survivalfly at
all).
* Wrap calls with one PlayerLocation instance, for efficiency.
2015-12-28 22:11:10 +01:00
asofold
67071b3fad [BLEEDING] Add/move typical flags to past move tracking.
Move location-dependent properties from MovingData and MoveData to
LocationData.

Rough list of related Changes:
* Represent from and to positions as LocationData inside of MoveData.
* Have flags for onGround, inLiquid and the like in LocationData.
* Change noFallAssumeGround to touchedGroundWorkaround within MoveData.
* Add touchedGround to MoveData (to|from|workaround).
* (Remove involved properties from MovingData and use MoveData.from/to
instead.)
* Use MoveData and LocationData flags instead of PlayerLocation methods
in more places.
* Adjust various special case pre-conditions, based on past move data.

Other changes made on the fly:
* Allow maximum of jump gain and step height for ground -> ground.
* Add envelopes for vDistAir after teleport/join/respawn.
* Add cases for vdistrel.
* Extend logging on teleport (add cause, log set-back too).
* Reorder/fix vdistsb workaround checking.
* Reorder teleport handling.
* Remove small-range workaround for teleport [uncertain effect].

Immediate future follow ups:
* Attempt to only accept PlayerLocation for various setPositions methods
in MovingData (ensure to set MoveData with extra properties +
simplify/cleanup (public) methods with MoveData/LocationData).
* Relate to past move tracking for more workarounds, either to confine
pre-conditions more (inLiquid instead of toWasReset~somehow), or just to
be able to track a false positive at all (thisMove + 2 past moves
needed).
* (Fixes, etc.)

Distant future follow-up:
* Somehow merge with PlayerLocation, e.g. using LocationData inside
PlayerLocation internally, which means changing raw types to Object
versions, just like it's done inside of PlayerLocation right now.
* Possibly PlayerLocation is transformed to static methods with
BlockCache and LocationData as input.

Expected trouble:
* New/old false positives, due to replacing the fromWasReset and
toWasReset by more distinct flags from past move tracking.
 * A workaround may have prevented other false positives
unintentionally, e.g. had been intended for liquid, but the
to/fromWasReset flags previously did include ground/noFallAssumeGround,
thus the workaround will not cover that case anymore, after the change. 
 * Forgetting something like checking touchedGround and to/from.onGround
or similar as a replacement for xyWasReset.
* Mixing up thisMove and lastMove for touchedGround.
* Mixing up touchedGround and touchedGroundWorkaround in MoveData.
2015-12-28 15:46:31 +01:00
asofold
73cdef5b56 Collect block flags on adjustMediumProperties. 2015-12-26 00:09:22 +01:00
asofold
7be8a9c053 Add convenience methods. 2015-12-25 13:55:03 +01:00