Commit Graph

177 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
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
05928747fb Multiple iterations of fumbling reveal...
magic looks different.
2018-01-09 21:26: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
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
c101bc631f Add a native access module for 1.12.2. 2018-01-07 16:35:44 +01:00
Ali 'SupaHam' M
16f270d40f
Recognise NCPCompatSpigotCB1_11_R1 in spigot1_11_r1 profile
Fixes ci.ender.zone and other builds that don't build using all profile.
2017-12-29 13:26:11 +00:00
asofold
7f1d744092 Add a dedicated compat module for 1.11.2 (1_11_R1). 2017-12-21 23:11:40 +01:00
asofold
97cdbe8046 Move the java version into the root pom.
Not set higher, as we can't really make use of that now - diamond
operator postponed.
2017-04-24 18:35:25 +02: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
e7aab4272e Use https for dbo. 2016-12-04 14:35:07 +01:00
asofold
d521a99ffc Remove legacy compatibility module for glowstone.
(Should have a look at GlowstonePlusPlus, perhaps.)
2016-06-15 23:08:59 +02: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
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
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
dcc4e80cd6 Update repository references. 2015-10-10 23:27:12 +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
865779d5d8 [RANDOM] Move repository for deployment to the other pom. 2015-07-30 11:33:50 +02:00
asofold
7da874ad66 Attempt to deploy only the final plugin jar. 2015-07-30 11:27:30 +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
26d7122a57 Add dedicated compatibility module for MC 1.8 with CraftBukkit/Spigot. 2015-03-11 22:55:00 +01:00
asofold
c4b6845b8f Put bukkit + spigot repositories only into the parent pom. 2015-02-08 01:13:27 +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
d5cefe4c5a Add dedicated compatibility module for CB 3100 (MC 1.7.10). 2014-11-11 21:44:40 +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
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
8f32c822dc Add dedicated compat module for CB 1.7.8|1.7.9. 2014-07-12 17:46:42 +02:00
asofold
6f450b0d71 Totally random. 2014-07-06 23:16:06 +02:00
asofold
3616c7cce5 Randomly move distributionManagement. 2014-07-06 23:04:26 +02:00
asofold
7f8e5c4b41 Random repository adding. 2014-07-05 22:58:04 +02:00
asofold
8847492ffc Re-add distribution management part for testing. 2014-07-05 22:23:33 +02:00
asofold
2434c71d20 Add dedicated compat module for CB 1.7.5-R0.1. 2014-04-14 22:40:06 +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
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
182bc81c8c Set 1.6.2-R1.0 as new Bukkit/CB dependencies, add dedicated module. 2013-09-12 01:21:56 +02:00
asofold
130f43d005 Comment out DistributionManagement. 2013-07-11 14:28:18 +02:00
asofold
f942721ebc More random changes. 2013-07-11 01:37:06 +02:00
asofold
3264381039 Random pom changes. 2013-07-11 01:34:30 +02:00
md-5
6907c870a4 Add maven repo stuff - should probably be formatted or something :p 2013-07-11 08:36:14 +10:00
asofold
a97995c99a Re-add 1.6.1 native support (removing is not worth the support load). 2013-07-10 12:34:06 +02:00
asofold
e60006d6a3 Update pom.xml descriptions. 2013-07-06 14:49:24 +02:00
asofold
a4556667fd Add dedicated 1.5.2 module. 2013-06-24 12:24:36 +02:00