55 Commits

Author SHA1 Message Date
Dylan K. Taylor
275f145418
BedrockData is now a Composer dependency
this should put a stop to people nagging me about incorrect blocks (we have a check to make sure composer dependencies are up to date).
2021-11-02 16:45:45 +00:00
Dylan K. Taylor
80b402e529
ItemTranslator: throw the proper exceptions when failing to map network IDs 2021-10-20 14:01:39 +01:00
Dylan K. Taylor
9b94a4661b
ItemTranslator: Use LegacyItemIdToStringMap instead of reading files directly 2021-10-11 22:17:40 +01:00
Dylan K. Taylor
e62794e4cf
TypeConverter: fixed PHPStan errors 2021-10-11 15:17:32 +01:00
Dylan K. Taylor
8ac16345a3
TypeConverter: account for items without properly mapped IDs
fixes #4459
2021-10-11 15:05:08 +01:00
Dylan K. Taylor
13178a47a5
fuck you git 2021-10-05 19:11:10 +01:00
Dylan K. Taylor
817ab88c70
Properly handle errors decoding network item NBT
since the NBT is now decoded immediately now, any incorrect NBT will cause exceptions to be thrown that we weren't handling, causing server crashes.
2021-10-05 19:10:55 +01:00
Dylan K. Taylor
4a787769bf
Merge branch 'stable' 2021-09-09 16:06:16 +01:00
Sensei Tarzan
1bbf739385
the function stringToLegacy gives already null useless to put a default null (#4338) 2021-07-31 16:54:31 +01:00
Dylan K. Taylor
1ad38d499c
Deglobalize ItemTypeDictionary usage, at least for the protocol
while this is a bit hacky outside of the protocol namespace, it makes it much easier to use the protocol library for alternative purposes, such as for a client or MITM proxy.
It also removes all but one remaining core dependency of the protocol library, making it very close to being able to be separated from the server core entirely.
2021-07-14 14:26:32 +01:00
Dylan T
32d7b1e6af
Start using webmozart/pathutil for joining paths (#4287) 2021-06-29 19:40:43 +01:00
Dylan K. Taylor
0910054c41
NetworkSession: Fixed InventoryManager nullability disaster
fixes #4277
fixes #4275
fixes #3139
2021-06-26 17:44:42 +01:00
Dylan K. Taylor
61c59be299
Replace hardcoded block metadata shifts and masks with constants
we might want to make these bigger than 4 bits in the future.
2021-06-16 12:48:09 +01:00
Dylan K. Taylor
2bbb24fab7
Merge branch 'stable' 2021-06-08 20:00:08 +01:00
Dylan K. Taylor
8171b18002
Separate ItemTypeDictionary implementation from initialization
we're not going to want implementation details like how it's setup getting in the way when we separate protocol from the core.
2021-05-29 14:24:05 +01:00
Dylan K. Taylor
593a8ac529
Added Loom blocks
these don't support doing patterns yet, but their inventories work.
2021-04-29 19:51:09 +01:00
Dylan K. Taylor
8d2ee516f0
Merge branch 'stable' 2021-04-16 18:26:33 +01:00
Dylan K. Taylor
1e6d97a157
Merge branch 'stable' 2021-04-07 21:25:39 +01:00
Dylan K. Taylor
7578bca006
Merge tag '3.18.2' 2021-04-07 19:41:57 +01:00
Dylan K. Taylor
25998720ce
Fixed server crash on invalid gamemode in SetPlayerGameTypePacket
this really ought to be detected at the decode layer, but right now that's a bit difficult ...
2021-03-28 21:11:07 +01:00
Dylan K. Taylor
6d622c4020
Merge branch 'stable' 2021-03-14 23:32:09 +00:00
Dylan K. Taylor
3fe0adbd7f
Merge branch 'stable' 2021-03-14 20:14:08 +00:00
Dylan K. Taylor
a5315991d5 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
#	src/network/mcpe/protocol/serializer/PacketSerializer.php
#	src/world/biome/Biome.php
#	tests/phpstan/configs/l8-baseline.neon
2020-12-05 01:30:39 +00:00
Dylan K. Taylor
af1fe7c293 Merge branch 'stable' 2020-11-21 21:13:48 +00:00
Dylan K. Taylor
f2bdbb0c35 TypeConverter: fix using singleton to get its own context
I guess this must have been refactored from some other class?...
2020-11-20 21:31:06 +00:00
Dylan K. Taylor
15a2fd6e4f LegacySkinAdapter: check return value of json_encode() for resource patch 2020-10-08 21:42:07 +01:00
Dylan K. Taylor
01b44ab0bc protocol: moved skin data types to their own namespace 2020-10-08 21:20:57 +01:00
Dylan K. Taylor
3b4e9eea96 RuntimeBlockMapping: drop useless doc comment 2020-09-25 17:43:00 +01:00
Dylan K. Taylor
5661d0496f RuntimeBlockMapping::toRuntimeId() now accepts a single integer instead of id/meta
the expectation is that eventually this will receive arbitrary internal runtime IDs instead of static id/meta, and RuntimeBlockMapping doesn't really care about this crap anyway.
2020-09-20 12:16:11 +01:00
Dylan K. Taylor
1525001565 protocol ItemStack: added equals() method to compare net itemstacks directly
this will be needed for more than just this little check once item NBT gets cleaned out properly, since we'll need to compare object equality by network layer stuff instead of internals (where different network objects might deserialize to the same internal items).
2020-08-02 23:22:39 +01:00
Dylan K. Taylor
279abb871d Remove all usages of CompoundTag->hasTag()
in pretty much every case, these usages really wanted to read the tag's contents anyway, which can be combined with a getTag() and instanceof call for more concise and static analysis friendly code.
In the few cases where the tag contents wasn't needed, it still wanted to check the type, which, again, can be done in a more static analysis friendly way by just using getTag() and instanceof.
2020-07-10 21:01:43 +01:00
Dylan K. Taylor
ae179e5039 fix interacting with anvil & enchanting table inventories 2020-07-04 23:46:26 +01:00
Dylan K. Taylor
c35a596079 Merge commit '8ce0022de'
# Conflicts:
#	resources/vanilla
#	src/network/mcpe/protocol/types/inventory/NetworkInventoryAction.php
2020-07-04 22:34:01 +01:00
Dylan K. Taylor
7e6adc41f0 Merge 1.16 support into PM4 (with changes) 2020-06-26 22:21:09 +01:00
Dylan K. Taylor
64e9647334 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
#	src/network/mcpe/convert/LegacySkinAdapter.php
#	tests/phpstan/configs/check-explicit-mixed-baseline.neon
#	tests/phpstan/configs/phpstan-bugs.neon
2020-06-19 10:48:27 +01:00
Dylan K. Taylor
e6a3f7baa2 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/Player.php
2020-06-17 22:23:17 +01:00
Dylan K. Taylor
a686840e5e RuntimeBlockMapping: fixed palette cache never being initialized
I must have been very tired when I wrote this code
2020-06-17 21:33:56 +01:00
Dylan K. Taylor
333ed8ed2f RuntimeBlockMapping: remove unnecessary nullable flag 2020-06-17 21:32:51 +01:00
Dylan K. Taylor
465285b3c2 do not rely on GameMode::getMagicNumber() to match protocol IDs 2020-06-13 12:26:17 +01:00
Dylan K. Taylor
570a709059 Merge commit '3ec2994d7f05f30e2519430379ae0f3106be5074'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/Player.php
2020-05-20 19:52:03 +01:00
Dylan K. Taylor
07f979fbde RuntimeBlockMapping: bedrockKnownStates is never null 2020-05-18 17:54:27 +01:00
Dylan K. Taylor
6b037d6a4c RuntimeBlockMapping: these IDs are not static any more 2020-05-11 12:40:55 +01:00
Dylan K. Taylor
dbd51610c3 TypeConverter: use SingletonTrait 2020-05-05 19:22:20 +01:00
Dylan K. Taylor
f9a587d40e imports cleanup 2020-04-28 17:27:38 +01:00
Dylan K. Taylor
a97cafd4f6 moving serializers into protocol namespace 2020-04-27 13:54:39 +01:00
Dylan K. Taylor
0397204c68 network/mcpe: imports cleanup 2020-04-27 12:56:28 +01:00
Muqsit Rayyan
b1eff87ad1
fix incorrect conversion of CreateItemAction, close #3436 (#3437) 2020-04-25 10:21:40 +01:00
Dylan K. Taylor
a75241ef03 RuntimeBlockMapping: use SingletonTrait 2020-04-24 21:32:47 +01:00
Dylan K. Taylor
3a42c21cc1 wrap up block_id_map in a class 2020-04-24 21:28:27 +01:00
Dylan K. Taylor
ff915b829c StartGamePacket: remove hardcoded cache, move to RuntimeBlockMapping 2020-04-24 20:50:56 +01:00