0604dfc9e5
phpstan 0.12.63
2020-12-18 00:32:55 +00:00
4d1be4d41d
McRegion: do not create a region file when trying to read a chunk that doesn't exist
...
fixes #3953
2020-12-07 18:44:49 +00:00
26155acff2
register HellBiome ( #3950 )
2020-12-04 11:58:49 +00:00
55e0d9c520
Properly time chunk loading and chunk sending on timings reports, closes #3895
2020-11-08 14:30:12 +00:00
6cff08cd65
Chunk: fixed hasChanged being set on fastDeserialize() chunks (caused by 2bb497b716
)
...
this caused some performance issues and silent bugs with the generator, notably that the generator would always think all chunks had been changed, causing them to be re-set back into the world 9 times.
2020-11-01 15:50:21 +00:00
fec42f16ba
Level: properly define type of generator field
2020-11-01 14:36:05 +00:00
c0dafe7872
Explosion: remove dead code
...
this was needed for the old ExplodePacket, which was removed a few versions back.
2020-10-29 13:32:56 +00:00
0f8101d4a6
McRegion: Ignore files which don't have a valid file extension
...
previously a file with a 4-letter name ending in 'mca' in the region folder of a PMAnvil world would cause the world format to be unrecognized. This happens because strrpos() returns false when the substring isn't found, which gets coerced to 0 when used in addition.
2020-10-24 11:15:07 +01:00
d084b7a34b
RegionGarbageMap: add an extra overlap check
...
this shouldn't ever be triggered, but we want to know if it does.
2020-09-12 01:38:13 +01:00
114df07622
RegionLoader: specify type of unpack() return
...
PHPStan has no idea what is going on in this code because unpack() returns mixed[].
Possibly it might be a good idea to implement a dynamic return type extension for this.
2020-09-11 20:48:37 +01:00
d2f1a3cf5b
SubChunk: workaround opcache preloading constant issue
...
non-class constants aren't stored during preloading phase and for some reason they aren't pre-resolved in opcode arrays. However, they are resolved by value when referenced by class constants, and class constants stick, so we can use those instead.
2020-09-04 17:53:22 +01:00
17bee5e349
Fixed crash when using strings for flatworld layers
...
I don't know why this didn't show up sooner.
2020-09-03 14:15:37 +01:00
09eb904f6b
fixed explicit-mixed errors exposed by upgrading pocketmine/nbt
2020-08-28 15:47:41 +01:00
e59a4296f8
LevelDB: fixed crash on corrupted level.dat
2020-08-22 19:36:22 +01:00
b53f88027e
Explosion: fixed blocks getting updated too early
...
this bug became painfully obvious when testing bamboo. Detonating TNT near tall bamboo canes would result in bamboo canes not deleting themselves in some circumstances, because the non-destroyed parts of the cane would be updated before their supporting block was deleted, and subsequently would not be re-updated afterwards.
I think this bug should also reproduce with cacti, but I have not tested.
2020-08-16 00:09:17 +01:00
e990c5a0a5
Protocol changes for 1.16.0
2020-06-26 14:06:41 +01:00
89521f166d
Explosion: account for multi-block structures, fixes #2767
2020-06-21 17:28:38 +01:00
b0b1b29de4
Chunk: specify list<int> for heightMap
2020-06-15 23:07:35 +01:00
f3063e797f
ChunkUtils: provide a more explicit parameter type
2020-06-15 23:05:52 +01:00
8dcc88712c
ChunkUtils: fixed phpstan level 7 type inference error
2020-06-15 23:04:12 +01:00
6a7b77fee2
first look at making region writes reuse old space
2020-06-15 18:36:54 +01:00
b902f9ded0
RegionLoader: fixed 2 phpstan level 7 errors (eof reading region header)
2020-06-15 15:09:37 +01:00
9bb8a8f761
RegionLoader: added utility function getProportionUnusedSpace()
2020-06-15 13:49:03 +01:00
63b14a083c
RegionLoader: added utility function generateSectorMap()
...
this proved very useful while debugging some internal issues.
2020-06-15 13:48:17 +01:00
627a7c951a
RegionLoader: added missing const import
2020-06-15 13:46:03 +01:00
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
d38709a7ae
RegionLoader: remove unused variable
2020-06-15 12:26:20 +01:00
b559a65346
RegionLoader: account for possible corrupted header pointing to itself
2020-06-15 12:13:42 +01:00
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
22f25dfbdb
RegionLocationTableEntry: require sector count to be at least 1
2020-06-15 12:05:48 +01:00
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
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
e05bee5ffb
RegionLoader: do a full check for chunk overlaps during initial load
2020-06-14 22:39:01 +01:00
d8d994351b
phpstan 0.12.29
2020-06-14 16:25:55 +01:00
df13e967fd
imports cleanup
2020-06-14 10:27:15 +01:00
7255065106
LevelDB: stop passing false to places where it's not expected
2020-06-10 10:45:54 +01:00
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
42e14f749e
Do not blanket-ban all inventory transactions in spectator mode, fixes #2627
...
instead, we cancel the appropriate events before they are called, so that plugins can uncancel them if they choose.
2020-05-31 16:32:06 +01:00
484557935e
Level: remove dead block placement code (player movements are now always processed immediately, just not immediately broadcasted)
2020-05-31 16:06:48 +01:00
22b5de09b4
added colours to EnchantParticle and InstantEnchantParticle, closes #3368
2020-05-18 20:00:51 +01:00
58e32086c0
Level: Updated TIME_* constants ( #3385 )
...
- Added Level::TIME_NOON
- Added Level::TIME_MIDNIGHT
- Changed values of Level::TIME_DAY and Level::TIME_NIGHT
2020-05-17 10:10:35 +01:00
8c0d441a13
Merge branch 'stable' into next-minor
2020-05-17 10:03:17 +01:00
f5a49b6d55
LightUpdate: improve quality of property type info
2020-05-17 09:33:18 +01:00
ad2a39bf13
Merge #3489 : fix spawn protection check for placement checking the wrong block, close #3488 , close #3489
2020-05-14 00:30:11 +01:00
8766d4050c
Merge branch 'stable' into next-minor
2020-05-13 13:18:55 +01:00
2f47597d75
BaseLevelProvider: stop crashing the server on invalid level.dat
...
broken userdata isn't a core bug, so it shouldn't be flooding our crash archives.
2020-05-11 15:34:53 +01:00
f87e96026c
Merge branch 'stable' into next-minor
2020-04-26 00:28:09 +01:00
d9b0e373bb
Populator: fix return type of populate()
2020-04-26 00:04:17 +01:00
8e1b3edd2c
Merge branch 'stable' into next-minor
2020-04-25 12:06:52 +01:00
34a3e0d8b1
Level: fix sneaking use-item logic (thanks @95CivicSi)
...
inspired by, but closes #3403
fixes #3401
fixes #2539
fixes #1904
2020-04-19 15:38:12 +01:00