/** * Sends a direct chat message to a player * * @param string $message */ public function sendMessage($message) { if ($this->removeFormat !== false) { $message = TextWrapper::wrap(TextFormat::clean($message)); } $mes = explode("\n", $message); foreach ($mes as $m) { if ($m !== "") { $pk = new MessagePacket(); $pk->source = ""; //Do not use this ;) $pk->message = $m; $this->dataPacket($pk); } } }
public function Chatty() { foreach ($this->getServer()->getOnlinePlayers() as $OnlinePlayer) { if (!isset($this->db[$OnlinePlayer->getName()]["NameTAG"])) { continue; } if (isset($this->db[$OnlinePlayer->getName()]["NameTAG"])) { if ($this->db[$OnlinePlayer->getName()]["NameTAG"] == false) { continue; } } $px = round($OnlinePlayer->x); $py = round($OnlinePlayer->y); $pz = round($OnlinePlayer->z); if (isset($this->packetQueue[$OnlinePlayer->getName()]["eid"])) { $this->packet["RemovePlayerPacket"]->eid = $this->packetQueue[$OnlinePlayer->getName()]["eid"]; $OnlinePlayer->dataPacket($this->packet["RemovePlayerPacket"]); // 네임택 제거패킷 전송 } if ($OnlinePlayer->pitch / 180 * M_PI < -0.2) { continue; } // 하늘을 볼경우 패킷보내지않음 $allmessage = ""; if (!isset($this->messageStack[$OnlinePlayer->getName()])) { continue; } foreach ($this->messageStack[$OnlinePlayer->getName()] as $message) { $allmessage .= TextWrapper::wrap(TextFormat::clean($message)) . "\n"; } // 색상표시시 \n이 작동안됨 $this->packetQueue[$OnlinePlayer->getName()]["x"] = round($px); $this->packetQueue[$OnlinePlayer->getName()]["y"] = round($py); $this->packetQueue[$OnlinePlayer->getName()]["z"] = round($pz); $this->packetQueue[$OnlinePlayer->getName()]["eid"] = Entity::$entityCount++; $this->packet["AddPlayerPacket"]->eid = $this->packetQueue[$OnlinePlayer->getName()]["eid"]; $this->packet["AddPlayerPacket"]->username = $this->nameTag . $allmessage; $this->packet["AddPlayerPacket"]->x = $px + -\sin($OnlinePlayer->yaw / 180 * M_PI - 0.4) * 7; $this->packet["AddPlayerPacket"]->y = $py + 10; $this->packet["AddPlayerPacket"]->z = $pz + \cos($OnlinePlayer->yaw / 180 * M_PI - 0.4) * 7; // *\cos ( $OnlinePlayer->pitch / 180 * M_PI ) $OnlinePlayer->dataPacket($this->packet["AddPlayerPacket"]); } }