mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-03 16:49:53 +00:00
Added multiple player selection and exact match by default (fixes #1167)
This commit is contained in:
parent
8e37627bc0
commit
bf6e759d97
@ -306,18 +306,35 @@ class PlayerAPI{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get($name, $alike = true){
|
public function get($name, $alike = true, $multiple = false){
|
||||||
$name = trim(strtolower($name));
|
$name = trim(strtolower($name));
|
||||||
if($name === ""){
|
if($name === ""){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$CID = $this->server->query("SELECT ip,port FROM players WHERE name ".($alike === true ? "LIKE '%".$name."%'":"= '".$name."'").";", true);
|
$query = $this->server->query("SELECT ip,port,name FROM players WHERE name ".($alike === true ? "LIKE '%".$name."%'":"= '".$name."'").";");
|
||||||
$CID = PocketMinecraftServer::clientID($CID["ip"], $CID["port"]);
|
$players = array();
|
||||||
|
if($query !== false and $query !== true){
|
||||||
|
while(($d = $query->fetchArray(SQLITE3_ASSOC)) !== false){
|
||||||
|
$CID = PocketMinecraftServer::clientID($d["ip"], $d["port"]);
|
||||||
if(isset($this->server->clients[$CID])){
|
if(isset($this->server->clients[$CID])){
|
||||||
return $this->server->clients[$CID];
|
$players[$CID] = $this->server->clients[$CID];
|
||||||
|
if($multiple === false and $d["name"] === $name){
|
||||||
|
return $players[$CID];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($multiple === false){
|
||||||
|
if(count($players) > 0){
|
||||||
|
return array_shift($players);
|
||||||
|
}else{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
return $players;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getAll($level = null){
|
public function getAll($level = null){
|
||||||
if($level instanceof Level){
|
if($level instanceof Level){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user