Commit Graph

235 Commits

Author SHA1 Message Date
asofold
d092ca5ff2 Update Bukkit/CB dependencies for NCPCore and NCPCompatCBDev. 2014-02-03 00:25:46 +01:00
asofold
51172bdc79 [BLIND] Reset block break timing with changing the tool. 2014-02-03 00:25:10 +01:00
asofold
165af2ccaf [BLIND] Try to fix ender portal frames. 2014-02-02 23:51:53 +01:00
asofold
4031cb55e8 [MEANWHILE] Refactor penalty time handling + add one for "item change".
Refactored penalty time handling to use a PenaltyTime object, taking
into account time running backwards, also unify attack (close combat)
penalties to a generic attack penalty. Combined.yawrate still keeps the
timeFreeze penalty, due to also cancelling other actions than melee,
still changed to a PenaltyTime object.

Changing the item in hand now leads to an attack penalty (that also goes 
for not changing the item, but changing the slot).

"Quick" addition, not much testing, except few unit tests.

Note that this could change false detection behavior of other sub-checks
of fight, because the penalty time is checked last. Previously checks
like direction or reach would have cancelled already if the player was 
within their penalty time. Hard to say if this creates new false
positives, but it will be more strict on continuous violations.
2014-02-02 23:37:29 +01:00
asofold
9810abff81 [Blind] Prepare removal of sub-check data (so far: fight.selfhit).
This will probably not be pulled through for all checks, because
the overall design does not support to do this in an efficient way.

Some checks will be added to allow pinpointing data removal,
mainly to allow  compatibility tweaks, e.g. with actions.
2014-01-26 13:14:46 +01:00
Alastair Lynn
4d310d352a Switch to gender-neutral pronouns 2014-01-22 19:16:27 +00:00
asofold
68a6297f80 Add log message about 1.7.2 blocks. 2014-01-02 18:22:18 +01:00
asofold
d51da2cbe0 Random Chicken Inventory. 2013-12-31 01:36:38 +01:00
asofold
2b0b0a8155 [BLIND] Quick fix attempt for Acacia leaves (adding a new block-flag). 2013-12-29 22:58:37 +01:00
asofold
cb73221cfd Log "system time ran backwards" on warning level. 2013-12-06 14:07:55 +01:00
asofold
a24092f6c6 Little detail: Add new block class to block factory. 2013-12-01 22:03:04 +01:00
asofold
8d5a0b1dca Rough update for 1.7.2 blocks.
Adds an ice flag to BlockProperties.
2013-12-01 21:46:44 +01:00
asofold
fd745458d6 Remove deprecated BlockPropertiesSetup interface. 2013-12-01 21:09:58 +01:00
asofold
5c94cd8278 Trash something. 2013-12-01 21:07:03 +01:00
asofold
3d3cbc341b Link pr if not pulled directly. 2013-12-01 13:01:03 +01:00
asofold
fad90d175a Note. 2013-12-01 12:54:15 +01:00
asofold
9e1c3e392d Do not reference LOCKED_CHEST anymore (minimal future compatibility). 2013-11-16 16:13:33 +01:00
asofold
6004f8eb30 Some cleanup. 2013-11-12 20:49:11 +01:00
asofold
10e5e96388 Correct TNT workaround (pigs don't have fight-data). 2013-11-07 02:55:12 +01:00
asofold
b43fa259dc Attempt to fix issues with player-ignited TNT (1). 2013-11-07 01:13:26 +01:00
asofold
ee5c86bb4f Add fall-back configurability for latest addition. 2013-11-05 22:18:55 +01:00
asofold
f597f8bded [BLEEDING/INCOMPLETE] More strict go on vehicles.
Roughly this line of develpment has to do with:
* Prevent destroying ones own vehicle [INCOMPLETE: conflict with older
MC versions.].
* More careful set-back handling.
* Reset the players position to that of the vehicle if the player moves
too far off (likely does not have effect, needs more testing). In
principle this is intended to trigger a teleport, the normal player is
intended to not notice, but no guarantees yet.

Not configurable yet, might not work 100%, yet.
2013-11-04 09:22:33 +01:00
asofold
ae6510aaa0 Rather javadoc correction. 2013-11-04 09:05:42 +01:00
asofold
8d9583d01b Fixes and simplification for vertical accounting. 2013-11-03 23:11:03 +01:00
asofold
01b8c421df Fix one NPE. 2013-10-28 11:24:48 +01:00
asofold
85d925f45d Check MoveConsistency for PlayerMoveEvent as well even if in vehicles. 2013-10-26 23:28:50 +02:00
asofold
76eb1c2539 [BLEEDING/INSTABLE] Not that much desperate: Random code changes. 2013-10-26 01:30:08 +02:00
asofold
ced4e0e039 Call onVehicleMove with the actual vehicles location.
(From within onPlayerMove.)
2013-10-14 00:21:29 +02:00
asofold
e5911fdb8d Add convenience methods to TrigUtil. 2013-10-14 00:05:17 +02:00
asofold
21eaeac5fa Add vehicle location to the "ncp inspect" command. 2013-10-13 22:58:27 +02:00
asofold
0d52467fc2 Reduce a special case for false positives in sf.
There seem to be cases with a repeated horizontal speed increase which
should be covered by the bunnyhop mechanisms. The first increase will
not go as high as possible but have 0 y-diff, while the second one will
trigger a violation with a higher y-diff and another increas in the
horizontal distance. This commit does not cover a general multi-step
speed-increase case, but just attempts to catch this special case.
2013-10-13 19:15:02 +02:00
asofold
3e38b087e6 Corrections for fastheal: Missing cancel action + out of range health. 2013-10-01 23:13:02 +02:00
asofold
db374f31a4 Correct moved config path (original: checks.inventory.ensureclose). 2013-09-23 15:36:26 +02:00
asofold
a2dadf8a9c Remove metrics.
Metrics would need a different concept of what to add anyway.
2013-09-22 15:46:07 +02:00
asofold
2417ba9ffe [BLEEDING/INCOMPLETE] Start sketch for more inventory-open checking. 2013-09-20 09:37:08 +02:00
asofold
41e1e8017b Add DisableListener component and use for DataManager and Improbable. 2013-09-19 21:00:57 +02:00
asofold
d896e9b25d Bind logging of metrics errors to debug flag(s). 2013-09-18 18:26:04 +02:00
asofold
0fb3c562ed CF: Ensure unused horizontal speed is not used for upwards speeding. 2013-09-17 18:37:32 +02:00
asofold
f28877f097 Should hover start counting after set-back? 2013-09-17 18:35:49 +02:00
asofold
182bc81c8c Set 1.6.2-R1.0 as new Bukkit/CB dependencies, add dedicated module. 2013-09-12 01:21:56 +02:00
asofold
2ee891a427 Reduce false positives for SurvivalFly (the hard way). 2013-09-09 02:22:37 +02:00
asofold
5d60343104 Fix nofall dealing fractions of half hearts damage. 2013-09-08 02:03:45 +02:00
asofold
0a748c4290 Important fix for passable.
Astonishing.
2013-09-08 01:30:33 +02:00
asofold
ab3770161c Reduce false positives with Passable + stairs, move some code. 2013-09-08 01:17:43 +02:00
asofold
d365cd5b75 Allow parameters to be set in ViolationData, even if not "needed".
This allows to add parameters in case of debugging, to display them.
Also addid is a hasParameters method, which checks if any are set.
2013-09-07 23:09:55 +02:00
asofold
d9897191de More on closing inventories: a) only close if open b) also on teleport. 2013-09-01 18:46:30 +02:00
asofold
cadb98edbe Allow 0.2 hbuf-regain per packet. 2013-08-29 21:35:46 +02:00
asofold
0ac342fb92 Process vehicle-exit in case of invalid or dead vehicles. 2013-08-29 21:34:13 +02:00
asofold
048cada0c7 Change buffer amount to positive. 2013-08-29 21:33:29 +02:00
asofold
1d2f291650 Add "ncp inspect (player)" command, might be merged/changed with info. 2013-08-29 21:30:53 +02:00
asofold
46ee232451 Fix deprecated config paths in use (npe). 2013-08-17 16:24:30 +02:00
asofold
959c6c7be8 Allow null messages in ColorUtil. 2013-08-17 16:23:23 +02:00
asofold
4b7e424bde One npe less. 2013-08-17 15:28:44 +02:00
asofold
f32be176a9 Grace for walk/fly-speed.
This is needed for environments with changing walk/fly speeds,
such as flying plugins with several speed-modes.
2013-08-15 04:01:23 +02:00
asofold
af4c9b94f6 Move managelisteners to the compatibility section. 2013-08-12 22:20:44 +02:00
asofold
d202d73cab Changes for command lists, opinconsoleonly -> consoleonly.
The command lists for handleaschat and exclusions are now also fed with
 a leading "/" if missing. Allows more convenient setup and less 
 confusion potential for relating comamnd lists in "protect plugins" to 
 other lists.
 
opinconsoleonly has been made a list of commands:
	protection.commands.consoleonly.
Further the message sent to the player is the permission message,
 if the player does not have permission to use the command,
 provided NCP can find the command.

All three command lists are also checked with the original 
command label.
2013-08-11 13:05:24 +02:00
asofold
e24ccc734a Fix vertical accounting not triggering an actual violation (glide). 2013-08-10 23:47:10 +02:00
asofold
2219fa0e6f [CONFIG] Command protection: Change config sections + change to lists.
Commands to change to "no permission" or "unknown command" behavior,
can now be configured with a string list each. Commands that have a 
permission set will have the default set to false, while commands that
don't have a permission will be altered to have a filter permission,
namely nocheatplus.filter.command.<commandname>.
2013-08-10 14:25:28 +02:00
asofold
7f12312ef4 Adapt "unknown command" message to current CraftBukkit implementation. 2013-08-10 13:42:30 +02:00
asofold
b3b13df83c Add nocheatplus.command.(exempt|unexempt|removeplayer).self permissions.
Somewhat incomplete, because the filter permission is not added for 
these. Might be fancy for the tester shortcut (less danger).
2013-08-10 03:16:16 +02:00
asofold
fdf2009551 Use a testPermission method for sub-commands. 2013-08-10 03:06:08 +02:00
asofold
858302b1ba More on permission changes.
* Fix color replacing in command protection (had no effect previously).
* Use "no permission" message for default bukkit command protection.
* Use command protection only, no more parsing pre process for /pl etc.
* Other tweaks (update descriptions, add shortcuts / child permissions).
2013-08-10 01:50:59 +02:00
asofold
0e56338336 Change feature (filter) permissions to nocheatplus.filter... 2013-08-09 23:50:59 +02:00
asofold
84c376864e Rework parts of permissions.
Changes are mostly backwards compatible.

Fixed:
* Filter permissions were wrong (not starting with nocheatplus).

Changed:
* Commands are grouped under nocheatplus.command now.
* Notification permission is independent of the notify command,
	 changed to nocheatplus.notify.

New:
* Shortcut permissions (nocheatplus.shortcut...) for safer use.
* Shortcut permission for testers: nocheatplus.tester
2013-08-09 18:09:24 +02:00
asofold
e17b14e17d SF: Start with hbuf at 0 (reverts setting to 1/2 of max). 2013-08-09 16:36:28 +02:00
asofold
4c76fc8471 Attempt to fix issues with horses and NoFall. 2013-08-04 21:44:38 +02:00
asofold
943083f61f Set core dependency to Bukkit-1.6.2-R0.1 (beta). 2013-08-04 21:15:01 +02:00
asofold
7a938dfd6a SF: Revert removal of resetting for not cancelled violations.
Actions with mixed cancel and not-cancel will be broken without the 
reset.
2013-07-24 10:26:25 +02:00
asofold
3acf5c20ff [INCOMPLETE] Bunny-hop without bunny and without hop.
This change addresses the fact that the bunny hop thing also applies 
when not sprinting, also without actually jumping. In future the buffer 
will be much more confined to  special cases and/or limited in how it 
regains level (nu pogodi).
2013-07-24 10:19:03 +02:00
asofold
d77c63a228 SF: Optimization and fixes with bunny and permchecks.
* Currently bunny applies very often on sprinting, thus it can be pre-
  checked before permchecks, and if necessary re-checked after 
  permchecks.
* Remove heuristic permchecks, since the above should do better.
* Fix bunny not trigger for assumeonground && jumpphase == 0.

Further we will try to get rid of the horizontal buffer as we know it,
 confining it to special cases. However we have to extend bunny hop to
 apply without sprinting as well. Might need a more general concept
 for ground-move-modifiers and friction to achieve it.
2013-07-23 12:10:20 +02:00
asofold
9e920b89cb SF: Set initial hbuf to 0. Need new concept/discussion.
Setting to something on creation of data is ineffective, because it gets
set to 0 on passable violations.

Keeping the buffer means other abuse potential.

Probably better postpone until re-design/removal of the buffer concept.
2013-07-23 10:31:46 +02:00
asofold
a872cc8a86 "lost sprint": Remove checking vs horizontal buffer.
Might consider for future:
The problems of the type lost-sprint, bunny seem to be client mechanics.
The ground-modifiers apply and stay valid during jump, thus turning off 
sprint for attacking makes sense.

So i revert the statement about "could be worth a ticket" for the
moment. However with looking forward to have a Minecraft API, it could 
could be appropriate to provide something to allow server-side checking,
yet again finding the right ground modifier needs knowledge of the 
exact moves the client did, so client side could change to send all the 
transition events as suggested before.
2013-07-23 10:17:58 +02:00
asofold
b2694d93fa [BLEEDING] SF(bunny/after failure checks): Alter order and conditions.
Horizontal speed after-failure checks:
* More conditions to confine use more (on-ground, web/fluid/etc.).
* Increase bunny counter during bunny-fly until touching the ground.
* Check bunny fly first and ignore sprinting for that one.
* Attempt to fix "double bunny", i.e. small blocks on blocks.
* Redo part of checking order, do permission checks first, otherwise 
	there might happen unwanted invalidation of velocity.
* Force permission check with the first getting of hDistance on 
	certain conditions, to prevent certain redundant call.
2013-07-23 00:19:19 +02:00
asofold
fdca61ca90 Only allow "lost sprint", if MediumLiftOff is not LIMIT_JUMP.
No reward for attacking entities jumping in/out of water/web/etc.
2013-07-22 23:16:59 +02:00
asofold
d31fe6b53e SF: Minor cleanup on horizontal buffer.
* Remove code duplication by checking buffer regain after all other.
	The usual case is that regain is checked anyway.
* Don't use buffer for bunnyfly. Makes tags more unique.
2013-07-22 19:05:43 +02:00
asofold
ec956a9be0 SF: Fix horizontal buffer allowing negative values + adjust tags.
* Horizontal buffer is not modeled such that it can't become negative.
* hvel tag added for using horizontal velocity.
* hspeed tag is only added on hspeed violations.
2013-07-22 16:47:11 +02:00
asofold
0bb978dbf1 Longer delay times for the default low vl log messages for SurvivalFly. 2013-07-21 14:04:34 +02:00
asofold
3255bf97d7 More conditions for waterwalk.
Prevent triggering if walking into water on a half step, by excluding
any on-ground moves.
2013-07-21 00:02:12 +02:00
asofold
baccd41931 [BLEEDING] bunny hop bunny fly.
Altered model for bunny-hop problem. We reduce the sprinting-modificator
 by a lot, and add extra buffer during the now introduced "bunny fly" 
 phase. Conditions have been refined.
 
 Certainly needs more testing, also regarding effects.
2013-07-20 22:11:21 +02:00
asofold
7569d126aa More moving/SF cleanup.
* [ONGOING/MERGED] Add sfLastHDist.
* Add MovingData.prepareSetBack, call for hover and moving violations.
* Move vertical velocity handling into Movingdata.velocityTick.
2013-07-20 20:09:12 +02:00
asofold
1d9e4d114e SF: Further confine conditions for "bunny" to apply. 2013-07-20 15:43:44 +02:00
asofold
2f647980c1 SF: Keep naming as lostGround. 2013-07-20 14:24:06 +02:00
asofold
2856919409 Re-model extra horizontal buffer to a counter for "lost sprint".
The problems with attacking + sprint/bunny seems to be that the player 
moves on as if sprinting, thus we reformulate it as the "lost sprint"
problem. The sprintback check is skipped during lostsprint phases.

This should be worth a ticket for Mojang/CB, sprint + jump + attack 
somewhere around touch down time (+-) - server side sprinting turns off,
but the player moves on as if sprinting.
2013-07-19 22:57:10 +02:00
asofold
471579d595 Move sprintback check back to where it was (not allowing vel/buf use).
Since the sprinting time has been fixed, it should not be necessary to 
consume buffers/velocity, because it will not trigger at all.
(Context: throwing ender pearls at entities.)
2013-07-19 18:23:22 +02:00
asofold
c2fb27b842 More cleanup (mostly survivalfly).
Checking order, grouping, comments...
2013-07-19 18:07:58 +02:00
asofold
a7344eb462 [BLEEDING] SF: Sharpen vertical accounting (vacc). Read details!
Potential false positives are survivalfly violations with vacc[...].
 * Touch down near ground (lost-ground miss).
 * Slow falling after login/teleports.
2013-07-18 14:46:45 +02:00
asofold
65ee38bf9a More cleanup for SurvivalFly.
* Further split off rather seldom triggering code parts into methods.
* Accounting does not manipulate the accumulator anymore.
* Remove some unused parameters form signature(s).
* Method renaming.
* Comment cleanups.

(Expect more with time...)
2013-07-18 13:54:44 +02:00
asofold
fb30a84f5e No reason for private here. 2013-07-18 01:44:06 +02:00
asofold
3826807c56 Commented that out during testing. 2013-07-18 01:42:29 +02:00
asofold
13cb783c72 Add an annotation for registration order with INotifyReload.
SetupOrder allows to define a priority, so you can register
 ActionFactoryFactory instances before any checks get them.
 
 Default priorities are NCP core at -100, DataManager -80, rest at 0.
2013-07-18 01:42:07 +02:00
asofold
2913baa6c7 [Bleeding] Change to lazy ActionFactory setting.
Allows to set a new ActionFactoryFactory without the ConfigManager.init 
already trying to parse actions, thus implementing special actions 
should be easier. Still three calls might be necessary to be on the 
safe side:
1. ConfigManager.setActionFactoryFactory(new factory)
2. ConfigManaher.setAllActionFactories()
3. DataManager.clearConfigs()

Not entirely convinced if concurrency issues might arise with reload or 
even on startup (chat).
2013-07-18 01:19:47 +02:00
asofold
b49df04120 Comments.
Hint at per-velocity friction factor. Could be used to add short term 
velocity that does not decrease. However it can't replace extra-buffer
due to special invalidation conditions.
2013-07-17 23:22:38 +02:00
asofold
13add02392 Handle the resetting of the jump-amplifier in MovingListener. 2013-07-17 22:18:15 +02:00
asofold
12bd184517 More cleanup for survivalfly.
Move the after-failure permission-, velocity- and 
extra-buffer-checks into an extra method.

Move special checks like web/liquid to extra methods.

Alter checking order slightly.

Other cleanups (comments, declaration order, grouping).

Shuffle methods.

Finished? No.
2013-07-17 20:10:42 +02:00
asofold
f82a0c084a Reset sprinting if the player is not set sprinting.
Only give the sprintinggrace time concerning the food level.
Should fix more sprintback issues, potentially.
2013-07-17 17:33:27 +02:00
asofold
71ffa298f5 Ineffective workaround. 2013-07-17 01:06:13 +02:00
asofold
9accfc3831 Allow using up horizontal velocity for sprintback. 2013-07-17 00:58:47 +02:00
asofold
6e2844745c Confine "sprintback" alerts to speeds greater than walking.
This reduces false positives with throwing enderpearls at nearby
entities or for horizontal velocity.

Missing: Use up horizontal velocity if sprintback is triggered and
queued velocity is present.
2013-07-17 00:29:56 +02:00
asofold
e97a9297aa Attempt to work around another ender-pearl + survivalfly issue.
Jump (+run) and throw an ender pearl at a nearby entity. 
Survivalfly might trigger with limitjump, since the MediumLiftOff gets 
reset on teleporting (would appreciate MC adding sequence numbers to 
moving packets :p).
2013-07-17 00:23:05 +02:00
asofold
27a063abe8 Minor cleanups. 2013-07-16 19:37:40 +02:00