protected function run(array $args, Session $sender) { if ($sender->getTeamId() === -1) { return $sender->translate(Phrases::CMD_TEAM_ERR_NOT_IN_TEAM); } if (!$sender->confirmQuitTeam) { $sender->confirmQuitTeam = true; return $sender->getTeamRank() === Settings::TEAM_RANK_LEADER ? $sender->translate(Phrases::CMD_TEAM_QUIT_WARNING_LEADER) : ($sender->getTeamRank() === Settings::TEAM_RANK_JUNIOR ? $sender->translate(Phrases::CMD_TEAM_QUIT_WARNING_JUNIOR) : $sender->translate(Phrases::CMD_TEAM_QUIT_WARNING_NORMAL)); } if ($sender->getTeamRank() === 4) { $prop = Hormone::get($this->getMain(), Hormone::TEAM_DISBAND_PROPAGANDA, $sender->getInGameName(), "Team disbanded by owner /tq", Settings::CLASS_ALL, ["tid" => $sender->getTeamId()]); $prop->release(); new RawAsyncQuery($this->getMain(), "UPDATE users SET tid=-1,teamrank=0,teamjoin=0,teampts=0 WHERE tid={$sender->getTeamId()}"); new RawAsyncQuery($this->getMain(), "DELETE FROM teams WHERE tid=" . $sender->getTeamId()); return true; } $type = Hormone::get($this->getMain(), Hormone::TEAM_CHAT, "Network", "%tr%" . Phrases::CMD_TEAM_QUITTED, Settings::CLASS_ALL, ["tid" => $sender->getTeamId(), "teamName" => $sender->getTeamName(), "ign" => "Network", "data" => ["name" => $sender->getPlayer()->getName(), "teamname" => $sender->getTeamName()]]); $type->release(); $sender->setLoginDatum("tid", -1); $sender->setLoginDatum("teamname", null); $sender->setLoginDatum("teamrank", 0); $sender->setLoginDatum("teamjoin", 0); $sender->setLoginDatum("teampts", 0); return $sender->translate(Phrases::CMD_TEAM_QUITTED); }
/** * @param Session $session * @param int $status * @return mixed[][]|mixed[] */ protected function getColumns(Session $session, $status) { $coins = $session->getCoins(); $this->coinsDelta = $session->getAndUpdateCoinsDelta(); $skin = $session->getCurrentFaceSkin(); return ["uid" => ["v" => $session->getUid(), "noupdate" => true], "name" => ["v" => strtolower($session->getPlayer()->getName())], "nicks" => "|" . implode("|", $session->getNicks()) . "|", "lastip" => $session->getPlayer()->getAddress(), "status" => $status, "lastses" => Settings::$LOCALIZE_CLASS, "authuuid" => $session->getPlayer()->getUniqueId(), "coins" => ["v" => $coins, "noupdate" => true], "hash" => ["v" => $session->getPasswordHash(), "noupdate" => true], "pwprefix" => ["v" => $session->getPasswordPrefix(), "noupdate" => true], "pwlen" => ["v" => $session->getPasswordLength(), "noupdate" => true], "registration" => ["v" => $session->getRegisterTime(), "noupdate" => true], "laston" => time(), "ontime" => (int) $session->getAndUpdateOntime(), "config" => $session->getAllSettings(), "skin1" => ["v" => substr($skin, 0, 128), "bin" => true], "skin2" => ["v" => substr($skin, 128, 128), "bin" => true], "lastgrind" => $session->getLastGrind(), "rank" => ["v" => $session->getRank(), "noupdate" => true], "warnpts" => $session->getWarningPoints(), "lastwarn" => $session->getLastWarnTime(), "tid" => $session->getTeamId(), "teamrank" => $session->getTeamRank(), "teamjoin" => $session->getTeamJoinTime(), "ignorelist" => "," . implode(",", $session->getIgnoreList()) . ","]; }
protected function run(array $args, Session $sender) { if ($sender->getTeamId() === -1) { return $sender->translate(Phrases::CMD_TEAM_ERR_ALREADY_IN_TEAM); } if (!$sender->confirmQuitTeam) { $sender->confirmQuitTeam = true; return $sender->getTeamRank() === Settings::TEAM_RANK_LEADER ? $sender->translate(Phrases::CMD_TEAM_QUIT_WARNING_LEADER) : ($sender->getTeamRank() === Settings::TEAM_RANK_JUNIOR ? $sender->translate(Phrases::CMD_TEAM_QUIT_WARNING_JUNIOR) : $sender->translate(Phrases::CMD_TEAM_QUIT_WARNING_NORMAL)); } $type = ChatType::get($this->getMain(), ChatType::TEAM_CHAT, "Network", "%tr%" . Phrases::CMD_TEAM_QUITTED, Settings::CLASS_ALL, ["tid" => $sender->getTeamId(), "teamName" => $sender->getTeamName(), "ign" => "Network", "data" => ["name" => $sender->getPlayer()->getName(), "teamname" => $sender->getTeamName()]]); $type->push(); $sender->setLoginDatum("tid", -1); $sender->setLoginDatum("teamrank", 0); $sender->setLoginDatum("teamjoin", 0); $sender->setLoginDatum("teampts", 0); return true; }
protected function run(array $args, Session $sender) { if (!isset($args[0])) { return false; } if ($sender->getTeamRank() < Settings::TEAM_RANK_COLEAD) { return $sender->translate(Phrases::CMD_TEAM_KICK_COLEAD); } new TeamKickQuery($this->getMain(), $sender, array_shift($args), implode(" ", $args)); return true; }
protected function run(array $args, Session $sender) { if ($sender->getTeamId() === -1 or $sender->getTeamRank() < Settings::TEAM_RANK_SENIOR) { return $sender->translate(Phrases::CMD_TEAM_INVITE_NOT_SENIOR); } $name = array_shift($args); if ($name === null) { return false; } new InviteTeamQuery($this->getMain(), $sender, $name); return true; }
protected function run(array $args, Session $sender) { if ($sender->getTeamId() === -1) { return $sender->translate(Phrases::CMD_TEAM_ERR_NOT_IN_TEAM); } if (!isset($args[0])) { new TeamPropertyResponseQuery($this->getPlugin(), $sender, $sender->getTeamId(), $this->column, $this->humanPhrase); return true; } if ($sender->getTeamRank() < Settings::TEAM_RANK_COLEAD) { return $sender->translate(Phrases::CMD_TEAM_PROPERTY_NEED_CO_LEADER, ["type" => $sender->translate($this->humanPhrase)]); } $text = preg_replace('/[ \\t]+\\|[ \\t]+/', "\n", implode(" ", $args)); $text = trim($text); new TeamPropertyChangeQuery($this->getPlugin(), $sender, $sender->getTeamId(), $this->column, $text, $this->humanPhrase); return true; }
protected function run(array $args, Session $sender) { if (!isset($args[0])) { return false; } if ($sender->getTeamId() === -1) { return $sender->translate(Phrases::CMD_TEAM_ERR_NOT_IN_TEAM); } if ($sender->getTeamRank() < Settings::TEAM_RANK_SENIOR) { return $sender->translate(Phrases::CMD_TEAM_RANK_CHANGE_NEED_SENIOR); } $name = array_shift($args); if (strtolower($sender->getPlayer()->getName()) === strtolower($name)) { return false; } new TeamRankChangeQuery($this->getMain(), $this->promote, $name, $sender); return true; }