mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-03 16:49:53 +00:00
Merge branch 'legacy/pm4' into stable
This commit is contained in:
commit
78f5fbddf3
@ -49,3 +49,14 @@ Released 1st August 2023.
|
|||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
- Fixed exponentially increasing lag when many hundreds of non-mergeable dropped items occupied the same space. This disproportionately affected SkyBlock servers due to large cactus farms using water to collect items together.
|
- Fixed exponentially increasing lag when many hundreds of non-mergeable dropped items occupied the same space. This disproportionately affected SkyBlock servers due to large cactus farms using water to collect items together.
|
||||||
|
|
||||||
|
# 4.23.5
|
||||||
|
Released 9th August 2023.
|
||||||
|
|
||||||
|
## General
|
||||||
|
- Updated translation data to [pmmp/Language 2.19.6](https://github.com/pmmp/Language/releases/tag/2.19.6).
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- Fixed `PluginBase->saveResource()` leaking file resources when the data file already exists in the plugin's data folder. This bug existed since 2014 and was only discovered recently.
|
||||||
|
- Fixed coral blocks becoming dead after calling `getDropsForCompatibleTool()` on them.
|
||||||
|
- Fixed `BlockDeathEvent->getOldState()` returning a block which is already dead.
|
||||||
|
@ -46,7 +46,7 @@ abstract class BaseCoral extends Transparent{
|
|||||||
|
|
||||||
public function onScheduledUpdate() : void{
|
public function onScheduledUpdate() : void{
|
||||||
if(!$this->dead && !$this->isCoveredWithWater()){
|
if(!$this->dead && !$this->isCoveredWithWater()){
|
||||||
$ev = new BlockDeathEvent($this, $this->setDead(true));
|
$ev = new BlockDeathEvent($this, (clone $this)->setDead(true));
|
||||||
$ev->call();
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$this->position->getWorld()->setBlock($this->position, $ev->getNewState());
|
$this->position->getWorld()->setBlock($this->position, $ev->getNewState());
|
||||||
|
@ -55,7 +55,7 @@ final class CoralBlock extends Opaque{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!$hasWater){
|
if(!$hasWater){
|
||||||
$ev = new BlockDeathEvent($this, $this->setDead(true));
|
$ev = new BlockDeathEvent($this, (clone $this)->setDead(true));
|
||||||
$ev->call();
|
$ev->call();
|
||||||
if(!$ev->isCancelled()){
|
if(!$ev->isCancelled()){
|
||||||
$world->setBlock($this->position, $ev->getNewState());
|
$world->setBlock($this->position, $ev->getNewState());
|
||||||
@ -65,7 +65,7 @@ final class CoralBlock extends Opaque{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getDropsForCompatibleTool(Item $item) : array{
|
public function getDropsForCompatibleTool(Item $item) : array{
|
||||||
return [$this->setDead(true)->asItem()];
|
return [(clone $this)->setDead(true)->asItem()];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isAffectedBySilkTouch() : bool{
|
public function isAffectedBySilkTouch() : bool{
|
||||||
|
@ -226,19 +226,19 @@ abstract class PluginBase implements Plugin, CommandExecutor{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$out = Path::join($this->dataFolder, $filename);
|
||||||
|
if(file_exists($out) && !$replace){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if(($resource = $this->getResource($filename)) === null){
|
if(($resource = $this->getResource($filename)) === null){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$out = Path::join($this->dataFolder, $filename);
|
|
||||||
if(!file_exists(dirname($out))){
|
if(!file_exists(dirname($out))){
|
||||||
mkdir(dirname($out), 0755, true);
|
mkdir(dirname($out), 0755, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(file_exists($out) && !$replace){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$fp = fopen($out, "wb");
|
$fp = fopen($out, "wb");
|
||||||
if($fp === false) throw new AssumptionFailedError("fopen() should not fail with wb flags");
|
if($fp === false) throw new AssumptionFailedError("fopen() should not fail with wb flags");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user