/** * * @param string $message * @param Player $sender */ public function broadcastMessage($message, $sender = null) { //콘솔에 메세지 출력 $this->getLogger()->info($message); //접속한 플레이어들에게 전달 foreach ($this->getServer()->getOnlinePlayers() as $player) { //강제 근거리 채팅 모드이거나 해당 플레이어가 근거리 채팅 모드를 켠 경우 if ($this->getConfig()->get("local-chat-only", false) or isset($this->db[$player->getName()]["local-chat"]) and $this->db[$player->getName()]["local-chat"] == true) { //@all을 넣어서 확성기를 쓴 경우나 해당 플레이어를 호명한 경우는 멀거나 다른 서버에서 말했어도 반드시 전달됨 if (strpos($message, "@" . $player->getName()) === false and strpos($message, "@all") !== 0) { //멀거나 다른 서버에서 말한 경우 if ($sender === null or $sender->distance($player) > intval($this->getConfig()->get("local-chat-distance", 50))) { continue; } } } //받아라 얍 $player->sendMessage($message); } }
/** * * @param string $message * @param Player $sender */ public function broadcastMessage($message, $sender = null) { $this->getLogger()->info($message); foreach ($this->getServer()->getOnlinePlayers() as $player) { if (isset($this->db[$player->getName()]["local-chat"]) and $this->db[$player->getName()]["local-chat"] == true) { if ($sender === null or $sender->distance($player) > self::LOCAL_CHAT_DISTANCE) { if (!isset(explode($player->getName(), $message)[1])) { continue; } } } $player->sendMessage($message); } }