getViewers() public method

public getViewers ( ) : Player[]
return pocketmine\Player[]
 /**
  * @param CommandSender $sender
  * @param Entity $entity
  */
 public function sendEntityInfo(CommandSender $sender, Entity $entity)
 {
     $sender->sendMessage("Nametag: " . $entity->getNameTag());
     $sender->sendMessage("Health: " . $entity->getHealth() . "/" . $entity->getMaxHealth());
     $sender->sendMessage("XYZ: " . $entity->getFloorX() . ":" . $entity->getFloorY() . ":" . $entity->getFloorZ());
     $sender->sendMessage("Level: " . $entity->getLevel()->getName());
     $sender->sendMessage("Id: " . $entity->getId());
     $sender->sendMessage("Save-id: " . $entity->getSaveId());
     $sender->sendMessage("Last-damage-cause: " . ($entity->getLastDamageCause() !== null ? TextFormat::GREEN . $entity->getLastDamageCause()->getCause() : TextFormat::RED . "none"));
     $sender->sendMessage("Eye-height" . $entity->getEyeHeight());
     $sender->sendMessage("Is-alive: " . ($entity->isAlive() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-nametag-visible: " . ($entity->isNameTagVisible() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-inside-water: " . ($entity->isInsideOfWater() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-inside-solid: " . ($entity->isInsideOfSolid() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-on-ground: " . ($entity->isOnGround() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-on-fire: " . ($entity->isOnFire() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     //$sender->sendMessage("Is-sneaking: ".($entity->isSneaking() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     //$sender->sendMessage("Is-sprinting: ".($entity->isSprinting() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     $effectCount = 0;
     $effectNames = "";
     foreach ($entity->getEffects() as $effect) {
         $effectNames .= $effect->getName() . ", ";
         $effectCount++;
     }
     $sender->sendMessage("Effects (" . $effectCount . "): " . substr($effectNames, 0, -2));
     $viewerCount = 0;
     $viewerNames = "";
     foreach ($entity->getViewers() as $viewer) {
         $viewerNames .= $viewer->getName() . ", ";
         $viewerCount++;
     }
     $sender->sendMessage("Viewers (" . $viewerCount . "): " . substr($viewerNames, 0, -2));
 }
Example #2
0
 public function onConsume(Entity $human)
 {
     $pk = new EntityEventPacket();
     $pk->eid = $human->getId();
     $pk->event = EntityEventPacket::USE_ITEM;
     if ($human instanceof Player) {
         $human->dataPacket($pk);
     }
     Server::broadcastPacket($human->getViewers(), $pk);
     $ev = new EntityEatItemEvent($human, $this);
     $human->addSaturation($ev->getSaturationRestore());
     $human->addFood($ev->getFoodRestore());
     foreach ($ev->getAdditionalEffects() as $effect) {
         $human->addEffect($effect);
     }
     $human->getInventory()->setItemInHand($ev->getResidue());
 }
Example #3
0
 /**
  * @param Entity $entity
  * @return bool
  * 判断某生物周边32格内是否有玩家存在
  * 控制僵尸是否移动(自由行走模式)
  */
 public function willMove(Entity $entity)
 {
     foreach ($entity->getViewers() as $viewer) {
         if ($entity->distance($viewer->getLocation()) <= 32) {
             return true;
         }
     }
     return false;
 }
Example #4
0
 public function onConsume(Entity $human)
 {
     $pk = new EntityEventPacket();
     $pk->eid = $human->getId();
     $pk->event = EntityEventPacket::USE_ITEM;
     if ($human instanceof Player) {
         $human->dataPacket($pk);
     }
     Server::broadcastPacket($human->getViewers(), $pk);
     Server::getInstance()->getPluginManager()->callEvent($ev = new EntityDrinkPotionEvent($human, $this));
     if (!$ev->isCancelled()) {
         foreach ($ev->getEffects() as $effect) {
             $human->addEffect($effect);
         }
         //Don't set the held item to glass bottle if we're in creative
         if ($human instanceof Player) {
             if ($human->getGamemode() === 1) {
                 return;
             }
         }
         $human->getInventory()->setItemInHand(Item::get(self::GLASS_BOTTLE));
     }
 }