Dylan K. Taylor
3d50aafcc4
ShapedRecipe: remove a curly-brace array-access that nothing noticed
2020-06-06 11:12:45 +01:00
Dylan K. Taylor
3be83e09f2
Revert BC-breaking backport from b38c81c96
...
this can't be applied to a minor version because it places additional requirements on the Inventory contract.
2020-06-01 13:51:36 +01:00
Dylan K. Taylor
f24be2b055
Merge branch 'stable' into next-minor
...
# Conflicts:
# src/pocketmine/Player.php
# src/pocketmine/block/SnowLayer.php
2020-06-01 13:42:59 +01:00
Dylan K. Taylor
2dc3cf8162
InventoryTransaction: sync inventories before throwing validation exception to caller
...
fixes #3226
really the transaction shouldn't be handling inventory sync at all, but that's a job for another commit.
2020-05-31 20:10:29 +01:00
Dylan K. Taylor
a2543ff80d
Position: add getLevelNonNull()
...
this allows assuming that a position has a valid world in places where it's never expected to not be valid. Since this is the vast majority of usages, it eliminates a lot of possible null-pointer warnings given by static analysers.
TODO: Consider whether we can make Position->getLevel/World use this behaviour out of the box in the next major version.
2020-04-14 11:08:37 +01:00
Dylan K. Taylor
b8caf34e62
Merge branch 'stable' into next-minor
2020-03-10 12:45:00 +00:00
Dylan K. Taylor
456d9a722a
reduce some doc comments to single line
2020-03-10 12:36:19 +00:00
Dylan K. Taylor
dbaf851be7
Merge branch 'stable' into next-minor
2020-02-27 16:51:06 +00:00
Dylan K. Taylor
53067c26d7
BaseInventory: stop mutating item for no reason in canAddItem()
2020-02-25 20:30:37 +00:00
Dylan K. Taylor
15b76a24b7
scrub useless phpdoc
2020-02-10 12:21:07 +00:00
Dylan K. Taylor
f08e411cad
Merge branch 'stable' into next-minor
2020-02-10 11:40:08 +00:00
Dylan K. Taylor
4e693e91e6
ChestInventory: document that getHolder() may return Position
...
there is a variance issue with EnderChestInventory that was detected by phpstan-strict-rules which can't be addressed without a BC break. This fix will at least allow static analysers to be aware that code using this function might catch fire when it sees an EnderChestInventory without realizing it.
2020-02-06 19:33:34 +00:00
Dylan K. Taylor
70eb41470c
ContainerInventory: remove redundant check
2020-02-06 14:19:33 +00:00
Dylan K. Taylor
e5a2cfb65f
avoid type juggling in conditions, always use explicit boolean conditions
2020-02-05 15:44:06 +00:00
Dylan K. Taylor
3f7e7352fb
added SplFixedArray generics for phpstan 0.12.9
2020-02-05 11:57:37 +00:00
Dylan K. Taylor
4c36ca58e2
populate missing array value types in inventory namespace
2020-01-30 20:53:41 +00:00
Dylan K. Taylor
640df1003c
add some Generator generics for PHPStan
2020-01-29 16:38:50 +00:00
Dylan K. Taylor
f624871b3f
strip extra blank lines (php-cs-fixer)
2020-01-22 14:50:29 +00:00
Dylan K. Taylor
9f44adf04a
pass 2, manual removal of incorrect non-nullable @param for nullable native types
2020-01-21 15:44:34 +00:00
Dylan K. Taylor
c4793241f5
Mass removal of useless @param/@return PHPDoc annotations, pass 1
2020-01-21 15:10:18 +00:00
Dylan K. Taylor
36cde9f352
inventory: populate missing return type information
2020-01-19 17:05:31 +00:00
Dylan K. Taylor
1eedac87b2
added missing @var property types (reported by phpstan)
2020-01-09 14:13:54 +00:00
Dylan K. Taylor
494660102e
Replace empty() usages with count()
2019-12-18 11:23:24 +00:00
Dylan K. Taylor
870c66d1fe
Merge branch 'stable' into next-minor
2019-12-12 18:29:04 +00:00
Dylan K. Taylor
9a4b72add5
PlayerInventory: fix type violation when calling equipItem() for non-Player holder
2019-12-12 16:31:22 +00:00
Dylan K. Taylor
1a467420e3
Merge branch 'stable' into next-minor
2019-12-12 13:07:02 +00:00
Dylan K. Taylor
73c5fe5cf9
BaseInventory: correctly annotate content type of slots field
...
fixes warnings on phpstan level 4
2019-12-12 11:58:11 +00:00
Dylan K. Taylor
9a67192f74
Merge branch 'stable' into next-minor
2019-12-03 10:45:51 +00:00
Dylan K. Taylor
fee3c17148
CraftingManager: fixed type doc of craftingDataCache field
2019-12-01 21:06:34 +00:00
Dylan K. Taylor
1a1e3ff63b
BaseInventory: fixed incorrect & redundant default value for slots field
2019-12-01 19:45:16 +00:00
Dylan K. Taylor
0591458ef6
Merge branch 'stable' into next-minor
2019-10-22 18:49:22 +01:00
Dylan K. Taylor
20af789963
backport 3e58708130
: Add some missing @throws annotations
2019-10-20 20:23:51 +01:00
Dylan K. Taylor
bb048fb361
Merge branch 'stable' into next-minor
2019-07-26 19:50:17 +01:00
Dylan K. Taylor
622f93df45
remove usages of deprecated {} string access, closes #3035
2019-07-22 16:39:33 +01:00
Dylan K. Taylor
b38c81c96f
backport f84a1729c
: Inventory: added swap() function
2019-06-16 16:35:34 +01:00
Dylan K. Taylor
4e5a80c481
Recipe: deprecate interface
2019-06-16 14:12:49 +01:00
Dylan K. Taylor
4d54dc30c1
crafting: deprecate some stuff that's been removed on bleeding edge
2019-06-16 14:11:08 +01:00
Dylan K. Taylor
6161155660
CraftingManager: micro optimization: reuse closure for item deserialize & reduce indirection
2019-06-16 14:05:37 +01:00
Dylan K. Taylor
2a5561fcd1
added more MultiRecipe UUIDs
2019-06-15 19:51:59 +01:00
Dylan K. Taylor
b6f3f6120b
InventoryTransaction: Shuffle actions on execution to prevent plugins relying on the order
...
closes #2955
2019-06-10 17:24:16 +01:00
Dylan K. Taylor
96d3f4f78b
Updated documentation for transaction classes
2019-06-10 17:19:03 +01:00
Dylan K. Taylor
6756203aec
InventoryTransaction: Added a warning about ordering
2019-06-10 16:54:45 +01:00
Dylan K. Taylor
80f8a27094
Fixed implicit dependency on MobArmorEquipmentPacket field ordering
...
the order of the slots is entirely dependent on Mojang whims, so we shouldn't let our internals rely on it.
2019-06-04 18:16:56 +01:00
Dylan K. Taylor
86c4e936cb
Player now drops the contents of temporary inventories
...
these inventories are just glorified crafting tables.
2019-04-26 12:27:52 +01:00
Dylan K. Taylor
898009a91b
Sync crafting data changes
...
this seems to fix #2881 , at least the reproducing case that was given.
2019-04-25 16:22:12 +01:00
Dylan K. Taylor
fa70127241
1.11.0 protocol changes
2019-04-24 19:54:16 +01:00
Dylan K. Taylor
ab5b4d112b
BaseInventory: fixed items with userdata stacking with items without userdata
2019-03-03 11:12:36 +00:00
Dylan K. Taylor
4b9a142a5d
Import global functions and constants for enhanced performance
...
This is better for performance because these then don't need to be reevaluated every time they are called.
When encountering an unqualified function or constant reference, PHP will first try to locate a symbol in the current namespace by that name, and then fall back to the global namespace.
This short-circuits the check, which has substantial performance effects in some cases - in particular, ord(), chr() and strlen() show ~1500x faster calls when they are fully qualified.
However, this doesn't mean that PM is getting a massive amount faster. In real world terms, this translates to about 10-15% performance improvement.
But before anyone gets excited, you should know that the CodeOptimizer in the PreProcessor repo has been applying fully-qualified symbol optimizations to Jenkins builds for years, which is one of the reasons why Jenkins builds have better performance than home-built or source installations.
We're choosing to do this for the sake of future SafePHP integration and also to be able to get rid of the buggy CodeOptimizer, so that phar and source are more consistent.
2019-01-04 20:43:15 +00:00
Dylan K. Taylor
d71a543d10
Fixed a bunch of things PHPStan finds unpalatable
...
close #2614 , fix a bunch of docs bugs, fix sendCreativeContents() crash on Human holders, move some inline variable declarations
2019-01-04 00:23:09 +00:00
Dylan K. Taylor
93dd05a03e
Fixed ender chest sounds, closes #2611
2018-12-26 22:33:51 +00:00