mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-18 11:45:30 +00:00
0.7.4 compatibility update - new chat message handling [part1]
This commit is contained in:
parent
3779a66bdb
commit
dc0577dcfa
@ -103,15 +103,21 @@ class ChatAPI{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function send($owner, $text, $whitelist = false, $blacklist = false){
|
public function send($owner, $text, $whitelist = false, $blacklist = false){
|
||||||
$message = "";
|
$message = array(
|
||||||
|
"owner" => $owner,
|
||||||
|
"message" => $text,
|
||||||
|
}
|
||||||
if($owner !== false){
|
if($owner !== false){
|
||||||
if($owner instanceof Player){
|
if($owner instanceof Player){
|
||||||
$message = "<".$owner->username."> ";
|
console("[INFO] <".$owner->username."> ".$text);
|
||||||
}else{
|
}else{
|
||||||
$message = "<".$owner."> ";
|
console("[INFO] <".$owner."> ".$text);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
console("[INFO] $text");
|
||||||
|
$message["owner"] = "";
|
||||||
}
|
}
|
||||||
$message .= $text;
|
|
||||||
if($whitelist === false){
|
if($whitelist === false){
|
||||||
console("[INFO] ".$message);
|
console("[INFO] ".$message);
|
||||||
}
|
}
|
||||||
|
@ -562,16 +562,17 @@ class Player{
|
|||||||
return;
|
return;
|
||||||
}else{
|
}else{
|
||||||
$message = $data->get();
|
$message = $data->get();
|
||||||
|
$this->sendChat(preg_replace('/\x1b\[[0-9;]*m/', "", $message["message"]), $message["author"]); //Remove ANSI codes from chat
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$message = (string) $data;
|
$message = (string) $data;
|
||||||
|
$this->sendChat(preg_replace('/\x1b\[[0-9;]*m/', "", (string) $data)); //Remove ANSI codes from chat
|
||||||
}
|
}
|
||||||
$this->sendChat(preg_replace('/\x1b\[[0-9;]*m/', "", $message)); //Remove ANSI codes from chat
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sendChat($message){
|
public function sendChat($message, $author = ""){
|
||||||
$mes = explode("\n", $message);
|
$mes = explode("\n", $message);
|
||||||
foreach($mes as $m){
|
foreach($mes as $m){
|
||||||
if(preg_match_all('#@([@A-Za-z_]{1,})#', $m, $matches, PREG_OFFSET_CAPTURE) > 0){
|
if(preg_match_all('#@([@A-Za-z_]{1,})#', $m, $matches, PREG_OFFSET_CAPTURE) > 0){
|
||||||
@ -594,6 +595,7 @@ class Player{
|
|||||||
|
|
||||||
if($m !== ""){
|
if($m !== ""){
|
||||||
$this->dataPacket(MC_CHAT, array(
|
$this->dataPacket(MC_CHAT, array(
|
||||||
|
"player" => ($author instanceof Player) ? $author->username:$author,
|
||||||
"message" => $m,
|
"message" => $m,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -1627,7 +1629,7 @@ class Player{
|
|||||||
$this->entity->updateMetadata();
|
$this->entity->updateMetadata();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MC_SIGN_UPDATE:
|
/*case MC_SIGN_UPDATE:
|
||||||
if($this->spawned === false or $this->blocked === true){
|
if($this->spawned === false or $this->blocked === true){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1641,15 +1643,14 @@ class Player{
|
|||||||
$t->setText($data["line0"], $data["line1"], $data["line2"], $data["line3"]);
|
$t->setText($data["line0"], $data["line1"], $data["line2"], $data["line3"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;*/
|
||||||
case MC_CHAT:
|
case MC_CHAT:
|
||||||
if($this->spawned === false){
|
if($this->spawned === false){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$this->craftingItems = array();
|
$this->craftingItems = array();
|
||||||
$this->toCraft = array();
|
$this->toCraft = array();
|
||||||
$message = preg_replace('#^<.*> #', "", $data["message"]);
|
if(trim($data["message"]) != "" and strlen($data["message"]) <= 255 and preg_match('#[^\\x20-\\xff]#', $message) == 0){
|
||||||
if(trim($data["message"]) != "" and strlen($data["message"]) <= 100 and preg_match('#[^\\x20-\\xff]#', $message) == 0){
|
|
||||||
if($message{0} === "/"){ //Command
|
if($message{0} === "/"){ //Command
|
||||||
$this->server->api->console->run(substr($message, 1), $this);
|
$this->server->api->console->run(substr($message, 1), $this);
|
||||||
}else{
|
}else{
|
||||||
|
@ -185,8 +185,10 @@ class CustomPacketHandler{
|
|||||||
break;
|
break;
|
||||||
case MC_CHAT:
|
case MC_CHAT:
|
||||||
if($this->c === false){
|
if($this->c === false){
|
||||||
|
$this->data["player"] = $this->get(Utils::readShort($this->get(2), false));
|
||||||
$this->data["message"] = $this->get(Utils::readShort($this->get(2), false));
|
$this->data["message"] = $this->get(Utils::readShort($this->get(2), false));
|
||||||
}else{
|
}else{
|
||||||
|
$this->raw .= Utils::writeShort(strlen($this->data["player"])).$this->data["player"];
|
||||||
$this->raw .= Utils::writeShort(strlen($this->data["message"])).$this->data["message"];
|
$this->raw .= Utils::writeShort(strlen($this->data["message"])).$this->data["message"];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -808,7 +810,7 @@ class CustomPacketHandler{
|
|||||||
$this->raw .= Utils::writeShort(strlen($this->data["message"])).$this->data["message"];
|
$this->raw .= Utils::writeShort(strlen($this->data["message"])).$this->data["message"];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MC_SIGN_UPDATE:
|
/*case MC_SIGN_UPDATE:
|
||||||
if($this->c === false){
|
if($this->c === false){
|
||||||
$this->data["x"] = Utils::readShort($this->get(2));
|
$this->data["x"] = Utils::readShort($this->get(2));
|
||||||
$this->data["y"] = ord($this->get(1));
|
$this->data["y"] = ord($this->get(1));
|
||||||
@ -824,7 +826,7 @@ class CustomPacketHandler{
|
|||||||
$this->raw .= Utils::writeLShort(strlen($this->data["line$i"])).$this->data["line$i"];
|
$this->raw .= Utils::writeLShort(strlen($this->data["line$i"])).$this->data["line$i"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;*/
|
||||||
case MC_ADVENTURE_SETTINGS:
|
case MC_ADVENTURE_SETTINGS:
|
||||||
if($this->c === false){
|
if($this->c === false){
|
||||||
$this->data["flags"] = Utils::readInt($this->get(4));
|
$this->data["flags"] = Utils::readInt($this->get(4));
|
||||||
|
@ -29,7 +29,7 @@ the Free Software Foundation, either version 3 of the License, or
|
|||||||
define("DEFLATEPACKET_LEVEL", 1);
|
define("DEFLATEPACKET_LEVEL", 1);
|
||||||
|
|
||||||
define("CURRENT_STRUCTURE", 5);
|
define("CURRENT_STRUCTURE", 5);
|
||||||
define("CURRENT_PROTOCOL", 11);
|
define("CURRENT_PROTOCOL", 12);
|
||||||
|
|
||||||
define("RAKNET_MAGIC", "\x00\xff\xff\x00\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\x12\x34\x56\x78");
|
define("RAKNET_MAGIC", "\x00\xff\xff\x00\xfe\xfe\xfe\xfe\xfd\xfd\xfd\xfd\x12\x34\x56\x78");
|
||||||
|
|
||||||
@ -98,8 +98,8 @@ define("MC_CONTAINER_SET_DATA", 0xb2);
|
|||||||
define("MC_CONTAINER_SET_CONTENT", 0xb3);
|
define("MC_CONTAINER_SET_CONTENT", 0xb3);
|
||||||
//define("MC_CONTAINER_ACK", 0xb4);
|
//define("MC_CONTAINER_ACK", 0xb4);
|
||||||
define("MC_CLIENT_MESSAGE", 0xb5);
|
define("MC_CLIENT_MESSAGE", 0xb5);
|
||||||
define("MC_SIGN_UPDATE", 0xb6);
|
define("MC_ADVENTURE_SETTINGS", 0xb6);
|
||||||
define("MC_ADVENTURE_SETTINGS", 0xb7);
|
define("MC_ENTITY_DATA", 0xb7);
|
||||||
|
|
||||||
|
|
||||||
class Protocol{
|
class Protocol{
|
||||||
@ -166,7 +166,7 @@ class Protocol{
|
|||||||
MC_CONTAINER_SET_SLOT => "Set Container Slot",
|
MC_CONTAINER_SET_SLOT => "Set Container Slot",
|
||||||
|
|
||||||
MC_CLIENT_MESSAGE => "Client Message",
|
MC_CLIENT_MESSAGE => "Client Message",
|
||||||
MC_SIGN_UPDATE => "Sign Update",
|
//MC_SIGN_UPDATE => "Sign Update",
|
||||||
MC_ADVENTURE_SETTINGS => "Adventure Settings",
|
MC_ADVENTURE_SETTINGS => "Adventure Settings",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user