Dylan K. Taylor
4ade7b6225
added CoralType enum
2020-11-14 16:24:13 +00:00
Dylan K. Taylor
06efad94b6
Separated metadata handling from PillarRotationTrait
2020-11-14 16:21:50 +00:00
Dylan K. Taylor
7469f28f24
Server: rename getPlayer() to getPlayerByPrefix()
...
closes #3910
the existing naming was misleading, and many plugin devs assumed that it returns an exact match. However, this is not guaranteed, and it's possible for two different players to match the same prefix.
- There is no defined behaviour for what happens when multiple players can equally match a prefix (e.g. 'fr' could match 'fred' or 'frog' equally, because the name lengths are the same)
- A prefix might match a different player at a different time (e.g. 'fr' could match 'freddie' before 'fred' joins, after which it will match 'fred' instead)
With these flaws in mind, it's better to break compatibility on this to make the intent more clear, and to make plugin developers reassess their usages of this method. In most non-command use cases, they should likely be using getPlayerExact() instead.
2020-11-14 15:49:41 +00:00
Dylan K. Taylor
8e0cba56b8
Merge remote-tracking branch 'origin/stable'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/entity/Entity.php
# src/pocketmine/tile/Tile.php
# tests/phpstan/configs/check-explicit-mixed-baseline.neon
# tests/phpstan/configs/l7-baseline.neon
2020-11-12 22:10:47 +00:00
Dylan K. Taylor
e30b1ee2c7
Clean up entity and tile saveID handling
...
we only ever need the first entry, so there's no point storing all of them. In addition, the field is private, which guarantees that nothing else needs the array either.
This also fixes phpstan/phpstan@c50650c5dd .
2020-11-12 21:49:12 +00:00
Dylan K. Taylor
0d9561c93f
Removed crafting data cache from CraftingManager
2020-11-12 21:30:59 +00:00
Dylan K. Taylor
31089ce3b2
Timings: added broadcastPackets timer
...
the body of this function is potentially very expensive and isn't currently recorded by any timer.
2020-11-12 17:53:07 +00:00
Dylan K. Taylor
afbef242c6
bootstrap: remove useless phpdoc
2020-11-12 17:12:08 +00:00
Dylan K. Taylor
5efd0eba13
Imports cleanup
2020-11-12 17:11:34 +00:00
Dylan K. Taylor
c4d35d52e8
Do not store a pre-compressed cache for crafting data
...
this reduces bandwidth efficiency because it can't be compressed with everything else this way. If we want to cache stuff sent during the login sequence, it's better to stuff a bunch of stuff into a batch (e.g. crafting, creative, actor ids, biome defs) and pre-compress that as one big package instead.
2020-11-11 18:20:03 +00:00
Dylan K. Taylor
d08c9ee634
Merge remote-tracking branch 'origin/stable'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/VersionInfo.php
2020-11-10 22:44:59 +00:00
Dylan K. Taylor
574b7f6343
3.15.5 is next
2020-11-10 16:48:18 +00:00
Dylan K. Taylor
e8b6b56330
Release 3.15.4
2020-11-10 16:48:18 +00:00
Dylan K. Taylor
c368ebb5e7
InventoryTransaction: beware of conflicting slot change actions with the same origin/target
...
these types of chains would never normally occur, but they've been seen in the wild. Attempting to resolve such chains has exponentially increasing complexity.
2020-11-10 16:45:20 +00:00
Dylan K. Taylor
75f2f12b99
NetworkSession: rename some badly-named hooks
2020-11-10 15:01:48 +00:00
Dylan K. Taylor
e23379c34b
EncryptionContext: provide the packet ID in the exception message
2020-11-10 14:45:19 +00:00
Dylan K. Taylor
6a266bcbd1
Separated XUID stuff from PlayerInfo into its own XboxLivePlayerInfo
2020-11-10 14:25:08 +00:00
Dylan K. Taylor
463bc044df
Rename PluginLoadOrder -> PluginEnableOrder
...
this more accurately describes its real purpose.
2020-11-09 20:28:08 +00:00
Dylan K. Taylor
6cf875ca3a
Item: rename onActivate() to onInteractBlock()
2020-11-09 19:33:13 +00:00
Dylan K. Taylor
8c480ffab9
Player: fix a few more cases of held-item getting trashed after some events
2020-11-09 19:31:48 +00:00
Dylan K. Taylor
e573226025
ItemStack: fixed phpstan failure
2020-11-09 19:10:02 +00:00
Dylan K. Taylor
2bcb398db9
ItemStack: added jsonSerialize
2020-11-09 19:05:00 +00:00
Dylan K. Taylor
66955d4b99
World: make loadChunk() more useful, drop useless proxy function getOrLoadChunk()
2020-11-09 13:41:46 +00:00
Dylan K. Taylor
3c6a64f91b
Fixed armour equipment logic, close #3896
...
this isn't perfect because the client expects to be the boss here and is also inconsistent.
2020-11-09 13:32:12 +00:00
Dylan K. Taylor
4e91009492
Armor: fixed equipping when right-clicking air instead of a block
...
this action (which is more accurately referred to as 'activate item' or 'use item' in other areas) always fires on right-click when holding any item, whether aiming at a block or not.
2020-11-09 12:47:36 +00:00
Dylan K. Taylor
3bf87378ef
Merge branch 'stable'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/VersionInfo.php
# src/pocketmine/level/LevelTimings.php
2020-11-08 19:44:30 +00:00
Dylan K. Taylor
a421d32273
3.15.4 is next
2020-11-08 14:48:31 +00:00
Dylan K. Taylor
6c21c23444
Release 3.15.3
2020-11-08 14:48:31 +00:00
Dylan K. Taylor
55e0d9c520
Properly time chunk loading and chunk sending on timings reports, closes #3895
2020-11-08 14:30:12 +00:00
Dylan K. Taylor
f43d20b47a
Move attribute net sync to NetworkSession
2020-11-08 14:15:11 +00:00
Dylan K. Taylor
64afb6f2e2
Move responsibility of firing chunk requests from World to NetworkSession
...
this is, after all, all about sending chunks ...
2020-11-08 14:14:43 +00:00
Dylan K. Taylor
4ae7efbfbc
[ci skip] add some documentation to Player internals
2020-11-08 14:03:30 +00:00
Dylan K. Taylor
ffff0a6244
NetworkSession: remove obsolete TODO
2020-11-08 14:03:30 +00:00
David
b059e0b475
Item: fixed wrong tag being removed during serialization of custom name ( #3894 )
2020-11-07 01:25:37 +00:00
Dylan K. Taylor
beb6a50883
Merge remote-tracking branch 'origin/stable'
...
# Conflicts:
# composer.lock
# resources/vanilla
# src/pocketmine/Player.php
# tests/phpstan/configs/runtime-type-checks.neon
2020-11-06 13:18:49 +00:00
Dylan K. Taylor
e6348bbd34
Entity: do not assume that save IDs are always strings
...
this is only the first of many changes needed to make entity savedata fully format-agnostic, but it's a start.
2020-11-06 13:05:17 +00:00
Dylan K. Taylor
37ee3f2775
Player: fixed orderChunks performance issue on newly-generated maps
...
every time a chunk passed through Level->generateChunkCallback(), it fired onChunkChanged() for chunk listeners, which in turn caused players to rerun chunk orders even though the target chunk had not been sent yet anyway.
2020-11-05 16:17:39 +00:00
Dylan K. Taylor
4b46549cd1
fix PHPStan failure
...
setDirtyFlag has a void return type, so PHPStan assumes it's non-pure and invalidates the type info.
2020-11-05 14:35:23 +00:00
Dylan K. Taylor
058a3b3fa6
relocate some world-specific logic from Chunk to World
2020-11-05 14:28:36 +00:00
Dylan K. Taylor
8762d44506
World: skip lighting updates on chunks which are not yet light populated
2020-11-04 17:50:16 +00:00
Dylan K. Taylor
72ace3951e
InGamePacketHandler: fixed crafting table breaking when clicked while sneaking
2020-11-03 22:56:20 +00:00
Dylan K. Taylor
142102a054
ItemFactory: remap bucket:9 and bucket:11 to their appropriate counterparts
2020-11-03 19:44:57 +00:00
Dylan K. Taylor
518a7827a6
BlockFactory: make slab registration slightly less awful to look at
2020-11-03 19:28:32 +00:00
Dylan K. Taylor
32929925aa
Block: added a bunch of state manipulation APIs
2020-11-03 19:13:32 +00:00
Dylan K. Taylor
0a8dc3edd3
Fixed users of ColorInMetadataTrait having uninitialized default colours
2020-11-03 18:42:40 +00:00
Dylan K. Taylor
bcedbc364b
BlockDataSerializer: added methods to read/write coral facing
2020-11-03 18:41:12 +00:00
Dylan K. Taylor
a05f67bc77
Position::fromObject() world parameter is now mandatory (although still nullable)
2020-11-03 14:33:26 +00:00
Dylan K. Taylor
5cc2a9c3dd
World: rename getChunkAtPosition() to getOrLoadChunkAtPosition()
...
this more accurately reflects what it does.
2020-11-03 14:12:47 +00:00
Dylan K. Taylor
bd78d0bff8
Player: added getItemCooldownExpiry()
2020-11-03 14:11:28 +00:00
Dylan K. Taylor
2e9b2d4aae
World: fixed false unload events firing on chunk replacement when tiles and entities are deleted
2020-11-01 17:41:58 +00:00