Commit Graph

66 Commits

Author SHA1 Message Date
asofold 30902ec352 [BROKEN] Data storage overhaul (basics). (+)
(SAFETY COMMIT)

Largely breaking change.
* Interfaces in front of data types (and 'managers'), some interfaces
removed.
* Data and configuration fetching.
* Check activation checking (config flags, isEnabled, hasBypass).
* CheckType (activation checks, factories removed).
* Lots of collateral signature changes, including IPlayerData.

The (I)WorldDataManager stores per-world data (+ per world per check
type).
* Raw configurations.
* Typical flags: check activation, debug, lag adaption.
* Generic data, such as check configurations or per world check data.

The (I)PlayerDataManager stores per player data.
* Check Data.
* Typical flags: debug
* Exemption
* Check data (and config cache).
* Further mappings and later OfflinePlayerData.
* The registration interface will allow defining, how instances are
handled for registered types (factory, proxy, what on world change, what
on logout, global removal handler, per player removal handler).

(I)PlayerData is intended to be/become the central access point.
* External interface is IPlayerData now.
* Per player debug flags, exemptions.
* Fetching configuration and data: local cache, relaying fetching to
registered factories and proxy-registries/storage (e.g. fetching
configuration from per world storage).

Other fixes/changes:
(+) Extend the debug player command (set true/false, reset to world
default, arbitrary check types).
(+) PlayerData maintains a currentWorldIdentifier (to be used instead of
ChatData in future).
(+) The WorldConfigProvider getAll implementation returns a
LinkedHashSet now, avoiding duplicates.
(+) Move DefaultGenericInstanceRegistry to NCPCore.
(+) Thread-safety considerations for DefaultGenericInstanceRegistry.
(+) Don't log errors on hasBypass checking. TBD: Instead intercept
during listener methods (or even as a feature within the listener node:
e.g. @ThreadContext(primaryThread=true, skipOffContext=true,
cancelOffContext=true).
(+) Add fight.wrongturn permissions to plugin.yml.
(+) Missing GPLv3 headers.

Broken/Missing:
* WorldData inheritance from default: propagate all changes done
directly to the default config to children (all worlds that don't have
an explicit world_config.yml set) - possibly add an OverrideState or
similar, (NONE, FROM_DEFAULT, EXPLICIT) and don't override EXPLICIT if
coming from the default. Calling override on the default WorldData is
not to be confused with calling override for WorldDataManager (override
for all worlds as EXPLICIT).
* Organize overriding for special circumstances (version dependent
activation  and the like). Might want to add registered override
handlers to be called on reload automatically.
* Store generic per check type per world data in the WorldDataManager,
such as configurations and per-world check data. TBD: Factories, cleanup
(!).
* Most efficient referencing (IWorldCheckTypeNode, IHandle<something>?).
* All the registry stuff (see PlayerData).
* Use interfaces for auto registry (and a flag within
RegistrationContext?) - world unload, world change, player join / leave.
* (Data expiration handling including transition to IOfflinePlayerData,
because now data is a little heavier.)
* Further details.
2018-02-26 12:15:53 +01:00
david ae2a378232 fix CompatNoCheatPlus link in README 2018-02-14 22:36:54 +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 871c28202f Reflect changes within README.md. 2018-01-09 20:57:12 +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 5da5689f85 Get rid of parameters for maven profile activation. 2018-01-07 22:10:04 +01:00
asofold c101bc631f Add a native access module for 1.12.2. 2018-01-07 16:35:44 +01:00
asofold f4a401dbe1 More spaces. 2017-04-09 12:40:44 +02:00
asofold 395165a95a Correct space. 2017-04-09 12:36:40 +02:00
asofold ed22d5b43b A sensible choice. 2017-04-09 00:08:46 +02:00
asofold b0a9f35f2d Dummy commit to check stuff. 2017-01-17 02:03:16 +01:00
asofold 5089447aa1 Add a dedicated compatibility module for 1.10.x (1.10 R1).
* Auto generate the sub-module file structure.
* Add rest manually.

Rest
* Enter new classes into factories.
* Add entries for modules and dependencies to the root pon and the
NCPPlugin pom, to make the new module represent 1.10 R1.
* Point the 1.10_r1 build profiles to the new module.
* Add a new module for 1.11, point to cbdev (which still is 1.10.2,
though).

Next steps (next MC release, probably):
* At least auto generate a file, containing all entries to make for the
new module, for convenient use with copy and paste.
* (Later: alter the files automatically, possibly interactive. Needs
more care, e.g. if profile entries already exist. The factory entries
can have a marker each.)
2016-12-27 23:36:03 +01:00
asofold cf3ea4a1e2 [BLEEDING] One more step on slimes with pistons.
* Less fall damage.
* Flag all velocity added due to slime bouncing appropriately.
* Experimental concept for splitting up velocity, likely to be altered /
removed.
* Add a flag for (faked) pvp velocity.

NOTE: Invalidation of past entries has been deactivated to progress on detecting the stupid past bouncing at all. This will need another iteration.
2016-12-17 15:02:26 +01:00
asofold e7aab4272e Use https for dbo. 2016-12-04 14:35:07 +01:00
asofold e644b44753 Mention the reflection based module. 2016-12-01 12:04:05 +01:00
asofold 6f78eba4c4 Add build profile for 1.7_r4 (1.7.10). 2016-06-14 23:36:51 +02:00
asofold bddd898857 [BREAKING] Demand build profile ncp_base to be activated.
In order to simplify the pom.xml files, we now work with a ncp_base
(formerly 'minimal')
profile for the minimal configuration and demand this to be activated in
addition to other profiles. This means the build parameter 'ncp_base'
can/should be used as well. See the README.md for a table of build
profiles).
2016-06-13 12:45:50 +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 bb2c2d0cb6 Note MC versions. 2016-05-11 09:48:49 +02:00
asofold 0bcb994040 [BLEEDING] Compatibility module for Spigot/CraftBukkit on MC 1.9.4. 2016-05-11 00:58:54 +02:00
asofold 48fa508392 README.md too difficult. 2016-03-14 10:51:20 +01:00
asofold 56614aa7ab Actually clarify. 2016-03-14 10:43:47 +01:00
asofold 6763f17f03 Clarify build options. 2016-03-14 10:35:47 +01:00
asofold 65f5f96d04 Test. 2016-03-13 23:44:21 +01:00
asofold 847e76ad48 Newline. 2016-03-13 23:43:24 +01:00
asofold 1e65556b00 Put the table last. 2016-03-13 23:42:38 +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 6d20b92ab6 Update readme (ProtocolLib). 2016-02-10 10:29:49 +01:00
asofold 532f8e3a4b Tickets are now on GitHub: https://github.com/NoCheatPlus/Issues/issues 2015-12-12 23:48:17 +01:00
asofold d05e683ee6 Too quick. 2015-10-23 19:52:56 +02:00
asofold b443ae7db3 Quick link CONTRIBUTE.md from README.md. 2015-10-23 19:51:38 +02:00
asofold 603a4dbb81 Update README.md (mostly wiki links), add CONTRIBUTING.md. 2015-10-23 17:26:46 +02:00
asofold bcd933948b Set the string property cbdedicated to true and use -P all on Jenkins. 2015-08-01 01:31:38 +02:00
asofold 3b513cec32 Use -P all on Jenkins to build all compat modules. 2015-08-01 01:14:55 +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 b21b587c0c Headline! 2014-11-29 23:09:50 +01:00
asofold f3f5d9a511 Remove edible content. 2014-11-29 22:59:41 +01:00