public function __construct(Server $server, $timeout = 5) { $this->timeout = $timeout; $this->serverName = $server->getMotd(); $this->listPlugins = $server->getProperty("settings.query-plugins", true); $this->plugins = $server->getPluginManager()->getPlugins(); $this->players = []; foreach ($server->getOnlinePlayers() as $player) { if ($player->isOnline()) { $this->players[] = $player; } } if ($server->isDServerEnabled() and $server->dserverConfig["queryMaxPlayers"]) { $pc = $server->dserverConfig["queryMaxPlayers"]; } elseif ($server->isDServerEnabled() and $server->dserverConfig["queryAllPlayers"]) { $pc = $server->getDServerMaxPlayers(); } else { $pc = $server->getMaxPlayers(); } if ($server->isDServerEnabled() and $server->dserverConfig["queryPlayers"]) { $poc = $server->getDServerOnlinePlayers(); } else { $poc = count($this->players); } $this->gametype = ($server->getGamemode() & 0x1) === 0 ? "SMP" : "CMP"; $this->version = $server->getVersion(); $this->server_engine = $server->getName() . " " . $server->getPocketMineVersion(); $this->map = $server->getDefaultLevel() === null ? "unknown" : $server->getDefaultLevel()->getName(); $this->numPlayers = $poc; $this->maxPlayers = $pc; $this->whitelist = $server->hasWhitelist() ? "on" : "off"; $this->port = $server->getPort(); $this->ip = $server->getIp(); }
public function check() { for ($n = 0; $n < $this->threads; ++$n) { if ($this->workers[$n]->isTerminated() === true) { $this->workers[$n] = new RCONInstance($this->socket, $this->password, $this->clientsPerThread); } elseif ($this->workers[$n]->isWaiting()) { if ($this->workers[$n]->response !== "") { $this->server->getLogger()->info($this->workers[$n]->response); $this->workers[$n]->synchronized(function (RCONInstance $thread) { $thread->notify(); }, $this->workers[$n]); } else { $response = new RemoteConsoleCommandSender(); $command = $this->workers[$n]->cmd; $this->server->getPluginManager()->callEvent($ev = new RemoteServerCommandEvent($response, $command)); if (!$ev->isCancelled()) { $this->server->dispatchCommand($ev->getSender(), $ev->getCommand()); } $this->workers[$n]->response = TextFormat::clean($response->getMessage()); $this->workers[$n]->synchronized(function (RCONInstance $thread) { $thread->notify(); }, $this->workers[$n]); } } } }
public function onCompletion(Server $server) { if (isset($this->error)) { $server->getPluginManager()->getPlugin("VoteReward")->getLogger()->error($this->error); } $server->getPluginManager()->getPlugin("VoteReward")->rewardPlayer($server->getPlayerExact($this->id), $this->rewards); array_splice($server->getPluginManager()->getPlugin("VoteReward")->queue, array_search($this->id, $server->getPluginManager()->getPlugin("VoteReward")->queue, true), 1); }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin($this->owner); if ($plugin == null) { $server->getLogger()->error("Internal ERROR: " . __METHOD__ . "," . __LINE__); return; } if (!$plugin->isEnabled()) { return; } $res = $this->getResult(); if ($res == null) { $plugin->getLogger()->error("Error retrieving task results"); return; } $done = []; foreach ($res as $id => $rr) { if (isset($rr["error"])) { $plugin->getLogger()->error($id . ": " . $rr["error"]); } else { $done[$id] = $rr["content"]; } } $plugin->retrieveDone($done); if ($plugin->debug) { $plugin->getLogger()->debug("FetchTask completed."); } }
public function check() { $d = Utils::getRealMemoryUsage(); $u = Utils::getMemoryUsage(true); $usage = round($u[0] / 1024 / 1024, 2) . "/" . round($d[0] / 1024 / 1024, 2) . "/" . round($u[1] / 1024 / 1024, 2) . "/" . round($u[2] / 1024 / 1024, 2) . " MB @ " . Utils::getThreadCount() . " threads"; $serverStatus = serialize(["online" => count($this->server->getOnlinePlayers()), "max" => $this->server->getMaxPlayers(), "upload" => round($this->server->getNetwork()->getUpload() / 1024, 2), "download" => round($this->server->getNetwork()->getDownload() / 1024, 2), "tps" => $this->server->getTicksPerSecondAverage(), "load" => $this->server->getTickUsageAverage(), "usage" => $usage]); for ($n = 0; $n < $this->threads; ++$n) { if (!$this->workers[$n]->isTerminated()) { $this->workers[$n]->serverStatus = $serverStatus; } if ($this->workers[$n]->isTerminated() === true) { $this->workers[$n] = new RCONInstance($this->socket, $this->password, $this->clientsPerThread); } elseif ($this->workers[$n]->isWaiting()) { if ($this->workers[$n]->response !== "") { $this->server->getLogger()->info($this->workers[$n]->response); $this->workers[$n]->synchronized(function (RCONInstance $thread) { $thread->notify(); }, $this->workers[$n]); } else { $response = new RemoteConsoleCommandSender(); $command = $this->workers[$n]->cmd; $this->server->getPluginManager()->callEvent($ev = new RemoteServerCommandEvent($response, $command)); if (!$ev->isCancelled()) { $this->server->dispatchCommand($ev->getSender(), $ev->getCommand()); } $this->workers[$n]->response = $response->getMessage(); $this->workers[$n]->synchronized(function (RCONInstance $thread) { $thread->notify(); }, $this->workers[$n]); } } } }
public function onCompletion(Server $server) { $player = $server->getPlayer($this->player); if ($player instanceof Player && in_array($this->data, array(0, 1, 2))) { $server->getPluginManager()->getPlugin("RankUp")->executeRankUp($player, $this->data, $this->gotreward); } }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin("BridgeAuth"); if ($plugin instanceof BridgeAuth && $plugin->isEnabled()) { $plugin->authComplete($this->accessToken, $this->serverIP, $this->{$serverPort}, $this->name, $this->bridgeToken, $this->getResult()); } }
public function __construct(array $options, PluginMain $plugin, Server $server) { $this->option = $options; $this->plugin = $plugin; $this->server = $server; $server->getPluginManager()->registerEvents($this, $plugin); }
/** * * @param Server $server */ public function onCompletion(Server $server) { if (($plugin = $server->getPluginManager()->getPlugin("GlobalShield")) instanceof GlobalShield) { if (($player = $server->getPlayer($this->player)) instanceof Player) { $plugin->readData($player, $this->result); } } }
/** * @param Server $server */ public function onCompletion(Server $server) { /** @var BaseAPI $api */ $api = $server->getPluginManager()->getPlugin("EssentialsPE"); foreach ($this->getResult() as $spl => $ip) { $api->updateGeoLocation($this->player[$spl], $ip); } }
/** * @param Plugin $plugin */ public function disablePlugin(Plugin $plugin) { if ($plugin instanceof PluginBase and $plugin->isEnabled()) { $this->server->getLogger()->info("Disabling " . $plugin->getDescription()->getFullName()); $this->server->getPluginManager()->callEvent(new PluginDisableEvent($plugin)); $plugin->setEnabled(\false); } }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin($this->pluginName); if ($plugin === null) { return; } $plugin->setExternalIp($this->ip); }
/** * @param Plugin $plugin */ public function disablePlugin(Plugin $plugin) { if ($plugin instanceof PluginBase and $plugin->isEnabled()) { $this->server->getKatana()->console->plugin("Disabling " . Terminal::$COLOR_WHITE . $plugin->getDescription()->getFullName()); $this->server->getPluginManager()->callEvent(new PluginDisableEvent($plugin)); $plugin->setEnabled(false); } }
/** * @param Plugin $plugin */ public function disablePlugin(Plugin $plugin) { if ($plugin instanceof PluginBase and $plugin->isEnabled()) { $this->server->getLogger()->info($this->server->getLanguage()->translateString("pocketmine.plugin.disable", [$plugin->getDescription()->getFullName()])); $this->server->getPluginManager()->callEvent(new PluginDisableEvent($plugin)); $plugin->setEnabled(false); } }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin($this->plugin); if ($plugin === null) { return; } $cb = [$plugin, $this->callback]; $cb($this->getResult(), $this->data); }
public function onCompletion(Server $server) { if ($this->r) { $p = $server->getPlayer($this->p); if ($p instanceof Player) { $server->getPluginManager()->getPlugin("VoteReward")->give($p, $this->data); } } }
public function onCompletion(Server $server) { // $this->badQueue = null; // $this->dictionary = null; $plugin = $server->getPluginManager()->getPlugin("Gentleman"); if ($plugin instanceof Gentleman) { $plugin->asyncProcess($this->name, $this->format, $this->message, $this->find, $this->eventType); } }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin("SpawningPool"); $nbt = unserialize($this->nbt); if ($plugin instanceof Main) { $plugin->getServer()->saveOfflinePlayerData($this->name, $nbt); $plugin->getCallback()->authenticate->authenticateCallback($this->name, $nbt); } }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin("BigBrother"); if ($plugin instanceof BigBrother) { if ($plugin->isEnabled()) { $result = $this->getResult(); $plugin->receiveCryptoKeys($result["privatekey"], $result["publickey"]); } } }
public function trigger($memory, $limit, $global = false, $triggerCount = 0) { $this->server->getLogger()->debug("[Memory Manager] " . ($global ? "Global " : "") . "Low memory triggered, limit " . round($limit / 1024 / 1024, 2) . "MB, using " . round($memory / 1024 / 1024, 2) . "MB"); $ev = new LowMemoryEvent($memory, $limit, $global, $triggerCount); $this->server->getPluginManager()->callEvent($ev); $cycles = 0; if ($this->garbageCollectionTrigger) { $cycles = $this->triggerGarbageCollector(); } $this->server->getLogger()->debug("[Memory Manager] Freed " . round($ev->getMemoryFreed() / 1024 / 1024, 2) . "MB, {$cycles} cycles"); }
public function __construct(array $options, PluginMain $plugin, Server $server) { $this->option = $options; $this->plugin = $plugin; $this->server = $server; $this->coreHealths = array(); foreach ($options as $key => $value) { $this->coreHealths = array_merge($this->coreHealths, array($key => $options["coreDefaultHealth"])); } $server->getPluginManager()->registerEvents($this, $plugin); }
public function openSession($identifier, $address, $port, $clientID) { $ev = new PlayerCreationEvent($this, Player::class, Player::class, \null, $address, $port); $this->server->getPluginManager()->callEvent($ev); $class = $ev->getPlayerClass(); $player = new $class($this, $ev->getClientId(), $ev->getAddress(), $ev->getPort()); $this->players[$identifier] = $player; $this->identifiersACK[$identifier] = 0; $this->identifiers->attach($player, $identifier); $this->server->addPlayer($identifier, $player); }
public function onCompletion(Server $server) { $plugin = $server->getPluginManager()->getPlugin($this->owner); if ($plugin == null) { $server->getLogger()->error("Internal ERROR: " . __METHOD__ . "," . __LINE__); return; } if (!$plugin->isEnabled()) { return; } $callback = [$plugin, $this->callable]; $callback($this->getResult(), $this->args); }
public function onCompletion(Server $server) { if ($this->needToAdd === null and $this->needToRemove === null) { return; } $needToAdd = (array) json_decode($this->needToAdd, true); $needToRemove = (array) json_decode($this->needToRemove, true); $players = array(); foreach ($this->players as $player) { $players[] = $player["name"]; } $tagBlock = $server->getPluginManager()->getPlugin("TAGBlock"); $tagBlock->receiveSearchProcess($players, $needToAdd, $needToRemove); }
/** * Scan loaded plugins and identifies which plugins have an entry * point to variable expansions... */ protected static function AutoloadExtensions($mode, Server $server) { $tab = []; foreach ($server->getPluginManager()->getPlugins() as $plug) { if (!$plug->isEnabled()) { continue; } $cb = [$plug, $mode]; if (is_callable($cb)) { $tab[] = $cb; } } return $tab; }
public function onCompletion(Server $server) { $chunks = $this->getResult(); $plugin = $server->getPluginManager()->getPlugin("MineReset"); if ($plugin instanceof MineReset and $plugin->isEnabled()) { $level = $server->getLevel($this->levelId); if ($level != null) { foreach ($chunks as $hash => $chunk) { Level::getXZ($hash, $x, $z); $level->setChunk($x, $z, $chunk); } } $plugin->getRegionBlocker()->freeZone($this->regionId, $this->levelId); } }
public function __construct(Server $server, $timeout = 5) { $this->timeout = $timeout; $this->serverName = $server->getMotd(); $this->listPlugins = $server->getProperty("settings.query-plugins", true); $this->plugins = str_replace(" ", "_", $server->getPluginManager()->getPlugins()); $this->players = []; foreach ($server->getOnlinePlayers() as $player) { if ($player->isOnline()) { $this->players[] = $player; } } if ($server->isDServerEnabled() and $server->dserverConfig["queryMaxPlayers"]) { $pc = $server->dserverConfig["queryMaxPlayers"]; } elseif ($server->isDServerEnabled() and $server->dserverConfig["queryAllPlayers"]) { $pc = $server->getDServerMaxPlayers(); } else { $pc = $server->getMaxPlayers(); } if ($server->isDServerEnabled() and $server->dserverConfig["queryPlayers"]) { $poc = $server->getDServerOnlinePlayers(); } else { $poc = count($this->players); } switch ($server->getGamemode()) { case 0: $this->gametype = "Survival"; break; case 1: $this->gametype = "Creative"; break; case 2: $this->gametype = "Adventure"; break; case 3: $this->gametype = "Spectator"; break; } $this->version = $server->getVersion(); $this->server_engine = $server->getName() . " " . $server->getPocketMineVersion(); $this->map = $server->getDefaultLevel() === null ? "unknown" : $server->getDefaultLevel()->getName(); $this->numPlayers = $poc; $this->maxPlayers = $pc; $this->whitelist = $server->hasWhitelist() ? "on" : "off"; $this->port = $server->getPort(); $this->ip = $server->getIp(); $this->motd_version = $server->getMPVersion(); }
/** * @param Server $server */ public function onCompletion(Server $server) { /** @var Loader $esspe */ $esspe = $server->getPluginManager()->getPlugin("EssentialsPE"); if ($esspe->getDescription()->getVersion() < ($v = $this->getResult()["version"])) { $continue = true; $message = TextFormat::AQUA . "[EssentialsPE]" . TextFormat::GREEN . " A new " . TextFormat::YELLOW . $this->build . TextFormat::GREEN . " version of EssentialsPE found! Version: " . TextFormat::YELLOW . $v . TextFormat::GREEN . ($this->install !== true ? "" : ", " . TextFormat::LIGHT_PURPLE . "Installing..."); } else { $continue = false; $message = TextFormat::AQUA . "[EssentialsPE]" . TextFormat::YELLOW . " No new version found, you're using the latest version of EssentialsPE"; } $esspe->broadcastUpdateAvailability($message); if ($continue && $this->install) { $server->getScheduler()->scheduleAsyncTask($task = new UpdateInstallTask($esspe, $this->getResult()["downloadURL"], $server->getPluginPath(), $v)); $esspe->updaterDownloadTask = $task; } }
public function __construct(Server $server, $type, $playerList = []) { $endpoint = "http://" . $server->getProperty("anonymous-statistics.host", "stats.pocketmine.net") . "/"; $data = []; $data["uniqueServerId"] = $server->getServerUniqueId()->toString(); $data["uniqueMachineId"] = Utils::getMachineUniqueId()->toString(); $data["uniqueRequestId"] = UUID::fromData($server->getServerUniqueId(), microtime(true))->toString(); switch ($type) { case self::TYPE_OPEN: $data["event"] = "open"; $version = new VersionString(); $data["server"] = ["port" => $server->getPort(), "software" => $server->getName(), "fullVersion" => $version->get(true), "version" => $version->get(), "build" => $version->getBuild(), "api" => $server->getApiVersion(), "minecraftVersion" => $server->getVersion(), "protocol" => Info::CURRENT_PROTOCOL]; $data["system"] = ["operatingSystem" => Utils::getOS(), "cores" => Utils::getCoreCount(), "phpVersion" => PHP_VERSION, "machine" => php_uname("a"), "release" => php_uname("r"), "platform" => php_uname("i")]; $data["players"] = ["count" => 0, "limit" => $server->getMaxPlayers()]; $plugins = []; foreach ($server->getPluginManager()->getPlugins() as $p) { $d = $p->getDescription(); $plugins[$d->getName()] = ["name" => $d->getName(), "version" => $d->getVersion(), "enabled" => $p->isEnabled()]; } $data["plugins"] = $plugins; break; case self::TYPE_STATUS: $data["event"] = "status"; $data["server"] = ["ticksPerSecond" => $server->getTicksPerSecondAverage(), "tickUsage" => $server->getTickUsageAverage(), "ticks" => $server->getTick()]; //This anonymizes the user ids so they cannot be reversed to the original foreach ($playerList as $k => $v) { $playerList[$k] = md5($v); } $players = []; foreach ($server->getOnlinePlayers() as $p) { if ($p->isOnline()) { $players[] = md5($p->getUniqueId()->toBinary()); } } $data["players"] = ["count" => count($players), "limit" => $server->getMaxPlayers(), "currentList" => $players, "historyList" => array_values($playerList)]; $info = Utils::getMemoryUsage(true); $data["system"] = ["mainMemory" => $info[0], "totalMemory" => $info[1], "availableMemory" => $info[2], "threadCount" => Utils::getThreadCount()]; break; case self::TYPE_CLOSE: $data["event"] = "close"; $data["crashing"] = $server->isRunning(); break; } $this->endpoint = $endpoint . "api/post"; $this->data = json_encode($data); }
/** * @param Server $server */ public function onCompletion(Server $server) { //var_dump($this->result); $numPlayers = count($server->getOnlinePlayers()); $maxPlayers = $server->getMaxPlayers(); foreach ($this->result as $result) { if (is_array($result)) { $numPlayers += $result["info"]["numplayers"]; $maxPlayers += $result["info"]["maxplayers"]; } else { $server->getLogger()->critical($result); } } if (($plugin = $server->getPluginManager()->getPlugin("QueryFacade")) instanceof QueryFacade) { $plugin->getModifier()->setPlayerCount($numPlayers); $plugin->getModifier()->setMaxPlayerCount($maxPlayers); } }