Exemple #1
0
 /**
  *
  * @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);
     }
 }
Exemple #2
0
 /**
  *
  * @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);
     }
 }