Dylan K. Taylor
f3063e797f
ChunkUtils: provide a more explicit parameter type
2020-06-15 23:05:52 +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
6a7b77fee2
first look at making region writes reuse old space
2020-06-15 18:36:54 +01: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
d8d994351b
phpstan 0.12.29
2020-06-14 16:25:55 +01:00
Dylan K. Taylor
df13e967fd
imports cleanup
2020-06-14 10:27:15 +01:00
Dylan K. Taylor
7255065106
LevelDB: stop passing false to places where it's not expected
2020-06-10 10:45:54 +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
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
Dylan K. Taylor
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
Dylan K. Taylor
22b5de09b4
added colours to EnchantParticle and InstantEnchantParticle, closes #3368
2020-05-18 20:00:51 +01:00
XenialDan
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
Dylan K. Taylor
8c0d441a13
Merge branch 'stable' into next-minor
2020-05-17 10:03:17 +01:00
Dylan K. Taylor
f5a49b6d55
LightUpdate: improve quality of property type info
2020-05-17 09:33:18 +01:00
Kevin
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
Dylan K. Taylor
8766d4050c
Merge branch 'stable' into next-minor
2020-05-13 13:18:55 +01:00
Dylan K. Taylor
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
Dylan K. Taylor
f87e96026c
Merge branch 'stable' into next-minor
2020-04-26 00:28:09 +01:00
Dylan K. Taylor
d9b0e373bb
Populator: fix return type of populate()
2020-04-26 00:04:17 +01:00
Dylan K. Taylor
8e1b3edd2c
Merge branch 'stable' into next-minor
2020-04-25 12:06:52 +01:00
Dylan K. Taylor
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
Dylan K. Taylor
619a9892e5
RCON: properly handle potential errors during socket setup
2020-04-16 01:29:28 +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
604900d4c5
Merge branch 'stable' into next-minor
2020-04-14 01:38:01 +01:00
Dylan K. Taylor
ec949840b2
Do not crash on failure to decompress region chunks
...
this could happen when a chunk was partially overwritten with one of the same sector size.
2020-04-01 21:30:25 +01:00
Dylan K. Taylor
f8ce01e2fd
ItemFactory: extract fromStringSingle() from fromString()
...
on PM4, the multiple functionality is removed, but on PM3 this is a problem for phpstan.
2020-03-13 17:54:25 +00:00
Dylan K. Taylor
b8caf34e62
Merge branch 'stable' into next-minor
2020-03-10 12:45:00 +00:00
Dylan K. Taylor
167492087f
Chunk: specify expected bounds for Y coordinates
2020-03-10 12:33:53 +00:00
Dylan K. Taylor
dbaf851be7
Merge branch 'stable' into next-minor
2020-02-27 16:51:06 +00:00
Dylan K. Taylor
8ac7f7f11f
Level: fix type of randomTickBlocks and friends
2020-02-17 15:13:40 +00:00
Dylan K. Taylor
2bb497b716
Chunk: flag hasChanged when changing generated/populated/light-populated flags
2020-02-11 08:26:12 +00:00
Dylan K. Taylor
613bd40601
PopulationTask: move setPopulated() call to make it more obvious what is going on
2020-02-10 18:22:19 +00:00
Dylan K. Taylor
398b636759
PopulationTask: fixed chunks being generated empty in flat worlds
...
the flat generator just clones a pregenerated chunk instead of modifying the provided chunks, which means that the references that population task has would be the outdated ones.
2020-02-10 18:21:08 +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
da3742b39e
Remove useless typecasts
2020-02-06 16:00:57 +00:00
Dylan K. Taylor
812424a619
GroundCover: drop useless variable in calculating startY
2020-02-06 14:26:03 +00:00
Dylan K. Taylor
1bdc61dd5f
Ore: do not destroy outer scope vars in for loops
2020-02-06 14:24:57 +00:00
Dylan K. Taylor
86fc33fe26
Level: add phpstan generics to getNearestEntity()
2020-02-06 14:20:19 +00:00