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
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
167492087f
Chunk: specify expected bounds for Y coordinates
2020-03-10 12:33:53 +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
e1ddf90695
Chunk: remove useless instanceof checks
...
these are always CompoundTags, and if they aren't we have a bug somewhere else.
2020-02-05 20:44:27 +00:00
Dylan K. Taylor
fa82cb26d8
added native types to closures (phpstan-strict-rules)
2020-02-05 16:35:10 +00:00
Dylan K. Taylor
99038c752c
Avoid usage of for-loop vars outside of for-loop context
...
these problems were reported by PHPStan strict rules. They aren't actually bugs, but they could become bugs in the future.
2020-02-05 13:16:09 +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
0a566f8218
LevelProvider::generate() accepts class-string<Generator>, not any
...
string
2020-02-01 20:16:05 +00:00
Dylan K. Taylor
799183e13e
make use of phpstan class-string in some areas
2020-01-30 22:23:11 +00:00
Dylan K. Taylor
260ac47588
add some phpstan array types
2020-01-30 22:23:11 +00:00
Dylan K. Taylor
a5764b3ae9
populate missing array value types in level namespace
2020-01-30 21:01:59 +00:00
Dylan K. Taylor
64b3d02974
Chunk: remove useless condition from populateSkyLight()
...
this was detected by latest bleeding-edge PHPStan.
2020-01-29 16:42:42 +00:00
Dylan K. Taylor
f624871b3f
strip extra blank lines (php-cs-fixer)
2020-01-22 14:50:29 +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
5334099fbf
level/format: populate missing return type information
2020-01-19 19:36:34 +00:00
Dylan K. Taylor
82e9072223
level/format/io: populate missing return type information
2020-01-19 19:35:45 +00:00
Dylan K. Taylor
17720041a3
phpdoc: populate missing parameter typeinfo
2020-01-11 21:53:24 +00:00
Dylan K. Taylor
c329ff7d4f
SubChunk: remove nonsensical reference from internal function
2020-01-11 21:49:33 +00:00
Dylan K. Taylor
8794292788
remove &$var reference notations in phpdoc
...
this isn't required by the spec and PHPStan chokes on it. I was previously having it ignore these errors, but it turns out that PHPStan is not making use of extended typeinfo provided if it can't parse the tag, which is problematic on level 6 and also a problem for array-of-type. Therefore, we are going to have to take the hit.
2020-01-11 21:20:55 +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
e6a58e2690
format/leveldb: fix crash on truncated level.dat file
2020-01-08 09:55:03 +00:00
Dylan K. Taylor
494660102e
Replace empty() usages with count()
2019-12-18 11:23:24 +00:00
Dylan K. Taylor
cf73d74bd0
format/anvil: fixed possible type violation on saving chunk
2019-12-12 18:24:21 +00:00
Dylan K. Taylor
37a8d95464
world IO: fixed crashes when garbage data found in tile/entity NBT data
2019-12-12 18:21:23 +00:00
Dylan K. Taylor
b8778cb791
LevelProvider: fix doc comment of ::generate()
...
this raised false positives on phpstan level 4
2019-12-12 11:59:12 +00:00
Dylan K. Taylor
7e98aa1497
leveldb: remove usage of multi-import statement
...
this doesn't conform to the code style.
2019-12-09 20:28:02 +00:00
Dylan K. Taylor
17037f5e9c
Chunk: clean up nonsensical code in initChunk()
...
I have no idea why the extra check was there, or why the null assignment was used, because it doesn't make any sense.
2019-12-01 21:14:23 +00:00
Dylan K. Taylor
447477c5fb
RegionLoader: Write location table changes when deleting chunks
2019-10-20 20:54:46 +01:00
Dylan K. Taylor
abdbb2bf0e
backport 3f6660027: RegionLoader: Extract location table validation to separate function
2019-10-20 20:53:47 +01:00
Dylan K. Taylor
783c13926f
backport f2404804d: RegionLoader: clean up lastSector handling
2019-10-20 20:48:29 +01:00
Dylan K. Taylor
45329ddf67
backport 07a9c35ee: RegionLoader: Use objects instead of arrays
2019-10-20 20:42:55 +01:00
Dylan K. Taylor
20af789963
backport 3e58708130d9a77c261b3a1355fa2e0163a5c7c6: Add some missing @throws annotations
2019-10-20 20:23:51 +01:00
Dylan K. Taylor
93cb9390e0
RegionLoader: backport 62185d476bc2463be6de20604cd4ef83733dcce2
2019-10-20 19:59:02 +01:00
Dylan K. Taylor
04e4a36653
LevelDB: remove unnecessary \pocketmine\NAME dependency
...
this is non-obvious and makes it a pain the ass to use outside of PM.
2019-10-17 18:56:51 +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
c58a1bf9b7
Protocol changes for 1.12.0.28
2019-07-12 19:00:15 +01:00
Dylan K. Taylor
562179bdd6
Backport 58cafc853f2caa013c65d98ab56f13ac3abe521c: s/level/world (strings only)
...
we should look at doing this for code too, but for now I'm not planning to break everyone's plugins.
2019-03-10 11:35:46 +00:00
Dylan K. Taylor
414104851a
LevelDB: Mark chunks as changed when upgraded from an older chunk format
2019-03-09 19:02:34 +00:00
Dylan K. Taylor
d25c84acff
Fixed RegionLoader corrupting location table when too-large chunks are discovered
...
this was making the location table point to an offset that did not yet exist, which caused the region header consistency check to discard the region as corrupted the next time it was loaded.
2019-03-05 12:09:27 +00:00
Dylan K. Taylor
55994e08db
RegionLoader: make some error messages more detailed
2019-03-05 11:18:02 +00:00
Dylan K. Taylor
6f5d4d6b80
RegionLoader: fixed handling of invalid chunk coordinates
2019-03-05 10:52:36 +00:00
Dylan K. Taylor
41fd7545e3
RegionLoader: Account for unexpected EOF when reading chunks, closes #2676
2019-01-19 15:49:19 +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
3f5e83a322
Backport 23954c4cda739190cb79295eeb78859c5c329be0 to 3.5 branch
2018-12-29 16:39:56 +00:00
Dylan K. Taylor
cd80ae00d4
Handle errors properly on chunk load
...
Only CorruptedChunkException and UnsupportedChunkFormatException are expected. Anything else should crash the server.
2018-12-29 16:37:10 +00:00
Dylan K. Taylor
beb5d72299
RegionLoader: fix off-by-one bug with large chunks, closes #2615
2018-12-29 00:02:54 +00:00
Dylan K. Taylor
75df6973df
LevelDB: Account for 2D maps tag being missing
...
I don't know why this would be missing, but in some cases it is, as seen in the crash archive. Whatever the case, we shouldn't be shitting the bed because of this.
2018-12-22 13:13:14 +00:00
Dylan K. Taylor
449dda83fb
Merge branch 'release/3.3' into release/3.4
2018-11-22 16:48:57 +00:00