当前位置: 首页>>代码示例>>PHP>>正文


PHP EntityDamageByEntityEvent::isCancelled方法代码示例

本文整理汇总了PHP中pocketmine\event\entity\EntityDamageByEntityEvent::isCancelled方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityDamageByEntityEvent::isCancelled方法的具体用法?PHP EntityDamageByEntityEvent::isCancelled怎么用?PHP EntityDamageByEntityEvent::isCancelled使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pocketmine\event\entity\EntityDamageByEntityEvent的用法示例。


在下文中一共展示了EntityDamageByEntityEvent::isCancelled方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: handleDataPacket

 /**
  * Handles a Minecraft packet
  * TODO: Separate all of this in handlers
  *
  * WARNING: Do not use this, it's only for internal use.
  * Changes to this function won't be recorded on the version.
  *
  * @param DataPacket $packet
  */
 public function handleDataPacket(DataPacket $packet)
 {
     if ($this->connected === false) {
         return;
     }
     if ($packet::NETWORK_ID === ProtocolInfo::BATCH_PACKET) {
         /** @var BatchPacket $packet */
         $this->server->getNetwork()->processBatch($packet, $this);
         return;
     }
     $timings = Timings::getReceiveDataPacketTimings($packet);
     $timings->startTiming();
     $this->server->getPluginManager()->callEvent($ev = new DataPacketReceiveEvent($this, $packet));
     if ($ev->isCancelled()) {
         $timings->stopTiming();
         return;
     }
     switch ($packet::NETWORK_ID) {
         case ProtocolInfo::ITEM_FRAME_DROP_ITEM_PACKET:
             $tile = $this->level->getTile($this->temporalVector->setComponents($packet->x, $packet->y, $packet->z));
             if ($tile instanceof ItemFrame) {
                 $block = $this->level->getBlock($tile);
                 $this->server->getPluginManager()->callEvent($ev = new BlockBreakEvent($this, $block, $this->getInventory()->getItemInHand(), true));
                 if (!$ev->isCancelled()) {
                     $item = $tile->getItem();
                     $this->server->getPluginManager()->callEvent($ev = new ItemFrameDropItemEvent($this, $block, $tile, $item));
                     if (!$ev->isCancelled()) {
                         if ($item->getId() !== Item::AIR) {
                             if (mt_rand(0, 10) / 10 < $tile->getItemDropChance()) {
                                 $this->level->dropItem($tile, $item);
                             }
                             $tile->setItem(Item::get(Item::AIR));
                             $tile->setItemRotation(0);
                         }
                     } else {
                         $tile->spawnTo($this);
                     }
                 } else {
                     $tile->spawnTo($this);
                 }
             }
             break;
         case ProtocolInfo::REQUEST_CHUNK_RADIUS_PACKET:
             /*if($this->spawned){
             			$this->viewDistance = $packet->radius ** 2;
             		}*/
             $pk = new ChunkRadiusUpdatedPacket();
             $pk->radius = $this->server->chunkRadius != -1 ? $this->server->chunkRadius : $packet->radius;
             $this->dataPacket($pk);
             break;
         case ProtocolInfo::PLAYER_INPUT_PACKET:
             break;
         case ProtocolInfo::LOGIN_PACKET:
             if ($this->loggedIn) {
                 break;
             }
             $pk = new PlayStatusPacket();
             $pk->status = PlayStatusPacket::LOGIN_SUCCESS;
             $this->dataPacket($pk);
             $this->username = TextFormat::clean($packet->username);
             $this->displayName = $this->username;
             $this->setNameTag($this->username);
             $this->iusername = strtolower($this->username);
             $this->protocol = $packet->protocol;
             if ($this->server->getConfigBoolean("online-mode", false) && $packet->identityPublicKey === null) {
                 $this->kick("disconnectionScreen.notAuthenticated", false);
                 break;
             }
             if (count($this->server->getOnlinePlayers()) >= $this->server->getMaxPlayers() and $this->kick("disconnectionScreen.serverFull", false)) {
                 break;
             }
             if (!in_array($packet->protocol, ProtocolInfo::ACCEPTED_PROTOCOLS)) {
                 if ($packet->protocol < ProtocolInfo::CURRENT_PROTOCOL) {
                     $message = "disconnectionScreen.outdatedClient";
                     $pk = new PlayStatusPacket();
                     $pk->status = PlayStatusPacket::LOGIN_FAILED_CLIENT;
                     $this->directDataPacket($pk);
                 } else {
                     $message = "disconnectionScreen.outdatedServer";
                     $pk = new PlayStatusPacket();
                     $pk->status = PlayStatusPacket::LOGIN_FAILED_SERVER;
                     $this->directDataPacket($pk);
                 }
                 $this->close("", $message, false);
                 break;
             }
             $this->randomClientId = $packet->clientId;
             $this->uuid = UUID::fromString($packet->clientUUID);
             $this->rawUUID = $this->uuid->toBinary();
             $valid = true;
             $len = strlen($packet->username);
//.........这里部分代码省略.........
开发者ID:iTXTech,项目名称:Genisys,代码行数:101,代码来源:Player.php

示例2: handleDataPacket

 /**
  * Handles a Minecraft packet
  * TODO: Separate all of this in handlers
  *
  * WARNING: Do not use this, it's only for internal use.
  * Changes to this function won't be recorded on the version.
  *
  * @param DataPacket $packet
  */
 public function handleDataPacket(DataPacket $packet)
 {
     if ($this->connected === false) {
         return;
     }
     if ($packet::NETWORK_ID === ProtocolInfo::BATCH_PACKET) {
         /** @var BatchPacket $packet */
         $this->server->getNetwork()->processBatch($packet, $this);
         return;
     }
     $timings = Timings::getReceiveDataPacketTimings($packet);
     $timings->startTiming();
     $this->server->getPluginManager()->callEvent($ev = new DataPacketReceiveEvent($this, $packet));
     if ($ev->isCancelled()) {
         $timings->stopTiming();
         return;
     }
     switch ($packet::NETWORK_ID) {
         case ProtocolInfo::ITEM_FRAME_DROP_ITEM_PACKET:
             $tile = $this->level->getTile($this->temporalVector->setComponents($packet->x, $packet->y, $packet->z));
             if ($tile instanceof ItemFrame) {
                 $block = $this->level->getBlock($tile);
                 $this->server->getPluginManager()->callEvent($ev = new BlockBreakEvent($this, $block, $this->getInventory()->getItemInHand(), true));
                 if (!$ev->isCancelled()) {
                     $item = $tile->getItem();
                     $this->server->getPluginManager()->callEvent($ev = new ItemFrameDropItemEvent($this, $block, $tile, $item));
                     if (!$ev->isCancelled()) {
                         if ($item->getId() !== Item::AIR) {
                             if (mt_rand(0, 10) / 10 < $tile->getItemDropChance()) {
                                 $this->level->dropItem($tile, $item);
                             }
                             $tile->setItem(Item::get(Item::AIR));
                             $tile->setItemRotation(0);
                         }
                     } else {
                         $tile->spawnTo($this);
                     }
                 } else {
                     $tile->spawnTo($this);
                 }
             }
             break;
         case ProtocolInfo::REQUEST_CHUNK_RADIUS_PACKET:
             /*if($this->spawned){
             			$this->viewDistance = $packet->radius ** 2;
             		}*/
             $pk = new ChunkRadiusUpdatedPacket();
             $pk->radius = $this->server->chunkRadius != -1 ? $this->server->chunkRadius : $packet->radius;
             $this->dataPacket($pk);
             break;
         case ProtocolInfo::PLAYER_INPUT_PACKET:
             break;
         case ProtocolInfo::LOGIN_PACKET:
             if ($this->loggedIn) {
                 break;
             }
             $pk = new PlayStatusPacket();
             $pk->status = PlayStatusPacket::LOGIN_SUCCESS;
             $this->dataPacket($pk);
             $this->username = TextFormat::clean($packet->username);
             $this->displayName = $this->username;
             $this->setNameTag($this->username);
             $this->iusername = strtolower($this->username);
             $this->protocol = $packet->protocol;
             if (count($this->server->getOnlinePlayers()) >= $this->server->getMaxPlayers() and $this->kick("disconnectionScreen.serverFull", false)) {
                 break;
             }
             if (!in_array($packet->protocol, ProtocolInfo::ACCEPTED_PROTOCOLS)) {
                 if ($packet->protocol < ProtocolInfo::CURRENT_PROTOCOL) {
                     $message = "disconnectionScreen.outdatedClient";
                     $pk = new PlayStatusPacket();
                     $pk->status = PlayStatusPacket::LOGIN_FAILED_CLIENT;
                     $this->directDataPacket($pk);
                 } else {
                     $message = "disconnectionScreen.outdatedServer";
                     $pk = new PlayStatusPacket();
                     $pk->status = PlayStatusPacket::LOGIN_FAILED_SERVER;
                     $this->directDataPacket($pk);
                 }
                 $this->close("", $message, false);
                 break;
             }
             $this->randomClientId = $packet->clientId;
             $this->loginData = ["clientId" => $packet->clientId, "loginData" => null];
             $this->uuid = UUID::fromString($packet->clientUUID);
             $this->rawUUID = $this->uuid->toBinary();
             $valid = true;
             $len = strlen($packet->username);
             if ($len > 16 or $len < 3) {
                 $valid = false;
             }
//.........这里部分代码省略.........
开发者ID:yungtechboy1,项目名称:Genisys,代码行数:101,代码来源:Player.php


注:本文中的pocketmine\event\entity\EntityDamageByEntityEvent::isCancelled方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。