public function execute(CommandSender $sender, $commandLabel, array $args) { if (!$this->testPermission($sender)) { return true; } $msg = implode(" ", $args); $local = true; if (substr($msg, 0, 1) === ".") { $msg = substr($msg, 1); $local = false; } $type = ChatType::get($this->getMain(), ChatType::SERVER_BROADCAST, $sender->getName(), $msg, $local ? Settings::$LOCALIZE_CLASS : Settings::CLASS_ALL, []); $type->push(); return true; }
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; }
public function onCompletion(Server $server) { $main = BasePlugin::getInstance($server); $result = $this->getResult(); if ($this->lastId === null) { $main->setInternalLastChatId($this->fetchedMaxId); $result = $this->getResult()["result"]; foreach ($result as $row) { $type = ChatType::get($main, ChatType::MUTE_CHAT, $result["src"], $result["msg"], Settings::$LOCALIZE_CLASS, json_decode($row["json"])); $type->execute(); } } elseif ($result["resulttype"] === self::TYPE_ALL) { $result = $this->getResult()["result"]; foreach ($result as $row) { $row["json"] = json_decode($row["json"], true); $main->handleChat($row); } } $task = $main->getFireSyncChatQueryTask(); $task->canFireNext = true; }
public function handleChat(array $row) { $this->setInternalLastChatId($row["id"]); $source = $row["src"]; $message = $row["msg"]; $type = $row["type"]; $class = $row["class"]; $data = $row["json"]; $exe = ChatType::get($this, $type, $source, $message, $class, $data); $exe->execute(); }