Implemented QueryRegenerateEvent as base for other interfaces

This commit is contained in:
Shoghi Cervantes
2015-05-26 01:17:34 +02:00
parent 66435d4f6a
commit 51062940c5
5 changed files with 27 additions and 9 deletions

View File

@@ -45,6 +45,7 @@ use pocketmine\entity\Zombie;
use pocketmine\event\HandlerList;
use pocketmine\event\level\LevelInitEvent;
use pocketmine\event\level\LevelLoadEvent;
use pocketmine\event\server\QueryRegenerateEvent;
use pocketmine\event\server\ServerCommandEvent;
use pocketmine\event\Timings;
use pocketmine\event\TimingsHandler;
@@ -232,6 +233,9 @@ class Server{
/** @var QueryHandler */
private $queryHandler;
/** @var QueryRegenerateEvent */
private $queryRegenerateTask = null;
/** @var Config */
private $properties;
@@ -1656,7 +1660,6 @@ class Server{
$this->network = new Network($this);
$this->network->setName($this->getMotd());
$this->network->registerInterface(new RakLibInterface($this));
$this->logger->info($this->getLanguage()->translateString("pocketmine.server.info", [
@@ -1694,6 +1697,10 @@ class Server{
set_exception_handler([$this, "exceptionHandler"]);
register_shutdown_function([$this, "crashDump"]);
$this->queryRegenerateTask = new QueryRegenerateEvent($this, 5);
$this->network->registerInterface(new RakLibInterface($this));
$this->pluginManager->loadPlugins($this->pluginPath);
$this->updater = new AutoUpdater($this, $this->getProperty("auto-updater.host", "www.pocketmine.net"));
@@ -2111,6 +2118,10 @@ class Server{
}
public function getQueryInformation(){
return $this->queryRegenerateTask;
}
/**
* Starts the PocketMine-MP server and starts processing ticks and packets
*/
@@ -2123,7 +2134,7 @@ class Server{
$this->network->blockAddress($entry->getName(), -1);
}
if($this->getProperty("settings.send-usage", true) !== false){
if($this->getProperty("settings.send-usage", true)){
$this->sendUsageTicker = 6000;
$this->sendUsage(SendUsageTask::TYPE_OPEN);
}
@@ -2471,9 +2482,12 @@ class Server{
$this->maxTick = 20;
$this->maxUse = 0;
if($this->queryHandler !== null and ($this->tickCounter & 0b111111111) === 0){
if(($this->tickCounter & 0b111111111) === 0){
try{
$this->queryHandler->regenerateInfo();
$this->getPluginManager()->callEvent($this->queryRegenerateTask = new QueryRegenerateEvent($this, 5));
if($this->queryHandler !== null){
$this->queryHandler->regenerateInfo();
}
}catch(\Exception $e){
if($this->logger instanceof MainLogger){
$this->logger->logException($e);