Commit Graph

1349 Commits

Author SHA1 Message Date
asofold b422d077db Brewing stand, cauldron, hopper, end portal frame. 2018-08-26 11:35:18 +02:00
asofold fd679c842f Deop. 2018-08-26 10:27:48 +02:00
asofold 6e2d611e9b 1.13 - add more blocks. 2018-08-24 23:53:09 +02:00
asofold cd142dd822 Fixes for 1.12.2. 2018-08-24 19:51:42 +02:00
asofold 9d37763264 More blocks added, adjustments for initialization.
Chests are treated as single chests always, so there is a little
potential for interaction getting through (blockinteract.visible).

Snow is just treated as before, data-based height adjustment (to be
added as a model, as Bukkit supports getting the level in a generic way,
same for water).
2018-08-24 12:24:34 +02:00
asofold 1868fb587a Oops. 2018-08-23 23:59:49 +02:00
asofold 982fda081a More explicit flags for blocks. 2018-08-23 23:56:00 +02:00
asofold 0a77c07b21 Add shulker boxes and (leveled) snow.
Leveled one block height could be done in a generic way via Bukkit, once
needed.
2018-08-22 23:34:32 +02:00
asofold c4423de353 Fences / coblestone wall. 2018-08-22 22:38:28 +02:00
asofold 4a7fd059dd Add BukkitThinFence. Remove unneeded flag.
(Configurability is another step.)
2018-08-22 09:43:37 +02:00
asofold b89c3af589 Explicit height flag for grass path. Bukkit model for stairs. 2018-08-21 13:19:01 +02:00
asofold 56f1a37969 [BLEEDING][BREAKING] Swift way in to Bukkit shape models (slabs first).
Remains warnings, registry debugging output without checking config.
2018-08-21 11:45:15 +02:00
asofold 40b0107cc8 Adjustments and fixes for BlockProperties.
* Reinstate itchy blocks being processed at all (MCAccessBukkit).
* Refine block dump: add non-air blocks with no flags set to missing.
* Adjust/re-add/alter various flags.
2018-08-21 00:01:48 +02:00
asofold 07368361e2 More smart block setup (first batch).
* Initialize fully solid (in terms of shape + passable) blocks
explicitly with full bounds and solid flags.
* Use MaterialUtil#addBlocks and BridgeMaterial#getAllBlocks where
appropriate.
* MCAccessBukkit(Base): don't touch fully solid nor fully passable ones.
2018-08-20 21:48:36 +02:00
asofold 62df128efd [BLEEDING][BREAKING] MC 1.13 Material changes, first batch.
First batch:
* Initialize blocks somehow, so no errors nor missing blocks happen
during startup.

Possibly Missing:
* There might be references of removed/renamed material (blocks/items)
throughout the code.
* Some blocks may behave different now/then.

Missing:
* Block#getData may not reflect (all?) properties anymore.
* Block shape getting is missing. Block shapes are now (potentially)
more complex to process. Concept might be to keep a double array for the
rough bounds, and add an (optional +- null) array of arrays for sub
shapes, if present (IBlockCacheNode). So a first rough update is more
simple/compatible.
2018-08-20 12:37:51 +02:00
asofold f6f94d4eb7 Remove unused 4096, align flag values, add max flag. 2018-08-15 10:59:02 +02:00
asofold 7994961684 No set back no deal (on the paper). 2018-07-09 10:26:20 +02:00
asofold 24b25406a0 Skip direction checks if inside of a box.
(Only checked, if the hit is off-box at all.)
2018-06-24 10:51:29 +02:00
asofold 85bb769b73 (I)TraceEntry: Add convenience method isInside for coordinates. 2018-06-24 10:48:48 +02:00
asofold c7b8ba4bb3 Comment on NoFall. 2018-04-22 15:24:16 +02:00
asofold f1f0afee74 Add BlockFormEvent listener. Monitor SOIL->Dirt. 2018-04-22 15:14:28 +02:00
asofold 500544c32b More safe IPlayerData getting for the net checks. 2018-04-20 12:17:24 +02:00
asofold 6bddb1a834 Optimistic player data creation. Updating of world / player name. (+)
Create PlayerData instances if events allow proceeding:
* AsyncPlayerPreLogin.
* PlayerLogin (schedule for removal if denied).

Update world data:
* PlayerLogin
* (PlayerJoin, ...)

Update player name and log:
* PlayerLogin
* PlayerJoin

(+) PlayerData.updateCurrentWorld -> only do something if the WorldData
instance has changed.
2018-04-20 11:49:22 +02:00
asofold e20fe539ef Implement support for ActionPenalties in ViolationData. 2018-04-17 13:49:22 +02:00
asofold fd08d1be9b Change penalty evaluation implementation to use less random numbers. 2018-04-17 13:48:20 +02:00
asofold 37c12a7fdd Rename Penalty to IPenalty. 2018-04-17 12:48:54 +02:00
asofold 7269a026eb Remove redundant abstract method. 2018-04-17 12:46:08 +02:00
asofold ad5be20eb6 Change packages for penalties.
So actions.types remains soemwhat consistent for now.
2018-04-17 12:42:35 +02:00
asofold caf137da99 Adapt fast click to use InvenoryAction. 2018-04-16 01:11:36 +02:00
asofold f079b52267 Allow dealing fall damage from 3.5 blocks height on. 2018-04-15 19:21:55 +02:00
asofold 2bea03eaf0 Support cancel with probability (e.g. 25%cancel) for actions. 2018-04-15 18:57:30 +02:00
asofold d82fb9c804 Clear cached per-world configurations on reload. 2018-04-15 18:56:10 +02:00
asofold cbfcecf2b4 Penalties: Redo Marianas Trench. 2018-04-10 09:40:06 +02:00
asofold 3e083e4ce7 Add missing GPLv3 header. 2018-04-08 15:42:43 +02:00
asofold 1616962d07 [BLIND] Begin to terraform penalties. 2018-04-08 15:39:47 +02:00
asofold fcee52586f Add missing GPLv3 headers. 2018-04-07 15:31:53 +02:00
asofold ba13fa8c72 [BREAKING] Change ActionFactoryFactory related API. 2018-04-07 15:22:17 +02:00
asofold 3b8e34d192 Having a look at BridgeHealth. 2018-04-05 13:22:23 +02:00
asofold 274c15eccf [BLIND] Continue to implement input specific penalty support.
Have a penalty list to collect input specific penalties from
ViolationData and apply after event handling.

Pass through the list to fight.critical.

Missing:
* Penalty factories and configuration. Penalty registry. Link with
actions.
* Pass through the penalty list to all fight checks.
* (Implement default penalty types.)
* ((Implement stored penalties.))
2018-04-05 11:40:18 +02:00
asofold 96e3869ff1 Begin to shape penalties. 2018-04-04 12:55:16 +02:00
asofold bd47174a4a Implement default state for missing parent nodes.
For debug false should be used, in case someone accidentally sets
'default' for a production server.
2018-04-04 12:35:23 +02:00
asofold 588c356632 Remove not implemented options (fight.critical). (+)
(+) Preparatory comments.

Something came in between back then, but now it's not efficient to do a
special case here. Instead, generic penalties will be implemented to
some extent.
2018-04-04 11:34:27 +02:00
asofold 43ba77aaa0 Fetch MovingConfig only once. Log when appropriate. 2018-04-03 10:12:23 +02:00
asofold d52138ab60 Only disable the handle, if suitable. 2018-04-02 18:42:56 +02:00
asofold 59d518a6b9 Update handle if disabled. 2018-04-02 18:37:53 +02:00
asofold cf8f4826c5 Set/indicate default flags for activation/lag/debug. 2018-04-02 18:17:07 +02:00
asofold 0a373fb28b Block change tracking: add flags for use and redstone. (+)
Add block flags:
* F_VARIABLE_USE
* F_VARIABLE_REDSTONE

Add a test to ensure block flags are unique and not 0L.

(+) Use individual MiniListener instances.
(+) Track right click blocks (use block) and apply, aiming at trap door
issues.
2018-04-02 17:08:48 +02:00
asofold 4c30b3570e Fix NullPointerException in frequentTasks. 2018-04-02 11:06:51 +02:00
asofold de586853b0 Add missing GPLv3 headers. 2018-04-02 01:47:25 +02:00
asofold 82d6f94230 [BLEEDING][BREAKING][BROKEN] Continue data registry + API. (+)
Likely incomplete/broken somewhere.

Implement/extend/use/fix new data caches and factories.
(+) Fixes related to recent commits (e.g. log listener exceptions
properly, fight.wrongturn).

Missing:
* Debug logging (registry), consider a registry log file.
* Proper naming/tags for listeners.
* Consistency: ICheckData should probably be used with
removeData(CheckType)? Registration is arbitrary though.
* Consistency: clearData() vs clearData(CheckType.ALL) - should check
type related data be ICheckData only ?
* Data expiration stages and PlayerOfflineData - impact on memory...
* (...)

Further:
* WorldData inheritance issue: implement passing on changes to children.
(Current line of thought: rather extend IWorldDataManager to allow
change default+inherited only.)
* Shrink exposed API - uncertain: rather have a registration context
object or expose individual methods for factory registration and
grouping types?
* (...)
* Planned breakage: Project + package organization redone: move stuff
where it is best for having an API (components -> split to top level or
name it api, utilities ... parts belong into API, and the like...,
possibly split project further: commons, api(+-bukkit), core/checks,
plugin-bukkit).
2018-04-02 01:25:10 +02:00