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
a381fc8848
sync composer dependencies
2020-06-15 22:24:44 +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
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
5c16261374
Merge branch 'stable'
2020-06-13 11:59:05 +01:00
Dylan K. Taylor
f0669b7770
Merge commit '710c16260'
...
# Conflicts:
# resources/vanilla
# src/network/query/QueryInfo.php
2020-06-13 11:59:00 +01:00
Dylan K. Taylor
5a8633f6c0
Merge commit '409c8c170'
...
# Conflicts:
# resources/vanilla
2020-06-13 11:57:58 +01:00
Dylan K. Taylor
3bf47e33f0
Merge commit '376926c70'
...
# Conflicts:
# resources/vanilla
# src/command/defaults/TimingsCommand.php
2020-06-13 11:57:31 +01:00
Dylan K. Taylor
fab46f159b
Merge commit 'c3fabe833'
2020-06-13 11:56:26 +01:00
Dylan K. Taylor
430806cab3
Merge commit '3e09ff535'
...
# Conflicts:
# resources/vanilla
# src/block/tile/EnchantTable.php
2020-06-13 11:56:11 +01:00
Dylan K. Taylor
0d186fe42c
Merge commit '725506510'
...
# Conflicts:
# resources/vanilla
# src/pocketmine/level/format/io/leveldb/LevelDB.php
2020-06-13 11:55:10 +01:00
Dylan K. Taylor
dba059d8da
Merge commit 'a7f10d8cc'
...
# Conflicts:
# resources/vanilla
2020-06-13 11:52:17 +01:00
Dylan K. Taylor
70ca12bb90
Merge commit 'fcc9e62c6'
...
# Conflicts:
# resources/vanilla
# src/network/mcpe/protocol/types/command/CommandEnum.php
# src/pocketmine/Player.php
2020-06-13 11:49:52 +01:00
Dylan K. Taylor
ee6b980b98
Merge commit '42613618a'
...
# Conflicts:
# phpstan.neon.dist
# resources/vanilla
2020-06-13 11:46:39 +01:00
Dylan K. Taylor
f3271a0d19
Merge commit '1bbeb6245'
...
# Conflicts:
# composer.lock
# resources/vanilla
2020-06-13 11:44:44 +01:00
Dylan K. Taylor
fe1b5d2d01
Merge commit '3d50aafcc'
...
# Conflicts:
# resources/vanilla
# src/crafting/ShapedRecipe.php
2020-06-13 11:30:44 +01:00
Dylan K. Taylor
4208192aa2
Merge commit '50fed4164'
...
# Conflicts:
# resources/vanilla
2020-06-13 11:29:39 +01:00
Dylan K. Taylor
69aa6a51b4
Merge commit '3f971a0c6'
...
# Conflicts:
# resources/vanilla
# tests/phpstan/configs/l7-baseline.neon
2020-06-13 11:29:12 +01:00
Dylan K. Taylor
da3ba1e2b2
Merge commit 'a27b29897'
...
# Conflicts:
# resources/vanilla
2020-06-13 11:28:03 +01:00
Dylan K. Taylor
2a9498a4f9
Merge commit 'a90132a30'
...
# Conflicts:
# resources/vanilla
2020-06-13 11:22:18 +01:00
Dylan K. Taylor
d82264fe60
Merge commit 'dfbd85777'
...
# Conflicts:
# resources/vanilla
# src/VersionInfo.php
2020-06-13 11:21:43 +01:00