Commit Graph

688 Commits

Author SHA1 Message Date
asofold 8ba1f2cf74 Minimize code for one generic instance factory instance. 2016-06-09 18:22:23 +02:00
asofold f12aa93454 Update CompatCBDev to MC 1.10. 2016-06-09 13:02:37 +02:00
asofold e4f02595ba Dedicated module for Spigot (CB) 1_9_r2 (MC 1.9.4).
(+ Prepare 1_10_r1 build parameters.)
2016-06-09 12:41:33 +02:00
asofold 294afd4f89 Allow ProtocolLib 4.0.2 and later on MC 1.10. 2016-06-09 12:12:11 +02:00
asofold 016d5894de Add the 'ncp stopwatch' command.
Taken from CG/customplg.
2016-06-03 21:43:08 +02:00
asofold 4e91a9d5fc Ready for UEFA EC: GPLv3 headers.
Might need more training still.
2016-06-02 20:33:21 +02:00
asofold 9a6a890932 Do check for the expected size as well. 2016-05-31 07:06:51 +02:00
asofold 2ade022179 Change implementation of LocationTrace. No merging based on distance.
Since merging by distance only creates false positives (one would have
to increase the bounding box for an entry, but the angles would never be
100% right), we never merge, instead we don't add a new entry if the
position is the same, the time value is not updated in this case. For
validity of an entry you always have to consider the time span until the
previous (younger) entry or until now for the latest entry.

Rough changes:
* Use an interface for accessing trace entries.
* Use a linked structure for the actual trace.
* Use maximum age and size to limit the number of stored entries.
* Use a pool to somewhat limit object creation (size may need
configuration or scaling with number of players).
* Since the trace starts empty, have the field be final.
* Keep trace elements if settings are changed, cut size if necessary.
* Remove obsolete tests.

Potentially missing:
* Usage of LocationTrace has not been checked if we need to account for
the time of the latest entry not necessarily being updated (!).
* New tests, e.g. accounting for the expiration of entries.

Follow ups:
* (Extend fight/loop checks to a latency window mechanism.)
2016-05-29 19:35:52 +02:00
asofold 75aa1b500b Use an interface for trace entries: ITraceEntry
Upcoming changes will roughly be:
* Change implementation to a double linked structure.
* Implement/use something like ListIterator.
* Never merge entries, instead use some pool and time/extre-n as limits.
* A basic latency window implementation just for the LocationTrace for
preliminary experiments. [Track hit/miss all time + recent so and so
seconds, some extra cancelling/invalidation mechanics, allow to test
complement 0->window start and possibly window-end-> max latency for
some cases, cancelling mechanics may contain a buffer or a mixture of a
buffer relating to average miss rate]
2016-05-29 15:02:28 +02:00
asofold 2abb502a60 Add configurability for exemption settings. 2016-05-29 13:34:09 +02:00
asofold a32bc257f3 Also recognize ProtocolLib versions just with build number prefix. 2016-05-16 22:11:32 +02:00
asofold c36f68a829 [BLEEDING][INCOMPLETE][BREAKING][NOT_COMPILING] Changes towards v-thing.
Prepare using VehicleUpdate and PlayerMove instead of VehicleMove for
vehicle moving. This change isn't intended to change
anything/much on the surface.

* Implement native IEntityAccessPositionAndLook for 1.9_R1 and 1.9_R2.
* Alter method visibility and parameters.
* Common pre-conditions.
* Route contents of both VehicleUpdateEvent and PlayerMoveEvent through
a common related method (also named onVehicleUpdate).
* Remove RichLivingEntityLocation, to be able to simplify more.
* Refine interfaces for locations (IGet... ISet... vs, I... for both).
* Implement location related interfaces in some places, related changes.
* Override hashCode for some of the location related classes. Use that
for storing location hashes instead of Location.hashCode. Auxiliary
methods for hashCode in LocUtil.
* Add onIce to LocationData.
* Renaming player vs. vehicles (likely incomplete).
* Possibly other related/random changes.

Line count is high for this change, despite not so complex. Next step is
to change VehicleChecks to use past move tracking to estimate from where
a vehicle is moving (left not compiling). Due to the lack of teleport
events, and due to entity last location being mostly useless, we have no
choice but to hard-set-back on anything that looks strange.
2016-05-15 00:54:15 +02:00
asofold 554c8635e7 Sketch a reflection based provider for IEntityAccessLastPositionAndLook.
Directly following:
* Boat fly check based on VehicleUpdateEvent and fetching last pos.
* Implement a native access based provider for
EntityAccessLastPositionAndLook, after testing the reflection based one.

Likely following:
* Implement the same fly checks based on PlayerMoveEvent for horses and
pigs too, for the case server-side fly checking is disabled.
* Configurability for individual types of enbtities, at least a flag for
activation.
* Not sure if a fall-back to VehicleMoveEvent should be kept, setup
shouldn't be all too complicated.
2016-05-11 11:24:11 +02:00
asofold 0bcb994040 [BLEEDING] Compatibility module for Spigot/CraftBukkit on MC 1.9.4. 2016-05-11 00:58:54 +02:00
asofold 0280db5010 Dedicated compat module for Spigot/CraftBukkit 1.9-1.9.3 (1.9_R1). 2016-05-11 00:27:21 +02:00
asofold e3aa28d388 Prepare accessing last position for entities. 2016-05-10 22:29:45 +02:00
asofold 2281ba9d29 Make the denylogin message configurable (strings section). 2016-05-07 14:13:43 +02:00
asofold 96d95dff8e [BLEEDING][INSTABLE][BREAKING] Changes (see detailed commit message).
Major: Sketch vehicle envelope check.
* Renaming fields, methods, packages. Moving classes to other packages.
* Additions and refactoring for set-back handling and location tracking.
* Increase amount of debug logging.
* Adjustments to current vehicle set back handling.
* AuxMoving: call clear() on setMCAccess.

Minor: Adjust block change tracking implementation.
* Use a class instead of an id, in order to keep track of used entries.
* Allow reuse of an id, if the block still is intersecting.
* Improves situation for simple setup, issues remaining:
 * Random UNKNOWN teleport by server potentially interfering.
 * Distances > 1.0, possibly resulting from split move handling.
 * On-ground estimation and passable.
 * Blocks with gravity are worse (likely on-ground).
 * More in-depth checking of constraints of implementation.
 * Note that the block change tracker currently is disabled by default.
2016-04-26 13:31:20 +02:00
asofold 909e6d5404 Vehicles: Prepare new checks and use correct config paths.
Naming:
* Possibly not final.
 * survivalfly: Does not fit at all.
 * Separate official checks + sections for speed and fly: nope.
 * runfly: not running.
 * speedfly: mix up with too fast flying.
 * moving: too much redundancy with moving.vehicle.moving
 * envelope: so and so, possibly better with tags to be set.

 Content:
 * Prepare a vehicle moving envelope check (just basic pre-coding
bookkeeping and refactoring).
2016-04-22 18:11:41 +02:00
asofold 5d595cd275 [BREAKING] Prepare more refined vehicle checks.
* Split vehicle checks to another class. Needs refactoring.
* Add ability for simple generic instance registration by an interface.
* Add new sub check type MOVING_VEHICLE, with configuration section,
move existing stuff there (moving.vehicles.., morepacketsvehicle).
* Breaks at least the use of check type MOVING_MOREPACKETSVEHICLE.

FunFact:
* Try CheckType setup with MOVING_MOREPACKETS_VEHICLE(MOVING, ...) to
see why there is a test for this kind of thing.

Bugs:
* Old configuration paths don't seem to get removed with @Moved.

Missing:
* More refined vehicle checks.
2016-04-21 15:57:18 +02:00
asofold db1d15d93a [Bleeding] Allow ProtocolLib 4.0.0 on MC [1.9, 1.10). See notes.
Issues on quick testing:
* End portal seems bugged, resulting in desync, entering in creative
mode. Switching to survival via console allows end portal travel after
kick+relog. Can't tell if this is a 1.9 bug or due to building NCP vs.
an older version of ProtocolLib.
2016-04-02 14:05:44 +02:00
asofold d35291e3a4 Allow ProtocolLib 4.0.0 or later on MC 1.9. 2016-03-20 10:56:19 +01:00
asofold 26766095fe [NOTEWORTHY] Fix player instances being stored, though shouldn't.
The static stuff might need a cleanup (removal).
2016-03-20 01:34:08 +01:00
asofold f3d4941a6f Force disable FastHeal on Minecraft 1.9 and later.
Assume player ticking changes covering this.
2016-03-15 23:57:23 +01:00
asofold a8a1f1b53a Add profiles for spigot1_8_r3 and spigot1_9_r1. 2016-03-13 23:35:09 +01:00
asofold 1be694d869 Add a cbdev profile for building. 2016-03-13 23:23:04 +01:00
asofold ca8cbdaf05 Allow ProtocolLib 3.7.0 as well. Move method code to GenericVersion. 2016-03-10 19:39:38 +01:00
asofold 62ea433a0f Confine the accepted Minecraft version for ProtocolLib 3.7 more.
9be2cd2400 (diff-2f1ecdb100c80df342f0249f8ebacbb1R83)
2016-03-03 22:43:38 +01:00
asofold c22126449b [BLEEDING] Dedicated MCAccess for 1.9.
This won't cover all effects of internal changes, some blocks might be
interpreted wrongly still, some shapes may have changed in an
incompatible way (e.g. skulls).
2016-03-03 20:11:46 +01:00
asofold 9be2cd2400 [BLEEDING] Allow ProtocolLib 3.7 and disable SoundDistance on MC 1.9. 2016-03-02 19:49:02 +01:00
asofold 40a83839e5 Clarify which versions of ProtocolLib are supported by NCP. 2016-02-02 00:09:21 +01:00
asofold cc68a52ac4 Use one generic instance for Random. 2016-01-30 14:32:28 +01:00
asofold d7b1748070 allviolations: Adjust message format to other debug messages. 2016-01-28 23:31:35 +01:00
asofold 02137600b7 [BLEEDING] Make use of workarounds for a specific case, test-wise. 2016-01-18 00:40:51 +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 1c1529c5c8 Fix NPE. 2015-12-07 10:39:47 +01:00
asofold eb3a86857f Sketch block change tracking (incomplete, deactivated by default).
Represents the first "simplistic" approach to block change tracking,
only attempting to make vertical push/pull work.

It seems that we need to add on-ground checking accounting for piston
moves as well, otherwise anything with pistons retracting will lead to
survivalfly violations. Pistons extending and retracting may also
randomly move around players, including dragging them into the piston
block with the bounding box (not center of player).

In order to make on-ground work, we might need to check in another
place, possibly check where resetFrom an resetTo are set. Performance
questions might remain, there might also be a slight redesign necessary,
in order to run some sub-routines more side-effect free, to check
several branches, including after-failure checking.
2015-12-07 07:44:00 +01:00
asofold 56fa75168c Use LogManager or comment Bukkit logger use. 2015-11-29 09:18:58 +01:00
asofold 4a8f19ef7a Log all violations for on-the-fly debugging by default, configurable.
This reduces the complexity of explanation :). Performance savers can
turn it off, to prevent the hook registering at all.
2015-11-28 21:10:09 +01:00
asofold 1f33f32f07 Allow ProtocolLib 3.6.4 to enable on supported version of Minecraft. 2015-11-26 10:08:49 +01:00
asofold 282024f3a8 [BREAKING] Move several methods from MinecraftVersion to GenericVersion.
This breaks testing for UNKNOWN_VERSION, if that is used externally.
Access methods are added for testing for unknown versions.

PR mentioning access methods:
94c4da3267
2015-11-26 09:51:11 +01:00
asofold 473ec3873c Set Bukkit dependency to 1.8.8-R0.1-SNAPSHOT, scope to 'provided'.
(That means adding Bukkit as a dependency to several modules.)
2015-11-25 08:58:15 +01:00
asofold 64b4f30696 Set scope to provided for external jars. 2015-11-25 08:47:11 +01:00
asofold 92ecf7ce50 Only use ProtocolLib hooks for Minecraft 1.8.x (until having modules).
This is to prevent nasty errors. At least add support for 1.7.10 with a
compatible version of ProtocolLib will be added.
2015-11-25 08:18:00 +01:00
asofold 3ebde69877 Run updatePermStateReceivers late. 2015-11-15 04:17:15 +01:00
asofold af5fbd900a Move prefixes to loggers. 2015-11-15 02:44:01 +01:00
asofold b2caae38d2 [BREAKING] Group several classes into sub packages for moving. Renames.
* Group selected classes into sub-packages of moving.
* Rename classes.
* Must use LinkedList for velocity entries.
* Prepare SimpleAxisVelocity + entry for use-once accounting.

(Might not be the final naming.)
2015-09-13 14:39:25 +02:00
asofold 2d94389eae Building NCP: Build without cbdedicated by default.
Using profiles:
* Profile "minimal" will build by default, excluding all dedicated cb
dependencies, making it easier to quickly test stuff.
* Set the property 'cbdedicated' to true, in order to build all, using
the profile "all".
* The properties BUILD_NUMBER and BUILD_SERIES don't seem to set to
defaults anymore, so they have to be set manually (BUILD_NUMBER does get
set on jenkins).
2015-08-01 00:52:06 +02:00
asofold 7da874ad66 Attempt to deploy only the final plugin jar. 2015-07-30 11:27:30 +02:00
asofold bfd6cb7418 1.8.8 is included in 1_8_R3. 2015-07-30 01:00:52 +02:00
asofold 14049200a2 Keep adjusting time and offsets in raytracing.
* Not actually a fix for anything we encountered.
* Nailed down blockinteract.visible raytracing issues to bad end-points
for raytracing.
* Also test/prepare logging test-cases for raytracing in general. Not
enabled, because we should have some flag/permission/command to check
before logging ~ 5KB per interact event.
2015-06-30 01:04:45 +02:00
asofold 0d7d179853 Add a config option to log all violations only for debugged players.
This makes logging all violations potentially useful to use alongside
with the "ncp debug player" command in production environments. The flag
debugonly must be set with at least one backend being activated.
2015-06-07 23:46:27 +02:00
asofold f9a2172340 Add ability to log all violations. Do cleanup NCPHookManager on disable.
Similar to TestNCP but reduced/different features:
* Config: trace for the log file and notify to send to notify channel.
* It's not possible to confine whose messages you receive (yet).

Meant for better local/quick testing in the first place.
2015-06-07 20:43:51 +02:00
asofold 79ed68efbd Change compatibility module config: allow disabling CB modules. 2015-06-06 22:30:37 +02:00
asofold b91cfc7095 Reference MCAccessCBReflect directly. 2015-06-06 16:44:20 +02:00
asofold 2f50cca03d [BLEEDING] Fixes and additions for the compatibility layer.
* Make attribute methods consistent (remove the sprint boost modifier
from the generic speed multiplier, because it's inconsistent).
* Add missing implementations.
* Adjust default sprinting speed modifier.
* Add more guards for the latest compat module (1.8_R3).
* Add a reflection based compat module for CB, to cover minor updates.
* Possibly other minor fixes/changes.

[Hail "insufficient data written"!]
2015-06-06 16:14:36 +02:00
asofold cf9f119f67 Fix compat not loading for latest spigot versions. 2015-05-26 03:13:03 +02:00
asofold 83660b0c2b Don't use lower-case naming for the _R part in packages. 2015-05-25 21:24:44 +02:00
asofold 3cf6943efb [BLIND] Add compat module for Spigot/CB 1.8.4 (1_8_R3). 2015-05-24 16:07:50 +02:00
asofold 888f1cbaa8 Dedicated compat module for Spigot/CB 1.8.3 (1_8_R2). 2015-05-24 15:29:12 +02:00
asofold 806b31ec4f Include the _R... part for naming compat modules. 2015-05-24 14:56:45 +02:00
asofold 9f33033976 Don't set NCPCompatCBDev as option dependency. 2015-03-21 18:49:11 +01:00
asofold 28abc009f0 Typo. 2015-03-20 19:45:14 +01:00
asofold d53d5c7bc1 Use reflection for all Compat+CB modules.
This won't solve any problems directly, but it might later allow easier
splitting off dependencies and ease up removing modules for custom
builds.
2015-03-20 19:36:45 +01:00
asofold 6c5c6941f9 Set NCPCompatCBDev as optional dependency. 2015-03-13 22:52:11 +01:00
asofold e0318a6df3 [BLEEDING/INSTABLE] Recode blockinteract.visible/ray-tracing.
The workarounds in InteractRayTracing and using multiple
reference-targets in Visible have all been removed in favor of using the
actual looking direction for ray-tracing.

On quick testing, there remain false positives, allowing to somewhat
escalate violation levels, if intended to. On normal playering false
positives seem to happen very near the very edges between blocks on
occasion.
2015-03-13 01:14:40 +01:00
asofold 3a64ab960f [Bleeding] Update to MC 1.8.3 Spigot/CraftBukkit. 2015-03-12 16:43:41 +01:00
asofold 26d7122a57 Add dedicated compatibility module for MC 1.8 with CraftBukkit/Spigot. 2015-03-11 22:55:00 +01:00
asofold a5d6594591 Fixes, more tests and more to do for RayTracing.
* More tests for PassableRayTracing (room, rays from outside).
* Alter InteractRayTracing to account for the block interacted with.
* Added tests for InteractRayTracing.

Problems:
* RayTracing may end x-th digit off target, thus in the wrong block.
Suggested fix is to keep correcting t by the absolute coordinates of the
blocks, i.e. calculate the absolute position rather than adding up.
* InteractRayTracing with strict set to false (like in the
blockinteract.visible check) will be too lenient with 1-thick wall
setups and fail test cases.
2015-03-11 11:36:12 +01:00
asofold 8856f68e55 Run consistency tests reversed as well. 2015-03-09 11:55:46 +01:00
asofold e871d205f6 Let RayTracing test all combinations of transitions for all axes.
Previously only "random" transitions were taken, for simplicity. For the
sake of better debugging and consistency we check all combinations of
transitions now, calling the iteration with all transitions done at once
the "primary line", while calling step with a subset of transitions done
would be the "secondary line".

Currently an iteration might still end x-th digit off the target, so it
does not necessarily end on the target block itself. This is not a
problem for passable, but might be one for interaction and other
applications, thus this should be fixed at some point.
2015-03-09 02:15:02 +01:00
asofold 84d47e52b9 Hot-fix passable, for reducing false positives.
Prevents iterating too far, at the cost of skipping some testing.
2015-03-08 02:47:46 +01:00
asofold d564cf17e9 Attempt to fix a ray-tracing issue. 2015-03-07 03:07:48 +01:00
asofold 260ba01246 Use lastKeepAliveTime (NetData) in fight.godmode.
* Update lastKeepAliveTime from KeepAliveFrequency (even if that is
disabled).
* Update lastKeepAliveTime from FlyingFrequency too.
* Allow to test for feature tags efficiently.
2015-02-09 21:59:37 +01:00
asofold c4b6845b8f Put bukkit + spigot repositories only into the parent pom. 2015-02-08 01:13:27 +01:00
asofold e0a8ef21d6 Revert module dependency versions to 1.1-SNAPSHOT.
(LATEST would use the old static ones.)
2015-02-06 02:05:48 +01:00
asofold eeaa9ac1cc CreativeFly: Use per-game mode flying settings. 2015-02-06 02:04:34 +01:00
asofold a7127336a8 Use LATEST as version for internal dependencies. 2015-02-04 23:42:05 +01:00
asofold 2cecd50961 Change all "static" pom versions to "1.1-SNAPSHOT", to allow deploy. 2015-02-04 18:49:52 +01:00
asofold 3cdbab6877 Javadoc corrections. 2015-02-03 12:28:10 +01:00
asofold ba990054c6 Attempt to fix test failing due to StaticLog using LogManager.
TODO: How/where !?
2015-01-30 23:06:06 +01:00
asofold 86732764e3 [BLEEDING] Integrate net checks into the check system.
* Extend CheckConfigFactory with a remove-all method.
* DataManager.clearConfigs() now uses CheckType for getting factories.
* Split off Check.hasBypass method to check exemption + permission.
* Allow null permissions in CheckType (interpret as no bypass).
* Add Check types for FlyingFrequency and SoundDistance.
* Add exemption and actions to FlyingFrequency, alter defaults.
2015-01-30 16:10:43 +01:00
asofold f3973cd043 Move the net package inside of checks. 2015-01-27 00:52:28 +01:00
asofold 0de3ae80c9 Log this one to STATUS (console too). 2015-01-25 03:24:44 +01:00
asofold 52d46450e2 Partly cleanup handling moved paths.
* Add a test for moving a simple config value (not sections).
* Add a flag to @Moved to allow explicitly skipping sections.
  (Should enable moving values into a child path of the previous one.)
* Don't set values before inside of processMoved...
2015-01-25 03:18:40 +01:00
asofold be68ecba60 Move logging.debug config path, don't log "consistency checks run".
Move logging.debug to logging.extended.status, because that section will
contain more entries, e.g. for logging all violations.
2015-01-25 03:18:24 +01:00
asofold 1bc280eee5 Cleanups (imports, typos). 2015-01-25 02:13:19 +01:00
asofold aa126bf731 Remove an 'f'. 2015-01-19 20:14:00 +01:00
asofold 4e5dce0722 [BREAKING] Add option to remove players exemptions on join and leave.
The option is enabled by default, thus it might break something.
2015-01-19 17:49:18 +01:00
asofold 33cd10826d [BREAKING] Switch ExemptionManager to UUID use.
Removes access by name and entity-id for now. Access by name might be
re-added, though any kind of mappings will likely be maintained
somewhere near DataManager.
2015-01-19 17:19:30 +01:00
asofold a2e41452e7 Remove fight.knockback.
Measuring the time from sprint to attack doesn't work well. The
ctrl-sprint thing also adds to it. Better would be measuring the
toggle-sprint frequency and possibly combine it with some other measure
(packet level attack frequency?) then rather deal attack penalty time.
2015-01-19 13:45:07 +01:00
asofold 0fa307a8df Add a check for creating books with more than 50 pages. 2015-01-19 02:52:02 +01:00
asofold d52dd4b158 Be able to run without onLoad being called. 2015-01-17 05:20:18 +01:00
asofold d23c09d355 Add a PostEnableTask to avoid confusion with timings. 2015-01-13 01:19:56 +01:00
asofold d2da3f1e9e Add Minecraft version detection and version-dependent default values.
We can now decide on base of the Minecraft version, which value to use,
with the config entry set to "default". Used with
pvp-knock-back-velocity and enforce-location (first move exploit).

Activated features are shown in the version info ("ncp version"). The
version info is now logged to the log file after post-enable and after
reloading the configuration.
2015-01-12 21:57:06 +01:00
asofold 41e9d89efa Add info about version-dependent features to the "ncp version" command.
* Add methods to NoCheatPlusAPI to add/set/get version tags.
* Display all tags in the ncp reload command.
* Alter test framework to set a dummy API.
* Add tags for blocks, net checks, FastConsume.
2015-01-05 16:34:07 +01:00
asofold 5f106dce1b Soft-depend on Carbon to ensure load order. 2015-01-05 14:38:49 +01:00
asofold c0a188d2c1 Make LogManager an interface.
* Some cleanups (spaces, commented out references updated).
* LogManager implement INotifyReload, but gets processed extra (not
added with addComponent).
2014-12-04 15:56:16 +01:00
asofold 5f9764dabc Add command "ncp debug player (player1) ...".
This is the first simple version, just setting debug for all checks for
the player(s). It can only be undone by removing the data, e.g. with
"ncp remove (player)", reloading does it too, but is much heavier.
2014-12-04 03:52:48 +01:00
asofold 256d06b67c Add permissions for JourneyMap/VoxelMap. 2014-12-04 03:09:17 +01:00
asofold 04d2896f7e [API CHANGE] Add debug flags to check data [missing: use that one].
For debug output now data.debug is used instead of config.debug, so the
data is initialized with the config.debug value. As an effect of this,
removing the data or reloading will override flags that have been set by
means of API-access only.

Affected:
* Adds getDebug and setDebug to ICheckData.
* Adds appropriate configs to all constructors of check data.
* Some per-check debug flags have been removed.

Extras: 
* spaces
* import cleanup.
2014-12-04 02:24:20 +01:00
asofold 5dd5f8b87c Remove error markers. 2014-12-01 00:06:41 +01:00
asofold e454930569 Remove unused method (dependency on ConfigManager). 2014-11-29 16:00:18 +01:00
asofold a064a9afce [BLEEDING] Add dev-support for 1.8/Spigot. 2014-11-29 01:55:55 +01:00
asofold 0561638105 Add STATUS stream and use instead of INIT in some places.
* STATUS logs to console and default file, using queues.
* StaticLog logs to STATUS during runtime.
2014-11-23 15:47:10 +01:00
asofold 3460e29246 Remove StaticLog.schedule... and toString(Throwable). 2014-11-21 23:45:02 +01:00
asofold 3364d487cf Fix logging task (sync) not registering. Shuffle init order. 2014-11-19 23:09:14 +01:00
asofold ec36e879d3 [BLEEDING] Use the new logging framework from now on (read details).
* All logging is also going into the log file (always), debug output is
mostly/only going into the log file. File logging uses an asynchronously
processed queue now (!).
* Specify an existing directory (e.g. logs) and log files will named
after date + sequence number, changing with every reloading of the
configuration.
* Console and ingame logging remain within the primary thread.
* No extra configurability for customization, yet.
* Not all places have been cleaned up, concerning log levels. target
streams and package naming.
* Work in progress.
2014-11-19 00:07:52 +01:00
asofold 37c1da73ff Rename LogUtil to StaticLog. 2014-11-17 11:25:51 +01:00
asofold d5cefe4c5a Add dedicated compatibility module for CB 3100 (MC 1.7.10). 2014-11-11 21:44:40 +01:00
asofold 4caec8aa63 Add tests for log actions. 2014-11-06 02:23:25 +01:00
asofold 7b2a680ead [BLIND] Add dedicated compatibility module for Glowstone.
This is extending the classes for Bukkit (API only), and only overriding
very few methods, such as getCommandMap, dealFallDamage.
2014-10-26 20:25:00 +01:00
asofold 7743dd9d8a Only print debug info, if the flag is set. + Spaces. 2014-08-07 18:56:05 +02:00
asofold 4e9e935b1e Extend tersting for Passable + move NCPCore tests to NCPPlugin.
Tests (partly re-) added and extended, classes moved, some methods
moved.

Some tests will fail if you don't use the next commit as well.
2014-08-05 18:49:35 +02:00
asofold 29000fbdb7 Add tests for PassableRayTracing (+spaces).
To make this works we change LogUtil to allow logging to console, and
initialize BlockProperties with MCAccessBukkit and use a fake
BlockCache, that allows to set blocks with an access method, so that we
can test ray-tracing.

The testEmptyCorner test would fail with the current implementation.
2014-08-04 21:35:43 +02:00
asofold e84027a919 Set wasInBed in postEnable to prevent kicking with plugin managers. 2014-08-01 22:09:14 +02:00
asofold 7d40df9d8c Rename the kicklist command to denylist. 2014-07-29 21:11:31 +02:00
asofold c2722abc19 Add the "ncp top" command, allowing to search all the violation history.
Original pull request:
https://github.com/NoCheatPlus/NoCheatPlus/pull/24

This probably is not the final implementation, but it allows some
minimal freedom:
* Specify number of entries to show.
* Specify check types (and groups!).
* Specify what to sort by.

There might be need for some merged view, combining several different
check types somehow, or just shortcuts for specific selections, e.g. for
fighting-related checks.

----

+ Fix root command not showing sub commmand usage.
2014-07-29 13:49:43 +02:00
asofold 1a010b8f43 Update/reorder command usage/description. 2014-07-28 01:26:10 +02:00
asofold 6ba234693a Add ProtoclLib to softdepend. 2014-07-27 23:45:24 +02:00
asofold 4176937dd1 Add a general purpose counter for stats/debug, and log+reset commands.
This may get changed around, e.g. to allow log output to file and other.
2014-07-27 20:22:53 +02:00
asofold e0f81b43b6 Command+perms rename: tempkick to denylogin and unkick to allowlogin.
Aliases are still set for commands and permissions, so this should not
break things.
2014-07-27 17:25:35 +02:00
asofold e05748ecfd Add the inspect command to usage. 2014-07-27 16:26:27 +02:00
asofold d55cd7e4b6 Add a generic instance factory to the API.
This allows storing useful objects in the registry.
2014-07-27 15:17:08 +02:00
asofold 04b82ad0a6 [BLEEDING] Peek into ProtocolLib to fight certain packet spam (3).
This lessens or removes most effects of spamming the PacketPlayInFlying
(3, legacy 10), such as "magnet" or "repell" effects.
2014-07-12 22:30:51 +02:00
asofold 56611cd44b [BLEEDING] Set CompatCBDev to CB for MC 1.7.10. 2014-07-12 18:15:45 +02:00
asofold 8f32c822dc Add dedicated compat module for CB 1.7.8|1.7.9. 2014-07-12 17:46:42 +02:00
asofold 8da49e49f6 Update MCAccessCBDev to use CB 1.7.9-R0.2, update readme.md. 2014-06-14 18:37:20 +02:00
asofold b669d65b92 No need to call super.onLoad. 2014-05-31 16:26:54 +02:00
asofold f60d971f3c [BLIND] Add support for MC/CB 1.7.8. Minimal checks by code inspection. 2014-04-14 23:08:01 +02:00
asofold 2434c71d20 Add dedicated compat module for CB 1.7.5-R0.1. 2014-04-14 22:40:06 +02:00
asofold 2aa7ffab8e Alter the warning and error messages for MCAccess. 2014-04-05 00:29:07 +02:00
asofold 90a1255229 [BLIND] Dedicated compat module for 1.7.2. Set CompatCBDev to MC 1.7.5. 2014-03-25 00:32:38 +01:00
asofold 16db04f397 Officially drop compatibility for before CB 1.4.5-R1.0 ! 2014-02-23 00:38:31 +01:00
MyPictures add2179dc9 Cleanup "ASCII art" from the sourcecode
Wiped every ASCII related thing that I could find in the NoCheatPlus
source.
2014-02-22 19:26:06 +01:00
asofold fd33820c8e [BLIND/BLIEEDING/INSTABLE/INCOMPLETE] Secrets (read below).
Does this even compile anywhere?
2013-12-01 20:56:00 +01:00
asofold 71b37aab7b Add dedicated compatibility module for 1.6.4.
Can't set proper dependencies (bukkit repo seems warped).
2013-12-01 15:00:52 +01: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 a901823f9d [BLEEDING] Add 1.6.4 support. 2013-09-20 09:49:20 +02:00
asofold 41e1e8017b Add DisableListener component and use for DataManager and Improbable. 2013-09-19 21:00:57 +02:00
asofold 72e1ea8585 Corrections to plugin.yml. Add nocheatplus.shortcut.cheater. 2013-09-18 18:21:04 +02:00
asofold ed0f08ed23 Use postEnable for one time tasks, log start and end. 2013-09-13 02:53:09 +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 1d2f291650 Add "ncp inspect (player)" command, might be merged/changed with info. 2013-08-29 21:30:53 +02:00
asofold c8c7bbb37c Correct usage of "ncp exemptions". 2013-08-17 15:35:41 +02:00
asofold af4c9b94f6 Move managelisteners to the compatibility section. 2013-08-12 22:20:44 +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 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 8b2c8fd29c Hasty - test before build. 2013-08-10 02:20:03 +02:00