server = ServerAPI::request(); } public function init(){ $this->server->api->console->register("tell", "Sends a private message to a player", array($this, "commandHandler")); $this->server->api->console->register("me", "Broadcast an action", array($this, "commandHandler")); $this->server->api->ban->cmdWhitelist("tell"); $this->server->api->ban->cmdWhitelist("me"); } public function commandHandler($cmd, $params, $issuer, $alias){ $output = ""; switch($cmd){ case "me": if(!($issuer instanceof Player)){ $sender = "Console"; }else{ $sender = $issuer->username; } $this->broadcast("* $sender ".implode(" ", $params)); break; case "tell": if(!isset($params[0]) or !isset($params[1])){ $output .= "Usage: /$cmd \n"; break; } if(!($issuer instanceof Player)){ $sender = "Console"; }else{ $sender = $issuer->username; } $n = array_shift($params); $target = $this->server->api->player->get($n); if($target instanceof Player){ $target = $target->username; }else{ $target = strtolower($n); if($target === "server" or $target === "console"){ $target = "Console"; }else{ $output .= "Usage: /$cmd \n"; break; } } $mes = implode(" ", $params); $output .= "[me -> ".$target."] ".$mes."\n"; if($target !== "Console"){ $this->sendTo(false, "[".$sender." -> me] ".$mes, $target); } console("[CHAT] [".$sender." -> ".$target."] ".$mes); break; } return $output; } public function broadcast($message){ $this->send(false, $message); console("[CHAT] ".$message); } public function sendTo($owner, $text, $player){ $this->send($owner, $text, array($player)); } public function send($owner, $text, $whitelist = false, $blacklist = false){ $message = ""; if($owner !== false){ if($owner instanceof Player){ $message = "<".$owner->username."> "; }else{ $message = "<".$owner."> "; } } $message .= $text; $this->server->handle("server.chat", new Container($message, $whitelist, $blacklist)); } }