mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-23 00:55:57 +00:00
Added /tell
This commit is contained in:
parent
febfbb19c4
commit
026353399b
@ -32,7 +32,44 @@ class ChatAPI{
|
||||
}
|
||||
|
||||
public function init(){
|
||||
|
||||
$this->server->api->console->register("tell", "Sends a private message to a player", array($this, "commandHandler"));
|
||||
}
|
||||
|
||||
public function commandHandler($cmd, $params, $issuer, $alias){
|
||||
$output = "";
|
||||
switch($cmd){
|
||||
case "tell":
|
||||
if(!isset($params[0]) or !isset($params[1])){
|
||||
$output .= "Usage: /$cmd <player> <message>\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 <player> <message>\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){
|
||||
|
@ -138,10 +138,10 @@ class PlayerAPI{
|
||||
$player = $issuer;
|
||||
}
|
||||
if(isset($params[1])){
|
||||
$player = $this->server->api->player->get($params[0]);
|
||||
$player = $this->server->api->player->get($params[1]);
|
||||
}
|
||||
if(!($player instanceof Player) or !isset($gms[strtolower($params[0])])){
|
||||
$output .= "Usage: /gamemode <survival | creative | adventure> [player]\n";
|
||||
$output .= "Usage: /$cmd <survival | creative | adventure> [player]\n";
|
||||
break;
|
||||
}
|
||||
if($player->setGamemode($gms[strtolower($params[0])])){
|
||||
@ -156,7 +156,7 @@ class PlayerAPI{
|
||||
$name = $params[0];
|
||||
$target = $params[1];
|
||||
}else{
|
||||
$output .= "Usage: /tp [player] <target>\n";
|
||||
$output .= "Usage: /$cmd [player] <target>\n";
|
||||
break;
|
||||
}
|
||||
if($this->teleport($name, $target)){
|
||||
@ -177,7 +177,7 @@ class PlayerAPI{
|
||||
$y = (float) $params[2];
|
||||
$z = (float) $params[3];
|
||||
}else{
|
||||
$output .= "Usage: /tp [player] <x> <y> <z>\n";
|
||||
$output .= "Usage: /$cmd [player] <x> <y> <z>\n";
|
||||
break;
|
||||
}
|
||||
if($this->tppos($name, $x, $y, $z)){
|
||||
@ -196,14 +196,15 @@ class PlayerAPI{
|
||||
if($player instanceof Player){
|
||||
$this->server->api->entity->harm($player->eid, 20, "console", true);
|
||||
}else{
|
||||
$output .= "Usage: /kill [player]\n";
|
||||
$output .= "Usage: /$cmd [player]\n";
|
||||
}
|
||||
break;
|
||||
case "list":
|
||||
$output .= "Player list:\n";
|
||||
foreach($this->server->clients as $c){
|
||||
$output .= $c->username." (".$c->ip.":".$c->port."), ClientID ".$c->clientID.", (".round($c->entity->x, 2).", ".round($c->entity->y, 2).", ".round($c->entity->z, 2).")\n";
|
||||
$output .= $c->username.", ";
|
||||
}
|
||||
$output = substr($output, 0, -2);
|
||||
break;
|
||||
}
|
||||
return $output;
|
||||
@ -227,6 +228,7 @@ class PlayerAPI{
|
||||
}
|
||||
|
||||
public function get($name, $alike = true){
|
||||
$name = strtolower($name);
|
||||
$CID = $this->server->query("SELECT ip,port FROM players WHERE name ".($alike === true ? "LIKE '%".$name."%'":"= '".$name."'").";", true);
|
||||
$CID = $this->server->clientID($CID["ip"], $CID["port"]);
|
||||
if(isset($this->server->clients[$CID])){
|
||||
@ -275,7 +277,7 @@ class PlayerAPI{
|
||||
console("[INFO] Player \"\x1b[33m".$player->username."\x1b[0m\" connected from \x1b[36m".$player->ip.":".$player->port."\x1b[0m");
|
||||
$player->data = $this->getOffline($player->username);
|
||||
$player->gamemode = $player->data->get("gamemode");
|
||||
$this->server->query("INSERT OR REPLACE INTO players (clientID, ip, port, name) VALUES (".$player->clientID.", '".$player->ip."', ".$player->port.", '".$player->username."');");
|
||||
$this->server->query("INSERT OR REPLACE INTO players (clientID, ip, port, name) VALUES (".$player->clientID.", '".$player->ip."', ".$player->port.", '".strtolower($player->username)."');");
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user