Dylan K. Taylor
927f129c6e
Fixed borked world loading
2023-12-06 14:41:19 +00:00
Dylan K. Taylor
53a740433f
Changes for 1.20.40
2023-10-26 12:32:59 +01:00
Dylan K. Taylor
6553852d99
Updated for 1.20.30 release
2023-09-20 18:34:12 +01:00
Dylan K. Taylor
3afe3b7f44
Merge branch 'stable' into minor-next
2023-07-24 12:02:24 +01:00
Dylan K. Taylor
86810c5e1c
LevelDB: clearer error message
2023-07-19 16:31:10 +01:00
Dylan K. Taylor
b33a9690e9
LevelDB: simplify condition
2023-07-19 16:30:13 +01:00
Dylan K. Taylor
1b9c282194
LevelDB: tolerate incorrect number of biome palettes, as long as there are enough for each real subchunk
...
modern versions save 24 exactly, but previous versions saved more. We don't use the excess, so it's not a problem if they are missing, but this is nonetheless non-compliant with vanilla.
2023-07-19 16:29:14 +01:00
Dylan K. Taylor
82b75e0ccb
LevelDB: Remove happy debug message
2023-07-19 15:21:47 +01:00
Dylan K. Taylor
6c59912ed5
LevelDB: workaround 0 bpb palettes with a length prefix
...
this was caused by a plugin overriding the world provider.
related:
- https://github.com/pmmp/PocketMine-MP/issues/5911
- https://github.com/Refaltor77/CustomItemAPI/issues/68
fixes #5911
2023-07-19 15:19:33 +01:00
Dylan K. Taylor
537721fe7d
Replace Closure::fromCallable() usages with first-class callables
...
PHP 8.1 <3
2023-07-19 13:34:42 +01:00
Dylan K. Taylor
b7210755a7
1.20.10
2023-07-12 13:39:39 +01:00
Dylan K. Taylor
3abd592b1f
Update to pmmp/BedrockBlockUpgradeSchema@3.0.0
2023-07-03 18:07:51 +01:00
Dylan K. Taylor
eb9f804781
ÂBedrockWorldData: throw less confusing errors on missing version tags
2023-06-19 12:22:50 +01:00
Dylan K. Taylor
9a67e3d660
PM5-specific changes for 1.20.0.23 beta
2023-06-07 21:08:41 +01:00
Dylan K. Taylor
8744032ab6
Fixed empty block handling after blockstate ID XOR change
2023-05-29 18:26:23 +01:00
Dylan K. Taylor
5a9cdef40c
Chunk: added DIRTY_FLAGS_ALL and DIRTY_FLAGS_NONE
2023-05-29 17:45:19 +01:00
Dylan K. Taylor
a49842278a
WorldProvider subsystem no longer depends on Chunk
...
Instead, it provides the data needed to construct the chunk, which doesn't require the provider to be aware of anywhere near as much logic.
2023-05-29 17:44:00 +01:00
Dylan K. Taylor
ce5e663a73
Assume chunks are dirty by default
...
having them be clean by default makes no sense. It only makes sense for them to be clean if they were loaded directly from disk without any alterations.
Default clean is a footgun.
2023-05-29 17:22:39 +01:00
Dylan K. Taylor
c10be0f346
WorldProvider: allow loadChunk() to return additional information about the loaded chunk data
...
this will be needed for dealing with #5733 . I don't plan to fix that before 5.0, but we need to make the appropriate BC breaks now, before release.
2023-05-29 17:03:39 +01:00
Dylan K. Taylor
f5a1a0c9cb
ÂInsert PM data version into blockstates, chunks, entities, tiles and level.dat
...
this information will allow us to correct for any bugs introduced by past versions.
however, we still need to propagate this information to permit actually using it when loading data.
2023-05-29 16:32:24 +01:00
Dylan K. Taylor
6beb80b8fe
Fixed usages of BlockDataUpgrader which weren't accounting for thrown exceptions
2023-05-02 17:13:31 +01:00
Dylan K. Taylor
4d0cecbac2
RegionWorldProvider: use provider logger instead of global logger
2023-05-02 16:47:25 +01:00
Dylan K. Taylor
5fcf5e0c40
LevelDB: log more stuff, stop bailing on recoverable errors
2023-05-02 16:46:45 +01:00
Dylan K. Taylor
f29e2f7110
WorldProviders now accept Loggers
2023-05-02 15:41:11 +01:00
Dylan K. Taylor
d80f65ae7c
BedrockWorldData: do not load worlds with a newer NetworkVersion than we support
...
often, protocol updates are done without consideration for the current world format version. We don't want to require the world support to be updated at the same time, since this might delay updates.
2023-05-01 17:53:08 +01:00
Dylan K. Taylor
096daef0d0
World: added setDisplayName()
...
this is an obvious use case, and I'm not really sure why it wasn't supported sooner.
2023-05-01 16:29:07 +01:00
Dylan K. Taylor
b3e94ef1dc
Chunk: update documentation
2023-05-01 14:46:30 +01:00
Dylan K. Taylor
a8dec1adb1
PM5-specific changes for 1.19.80
2023-04-26 23:30:56 +01:00
Dylan K. Taylor
6cace51a21
Remove unused variable
2023-04-13 12:47:17 +01:00
Dylan K. Taylor
6703f46a08
Remove random dead TODOs
2023-04-13 12:47:08 +01:00
Dylan K. Taylor
c3a2199f0e
Reduce global usage in world providers
2023-04-13 12:05:37 +01:00
Dylan K. Taylor
4ba4d556ed
Tidy up world version related things
...
I decided to scrap the max schema ID stuff, since it just adds extra places to forget updating. Instead, it's better to use minor version locks and version metadata, as we do for BedrockData and BedrockProtocol.
2023-03-14 23:27:16 +00:00
Dylan K. Taylor
777b4d6ac3
PM5-specific updates for 1.19.70
2023-03-14 18:50:04 +00:00
Dylan K. Taylor
8933064cd5
Fixed missing blockstate upgrader
2023-03-06 17:02:33 +00:00
Dylan K. Taylor
da5302ca86
BlockStateData: introduce and use current()
2023-02-02 16:21:50 +00:00
Dylan K. Taylor
6b7a4e2c41
Split up ItemDataUpgrader (preparing for code backport)
2023-02-02 16:08:49 +00:00
Dylan K. Taylor
e9b994cbc3
Allow limiting max schema ID loaded for item ID upgrading
2023-02-02 15:29:45 +00:00
Dylan K. Taylor
0e15a8698a
BlockStateUpgrader: do not use blockstate version to manage internal schemas
...
these are no longer reliable.
2023-02-01 22:35:59 +00:00
Dylan K. Taylor
0a3ecfdae9
Clean up terminology around block state IDs and their handling
2023-01-25 19:01:15 +00:00
Dylan K. Taylor
7314151c47
LevelDB: code cleanup
2023-01-17 22:47:43 +00:00
Dylan K. Taylor
7abfc46567
First look at 3D biome support
2023-01-17 21:41:30 +00:00
Dylan K. Taylor
8fd4918429
Use Filesystem::fileGetContents() in more places
2022-12-25 18:26:53 +00:00
Dylan K. Taylor
c89df7eb1c
Merge remote-tracking branch 'origin/next-minor' into next-major
2022-12-25 18:22:13 +00:00
Dylan K. Taylor
0d169b4e80
Filesystem: added fileGetContents to reduce ErrorToExceptionHandler boilerplate code
2022-12-25 17:13:51 +00:00
Dylan K. Taylor
9809909072
BedrockWorldData: remove unused custom fields
2022-12-19 15:06:06 +00:00
Dylan K. Taylor
de3af9e660
Fix CS
2022-12-19 15:02:59 +00:00
Dylan K. Taylor
a30c649607
BedrockWorldData: enable commands by default
2022-12-19 14:59:55 +00:00
Dylan K. Taylor
d7ebabd771
Fixed the client asking to upgrade PM-generated worlds
2022-12-19 14:56:04 +00:00
Dylan K. Taylor
be1087c071
Accept worlds from 1.19.40 and up
2022-12-19 14:55:24 +00:00
Dylan K. Taylor
b27c47335c
JavaWorldData: remove Bedrock-compatible hacks
...
we don't need these, since we don't write to Java world formats anymore anyway.
2022-12-19 13:43:28 +00:00