public function getEffectiveConsequence() { return Settings::getWarnPtsConsequence($this->getWarningPoints(), $this->getLastWarnTime()); }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); foreach ($server->getOnlinePlayers() as $p) { if ($p->getId() === $this->sesId) { $player = $p; break; } } if (!isset($player)) { $main->getLogger()->notice("Player of {$this->sesId} quitted the server before data were fetched."); return; } $consequence = Settings::getWarnPtsConsequence($this->totalWarnPts, $this->lastWarnTime); if ($consequence->banLength > 0) { $player->kick(TextFormat::RED . "You are banned. You have accumulated " . TextFormat::DARK_PURPLE . $this->totalWarnPts . TextFormat::RED . " warning points, and you still have " . TextFormat::BLUE . MUtils::time_secsToString($consequence->banLength) . TextFormat::RED . " before you are unbanned." . TextFormat::AQUA . "Believe this to be a mistake? Contact us with email at " . TextFormat::DARK_PURPLE . "*****@*****.**"); return; } /** @var bool $success */ /** @var string $query */ extract($this->getResult()); if (!$success) { $player->kick(TextFormat::RED . "Sorry, our server has encountered an internal error when trying to retrieve your data from the database.", false); return; } /** @var int $resulttype */ if ($resulttype === AsyncQuery::TYPE_RAW) { $main->getLogger()->notice("New account pending to register: {$this->name}"); $loginData = null; } else { /** @var mixed[] $result */ $loginData = $result; if (count($main->getSessions()) >= Settings::$SYSTEM_MAX_PLAYERS) { $main->getLogger()->notice("Server slots exceeded optimum level!"); $rank = (int) $loginData["rank"]; if ($rank & Settings::RANK_PERM_MOD) { $main->getLogger()->notice($player->getName() . " bypassed as mod"); } elseif ($rank & Settings::RANK_IMPORTANCE_DONATOR) { $main->getLogger()->notice($player->getName() . " bypassed as donator"); } else { $main->getAltServer($ip, $port); if ($ip !== "0.0.0.0") { $main->getLogger()->notice($player->getName() . " is transferred to {$ip}:{$port}. Feature suppressed in 0.12.1"); // $main->transfer($player, $ip, $port, "This server is full.", false); } } } } $main->newSession($player, $loginData); }
public function execWarnOn(CommandSender $issuer, Session $ses) { $msg = $ses->translate(Phrases::WARNING_RECEIVED_NOTIFICATION, ["issuer" => $issuer->getName(), "message" => $this->msg, "points" => $this->points, "totalpoints" => $ses->getWarningPoints()]); $consequence = Settings::getWarnPtsConsequence($ses->getWarningPoints(), $this->creation); if ($consequence->banLength) { $msg .= $ses->translate(Phrases::WARNING_BANNED_NOTIFICATION, ["length" => MUtils::time_secsToString($consequence->banLength)]); $msg = "\n" . $msg; $ses->getPlayer()->kick($msg, false); } elseif ($consequence->muteSecs) { $mute = new MuteIssue(); $mute->cid = $this->clientId; $mute->ip = $ses->getPlayer()->getAddress(); $mute->uid = $this->uid; $mute->length = $consequence->muteSecs; $mute->msg = $this->msg; $mute->since = $this->creation; $mute->src = $issuer->getName(); $ses->getPlayer()->sendMessage($msg); MuteHormone::fromObject($ses->getMain(), $mute)->release(); } }