476 Commits

Author SHA1 Message Date
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
1500668d4e imports cleanup 2020-07-25 19:21:22 +01:00
Dylan K. Taylor
5910905e95 PacketBatch::getPackets() may throw PacketDecodeException 2020-07-22 15:38:24 +01:00
Dylan K. Taylor
8402465fd2 PacketBatch is now immutable 2020-07-22 15:37:06 +01:00
Dylan K. Taylor
798efc370c PacketBatch: get rid of putPacket() 2020-07-22 15:24:08 +01:00
Dylan K. Taylor
2fcee432c1 NetworkSession: store Packet[] for buffering instead of PacketBatch
this reduces memory allocations for buffering (in theory).
2020-07-22 15:18:01 +01:00
Dylan K. Taylor
ed144a1709 remove unused imports 2020-07-21 19:29:12 +01:00
Dylan K. Taylor
93e6d7e1a2 thanks for nothing phpstorm 2020-07-21 19:23:30 +01:00
Dylan K. Taylor
bc52a38922 Improved network bandwidth data collection 2020-07-21 19:21:27 +01:00
Dylan K. Taylor
92afad5e6f Updated RakLib to pmmp/RakLib@6fbccdb6a7 2020-07-21 16:18:14 +01:00
Dylan K. Taylor
1ba32c98c7 protocol: avoid potential constructor refactoring packet decode bug
if the order of the constructor parameters were changed, it would cause these statements to be reordered, causing packet fields to be decoded in the wrong order.
2020-07-17 23:19:33 +01:00
Dylan K. Taylor
d9c3ec5f91 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
2020-07-11 20:14:42 +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
600ef033ab PlayerSkinPacket: added ::create() 2020-07-09 13:24:31 +01:00
Dylan K. Taylor
b22cc4875e Player: Accept NBT data in constructor, instead of asking for it from the server directly
this allows custom implementations to provide custom data to the constructor (or none at all).
2020-07-09 13:09:46 +01:00
Dylan K. Taylor
ad99dc5884 ChunkSerializer micro optimisation: reduce indirections when writing runtime IDs 2020-07-05 22:00:42 +01:00
Dylan K. Taylor
ae179e5039 fix interacting with anvil & enchanting table inventories 2020-07-04 23:46:26 +01:00
Dylan K. Taylor
d840e8c4d4 Merge commit 'a34f3261c'
# Conflicts:
#	resources/vanilla
#	src/event/entity/EntityExplodeEvent.php
#	src/pocketmine/event/block/SignChangeEvent.php
#	src/utils/Utils.php
2020-07-04 22:39:40 +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
172830fc44 Merge commit '8cf025a2d'
# Conflicts:
#	resources/vanilla
2020-07-04 22:20:42 +01:00
Dylan K. Taylor
e9eadd3a26 Merge commit '8480ee82e'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/Player.php
#	src/pocketmine/block/CraftingTable.php
2020-07-04 22:19:43 +01:00
Dylan K. Taylor
cf5e31c619 InventoryTransaction::execute() now throws exceptions instead of returning true/false 2020-07-01 14:08:28 +01:00
Dylan K. Taylor
30591d047c PacketBatch: added a getPackets() method which encapsulates some logic 2020-07-01 13:38:06 +01:00
Dylan K. Taylor
29612cded3 CraftingTransaction: make CraftingManager injectable
this becomes a bit easier to unit-test.
2020-07-01 13:38:06 +01:00
Dylan K. Taylor
670ad9eb9d Position: rename getWorldNonNull() to getWorld(), remove original getWorld() 2020-06-29 21:19:46 +01:00
Dylan K. Taylor
01d221b794 imports cleanup 2020-06-28 17:50:49 +01:00
Dylan K. Taylor
27511ac3ec updated network item ID constants 2020-06-28 17:37:51 +01:00
Dylan K. Taylor
74b0c411c4 regenerated network entity ID constants 2020-06-28 17:37:25 +01:00
Dylan K. Taylor
0d13a3fbdb NetworkSession: do not respond to death before player spawn, fixes #3513
there's a few changes that can be made to avoid this problem, the
primary one being to separate this API from NetworkSession and abstract
it away... but this is a reasonable, although not great, solution.
2020-06-28 17:35:12 +01:00
alvin0319
45b4e3cd7a
EmoteListPacket can be ServerboundPacket (#3635) 2020-06-27 10:04:23 +01:00
Dylan K. Taylor
9f323bc480 phpstorm, stop messing with my code pls 2020-06-26 22:25:09 +01:00
Dylan K. Taylor
0caf99445b Merge commit '4fed08bcd4655d7eec8d2cdf88950789f99ed2ee'
# Conflicts:
#	resources/vanilla
2020-06-26 22:21:49 +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
18f04d6d96 Merge commit '3ecae0db1964562a8a13346df3593744d2288b81'
# Conflicts:
#	resources/vanilla
2020-06-26 19:19:20 +01:00
Dylan K. Taylor
9887a8b778 Merge commit 'c5bbb2bcbc4ecc8bcfd9bfaefd27c1b51e482d77'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/Player.php
#	src/pocketmine/network/mcpe/protocol/InventoryTransactionPacket.php
2020-06-26 19:18:58 +01:00
Dylan K. Taylor
05bd92a94b Merge commit '60b26a7ea8939a85db9af0a99dd5a4b13e1a562d'
# Conflicts:
#	resources/vanilla
#	src/network/mcpe/protocol/serializer/PacketSerializer.php
2020-06-26 19:16:53 +01:00
Dylan K. Taylor
52fd1a8c1d CommandSender: export getLanguage()
this currently serves as a proxy to the server main language, but it can be used by third party implementations to choose a non-Server language.
2020-06-22 20:05:23 +01:00
Dylan K. Taylor
d38c17835d Properly switch to string entity IDs 2020-06-20 13:43:31 +01:00
Dylan K. Taylor
a988578ee0 protocol: move PotionType and PotionContainerChange recipes to types/recipe namespace 2020-06-20 11:43:47 +01:00
Dylan K. Taylor
d5db163208 protocol: added proper object wrappers for gamerules 2020-06-20 11:24:39 +01:00
Dylan K. Taylor
954e8e6e6f update pocketmine/math dependency 2020-06-19 11:33:10 +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
b3df5f4e95 CS: strip unneeded phpdoc 2020-06-18 20:01:49 +01:00
Dylan K. Taylor
11eb1f1c5e imports cleanup 2020-06-18 20:01:19 +01:00
Dylan K. Taylor
755e53cd71 JwtUtils: added a split() function to reduce code duplication 2020-06-18 12:05:54 +01:00
Dylan K. Taylor
222399d178 EncryptionContext: fix exception message 2020-06-18 11:52:05 +01:00
Dylan K. Taylor
95114dcc1e EncryptionContext: fixed a phpstan level 7 error (openssl_digest() might return false for god knows what reason) 2020-06-18 11:50:43 +01:00
Dylan K. Taylor
edc3156bea Rename NetworkCipher -> EncryptionContext 2020-06-18 11:37:53 +01:00
Dylan K. Taylor
82b3e3398b make more use of igbinary_serialize() and igbinary_unserialize() 2020-06-17 23:03:03 +01:00
Dylan K. Taylor
6f4d4be3da InGamePacketHandler: handle InvalidSkinException thrown by SkinAdapter::fromSkinData() 2020-06-17 22:31:44 +01:00