Commit Graph

656 Commits

Author SHA1 Message Date
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
asofold
2b4a1f20d3 More to vehicle internals.
Set-back handling:
* Make the VehicleSetBack a class in the moving package.
* For set-backs use the debug flag from the time of checking.

Debugging:
* Alter debug output for moves slightly (differing locations).
* Add debug output for vehicle moves with players involved.

Note on 1.6:
* Not even PlayerMove is fired for pigs and horses, so no tracking.
2013-07-16 19:28:47 +02:00
asofold
f556422cd7 Add info about returned object for BridgeHealth recovery failure. 2013-07-16 15:26:07 +02:00
asofold
c7b85f9faa Flying permissions: survivalfly is now child of creativefly. 2013-07-16 00:24:20 +02:00
asofold
172b103521 [BLIND] CreativeFly: Account for walk- and fly-speed. 2013-07-16 00:05:50 +02:00
asofold
80f58d94ce Also check for player.isFlying. 2013-07-15 23:59:51 +02:00
asofold
240bff5b62 [BLEEDING] SurvivalFly: Account for per-player walk-speed. 2013-07-15 23:50:42 +02:00
asofold
e35f1f7c9c Switch do mods instead of speeds for sf. 2013-07-15 23:24:51 +02:00
asofold
c382082c40 Add "sprinting" to moving output. 2013-07-15 22:33:22 +02:00
asofold
f17378b3e0 More cleanup for health API changes. 2013-07-15 12:31:37 +02:00
asofold
489c60f07f Bad last minute ordering. 2013-07-15 02:21:20 +02:00
asofold
268c51b729 Refine conditions for passable.
* Do not check if moving inside of a block that is ignored by passable.
* ray-tracing: Always check vclip up AND down.
2013-07-15 02:15:20 +02:00
asofold
75e21797e1 Minor cleanup. 2013-07-15 01:49:19 +02:00
asofold
4e9e0bd7c1 Fix CreativeFly ignoring possible passable set-backs. 2013-07-15 01:21:45 +02:00
asofold
83187fa549 Bind BridgeHealth API incompatibility warnings to logging.debug. 2013-07-15 00:24:46 +02:00
asofold
cf1c89d646 [BLEEDING] Change message sending queue from per-player to global.
Adds an API to queue messages (thread safe).
2013-07-14 22:04:42 +02:00
asofold
821dc34d7a Schedule sending the chat.text warning message.
Thread safety not guaranteed by API.
2013-07-14 20:29:21 +02:00
asofold
00836ac9d7 Change event priorities (join/world-change) + delay some admin messages. 2013-07-14 20:12:19 +02:00
asofold
f55e0d5742 Alter config version handling + make notification configurable.
Versions are saved in a subsection instead of the comment-header.
2013-07-14 19:19:07 +02:00
asofold
54273687b0 Some comments and javdocs. 2013-07-14 17:30:46 +02:00
asofold
98c64003a2 Add flyspeed and walkspeed to debug output for moving (debug level>0). 2013-07-14 12:50:04 +02:00
asofold
742e6e309c Quick fix for carpets: Allow standing inside/on.
This is somewhat incomplete, because players can pass through.
2013-07-13 21:40:34 +02:00
asofold
c30105d6b7 Fix passable alerts with fence gates.
This workaround allows the block transition from above a 1.5 high block
into the block, for the case both from and to have been inside of the
bounds of the block. This should fix the annoying bug with jumping
inside of an open fence gate, closing it while just above 1.0 height,
so that passable would alert for moving back from air into the block.
2013-07-12 19:53:40 +02:00
asofold
d7ca742c57 [BLEEDING] Fixes for passable/rt preventing moving out of blocks.
Passable/ray-tracing might disallow players moving out of blocks which
they are stuck in on some occasions.
In order to allow moving out of a block, ray tracing is repeated
with the first block ignored for some cases.
2013-07-12 19:27:27 +02:00
asofold
ee0ca14cef Provide a tag for passable violations [not in strings]. 2013-07-12 18:02:57 +02:00
asofold
81b528f90b Allow "step-up" even if in web. 2013-07-12 17:28:07 +02:00
asofold
6f232e5dde Shuffle checks in fight listener 2013-07-11 01:51:36 +02:00
asofold
a8d1aded59 [BLEEDING] Adapt to health changes + set NCPCore dependency to 1.6.1. 2013-07-10 01:55:56 +02:00
asofold
ccc9c74a76 Remove double plus. 2013-07-09 17:59:27 +02:00
asofold
543dcf57f5 Metrics/ticks: Use rounding + de-tweak counting up to 20. 2013-07-09 17:16:47 +02:00
asofold
e1babee538 MCAccess: Get rid of Block_i method. 2013-07-09 12:05:06 +02:00
asofold
e69741f5dc Simplify MCAccess version tags for support of multiple sub-versions. 2013-07-09 11:47:16 +02:00
asofold
4035719597 Use a utility for getting the damage of damage-events as well. 2013-07-06 22:28:43 +02:00
asofold
9edfb14103 Move workarounds for health-API changes to a utility. 2013-07-06 20:37:11 +02:00
asofold
a7581d509d [TEST] Fix reflection for health changes. 2013-07-06 18:53:21 +02:00
asofold
fb4614d101 Use minimum of health and max health. 2013-07-06 16:07:57 +02:00
asofold
f315336005 [TEST] Attempt to fall back to reflection for health issues (one spot). 2013-07-06 15:48:26 +02:00
asofold
e60006d6a3 Update pom.xml descriptions. 2013-07-06 14:49:24 +02:00
asofold
8929108152 Add option to not send any motd, move config for it to its own section. 2013-07-03 18:32:47 +02:00
asofold
4a581f8f91 I said i would try the endless loop one time. 2013-07-03 13:16:12 +02:00
asofold
01c3252f79 [BLEEDING] Auto detect "missing" VehicleMove events.
Like with pigs, players can ride other entities than would fire
VehicleMove events. To counter this NCP will detect for which entities
those events are fired and do the packet checks for those that don't.
2013-07-02 22:36:48 +02:00
asofold
d11e91f2e4 [BLEEDING/INSTABLE] Roughly adjust to 1.6.1 Bukkit API changes. 2013-07-02 12:13:33 +02:00
asofold
f894a8da39 [BLIND] Add factory for vanilla blocks + early addition of 1.6 blocks. 2013-07-01 15:34:33 +02:00
asofold
cd9930d3c0 Forgot that step. 2013-06-30 22:45:27 +02:00
asofold
3ba5f311b1 Add missing @GlobalConfig. 2013-06-30 22:27:22 +02:00
asofold
480264d0f1 Optimize ColorUtil.
* Use ChatColor.translateAlternateColorCode
* Use more (still too) complicated but faster method for color removal.
2013-06-30 22:24:57 +02:00
asofold
4085223594 Make messages configurable for hiding plugins. 2013-06-30 20:00:12 +02:00
asofold
3b337d968d Change config path for protectplugins. 2013-06-30 19:28:52 +02:00
asofold
90783e290f Lost update... 2013-06-30 03:03:43 +02:00
asofold
78f453c5c2 Update metrics. 2013-06-30 02:49:26 +02:00
asofold
3880808d06 [BLIND] Attempt to catch open inventories for portals and world changes. 2013-06-30 00:07:54 +02:00
asofold
c25b774721 Add hook versions to the "ncp version" command. 2013-06-22 17:13:54 +02:00
asofold
eca9c26be5 Attempt to fix high jump effect (5) + survivalfly (step). 2013-06-12 15:37:59 +02:00
asofold
21442c4e22 Use a filter permission to see if a player can use the root command.
The permission is set as child of all command permissions 
(sub commands of the root command). This is done in post enable to not
have to add it 100 times to the plugin.yml. Hopefully permission plugins
handle this right, superperms (permissions.yml) does.
2013-06-12 02:08:22 +02:00
asofold
00696c1624 Correct order of permission checking for the root command. 2013-06-12 01:08:10 +02:00
asofold
ae2d6142d9 Add command to turn notifications off and on again (per player). 2013-06-12 00:53:40 +02:00
asofold
4811fefb05 [COMMAND CHANGE] Remove delay feature from ncp ban/kick/tell/tempkick.
"ncp delay..." still is available.
2013-06-11 21:33:33 +02:00
asofold
8ea5eccaa0 Put commands on feet.
* Add a new base class for better sub-command handling also for
tab-completion (AbstractCommand).
* Alter package structure slightly, to group command-classes by purpose.
* Some renaming.
2013-06-11 21:17:06 +02:00
asofold
888c7d937a Add tags to PlayerData + implement a notify-off tag.
Not sure this is that much final, but PlayerData can now carry tags.
NoCheatPlus.sendAdminNotify... will now check PlayerData for the
"notify_off" tag, as a preparation for a command to turn off
notifications.
2013-06-11 20:06:57 +02:00
asofold
1d53115abe [BLEEDING] Add option to set prefixes for the logging messages. 2013-06-11 01:23:35 +02:00
asofold
2bf28c4982 [BLEEDING] Move configuration for logging back-ends to sub-sections. 2013-06-11 00:36:43 +02:00
asofold
be91af4e51 Rework PathUtils.
* Add processing for a new @Moved annotation for moving content to other
paths.
* Remove deprecated paths.
* Changed visibility of some static methods.
* Moderate renaming.
* Remove unused set.
* Ensure only string fields are processed (potential future issue).
2013-06-11 00:13:31 +02:00
asofold
b84235d31f Prefer this formatting, rather. 2013-06-10 19:27:13 +02:00
asofold
7805d8d486 Add ability to warn for use of deprecated paths. 2013-06-10 19:10:38 +02:00
asofold
228a6478a8 Remove RootConfPaths. 2013-06-10 18:32:43 +02:00
asofold
f7d2d44070 Fix two bounds issues for blockinteract.visible.
* Correct offset for null-bounds.
* NPE with null bounds in checkCollision.
2013-06-08 06:13:45 +02:00
asofold
36711fc98f Cleanup. 2013-06-07 19:30:10 +02:00
asofold
bd043f407d [Bleeding] Reduce false positives for blockinteract.visible.
Alternate positions are checked for both passable and ray-tracing. This
lacks a little bit abuse prevention, because up to nine times
ray-tracing can be checked, which can be used to cause load for the
server, limited by blockinteract.speed.
2013-06-07 19:24:33 +02:00
asofold
9231de2d60 Adapt comments for getCorrectedBounds. 2013-06-07 15:35:22 +02:00
asofold
8f862fb3f6 Outer space again! 2013-06-07 15:23:40 +02:00
asofold
44a9bcbbfc More appropriate message. 2013-06-04 19:41:15 +02:00
asofold
fc6a20ae0d Write to console if NOT suppressed. 2013-06-04 19:21:15 +02:00
asofold
f6819dc6d6 Add option to suppress warnings for consistency checks.
Currently only applies to the player-inconsistencies (DataMan). A
summary message will be written to console on disabling the plugin if
inconsistencies were found.
2013-06-04 19:18:35 +02:00
asofold
05ab822615 Remove Location reference for FightData on world changing. 2013-06-04 11:57:44 +02:00
asofold
a9f26e2d7d [BLIND] Quick fix for memory leak with unloaded worlds (MovingData). 2013-06-04 11:44:21 +02:00
asofold
b8141f5f32 Adjust interact.visible to use bounds (read details below!).
* Uses unmodified block bounds as returned by the server, this is not
the final version but does fix the door problem.
* Users that use the CompatBukkit (bukkitapionly) module should beware
of the current dev-line, because the block shapes can not be retrieved
with using the Bukkit-API only, thus some blocks squeezed between other
blocks can not be interacted with in a reliable way. This concerns
interacting with the sides that are directed towards solid blocks
mostly, so in most cases there still is a side possible to interact
with, but it might be the short side of a door, not convenient.
2013-06-01 14:48:23 +02:00
asofold
90f110146f Attempt to fix fall-damage issue with dealdamage=false (Ticket 548). 2013-05-30 20:41:48 +02:00
asofold
18e18fae5f Refactor NoFall to reduce code duplication, re-order some arguments. 2013-05-30 20:28:37 +02:00
asofold
640409f4d3 Add option to reset nofall data if in vehicle. Relates to ticket 535. 2013-05-29 16:37:31 +02:00
asofold
430915e377 [BLEEDING/INCOMPLETE] Attempt to fix issues with blockinteract.visible.
Done: Check if the end point of ray-tracing is passable.

Problem: Might lead to problems with non-full blocks squeezed between
full blocks.

Missing: Implement corrected outer bounds getting for use with this.
2013-05-26 21:10:47 +02:00
asofold
3b22ca2e6a [Experimental] Update inventory after FastConsume violations.
This might be used for other inventory violations too (subject to
testing).
2013-05-26 21:01:39 +02:00
asofold
c6b1a81a26 [CRITICAL] Fix block-coordinates being used for chunk loading. 2013-05-23 10:38:02 +02:00
asofold
87f83ffe65 Add ymax to nofall debug output. 2013-05-23 09:49:36 +02:00
asofold
c77dbff23e [Bleeding] Add FastConsume, if available will replace instanteat.
Somewhat hacky still, not sure it actually works too well.
2013-05-23 09:44:24 +02:00
asofold
ce834675d7 Move most code to NCPCore, removes NCPCompat.
Factories are now on NCPPlugin level, thus all the core stuff can be in
one module, giving better source code browsing.

Updates has been moved into an updates package, because there is to be
expected more content, and to make utilities less fat.

To indicate the direction, the basic infra-structure has been added to
allow adding components to the DefaultComponentFactory. Further
processQueuedSubComponents is now called after each components adding in
order to allow more flexible registry features.
2013-05-22 12:24:48 +02:00
asofold
463700cb3a [BREAKING API] Add module NCPCore between NCPCompat and NCPPlugin.
* Static utility NCPAPIProvider instead of NoCheatPlus.getAPI().
* Extend NoCheatPlusAPI: Some previously static access methods are now
part of the NoCheatPlusAPI interface instead. MCAccessHolder is
implemented and allows external setting of MCAccess.
* Fix some static members/calls to non-static.
* Moving some packages to NCPCore.
* Prepares for moving most check stuff between NCPCompat and NCPPlugin
to allow more optional higher level components.
2013-05-21 22:49:05 +02:00