Commit Graph

3292 Commits

Author SHA1 Message Date
asofold 09a963ed49 Add GPLv3 headers where missing. 2018-01-17 23:52:50 +01:00
asofold 37127c1f2b [BLEEDING][BREAKING] Use a new internal event registry.
The old ListenerManager is removed, new system in place. Removed
doesManageListeners(). (The new system isn't that new, but it's been
fixed and adapted to using RegistrationOrder.)

New
* Register all Bukkit events via the new EventRegistryBukkit.
* This way listeners can be ordered by numeric priority and tags
(regular expressions for beforeTag and afterTag).
* Unregistering listeners is possible (a listener node stays in the
Bukkit registry, but only one per event).
* It's possible to add listeners with minimal impact (MiniListener).
* The registry registers by event class 'hard' i.e., no relations
between already registered classes are checked.
* Order isn't necessarily stable nor even reproducible for randomized
start conditions with the same elements.

Point
* Compatibility hooks can easily place event listeners
before/after/between NCP default listeners, without resorting to tricks
like 'load-before'.
* Future registry of NCP itself: unregistering listeners is necessary
for runtime-removable checks, order is useful if not necessary, to be
able to add check listeners at any point of time.

Breaks:
* Anything relying on the previous (optional) managelisteners feature.

Missing:
* Lots of testing/inspection.
* Ensure all NCP listeners are coming with name/tag at least.
* Provide meaningful tags/RegistrationOrder for fine grained access
(e.g. after feature.moving but before feature.inventory).
* Change cncp to hard depend on NCP and use listener priorities.
2018-01-17 12:42:32 +01:00
asofold f7571dcf2f [BREAKING] Move std. annotations into RegistrationOrder. Add more.
* The annotations made for RegistrationOrder are defined in there.
* Add RegisterMethodWithOrder (method) for event handlers.
* Add RegisterEventsWithOrder (type) for default order with listeners.
2018-01-16 21:08:45 +01:00
asofold 243d8dd6c8 Fix premature non-abort. Return boolean for simplicity with traversal. 2018-01-16 12:02:29 +01:00
asofold 2b469a4613 Add traversal methods. 2018-01-16 11:31:54 +01:00
asofold c9d2a5de74 Simplify using CheckTypeUtils. 2018-01-16 11:02:34 +01:00
asofold 361b37962d Move methods from hooks.APIUtils to utilities.CheckTypeUtil.
(Not specific to hooks anymore.)
2018-01-16 10:18:55 +01:00
asofold 1d96fb32a1 An unmodifiable list. 2018-01-16 09:53:30 +01:00
asofold 3e81499fa6 Add a CheckTypeTree for fully spanned check-type-related structures. 2018-01-16 00:18:17 +01:00
asofold 532eef14a2 [BLEEDING] Partial overhaul for CheckType.
Yes
* Remove the UNKNOWN type.
* All types except ALL have a parent now.
* All types have a type now.
* APIUtils: Add getDirectChildren for distinction.

No
* APIUtils doesn't collect the descendants in a generic way yet.
2018-01-16 00:10:33 +01:00
asofold 073220cc01 Clarify APIUtils methods meaning by renaming, deprecate former. 2018-01-15 23:19:41 +01:00
asofold adc0d16d73 Add a type for check types (future may have multiple levels). 2018-01-15 23:07:04 +01:00
asofold a25dc44501 [BLIND] Include other blocks in the multi protocol block patch, rename. 2018-01-15 22:16:09 +01:00
asofold e8cf861150 Disable the MultiClientProtocolWaterLilyPatch with unit tests. 2018-01-15 22:00:17 +01:00
asofold 01aaccbf54 Fixes and extension for Activation. (+)
(+) Always return Activation, not IActivation.
(+) Add unitTest() and notUnitTest().
2018-01-15 21:59:39 +01:00
asofold 30b293e735 Rename DummyNoCheatPlusAPI to UnitTestNoCheatPlusAPI for the prefix.
Allows determining the state of the system more easily.
2018-01-15 21:45:41 +01:00
asofold 13b00a6b8e Fix APIUtils not returning an unmodifiable collection. Change to Set.
Using the LinkedHashSet directly.
2018-01-15 21:20:50 +01:00
asofold 5cf2613f36 Should mention... 2018-01-15 13:10:44 +01:00
asofold def7d61bc5 Test for NPCs with the Inventory.Open check. (+)
(+) Note: If it's fired asynchronously, meta data isn't checked, due to
that not being thread-safe. In future extra checks for (demanded to be)
thread-safe external plugin APIs can be added (reflection only).
(+) Add comments to PlayerData, concerning future treatment of name-uuid
mappings and retaining data.
2018-01-15 13:02:30 +01:00
asofold 7fdd6a586b Register the ExemptionSettings instance in use as generic instance. 2018-01-15 12:31:00 +01:00
asofold dc4849f3a8 [BLEEDING] Do not delete PlayerData instances for online players. (+)
(+) Add getPlayerName for exact case name getting from internal storage.
2018-01-14 16:31:38 +01:00
asofold 0306e2c982 Add getKeys(), similar to to keySet(), but without option to alter. 2018-01-14 15:47:53 +01:00
asofold 8e11fe8184 removeDataPrecisely: Don't create ANY debug text if debug is false. (+)
(+) Add/alter comments with PlayerData removal.
(+) Remove comment to store PlayerData by UUID.
2018-01-14 14:39:12 +01:00
asofold 46b0b3df02 Set version to 3.16.1-SNAPSHOT for the next iteration of development. 2018-01-14 13:44:14 +01:00
asofold 424b357db1 Set version to 3.16.0-RC for release. 2018-01-10 22:37:28 +01:00
asofold bc408d2a2c Update links. 2018-01-10 12:50:51 +01:00
asofold 27b1ee4347 Surgery. 2018-01-10 12:48:17 +01:00
asofold 305f71c473 Include SpigotMC links here. 2018-01-10 12:29:55 +01:00
asofold a9afde112b Change order within. 2018-01-10 12:20:24 +01:00
asofold 3270194bab Add info on latest stuff. 2018-01-10 12:06:23 +01:00
asofold 0dae590fb4 Maven 3.3.9 should work. 2018-01-10 02:56:55 +01:00
asofold 04a751510f Scrap activation for include/build. 2018-01-10 02:32:00 +01:00
asofold 671b628122 Add a cblegacy profile. 2018-01-10 02:02:05 +01:00
asofold e5c8bec62b Obtain the "non free" modules via a pre-built jar by default.
This way testing changes to the core checks will be easier:
* By default NCPCompatNonFree is fetched from the repository (prevent
via -Dno_nonfree).
* To build "non free" modules, -P nonfree_build is needed. In addition
you need to specify the profiles for what to build, such as -P all an
the like.
2018-01-10 01:54:08 +01:00
asofold 8d1d7ab410 Backlash. 2018-01-09 21:38:42 +01:00
asofold 05928747fb Multiple iterations of fumbling reveal...
magic looks different.
2018-01-09 21:26:12 +01:00
asofold 871c28202f Reflect changes within README.md. 2018-01-09 20:57:12 +01:00
asofold 68160c8424 Remove ncp_base profile in favor of default moduels and dependencies. 2018-01-09 20:50:51 +01:00
asofold 77c38373be
Update README.md 2018-01-07 22:48:13 +01:00
asofold 9d595d125b
Update README.md 2018-01-07 22:47:38 +01:00
asofold 2ec2bad07b Update readme. 2018-01-07 22:33:06 +01:00
asofold 17293c70b2 No need to specify ncp_base anymore. 2018-01-07 22:22:35 +01:00
asofold 7e80cd580c Reverse order of dependency/profile definitions within pom.xmlS.
Entries to add are near to each other now.
2018-01-07 22:21:20 +01:00
asofold 5da5689f85 Get rid of parameters for maven profile activation. 2018-01-07 22:10:04 +01:00
asofold 22393db749 Set version to 3.16.0-SNAPSHOT because we can't build.
Intention had been to make the breaking changes have a larger impact on
the version anyway.
2018-01-07 22:00:44 +01:00
asofold e961f94bce Set version to 3.15.2-RC for release. 2018-01-07 21:02:19 +01:00
asofold c101bc631f Add a native access module for 1.12.2. 2018-01-07 16:35:44 +01:00
asofold 58ee2d2f9d Remove warning message of cbreflect up to 1.12.2. 2018-01-04 23:47:58 +01:00
asofold 01f6db48b0 Correct javadocs. 2018-01-04 00:04:08 +01:00
asofold c6aec5ed09 Implement F_MIN_HEIGHT16_1 and F_MIN_HEIGHT16_15. Clarify javadocs.
Only applying with GROUND_HEIGHT set, these flags allow setting a
minimum height for passability and ground workarounds, covering two
typical cases.

Due to a range of hard coded workarounds being in place already, these
flags won't apply for all blocks. See getGroundMinHeight.
2018-01-03 23:57:12 +01:00