11951 Commits

Author SHA1 Message Date
Dylan K. Taylor
d2130265f8 Merge commit '8dcc88712c6b8a4d4a0c6be2f6b908ae85378209'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/level/format/io/ChunkUtils.php
#	tests/phpstan/configs/l7-baseline.neon
2020-06-17 20:42:28 +01:00
Dylan K. Taylor
921aa091e0 Merge commit '04191ec44a00dd058f5d7e9e315d451e44285494'
# Conflicts:
#	resources/vanilla
#	tests/phpstan/configs/l7-baseline.neon
2020-06-17 20:40:12 +01:00
Dylan K. Taylor
14d3e5ce27 Merge commit '62ea7c93a9ba1e71bef868efefdd9cc6dcc84a08'
# Conflicts:
#	resources/vanilla
#	src/entity/Skin.php
#	src/item/InvalidSkinException.php
2020-06-17 20:34:19 +01:00
Dylan K. Taylor
09909f7af8 Merge commit 'cf06b5b8cffb4ee3a4c1e88b7be9e35fca74a89e' 2020-06-17 19:20:53 +01:00
Dylan K. Taylor
6d63c9bf43 Merge commit 'a8ec51daacaef9113b17e3fc79c0bdcaf1c99df9' 2020-06-17 19:20:30 +01:00
Dylan K. Taylor
57908586bd more jsonmapper models for login 2020-06-17 19:10:27 +01:00
Dylan K. Taylor
4bb93eeca7 updated composer dependencies 2020-06-17 14:32:57 +01:00
Dylan K. Taylor
506f98efc4 Eliminate usages of BaseNbtSerializer->readCompressed() and BaseNbtSerializer->writeCompressed() 2020-06-17 14:31:56 +01:00
Dylan K. Taylor
3cdf808da1 NetworkNbtSerializer: do not assume that this format is related to the disk little-endian format 2020-06-17 13:55:29 +01:00
Dylan K. Taylor
76e15016a2 updated composer dependencies 2020-06-17 13:51:14 +01:00
Dylan K. Taylor
c618932d25 Eliminate usages of BinaryStream->setBuffer() and BinaryStream->reset() 2020-06-17 13:49:43 +01:00
Dylan K. Taylor
893f7cb6ef fix crash whn player joins in spectator mode 2020-06-17 12:39:54 +01:00
Dylan K. Taylor
9c46a1f141 Rename Packet->getBinaryStream() -> Packet->getSerializer() 2020-06-17 11:33:59 +01:00
Dylan K. Taylor
6c096c44aa Rename NetworkBinaryStream -> PacketSerializer 2020-06-17 11:31:13 +01:00
Dylan K. Taylor
c6557f0222 protocol: added a FixedItemIds class (this is fully auto-generated, unlike the one provided by the API)
this may be different from the IDs exposed on the API and shouldn't be used for anything outside the protocol.

TODO: we need to review the dynamicness of item numeric IDs and find out if it's possible for them to change based on StartGamePacket content. If they can, we might need to change this.
2020-06-17 11:06:26 +01:00
Dylan K. Taylor
8dcc88712c ChunkUtils: fixed phpstan level 7 type inference error 2020-06-15 23:04:12 +01:00
Dylan K. Taylor
04191ec44a Rail: specify type for local static variable
fixes a phpstan level 7 error
phpstan doesn't make any assumptions about local static variable types because analysing them would require too much work, apparently.
2020-06-15 22:47:20 +01:00
Dylan K. Taylor
a381fc8848 sync composer dependencies 2020-06-15 22:24:44 +01:00
Dylan K. Taylor
62ea7c93a9 added a dedicated InvalidSkinException 2020-06-15 21:48:24 +01:00
Dylan K. Taylor
cf06b5b8cf Player: explicitly check for false return of dataPacket()
fixes a phpstan error on l7
this won't ever actually be a problem, but this isn't obvious from the type system.
2020-06-15 21:24:19 +01:00
Dylan K. Taylor
a8ec51daac Player: do not assign maybe-false result of json_encode() to ModalFormRequestPacket
fixes a phpstan error on l7
2020-06-15 21:22:33 +01:00
Dylan K. Taylor
3294075aad LoginPacketHandler: use double quotes consistently
the mixture of single quotes and double quotes makes PHPStan type inference quietly not work, and reports an error here in checkExplicitMixed mode.
2020-06-15 20:31:09 +01:00
Dylan K. Taylor
7d73630fb7 Merge branch 'stable'
# Conflicts:
#	resources/vanilla
#	src/world/format/io/region/RegionGarbageMap.php
#	src/world/format/io/region/RegionLoader.php
#	tests/phpstan/configs/l7-baseline.neon
#	tests/phpunit/world/format/io/region/RegionLocationTableEntryTest.php
2020-06-15 20:10:15 +01:00
Dylan K. Taylor
6a7b77fee2 first look at making region writes reuse old space 2020-06-15 18:36:54 +01:00
dependabot-preview[bot]
da42c8d020
Bump phpunit/phpunit from 9.2.2 to 9.2.3 (#3588) 2020-06-15 16:30:50 +00:00
Dylan K. Taylor
b902f9ded0 RegionLoader: fixed 2 phpstan level 7 errors (eof reading region header) 2020-06-15 15:09:37 +01:00
Dylan K. Taylor
9bb8a8f761 RegionLoader: added utility function getProportionUnusedSpace() 2020-06-15 13:49:03 +01:00
Dylan K. Taylor
63b14a083c RegionLoader: added utility function generateSectorMap()
this proved very useful while debugging some internal issues.
2020-06-15 13:48:17 +01:00
Dylan K. Taylor
627a7c951a RegionLoader: added missing const import 2020-06-15 13:46:03 +01:00
Dylan K. Taylor
bb2685ca65 RegionLocationTableEntry: cap firstSector at 16777216
this is the biggest sector start that the location table can represent, due to the binary format. Larger values than this will overflow and cause corruption.
This provides an effective limit of 64 GB on region files.
2020-06-15 13:23:08 +01:00
Dylan K. Taylor
d38709a7ae RegionLoader: remove unused variable 2020-06-15 12:26:20 +01:00
Dylan K. Taylor
b559a65346 RegionLoader: account for possible corrupted header pointing to itself 2020-06-15 12:13:42 +01:00
Dylan K. Taylor
b92a2ded8a RegionLoader: check for zero sector count when loading location table
implementations shouldn't be writing location entries that have an offset but zero sectors, but just in case they do, we need to be aware of it.
2020-06-15 12:08:55 +01:00
Dylan K. Taylor
22f25dfbdb RegionLocationTableEntry: require sector count to be at least 1 2020-06-15 12:05:48 +01:00
Dylan K. Taylor
6bf840c72e RegionLoader: use actual null instead of zeroed entry for non-allocated chunks
this forces the code to be properly aware of non-allocated chunks, because it'll crash with NPE if it isn't.
2020-06-15 12:02:03 +01:00
Dylan K. Taylor
745be19a56 RegionLoader: fixed regions ballooning when writing chunks to the end of file
we already have a region growth problem due to the lack of garbage collection, but this bug was making it worse. If the region already contained 1024 allocated chunks, 4MB of file space would get wasted before the next chunk would be appended to the file.
2020-06-14 23:40:33 +01:00
Dylan K. Taylor
e05bee5ffb RegionLoader: do a full check for chunk overlaps during initial load 2020-06-14 22:39:01 +01:00
Dylan K. Taylor
a39fbe600d Merge branch 'stable'
# Conflicts:
#	phpstan.neon.dist
#	resources/vanilla
2020-06-14 20:03:02 +01:00
Dylan K. Taylor
087ba0cc1d phpstan: update config to use new 0.12.26+ options 2020-06-14 19:57:36 +01:00
Dylan K. Taylor
f55a7f8b53 Merge commit 'd8d994351'
# Conflicts:
#	composer.lock
#	resources/vanilla
#	tests/phpstan/configs/l7-baseline.neon
2020-06-14 19:47:21 +01:00
Dylan K. Taylor
13031967f4 Merge commit '0029efa37'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/Server.php
2020-06-14 19:36:50 +01:00
Dylan K. Taylor
9ce531fef4 (master) imports cleanup 2020-06-14 19:29:33 +01:00
Dylan K. Taylor
7d5607e72c Merge commit 'df13e967f' 2020-06-14 19:28:20 +01:00
Dylan K. Taylor
d0c8d64b40 Merge commit '097c260db'
# Conflicts:
#	resources/vanilla
#	src/item/enchantment/Enchantment.php
#	src/plugin/PluginDescription.php
#	src/pocketmine/entity/Effect.php
#	src/pocketmine/item/ItemFactory.php
#	src/pocketmine/plugin/PluginManager.php
2020-06-14 19:28:05 +01:00
Dylan K. Taylor
d8d994351b phpstan 0.12.29 2020-06-14 16:25:55 +01:00
Dylan K. Taylor
0029efa370 Server: add getPlayerDataPath(), reduce logic duplication 2020-06-14 12:40:24 +01:00
Eren A. Akyol
5f79071e4c
Registry Trait: fixed magic methods not working properly when system locale is tr_TR (#3580)
Fixed incorrect case of incorrect letters on operating systems using languages other than English. Like (Stair => STAİR)
2020-06-14 11:48:15 +01:00
Dylan K. Taylor
df13e967fd imports cleanup 2020-06-14 10:27:15 +01:00
Dylan K. Taylor
097c260dbb Eradicate all usages of strtoupper()
strtoupper() is an evil function whose behaviour depends on the system locale. mb_strtoupper() has more consistent behaviour.
2020-06-13 19:47:00 +01:00
Dylan K. Taylor
5f0f5236f8 RegistryTrait: fix crash when child classes don't define getAll() 2020-06-13 18:34:23 +01:00