13298 Commits

Author SHA1 Message Date
Dylan K. Taylor
8364bc51ac
... 2021-04-27 14:47:11 +01:00
Dylan K. Taylor
7ce77713dd
InventoryManager: add a mechanism to allow plugins to inject their own container open packet creators
closes #4008
2021-04-27 14:40:43 +01:00
Dylan K. Taylor
f37c414298
Merge remote-tracking branch 'origin/stable' 2021-04-27 14:25:54 +01:00
Dylan K. Taylor
89260d788c
3.19.2 is next 2021-04-25 20:34:13 +01:00
Dylan K. Taylor
a7cd081002
Release 3.19.1 3.19.1 2021-04-25 20:34:13 +01:00
Dylan K. Taylor
361be8fe36
Normal: drop MOUNTAINS and SMALL_MOUNTAINS from biome selection
this would cause disruption to generation on a patch release, which is unacceptable.
This would be better for 3.20 or 4.0.
2021-04-25 20:27:19 +01:00
Dylan T
127b57048c
Allow plugins to use PSR-4 namespace mapping (#4188)
* Allow plugins to use PSR-4 namespace mapping
this is a reduced implementation which serves the 99% use case without being horribly breakable.

Plugins may now specify a `src-namespace-prefix`, which should be set to the namespace of the classes in `src`.
If the old system is used, `src-namespace-prefix` can be omitted, or set to an empty string.

Examples:
- If `src-namespace-prefix` is `dktapps\test`, `dktapps\test\Main` will be searched for in `src/Main.php`, instead of `src/dktapps/test/Main.php`.

* Migrate TesterPlugin to PSR-4
2021-04-23 19:34:46 +01:00
dependabot-preview[bot]
b01e4ab417
Bump phpstan/phpstan from 0.12.83 to 0.12.84 (#4189) 2021-04-21 18:49:08 +00:00
Dylan K. Taylor
fc01735b6f
Fixed infinite loop when placing two coral plants next to each other
the dead flag is not persisted in their metadata, so they forget their state when next read from the world.
2021-04-19 23:01:57 +01:00
Dylan K. Taylor
4e0bc6c98e
Scrub PHPStan baselines 2021-04-19 16:18:22 +01:00
Dylan K. Taylor
73f913e279
Modernize TesterPlugin 2021-04-19 14:16:05 +01:00
Dylan K. Taylor
dc51af8b66
changelog: mention CancelTaskException addition
[ci skip]
2021-04-19 14:00:54 +01:00
Dylan K. Taylor
94928c030a
Removed CancellableClosureTask 2021-04-19 14:00:23 +01:00
Covered123
9c1b4fd1cd
Added CancelTaskException (#4186) 2021-04-19 13:41:51 +01:00
Dylan K. Taylor
5872b2fe23
Merge remote-tracking branch 'origin/stable' 2021-04-19 13:32:15 +01:00
Dylan K. Taylor
177b963d8e
TaskScheduler: do not push cancelled repeating tasks back onto the queue 2021-04-19 13:23:31 +01:00
Dylan K. Taylor
66fdf526d4
Remove GarbageServerboundPacket
it's not the protocol implementation's job to decide what's garbage. It should only indicate that a packet MAY be sent by the client. It should then be up to the handler to decide what to do with it.
2021-04-19 01:07:21 +01:00
Dylan K. Taylor
6845cbb2b3
Silence LevelSoundEventPacket noise 2021-04-19 01:02:22 +01:00
Dylan K. Taylor
4f4069d403
World: remove another noisy debug message 2021-04-19 00:55:42 +01:00
Dylan K. Taylor
09a2402f01
Fixed precondition on double chunk send being useless
this is messy, but necessary for now.
2021-04-19 00:50:43 +01:00
Dylan K. Taylor
d19c21e2e1
Updated PHPStan baseline 2021-04-19 00:38:27 +01:00
Dylan K. Taylor
6d38922af0
Undo my -100IQ fuckup with chunk sending precondition
the commit I reverted put the preconditions in the completion handler,
which is executed AFTER THE CHUNK IS SENT.

Revert "NetworkSession: allow Player to handle its own business in chunk sending"

This reverts commit a223d1cbf3e8a9143383b6497f4d2d5d7ab3202a.
2021-04-19 00:36:13 +01:00
Dylan K. Taylor
35a3522b4e
Player: fixed chunks getting spammed like crazy during generation
because of the shitty way that the chunk resending is handled, it causes all kinds of problems with the async system because of potential reversions of the state during the process.
2021-04-19 00:30:34 +01:00
Dylan K. Taylor
0251359179
ChunkCache: remove outdated TODO comment
we don't set the entire chunk during lighting updates anymore, so updating light doesn't trigger onChunkChanged().
2021-04-19 00:20:03 +01:00
Dylan K. Taylor
b4afa46fad
Player: don't re-request chunks unless they've already been sent
if they've been requested, the ChunkCache will take care of rebuilding the chunk packet before sending it.
2021-04-18 23:53:34 +01:00
TheNewHEROBRINEX
8d1a1628de
Item: Remove "ench" tag when all enchantments are removed from an item (#4184)
fixes #4144
2021-04-18 20:56:07 +01:00
Dylan K. Taylor
129c638e29
Remove unused import 2021-04-18 20:33:49 +01:00
Dylan K. Taylor
caf3ec1b54
World: improve documentation of World::getPotentialBlockSkyLightAt() 2021-04-18 20:31:42 +01:00
Dylan K. Taylor
53ebe4f9f9
World: added getHighestAdjacentFullLightAt() 2021-04-18 20:20:08 +01:00
Dylan K. Taylor
51b0685881
World: document getFullLight() and getFullLightAt() 2021-04-18 20:14:16 +01:00
Dylan K. Taylor
f29ababf8d
World: Rearrange some light-related methods
these things are all over the place ...
2021-04-18 20:07:36 +01:00
Mohamed
5dfa6a2296
Fix dragon egg teleporting in creative (#4180)
closes #4179
2021-04-17 19:11:10 +01:00
Dylan K. Taylor
a32eb4ebc3
Implemented coral and coral fans
this implementation is very rough due to having to hack around lots more MCPE bullshit, and currently doesn't allow dynamic coral types; but it's there. We'll clean this up after 1.13 migration is done.
2021-04-17 02:04:10 +01:00
Dylan K. Taylor
d5e1b4bd39
Furnace: Separate light/extinguish code into onStartSmelting() and onStopSmelting() hooks
this is a preparation for other kinds of furnaces which might not be plain old Furnaces.
2021-04-17 01:36:16 +01:00
Dylan K. Taylor
9abdcd8ee5
shut 2021-04-16 21:45:22 +01:00
Dylan K. Taylor
01c3668375
ItemFactory: Check the bounds of durability, instead of trying to catch exceptions 2021-04-16 21:30:48 +01:00
Dylan K. Taylor
da51f106de
ItemFactory/BlockFactory: give more specific class descriptions
these classes both have a very specific purpose now, which is much lesser than it was in PM3.
2021-04-16 21:27:28 +01:00
Dylan K. Taylor
c979ab8aa0
Be more specific with documentation of ItemFactory::register() and BlockFactory::register() 2021-04-16 21:24:16 +01:00
Dylan K. Taylor
6071746993
Mark ItemFactory::get() and BlockFactory::get() as @deprecated 2021-04-16 21:16:27 +01:00
Dylan K. Taylor
81ced66bd0
BlockIdentifier: variant parameter of constructor is now mandatory 2021-04-16 20:14:29 +01:00
Dylan K. Taylor
8d2ee516f0
Merge branch 'stable' 2021-04-16 18:26:33 +01:00
Dylan K. Taylor
6f80b8979d
Particle: added some missing IDs 2021-04-16 18:20:47 +01:00
Dylan K. Taylor
b31b097b8e
LightPopulationTask no longer hard-depends on Server 2021-04-16 15:41:14 +01:00
Dylan K. Taylor
3c8eb29d4e
Limit blockitem metadata hack to just blockitems
for some reason putting NBT on some items makes the creative inventory go haywire. Sadly, we currently need this hack, so I limit it to only stuff which actually needs it (blockitems).
closes #4159
2021-04-16 00:41:19 +01:00
Dylan K. Taylor
b94bbf6f5e
Merge branch 'stable' of github.com:pmmp/PocketMine-MP into stable 2021-04-16 00:11:01 +01:00
Dylan K. Taylor
314a8a1297
protocol: updated particle type constants
closes #4173
2021-04-16 00:10:48 +01:00
Dylan K. Taylor
ebd19f5a70
SubChunkExplorer: Protect world field 2021-04-15 23:32:30 +01:00
Dylan K. Taylor
bf67170504
SubChunk: don't assume 15 sky light when not allocated
closes #2533
at long last...
2021-04-15 23:22:53 +01:00
Dylan K. Taylor
5d83f4670a
RegionLoader: Switch to using named constructors
this makes the code more self-descriptive, and also helps to detect potential bugs.
2021-04-15 21:57:23 +01:00
Dylan K. Taylor
e8dd4de5c8
SubChunk: Lazily allocate LightArrays as needed
this is slightly slower, but saves a significant amount of memory (~80 KB per chunk).
Since ext-chunkutils2 doesn't do copy-on-write trickery like the PHP impl did, we need this to get the memory advantages back.
2021-04-15 21:43:46 +01:00