mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 16:24:05 +00:00
Merge branch 'staging/4.1' into next-minor
This commit is contained in:
commit
95bc013e97
5
.github/dependabot.yml
vendored
5
.github/dependabot.yml
vendored
@ -6,3 +6,8 @@ updates:
|
||||
interval: daily
|
||||
time: "10:00"
|
||||
open-pull-requests-limit: 10
|
||||
|
||||
- package-ecosystem: gitsubmodule
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit bd329dba08242b6ecb99ef7fbf9a0031dcbbb3ff
|
||||
Subproject commit 30eed13faaa8995814b1ada426b7e947f891ee3c
|
@ -1627,3 +1627,21 @@ Released 25th January 2022.
|
||||
## Fixes
|
||||
- Fixed ender chest not dropping itself when mined with a Silk Touch pickaxe.
|
||||
- The correct amount of fall damage is now taken when falling from a height onto hay bales.
|
||||
|
||||
# 4.0.9
|
||||
Released 5th February 2022.
|
||||
|
||||
## Fixes
|
||||
### Core
|
||||
- The spawn chunk of the default world is no longer loaded during shutdown. Previously, it would attempt to find a safe spawn to teleport players to, only to unload the target world of that safe spawn and not use it.
|
||||
- The spawn chunk of the default world is no longer loaded when unloading a non-default world containing zero players.
|
||||
- Fixed chunk version `8` in Bedrock worlds being treated as corrupted. These appeared in worlds between 1.2.13 and 1.8.0.
|
||||
|
||||
### API
|
||||
- Added missing bounds check to `Liquid->setDecay()`.
|
||||
- Fixed `StringToItemParser` returning concrete instead of concrete powder when given `<color>_concrete_powder`.
|
||||
|
||||
### Gameplay
|
||||
- Cobwebs now drop themselves when broken using shears.
|
||||
- Fixed spectator players being able to drop items.
|
||||
- Fixed collision shapes of Bell in different orientations.
|
||||
|
@ -49,7 +49,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock($prefix("bed"), fn() => VanillaBlocks::BED()->setColor($color));
|
||||
$result->registerBlock($prefix("carpet"), fn() => VanillaBlocks::CARPET()->setColor($color));
|
||||
$result->registerBlock($prefix("concrete"), fn() => VanillaBlocks::CONCRETE()->setColor($color));
|
||||
$result->registerBlock($prefix("concrete_powder"), fn() => VanillaBlocks::CONCRETE()->setColor($color));
|
||||
$result->registerBlock($prefix("concrete_powder"), fn() => VanillaBlocks::CONCRETE_POWDER()->setColor($color));
|
||||
$result->registerBlock($prefix("stained_clay"), fn() => VanillaBlocks::STAINED_CLAY()->setColor($color));
|
||||
$result->registerBlock($prefix("stained_glass"), fn() => VanillaBlocks::STAINED_GLASS()->setColor($color));
|
||||
$result->registerBlock($prefix("stained_glass_pane"), fn() => VanillaBlocks::STAINED_GLASS_PANE()->setColor($color));
|
||||
|
@ -61,7 +61,7 @@ class EncryptionContext{
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an EncryptionContext suitable for decrypting Minecraft packets from 1.16.200 and up.
|
||||
* Returns an EncryptionContext suitable for decrypting Minecraft packets from 1.16.220.50 (protocol version 429) and up.
|
||||
*
|
||||
* MCPE uses GCM, but without the auth tag, which defeats the whole purpose of using GCM.
|
||||
* GCM is just a wrapper around CTR which adds the auth tag, so CTR can replace GCM for this case.
|
||||
|
@ -106,7 +106,6 @@ class ZippedResourcePack implements ResourcePack{
|
||||
}
|
||||
|
||||
$mapper = new \JsonMapper();
|
||||
$mapper->bExceptionOnUndefinedProperty = true;
|
||||
$mapper->bExceptionOnMissingData = true;
|
||||
|
||||
try{
|
||||
|
@ -153,16 +153,18 @@ class WorldManager{
|
||||
}
|
||||
|
||||
$this->server->getLogger()->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_unloading($world->getDisplayName())));
|
||||
try{
|
||||
$safeSpawn = $this->defaultWorld !== null ? $this->defaultWorld->getSafeSpawn() : null;
|
||||
}catch(WorldException $e){
|
||||
$safeSpawn = null;
|
||||
}
|
||||
foreach($world->getPlayers() as $player){
|
||||
if($world === $this->defaultWorld || $safeSpawn === null){
|
||||
$player->disconnect("Forced default world unload");
|
||||
}else{
|
||||
$player->teleport($safeSpawn);
|
||||
if(count($world->getPlayers()) !== 0){
|
||||
try{
|
||||
$safeSpawn = $this->defaultWorld !== null && $this->defaultWorld !== $world ? $this->defaultWorld->getSafeSpawn() : null;
|
||||
}catch(WorldException $e){
|
||||
$safeSpawn = null;
|
||||
}
|
||||
foreach($world->getPlayers() as $player){
|
||||
if($safeSpawn === null){
|
||||
$player->disconnect("Forced default world unload");
|
||||
}else{
|
||||
$player->teleport($safeSpawn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,6 +263,7 @@ class LevelDB extends BaseWorldProvider implements WritableWorldProvider{
|
||||
case 11: //MCPE 1.11.0.1 beta (???)
|
||||
case 10: //MCPE 1.9 (???)
|
||||
case 9: //MCPE 1.8 (???)
|
||||
case 8: //MCPE 1.2.13 (paletted subchunks)
|
||||
case 7: //MCPE 1.2 (???)
|
||||
case 6: //MCPE 1.2.0.2 beta (???)
|
||||
case 4: //MCPE 1.1
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 39510af5bcf19eef3b3157c8c51d88a736811591
|
||||
Subproject commit e884a4c234629126203e769df7c4dbbbc0dc2d49
|
Loading…
x
Reference in New Issue
Block a user