Added LevelUnloadEvent

This commit is contained in:
Shoghi Cervantes
2014-07-06 00:06:03 +02:00
parent 81492acb0c
commit cbbdb42092
3 changed files with 46 additions and 0 deletions

View File

@ -31,6 +31,7 @@ use pocketmine\entity\Entity;
use pocketmine\event\block\BlockBreakEvent;
use pocketmine\event\block\BlockPlaceEvent;
use pocketmine\event\level\LevelSaveEvent;
use pocketmine\event\level\LevelUnloadEvent;
use pocketmine\event\level\SpawnChangeEvent;
use pocketmine\event\player\PlayerInteractEvent;
use pocketmine\item\Item;
@ -268,9 +269,19 @@ class Level implements ChunkManager, Metadatable{
* @return bool
*/
public function unload($force = false){
$ev = new LevelUnloadEvent($this);
if($this === $this->server->getDefaultLevel() and $force !== true){
$ev->setCancelled(true);
}
$this->server->getPluginManager()->callEvent($ev);
if($ev->isCancelled()){
return false;
}
$this->server->getLogger()->info("Unloading level \"" . $this->getName() . "\"");
$this->nextSave = PHP_INT_MAX;
$defaultLevel = $this->server->getDefaultLevel();