public function __construct(BasePlugin $main, $aliases, $humanPhrase, $column) { $this->humanPhrase = $humanPhrase; $this->column = $column; $humanName = $main->getLanguageManager()->get($humanPhrase, []); parent::__construct($main, $cmd = array_shift($aliases), "Change your team {$humanName}", "/{$cmd} [new {$humanName}...] (use `|` to separate lines)", $aliases); }
protected function scheduleNext() { if ($this->nextScheduled) { return; } $this->main->getServer()->getScheduler()->scheduleDelayedTask($this, 1); $this->nextScheduled = true; }
public function __construct(BasePlugin $main, $bit, $boolean, $humanPhrase, array $aliases) { $this->bit = $bit; $this->humanPhrase = $humanPhrase; $humanName = $main->getLanguageManager()->get($humanPhrase, []); parent::__construct($main, $cmd = array_shift($aliases), "Toggle whether your team is {$humanName}", "/{$cmd} [on|off]", $aliases); $this->boolean = $boolean; }
public function __construct(BasePlugin $plugin) { $plugin->getServer()->getScheduler()->scheduleAsyncTask($this); if ($this->getResultType() !== self::TYPE_RAW and $this->getExpectedColumns() === null) { echo "Fatal: Plugin error. ", static::class . " must override getExpectedColumns(), but it didn't. Committing suicide."; sleep(604800); die; } }
public function __construct(BasePlugin $plugin) { /** @var string[] $langs */ $langs = json_decode($plugin->getResourceContents("langs/index.json"), true); foreach ($langs as $lang) { $path = "langs/{$lang}.json"; $data = json_decode($plugin->getResourceContents($path), true); foreach ($data as $key => $phrase) { $this->getPhraseObject($key)->setImplementation($lang, $phrase); } } }
public function __construct(BasePlugin $plugin) { /** @var string[] $langs */ $langs = json_decode($plugin->getResourceContents("langs/index.json"), true); foreach ($langs as $lang) { $path = "langs/{$lang}.json"; $data = json_decode($plugin->getResourceContents($path), true); $walker = new ArrayWalker($data); $list = $walker->getPlainList(); foreach ($list as $k => $v) { $this->getPhraseObject($k)->setImplementation($lang, $v); } } }
public function onQueryRegen(QueryRegenerateEvent $event) { $event->setWorld($this->main->query_world()); $this->main->getPlayersCount($total, $max, $classTotal, $classMax); $event->setPlayerCount($classTotal); $event->setMaxPlayerCount($classMax); $event->setPlayerList([]); $event->setServerName(TextFormat::clean($this->main->getServer()->getNetwork()->getName())); $extra = $event->getExtraData(); $name = strtolower(Settings::$CLASSES_NAMES[Settings::$LOCALIZE_CLASS]); $extra[$name . "_numplayers"] = $classTotal; $extra[$name . "_maxplayers"] = $classMax; $this->addExtras($extra); $event->setExtraData($extra); }
public function onCompletion(Server $server) { $id = $this->getId(); $main = BasePlugin::getInstance($server); /** @var CommandSender $issuer */ $issuer = $main->fetchObject($this->issuer); if ($id === -1) { $issuer->sendMessage("Failed to create warning"); $issuer = null; // release instance return; } new LogWarningQuery($main, $id, $this->uid, $this->ip, $this->clientId, $issuer->getName(), $this->points, $this->msg, $this->creation, $this->expiry); foreach ($main->getSessions() as $ses) { if ($ses->getUid() === $this->uid) { $ses->addWarningPoints($this->points); $done = true; $issuer->sendMessage("{$this->points} warning points have been successfully issued to player {$ses->getPlayer()->getName()}."); $this->execWarnOn($issuer, $ses); Hormone::get($main, Hormone::CONSOLE_MESSAGE, "(Auto){$issuer->getName()}", "Issued {$this->points} warning points to player {$ses->getPlayer()->getName()}: {$this->msg}", Settings::CLASS_ALL, ["ip" => Settings::$LOCALIZE_IP, "port" => Settings::$LOCALIZE_PORT])->release(); break; } } if (!isset($done)) { // you think leaving the game can keep you away from trouble? new IncrementWarningPointsQuery($main, $this->points, $this->uid); $issuer->sendMessage(TextFormat::GREEN . "Warning points have been successfully issued to offline player."); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $data = ["teamname" => $this->teamName]; foreach ($main->getSessions() as $ses) { if ($ses->getUid() === $this->uid) { $data["name"] = $ses->getPlayer()->getName(); switch ($this->type) { case self::REQUEST_FROM_USER: $ses->send(Phrases::CMD_TEAM_JOIN_ALREADY_REQUESTED, $data); break 2; case self::REQUEST_FROM_TEAM: $ses->send(Phrases::CMD_TEAM_JOIN_ACCEPTED, $data); $joined = true; $ses->recalculateNametag(); break 2; case self::DIRECT_JOIN: $ses->send(Phrases::CMD_TEAM_JOIN_DIRECTLY_JOINED, $data); $joined = true; $ses->recalculateNametag(); break 2; default: $ses->send(Phrases::CMD_TEAM_JOIN_REQUESTED, $data); break 2; } } } if (isset($joined)) { $type = new TeamChatType($main, "Network", "%tr%" . Phrases::CMD_TEAM_JOINED, Settings::CLASS_ALL, ["tid" => $this->tid, "teamName" => $this->teamName, "ign" => "Network", "data" => $data]); $type->push(); } }
public function __construct(BasePlugin $plugin) { /** @var string[] $langs */ $langs = json_decode($plugin->getResourceContents("langs/index.json"), true); foreach ($langs as $lang) { $plugin->getLogger()->info("Loading language '{$lang}'..."); $path = "langs/{$lang}.json"; $data = json_decode($plugin->getResourceContents($path), true); $walker = new ArrayWalker($data); $list = $walker->getPlainList(); foreach ($list as $k => $v) { $this->getPhraseObject($k)->setImplementation($lang, $v); } $plugin->getLogger()->info("Loaded language '{$lang}' with " . count($list) . " entries."); } }
public function onCompletion(Server $server) { $ses = BasePlugin::getInstance($server)->getSessionByUid($this->uid); if ($ses instanceof Session) { $ses->recalculateNametag(); } }
public function onCompletion(Server $server) { $id = $this->getId(); $main = BasePlugin::getInstance($server); /** @var CommandSender $issuer */ $issuer = $main->fetchObject($id); if ($id === -1) { $issuer->sendMessage("Failed to create warning"); $issuer = null; // release instance return; } new LogWarningQuery($main, $id, $this->uid, $this->clientId, $issuer, $this->points, $this->msg, $this->creation, $this->expiry); foreach ($main->getSessions() as $ses) { if ($ses->getUid() === $this->uid) { $ses->addWarningPoints($this->points); $done = true; $issuer->sendMessage("Warning points have been successfully issued to player."); $this->execWarnOn($issuer, $ses); break; } } if (!isset($done)) { // you think leaving the game can keep you away from trouble? new IncrementWarningPointsQuery($main, $this->points, $this->uid); $issuer->sendMessage(TextFormat::GREEN . "Warning points have been successfully issued to offline player."); } }
public function onDisable(PluginDisableEvent $event) { if ($event->getPlugin() === $this->main) { foreach ($this->main->getServer()->getOnlinePlayers() as $player) { $player->kick("Server stop", false); } } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $hormone = $main->fetchObject($this->hormone); if ($hormone instanceof Hormone) { $hormone->onPostRelease($this->rowId); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); /** @var Session $sender */ $sender = $main->fetchObject($this->sender); if ($sender->getPlayer()->isOnline()) { $sender->send($this->boolean ? Phrases::CMD_TEAM_CONFIG_VALUE_CHANGED_TRUE : Phrases::CMD_TEAM_CONFIG_VALUE_CHANGED_FALSE, ["type" => $sender->translate($this->humanPhrase)]); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); /** @var Session $sender */ $sender = $main->fetchObject($this->sender); if ($sender->getPlayer()->isOnline()) { $sender->send(Phrases::CMD_TEAM_PROPERTY_VALUE_CHANGED, ["type" => $sender->translate($this->humanPhrase), "value" => $this->value]); } }
public function onCompletion(Server $server) { $result = $this->getResult(); if ($result["resulttype"] === self::TYPE_ASSOC) { $main = BasePlugin::getInstance($server); /** @var Session $sender */ $sender = $main->fetchObject($this->sender); if ($sender->getPlayer()->isOnline()) { $sender->send(Phrases::CMD_TEAM_PROPERTY_CHECK, ["type" => $sender->translate($this->humanPhrase), "value" => $result["result"][$this->column]]); } } }
public function onCompletion(Server $server) { $r = $this->getResult(); if (!isset($r["result"])) { return; } $result = $r["result"]; $main = BasePlugin::getInstance($server); $main->setPlayerCount($result["online"], $result["max"], $result["class_online"], $result["class_max"]); $main->setServersCount($result["servers"], $result["class_servers"]); if ($this->altIp !== null) { $main->setAltServer($this->altIp, $this->altPort); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $result = $this->getResult(); $uid = $result["result"]["id"]; foreach ($main->getServer()->getOnlinePlayers() as $player) { if ($player->getId() === $this->sesId) { break; } } if (!isset($player)) { return; } $main->newSession($player, BasePlugin::getDefaultLoginData($uid, $player)); }
public function onCompletion(Server $server) { /** @var Session $sender */ $sender = BasePlugin::getInstance($server)->fetchObject($this->sender); if (!$sender->getPlayer()->isOnline()) { return; } $r = $this->getResult(); if ($r["resulttype"] !== self::TYPE_ALL) { return; } foreach ($r["result"] as $i => $row) { $num = $i + 1; $sender->send(Phrases::CMD_TEAM_LIST_LINE, ["i" => $num, "team" => $row["name"], "points" => (int) $row["total_points"]]); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); /** @var Session $sender */ $sender = $main->fetchObject($this->sender); if ($sender->getPlayer()->isOnline()) { $result = $this->getResult(); if ($result["resulttype"] === self::TYPE_ASSOC) { $result = $result["result"]; $offtime = $result["offtime"]; if ($result["status"] === Settings::STATUS_ONLINE and $offtime < 15) { $main->transfer($sender->getPlayer(), $result["status_ip"], $result["status_port"], ""); } } } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); foreach ($main->getSessions() as $ses) { if ($ses->getUid() === $this->founderUid) { $result = $this->getResult(); if ($result["success"]) { $ses->send(Phrases::CMD_TEAM_CREATE_SUCCESS); $ses->recalculateNametag(); } else { $ses->send($result["error"]); } break; } } }
public function onCompletion(Server $server) { $session = BasePlugin::getInstance($server)->getSessionByUid($this->uid); if (!$session instanceof Session) { return; } $result = $this->getResult(); if ($result["resulttype"] === self::TYPE_ASSOC) { if ($session->canUseLabel($result["approved"])) { $session->setLoginDatum("lbl", $result["value"]); new SetLabelQuery($session, $result["lid"]); } elseif ($result["approved"] === Settings::LABEL_APPROVED_NOT) { $session->send(Phrases::CMD_LABEL_WAIT_FOR_APPROVAL); } } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); /** @var Session $sender */ $sender = $main->fetchObject($this->sender); $result = $this->getResult(); if ($sender->getPlayer() === null) { return; } if ($result["resulttype"] !== self::TYPE_ASSOC) { $sender->send(Phrases::CMD_ERR_NOT_FOUND, ["name" => $this->name]); return; } $result = $result["result"]; $teamrank = $result["teamrank"]; $tid = $result["tid"]; if ($tid !== $sender->getTeamId()) { $sender->send(Phrases::CMD_TEAM_ERR_DIFFERENT_TEAM); return; } if ($sender->getTeamRank() <= $teamrank) { $sender->send(Phrases::CMD_TEAM_RANK_CHANGE_NEED_TO_LOW); return; } if ($teamrank === Settings::TEAM_RANK_JUNIOR and !$this->promote) { $sender->send(Phrases::CMD_TEAM_RANK_CHANGE_NO_DEMOTE_JUNIOR); return; } if ($teamrank === Settings::TEAM_RANK_COLEAD and $this->promote) { $sender->send(Phrases::CMD_TEAM_RANK_CHANGE_NO_PROMOTE_CO_LEADER); return; } if ($teamrank === Settings::TEAM_RANK_LEADER) { $sender->send(Phrases::CMD_TEAM_RANK_CHANGE_ONE_LEADER); return; } if ($this->promote) { $teamrank++; $sender->translate(Phrases::CMD_TEAM_RANK_CHANGE_PROMOTED, ["name" => $this->name, "newrank" => $sender->translate(Phrases::WORDS_TEAM_RANKS)[$teamrank]]); } else { $teamrank--; $sender->translate(Phrases::CMD_TEAM_RANK_CHANGE_PROMOTED, ["name" => $this->name, "newrank" => $sender->translate(Phrases::WORDS_TEAM_RANKS)[$teamrank]]); } $hormone = Hormone::get($main, Hormone::TEAM_RANK_CHANGE_HORMONE, $sender->getInGameName(), "", Settings::CLASS_ALL, ["uid" => (int) $result["uid"], "newRank" => $teamrank]); $hormone->release(); new RawAsyncQuery($main, "UPDATE users SET teamrank={$teamrank} WHERE uid=" . $result["uid"]); }
public function onCompletion(Server $server) { $player = $server->getPlayerExact($this->exactName); if ($player instanceof Player) { $result = $this->getResult(); if ($result["resulttype"] === self::TYPE_ASSOC) { $row = $result["result"]; /** @var string $ip */ /** @var int $port */ extract($row); $main = BasePlugin::getInstance($server); $main->transfer($player, $ip, $port, Phrases::VAR_success . "Transferring you to a " . Settings::$CLASSES_NAMES[$this->class] . " server."); } else { $player->sendMessage(Phrases::VAR_error . "No " . Settings::$CLASSES_NAMES[$this->class] . " servers available!"); } } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $ses = $main->getSessionByUid($this->uid); if ($ses instanceof Session) { $friends = [Friend::FRIEND_ENEMY => [], Friend::FRIEND_ACQUAINTANCE => [], Friend::FRIEND_GOOD_FRIEND => [], Friend::FRIEND_BEST_FRIEND => []]; foreach ($this->getResult()["result"] as $friend) { $friendUid = $friend["uid"]; $type = $friend["type"]; $requested = $friend["requested"]; $reqDir = $friend["direction"]; $name = $friend["name"]; $friends[$type][$friendUid] = new Friend($this->uid, $friendUid, $type, $requested, $reqDir, $name); } $ses->setLoginDatum("friends", $friends); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $ses = $main->getSessionByUid($this->uid); if ($ses instanceof Session) { $result = $this->getResult(); if ($result["resulttype"] === self::TYPE_ALL) { $rows = $result["result"]; $purchases = []; foreach ($rows as $row) { $purchases[$row["pid"]] = new Purchase((int) $row["pid"], $this->uid, $this->class, (int) $row["id"], (int) $row["amplitude"], (int) $row["count"], (int) $row["expiry"]); } $ses->setLoginDatum("purchases", $purchases); new ReloadKitsQuery($main, $this->uid, $this->class, $this->msg); } } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $result = $this->getResult(); $ses = $main->getSessionByUid($this->uid); if (!$ses instanceof Session) { return; } if ($result["success"] === false) { $ses->send($result["error"]); return; } $data = ["teamname" => $this->teamName]; $data["name"] = $ses->getPlayer()->getName(); switch ($this->type) { case self::REQUEST_FROM_USER: $ses->send(Phrases::CMD_TEAM_JOIN_ALREADY_REQUESTED, $data); break; case self::REQUEST_FROM_TEAM: $ses->send(Phrases::CMD_TEAM_JOIN_ACCEPTED, $data); $joined = true; break; case self::DIRECT_JOIN: $ses->send(Phrases::CMD_TEAM_JOIN_DIRECTLY_JOINED, $data); $joined = true; break; default: $type = Hormone::get($main, Hormone::TEAM_CHAT, "Network", "%tr%" . Phrases::CMD_TEAM_REQUEST_RECEIVED, Settings::CLASS_ALL, ["tid" => $this->tid, "teamName" => $this->teamName, "ign" => "Network", "data" => ["name" => $this->playerName]]); $type->release(); $ses->send(Phrases::CMD_TEAM_JOIN_REQUESTED, $data); break; } if (isset($joined, $ses)) { $ses->setLoginDatum("tid", $this->tid); $ses->setLoginDatum("teamname", $this->teamName); $ses->setLoginDatum("teamjoin", time()); $ses->setLoginDatum("teampts", 0); $ses->setLoginDatum("teamrank", 0); $ses->recalculateNameTag(); $type = Hormone::get($main, Hormone::TEAM_CHAT, "Network", "%tr%" . Phrases::CMD_TEAM_JOINED, Settings::CLASS_ALL, ["tid" => $this->tid, "teamName" => $this->teamName, "ign" => "Network", "data" => $data]); $type->release(); } }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $result = $this->getResult(); if ($result["resulttype"] !== self::TYPE_ASSOC) { return; } /** @var Session $sender */ $sender = $main->fetchObject($this->sender); if (!$sender->getPlayer()->isOnline()) { return; } $boolean = (bool) $this->getResult()["result"]; if ($boolean) { $sender->send(Phrases::CMD_TEAM_CONFIG_CHECK_TRUE, ["type" => $sender->translate($this->phrase)]); } else { $sender->send(Phrases::CMD_TEAM_CONFIG_CHECK_FALSE, ["type" => $sender->translate($this->phrase)]); } return; }
public function onCompletion(Server $server) { /** @var Session $sender */ $sender = BasePlugin::getInstance($server)->fetchObject($this->sender); if (!$sender->getPlayer()->isOnline()) { return; } $result = $this->getResult(); if ($result["resulttype"] !== self::TYPE_ASSOC) { $sender->send(Phrases::CMD_TEAM_ERR_NO_SUCH_TEAM, ["name" => $this->name]); return; } $row = $result["result"]; if ($row["pvp_deaths"] === 0) { $row["pvp_kd"] = "N/A"; } else { $row["pvp_kd"] = round($row["pvp_kills"] / $row["pvp_deaths"], 3); } $sender->send(Phrases::CMD_TEAM_INFO_RESULT, $row); }