Commit Graph

2882 Commits

Author SHA1 Message Date
asofold
d6bb1e84bc Implement more efficient handles. 2016-06-16 23:34:52 +02:00
asofold
2bf3e14ab9 More on GenericInstanceRegistry.
* Add a way to stay updated about the latest registration state for a
class.
* Add a class for the registry.
* Let the registry log all registrations.
* Make super interfaces for LogManager (simple logging of
String/Throwable).

Missing:
* More streams (REGISTRY, PLAYER/CHECK_STATUS/EVENTS or just CHECKS at
least). Make status rather the plugin status. Registry could have an
extra file.
* More efficient IGenericInstanceHandle use (wrap + reference counting).
2016-06-16 22:23:54 +02:00
asofold
0868e30994 Allow to detect delegate players for some contexts. Other fix(es).
Attempt to treat fake players less Concept is subject to change, might
want fall-back methods or skipping native access in general where it's
not needed (thus not need to check for native entities).

Other
* Don't insert dataMan into disableListeners twice.
2016-06-16 01:30:19 +02:00
asofold
d5b45e53f9 Add support for IPostRegisterRunnable.
Allows to register with the generic instance registry for another class,
after component registration, with implementing this method.
2016-06-16 00:04:46 +02: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
77465b09e3 [BREAKING] Move (registry) interfaces to sub-packages.
This is neither complete nor final. Intentions are to group interfaces
better, rather organizing packages in a flat way.

At some point there will be other major move-arounds, but that'll
hopefully be a point where we have a better idea of where to put what
(...). For now the approach is to move interfaces/things rather where
it's not interfering with profane exemption API use, preferably neither
taking down the top level API layer
(NoCheatPlusAPI). 

Added deprecated interfaces to prevent cncp to break too quickly.

Outlook:
* Classes that are rather only expected to be used internally for setup
will likely get moved around freely.
* Classes that have been added since last release might also get moved
around freely.
2016-06-15 16:13:59 +02:00
asofold
87d3e5149b Notes. 2016-06-15 14:40:15 +02:00
asofold
bcbab97f71 [BREAKING] Move default factories to a registry sub-package. 2016-06-15 14:03:55 +02:00
asofold
48bc795fd5 Make limiting parameters for block change tracking accessible.
(Not yet in use by default.
2016-06-15 13:51:36 +02:00
asofold
c7f19bdbe6 Add PISTON_MOVING_PIECE as a default exception for now. 2016-06-15 13:50:48 +02:00
asofold
e8ff907f45 Implement peekFlyingQueue. 2016-06-15 01:03:32 +02:00
asofold
f87307562b Make the maximum for the horizontal buffer configurable (sf). 2016-06-15 00:44:22 +02:00
asofold
6f78eba4c4 Add build profile for 1.7_r4 (1.7.10). 2016-06-14 23:36:51 +02:00
asofold
acca3244a8 Also detect v123.5 for plugin versions. 2016-06-14 10:17:01 +02:00
asofold
b6fa205508 Allow some friction upwards on climbable for now.
Seems to mostly concern receiving velocity when on ground, though.

Issues remain with vdistrel when moving off climbable.
2016-06-14 00:18:41 +02:00
asofold
8aced9d116 Use a class for version checking with ProtocolLib. 2016-06-14 00:16:30 +02:00
asofold
db945a7559 CompatCBReflect: block shape fetching for MC 1.9 and 1.10.
Worked on the first run :p, still took too long.
2016-06-13 17:56:14 +02:00
asofold
ea4108b22a Store World (nms). 2016-06-13 17:20:14 +02:00
asofold
637f94f579 Food level is ignored for sprinting with getAllowFlight returning true. 2016-06-13 14:22:04 +02:00
asofold
e543d905dd Extend debug logging for blockinteract (rate limited). 2016-06-13 13:44:21 +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
5ec8c2fe56 ProtocolLib: build vs. 4.0.2, reactivate SoundDistance. 2016-06-13 11:27:45 +02:00
asofold
8ae36791a9 Let's not debug log these.
Perhaps later there will be extra settings and an extra log file for
registry/setup related output, while real errors would still be logged
to file/console.
2016-06-13 11:05:28 +02:00
asofold
94ff2c1c72 Adjust end portal dupe hotfix to cover items as well. 2016-06-13 01:22:23 +02:00
asofold
d948357b46 Destructive hot fix for item duplication via end portals.
Configurable. Falling blocks, piston, end portal, roughly. Destructive:
the entity is removed.

(In addition some of the feature tags are added regardless activation
flags, because 'ncp reload' could change things anyway.)

Feel free to suggest alternatives/variations...
2016-06-13 00:14:15 +02:00
asofold
5e15dc8c9b [BLEEDING] Load chunks for vehicles too. 2016-06-12 20:23:05 +02:00
asofold
245f5389a0 [BLEEDING] Add the capability to load chunks on moving and teleporting.
Except with join/respawn, the methods will not load chunks if close by
past moves have extra properties set, assuming the chunks are already
loaded then.
2016-06-12 20:07:01 +02:00
asofold
3bfd3a7aff Use a getter for the xz-margin at the used resolution. 2016-06-12 16:55:24 +02:00
asofold
da8b056a69 Decouple legacy code.
Easier to make configurable, easier to remove.
2016-06-11 20:23:36 +02:00
asofold
fec027d41d Comments. 2016-06-11 20:04:38 +02:00
asofold
bd68362197 Implement equals and hashCode for BlockPositionGet. 2016-06-11 19:09:25 +02:00
asofold
087d800de4 Provide the block position hash we use via a static utility. 2016-06-11 19:05:13 +02:00
asofold
052e8c13ee Log supported version of ProtocolLib for MC 1.10. 2016-06-11 16:51:43 +02:00
asofold
6269ca9cb4 Fix standing on TRAP_DOOR (and the like). 2016-06-11 16:38:14 +02:00
asofold
ed10330657 [BREAKING] Remove ignorepassable config support. 2016-06-11 16:37:34 +02:00
asofold
2ff0076e69 [BLEEDING] Switch implementation for moving.passable.
Switch to AxisTracing instead of RayTracing. This means most workarounds
are removed, including some (legacy) performance saving tweaks.
2016-06-11 15:49:49 +02:00
asofold
ec333fb432 Implement ignoreInitiallyColliding for (Passable) AxisTracing.
Not really adding general purpose implementations for
BlockPositionContainer, likely good enough for what we need for the time
being.
2016-06-11 13:50:28 +02:00
asofold
64dedf3434 Explicitly implement CoordMap<V>.
Getting rid of compiler warnings, not sure why this appears to be
necessary.
2016-06-11 12:50:24 +02:00
asofold
b2d7c29814 [BLEEDING] Alter 'ignoreFirst' mechanics with collision checking.
Change to 'ignoreInitiallyColliding' and only ignore the first block, if
it really is colliding right now. The flag is not resetting with
set(...) anymore.
2016-06-11 12:39:25 +02:00
asofold
57cb4580f9 Only clear the map if there are entries at all. 2016-06-11 12:29:09 +02:00
asofold
1e3620ac38 Re-add/repair reflection based attribute access. 2016-06-11 10:26:24 +02:00
asofold
e0d6585f67 More flexible registration (fall-backs for dedicated and reflection). 2016-06-10 15:44:44 +02:00
asofold
720386a0e2 Patch up ascending with minecarts. 2016-06-10 15:12:00 +02:00
asofold
f1ffb23686 Elaborate on ray-tracing with and/or passable.
* Add capability to cut margins opposite to the moving direction for
AxisTracing (extend interface(s)).
2016-06-10 13:36:04 +02:00
asofold
5d0d5d411d Meanwhile ... passable and ray-racing... and fixes.
* Increase precision of debug logging.
* Fix iteration conditions for the axes.
* Fix margins for collidesFence (method + THICK_FENCE workaround
parameter).
2016-06-10 11:29:25 +02:00
asofold
181502cdd4 More on Passable/RayTracing.
* Prepare more debugging.
* Move collides flag into RayTracing.
2016-06-10 08:46:09 +02:00
asofold
19312bdbfa [BREAKING] More on passable and ray tracing.
* Make RayTracing and PassableRayTracing implement interfaces. (rough,
not used in tests yet etc.).
* Optimize ray tracing use in BlockProperties.
* Add an axis-wise implementation (buggy, hardly tested, thus not used
yet).
2016-06-10 00:23:56 +02:00
asofold
f18e7e46d1 [BLEEDING] Guards for activation of IAtributeAccess implementations. 2016-06-09 23:40:09 +02:00
asofold
765383834b [BREAKING] Generic instance based attribute access.
MCAccess will be split into smaller providers with time, so do expect
more breaking changes of this type. If this is an issue, please contact
us, so we can see how to smoothen things. E.g. we could still make
MCAccess an aggregate, that just delegates to the more fine grained
providers, or we could provide other 
(default) aggregates.

This also adds a Bukkit-based provider for future updates.
2016-06-09 20:14:39 +02:00
asofold
8ba1f2cf74 Minimize code for one generic instance factory instance. 2016-06-09 18:22:23 +02:00