Compare commits

..

3 Commits

3 changed files with 18 additions and 3 deletions

View File

@ -25,3 +25,6 @@ Plugin developers should **only** update their required API to this version if y
# 3.25.3
- Fixed crash when players try to pickup XP while already having max XP.
- Added a sanity check to `Human->setCurrentTotalXp()` to try and catch an elusive bug that's been appearing in the wild - please get in touch if you know how to reproduce it!
# 3.25.4
- Fixed a long-standing issue with `Player->removeWindow()` breaking inventory UIs on the client.

View File

@ -3124,10 +3124,22 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
$this->removeWindow($this->windowIndex[$packet->windowId]);
$this->closingWindowId = null;
//removeWindow handles sending the appropriate
return true;
}else{
/*
* TODO: HACK!
* If we told the client to remove a window on our own (e.g. a plugin called removeWindow()), our
* first ContainerClose tricks the client into behaving as if it itself asked for the window to be closed.
* This means that it will send us a ContainerClose of its own, which we must respond to the same way as if
* the client closed the window by itself.
* If we don't, the client will not be able to open any new windows.
*/
$pk = new ContainerClosePacket();
$pk->windowId = $packet->windowId;
$pk->server = false;
$this->sendDataPacket($pk);
}
return false;
return true;
}
public function handleAdventureSettings(AdventureSettingsPacket $packet) : bool{

View File

@ -33,7 +33,7 @@ if(defined('pocketmine\_VERSION_INFO_INCLUDED')){
const _VERSION_INFO_INCLUDED = true;
const NAME = "PocketMine-MP";
const BASE_VERSION = "3.25.3";
const BASE_VERSION = "3.25.4";
const IS_DEVELOPMENT_BUILD = false;
const BUILD_NUMBER = 0;
const BUILD_CHANNEL = "stable";