Commit Graph

481 Commits

Author SHA1 Message Date
asofold
e26aec2cbd Make login denial configurable for the illegal-move checking. 2013-04-21 19:52:55 +02:00
asofold
2334bc9f22 Hover check: Check if chunks are loaded before triggering a violation. 2013-04-21 19:48:04 +02:00
asofold
fa50f34023 Add the auxiliary OnDemandTickListener class for temporary TickListener
registration.

* OnDemandTickListener contains API for convenient on-demand
registration and use.
* TickTask recognizes these and conveniently sets them
registered/unregistered.
* TickTask was optimized to allow faster adding and removal of
TickListener instances.
* Used for delayed component registration.
* Future purpose.
2013-04-18 17:10:12 +02:00
asofold
a950a2b7f8 Use a "temporary" TickListener to process queued IHoldSubComponents
instances.
2013-04-15 16:20:41 +02:00
asofold
d15a1d1f9e Only add TickListener instances once. 2013-04-15 16:16:05 +02:00
asofold
de5f152df9 [BLEEDING] Flesh out aspects of ComponentRegistry.
* Fixes data removal ignoring chat.logins and chat.text for a part.
* Move some components interfaces and ReflectionUtil to NCPCommons.
* Unregister components in reverse order.
* Add ComponentRegistryProvider for generic sub-registries (DataManager
for instance).
* Add IHoldSUbComponents for delayed sub-component registration
(convenient for iteration over parent-components with later registration
of sub components not missing out any registered parent components for
those). [Partly implemented: Using this during runtime does not yet
work, only used in onEnable.]
* Let CheckListener implement IHoldSubComponents and use this with
addCheck to register the queued checks after all the listeners.
* Register the core system components in a bunch before the
CheckListenerS, to allow sub-registries to work directly and to allow
getAPI().addComponent on the plugin class during construction of
CheckListeners.
2013-04-15 16:11:08 +02:00
asofold
652342c6c9 Add getMCAccess(boolean). 2013-04-15 09:05:01 +02:00
asofold
003e104ef4 Add module for CB2691 to match the beta release of CraftBukkit.
The dev module will compile with 1.5.1-R0.2 but not be used for the
moment.
2013-04-12 19:00:19 +02:00
asofold
31e21000e5 Make chat.logins default settings less strict.
Requested by @andrewkm.
2013-04-12 15:07:38 +02:00
asofold
290fc0feb0 Two fixes for MovingListener/join.
* Catch a null location.
* Set the set back after resetting fly data, if a location is given.
2013-04-05 21:34:57 +02:00
asofold
091d29cbbc Set version to 3.9.1 for further development. 2013-03-22 09:30:46 +01:00
asofold
97fd0be89b Set version to 3.9.0-RC for release on BukkitDev. 2013-03-21 17:47:58 +01:00
asofold
d02b54bab2 Set version to 3.9.0 due to 1.5 being a new MC version.
Reminder: Policy is to increase second level count for Minecraft updates
and bigger internal/external changes, while the third level count will
indicate releases on BukkitDev rather. First level count probably will
only increase if something really fundamental is changed.
2013-03-21 09:36:49 +01:00
asofold
d6d465418f [BLEEDING] Set DEV module to 1.5.1. 2013-03-21 01:10:56 +01:00
asofold
72c69df73c Add MC 1.5 module. 2013-03-21 01:01:31 +01:00
asofold
b09f2e511c Missing vehicle-exit: Always clear nofall data (leave that to MC). 2013-03-20 07:04:12 +01:00
asofold
d659dd7f26 Attempt to work around missing VehicleExit events with latest CB dev
builds.
2013-03-20 06:15:17 +01:00
asofold
9e16d8f2ef Remove debug message (...). 2013-03-16 04:34:25 +01:00
asofold
171f2aa932 Re-order conditions. 2013-03-16 04:33:47 +01:00
asofold
ab99e871f9 Add heuristic for the THORNS enchantment. 2013-03-16 04:25:16 +01:00
asofold
7d17fb67b4 Suppress deprecation warning for now. 2013-03-16 00:16:58 +01:00
asofold
636faecd52 [BLEDING] Update dev-module to CB/1.5. 2013-03-15 22:31:02 +01:00
asofold
32600dd335 Set version to 3.8.13 for further development. 2013-03-15 21:36:12 +01:00
asofold
328d277955 Set version to 3.8.12-RC2 to distinguish quick fix release. 2013-03-14 21:31:44 +01:00
asofold
0fc3b54db9 Also catch getSlot() < 0 for the InventoryClickEvent. 2013-03-14 21:30:19 +01:00
asofold
677aef45cd Set version to 3.8.12-RC for release on BukkitDev. 2013-03-14 14:52:51 +01:00
asofold
1b811716e2 Inventory.FastClick: Fix vl not adding, prepare for 1.5. 2013-03-14 12:21:38 +01:00
asofold
325d47fcbc Ignore "outside" clicks, i.e. slots outside of the inventory slot range. 2013-03-14 11:02:41 +01:00
asofold
9de6175874 New FastClick (inventory) check.
This check is less strict on short term but more strict on medium term.
Keeps track of one second (200 ms resolution).
2013-03-14 10:44:29 +01:00
asofold
0abca20dd9 Set version to 3.8.12 for further development. 2013-03-14 08:35:49 +01:00
asofold
84da47315b Add example entry for overrideflags (snow: default). 2013-03-14 08:34:32 +01:00
asofold
0e506eb967 Set version to 3.8.11-RC for release on BukkitDev. 2013-03-13 22:21:46 +01:00
asofold
15f08f13a9 Prepare 1.5 blocks with block flags. Add unused stuff.
More like a safety commit.
1. Add compatibility block flags for MC 1.5 blocks.
2. Add commented out / unused stuff (not really for 1.5).
2013-03-13 10:16:56 +01:00
asofold
c075e67f8f Make fight.reach distances (survival) configurable. 2013-03-13 09:20:17 +01:00
asofold
a04f4ad882 Adjust lostgorund/fastedge to catch more vacc fp. 2013-03-13 06:46:19 +01:00
asofold
1ec7f997cf Just add to first bucket, since update(...) has been called. 2013-03-13 06:20:14 +01:00
asofold
414796b938 Check IHaveCHeckType after CheckType.ALL for data removal.
This ensures that "ncp remove *" really removes chat.logins data, for
instance.
2013-03-13 05:51:54 +01:00
asofold
976cd59b7c Add the command "ncp unkick *". 2013-03-13 05:41:17 +01:00
asofold
a5ed780542 Attempt to fix issues with too low valid-count for velocity. 2013-03-13 05:08:23 +01:00
asofold
25e4cb3b05 Fix allowed h-dist in water (downstream).
Previously this was not applied in the "after-failure" h-dist estimation
 with permission checking.
2013-03-13 03:19:14 +01:00
asofold
1ad08b3729 Velocity: Decrease validity counter once activated. 2013-03-13 02:55:54 +01:00
asofold
bb38ff5a1b Add maximum activation ticks for velocity (queued). 2013-03-13 02:55:24 +01:00
asofold
310b62384f Fix aspects with jump potion-effects.
1. Set the correct effect strength in data.
2. Adjust workarounds to catch jump effect II on fences and similar.
[Might need more specialized checking for performance reasons.]
2013-03-12 21:55:04 +01:00
asofold
fc788f55c4 [Bleeding] Optimize preparation for PlayerLocation use.
1. Only collect flags for survivalfly.
2. Set all properties for the to location if it is the same position as
the from location.
2013-03-12 09:59:52 +01:00
asofold
a7c4539783 Let NoFall be more generous with the on-ground search.
Extend xz and y margins.
2013-03-12 08:19:19 +01:00
asofold
7b4fe7acc4 Regroup lost-ground workarounds. Fix some aspects.
Check some preconditions in the check method, delegate to different
methods for different cases, also to have smaller method bodies.

IsAboveStairs is only checked for "mild" y-distances. For faster
descending an individual edge-check has been added.
2013-03-12 07:55:50 +01:00
asofold
409ba0b2ee Don't check god mode for dead players. 2013-03-12 07:05:49 +01:00
asofold
186eec69ab Moving: Only set sfDirty flag if velocity is really used. 2013-03-11 19:18:22 +01:00
asofold
ea0b26ad19 SurvivalFly: adjust "swimup" workarounds.
1. After-failure workarounds checking (performance).
2. Hopefully fixes issues with flowing water and stairs.
2013-03-11 18:42:45 +01:00
asofold
d4616f415d [Bleeding] Various fixes for collision logic and consequent changes.
General:
- Wrong flags checked or flags checked in the wrong way.
- isPassable should use collidesBlock.
- collidesBlock should not see high-value-only matches as collisions.
- collidesCenter returns true for the case of collision (...).

Liquid blocks:
- New flag introduced to model rough liquid height for flowing liquids.
- One more workaround condition for moving in/off liquids.
- Use exact bounding-box for liquids checking in PlayerLocation.
- Check for water first in PlayerLocation.isInLiquid.

Other:
- Alter some block flags and workarounds.
- (other)
2013-03-11 06:01:39 +01:00
asofold
4ff54f0020 Revert setting set-back-y to block bottom on some occasions. 2013-03-11 03:23:10 +01:00
asofold
0c59487a0a Use the same Location instance for passable and nofall. 2013-03-09 19:42:16 +01:00
asofold
434a83c398 [BLEEDING] Adjust the set-back y-coordinate to block bottom for some
cases.
2013-03-09 03:53:51 +01:00
asofold
8d9e2fdadc Add more detailed tags to lost-ground workarounds. 2013-03-09 03:53:06 +01:00
asofold
7eab369a00 Alter small-range-tp margin. Add debug info for teleport and setback-y. 2013-03-09 03:04:50 +01:00
asofold
498f23e704 Reduce amount fed to improbable by fight.reach. 2013-03-09 00:34:04 +01:00
asofold
de4faa392d Allow fight.speed to create improbable violations for higher violation
levels.

Might need configuration/testing.
2013-03-08 23:26:57 +01:00
asofold
61bc88b64f Add "strict" method to fight.direction.
Set as default, the "strict" option will also check the angle between
the viewing direction and the direction towards the target. This might
not stay the default method, but it does help against auras in close
combat.
2013-03-08 23:24:51 +01:00
asofold
593ea71c9b Add convenience methods for combinedDirectionCheck. 2013-03-08 23:10:05 +01:00
asofold
926556a358 Implement JoinLeaveListener with MovingListener and ChatListener. 2013-03-08 17:28:35 +01:00
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
be49a7855c Add JoinLeaveListener component. 2013-03-08 03:44:54 +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
2d5dd8770d Fix block dump not respecting the checks.debug and blockbreak.debug
flags.
2013-03-06 18:54:11 +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
66f2d6d7eb Set version to 3.8.11 for further development. 2013-03-05 16:37:48 +01:00
asofold
2dbc486987 Set version back to 3.8.10-RC, since back to dev was premature. 2013-03-05 07:55:07 +01:00
asofold
7bf1e24b93 Set version to 3.8.11 for further development. 2013-03-05 04:47:32 +01:00
asofold
8807c6d9fa Set version to 3.8.10-RC for release on BukkitDev. 2013-03-05 03:08:02 +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
d42f94f651 Step can only be set in the global config. 2013-03-03 18:08:14 +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
feaa09ad03 Add dev-url. 2013-03-03 16:40:15 +01:00
asofold
65859486ec Attempt to fix Zombe/noclip flippage [quick'n'shalow: untested]. 2013-03-02 04:25:08 +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
b70418770a Add methods for further testing of directions and similar. 2013-03-01 21:16:48 +01:00
asofold
f650a48cad Forgot to rename this one. 2013-03-01 19:56:08 +01:00
asofold
9ba173b82e Confine lost-ground check for block edges further. 2013-03-01 19:47:50 +01:00
asofold
ccb5bae436 Plugin class: Add a method for processing reload. 2013-03-01 19:14:51 +01:00
asofold
2d0b2bace0 Add comments and javadocs. 2013-03-01 18:54:48 +01:00
asofold
1c2c0dce89 Add comment. 2013-03-01 18:35:30 +01:00
asofold
810e075a4a LICENSE.txt is on top level. 2013-03-01 15:12:14 +01:00
asofold
36b402c27a Simplify replacing of build-parameters. 2013-03-01 15:02:28 +01:00
asofold
df57b0134a Update messages for setting up MCAccess.
Update Jenkins url.
Only log API-only message in case it can be set up at all.
2013-03-01 02:04:34 +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
da4b142aa9 Add module: NCPCompatBukkit
Seems better to have a dedicated module for this as well, since other
modules might be built against different versions of the Bukkit-API,
potentially.
2013-02-28 03:40:40 +01:00
asofold
15f3b38248 Add module for 1.4.7: NCPCompatCB2602 2013-02-28 03:21:38 +01:00
asofold
35815eaae6 Set version to 3.8.10 (release phase). 2013-02-28 01:28:56 +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
9d1f7924b9 Config change: Add an active-flag for data-expiration and set the
default duration to 60 minutes (still disabled by default).
2013-02-27 18:47:31 +01:00
asofold
4a9f82ef0c Clear logins data on removing all data (ncp remove *). 2013-02-27 18:23:32 +01:00
asofold
e9deb059a3 Register all online players with the NCPExemptionManager in postEnable. 2013-02-27 18:22:33 +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
7a84ed371b Add module for build parameter info.
This is needed with the current technique in order to have it available
at the time of testing NCPCommons.
2013-02-27 00:46:56 +01:00
asofold
33af656b29 Add support for build parameters (example: EXTENSIVE_TESTING).
We can put through build parameters for testing and other purposes so
NCP can see them during testing or runtime otherwise. Not sure this is
the final version, though.
2013-02-26 23:14:33 +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
a5cc3f819f Add option to use permission subscriptions for in-game-chat logging.
See: https://github.com/NoCheatPlus/NoCheatPlus/pull/14 (@Cobi)

This allows will still check the players with stored permissions
but re-check their permissions.
2013-02-26 01:58:21 +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
MyPictures
7ea09b7b61 Update plugin.yml
- Add missing admin.debug permission
- Rename InstantHeal to FastHeal
2013-02-23 21:41:56 +01:00
asofold
268265afde Remove blockbreak and fight data on reloading. 2013-02-23 17:49:56 +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
Mike Savoie
ae193a8598 Don't be so condescending in default kick messages. 2013-02-21 20:43:26 -05:00
asofold
fafb27a131 Dump block properties in a task whenever they are reset.
Better schedule it with a task, to get other plugins changes.
Also get dumped on /ncp reload, seems to be better, though it can mean
spam.
2013-02-20 22:30:55 +01:00
asofold
e6961a757b Move some debugging code to a utility. 2013-02-20 19:43:54 +01:00
asofold
354e7e456d Correct fastheal actions. 2013-02-20 18:42:17 +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
6eeb3ae89d Add missing strings entry for fastheal. 2013-02-20 18:10:17 +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
1effa80021 Tighten blockinteract.speed limit to 60. 2013-02-17 20:21:38 +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
1d44fe66be Check BlockInteract first. 2013-02-17 16:20:13 +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