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


PHP server\DataPacketSendEvent类代码示例

本文整理汇总了PHP中pocketmine\event\server\DataPacketSendEvent的典型用法代码示例。如果您正苦于以下问题:PHP DataPacketSendEvent类的具体用法?PHP DataPacketSendEvent怎么用?PHP DataPacketSendEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: onSend

 public function onSend(DataPacketSendEvent $ev)
 {
     $pk = $ev->getPacket();
     if ($pk instanceof PlayerArmorEquipmentPacket) {
         echo get_class($pk) . "\n";
         print_r($pk);
         return;
     }
     if ($pk instanceof ContainerSetContentPacket) {
         echo get_class($pk) . "\n";
         print_r($pk);
         return;
     }
     if ($pk instanceof ContainerSetSlotPacket) {
         echo get_class($pk) . "\n";
         print_r($pk);
         return;
     }
     if ($pk instanceof PlayerArmorEquipmentPacket) {
         echo get_class($pk) . "\n";
         print_r($pk);
         return;
     }
     if ($pk instanceof PlayerEquipmentPacket) {
         echo get_class($pk) . "\n";
         print_r($pk);
         return;
     }
 }
开发者ID:AvivShopen,项目名称:bad-plugins,代码行数:29,代码来源:Main.php

示例2: onDataPacketSend

 public function onDataPacketSend(DataPacketSendEvent $event)
 {
     if ($event->getPacket() instanceof AddPlayerPacket) {
         /** @var $pk AddPlayerPacket */
         $pk = $event->getPacket();
         if (isset($this->blockMans[spl_object_hash($event->getPlayer()->getLevel()->getEntity($pk->eid))])) {
             $event->setCancelled(true);
         }
     }
 }
开发者ID:Jerry6o,项目名称:BlockMan,代码行数:10,代码来源:BlockMan.php

示例3: onSendPack

 public function onSendPack(DataPacketSendEvent $event)
 {
     $pk = $event->getPacket();
     if (!$pk instanceof MessagePacket) {
         return;
     }
     $p = $event->getPlayer();
     if ($pk->source === "chatlinebreaker.ignore") {
         return;
     }
     if (!$this->isPEnable($p->getName())) {
         return;
     }
     $event->setCancelled();
     $msg = $pk->message;
     if ($pk->source) {
         $msg = "<{$pk->source}> {$msg}";
     }
     $this->processMessage($p, $msg);
 }
开发者ID:barnseyminesuk,项目名称:Small-ZC-Plugins,代码行数:20,代码来源:Main.php

示例4: onDataPacketSendEvent

 public function onDataPacketSendEvent(DataPacketSendEvent $event)
 {
     if ($this->plugin->trackingOn) {
         $packet = $event->getPacket();
         //$pkId = $packet->pid();
         $class_path_ar = explode('\\', get_class($packet));
         $pkName = end($class_path_ar);
         if (isset($this->plugin->sentPackets[$pkName])) {
             $this->plugin->sentPackets[$pkName]++;
         } else {
             $this->plugin->sentPackets[$pkName] = 1;
         }
     }
     /*
     
     if(isset($this->plugin->sentPackets[$pkId])) {
         $this->plugin->sentPackets[$pkId]++;
     } else {
         $this->plugin->sentPackets[$pkId] = 1;
     }
     */
 }
开发者ID:dishrex,项目名称:PacketTracker,代码行数:22,代码来源:EventListener.php

示例5: onDataPacketSend

 public function onDataPacketSend(DataPacketSendEvent $event)
 {
     $pk = $event->getPacket();
     $pk->pid();
 }
开发者ID:LegionPE,项目名称:LegionPE-Eta,代码行数:5,代码来源:SessionInterface.php

示例6: directDataPacket

 /**
  * @param DataPacket $packet
  * @param bool       $needACK
  *
  * @return bool|int
  */
 public function directDataPacket(DataPacket $packet, $needACK = false)
 {
     if ($this->connected === false) {
         return false;
     }
     $timings = Timings::getSendDataPacketTimings($packet);
     $timings->startTiming();
     $this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
     if ($ev->isCancelled()) {
         $timings->stopTiming();
         return false;
     }
     $identifier = $this->interface->putPacket($this, $packet, $needACK, true);
     if ($needACK and $identifier !== null) {
         $this->needACK[$identifier] = false;
         $timings->stopTiming();
         return $identifier;
     }
     $timings->stopTiming();
     return true;
 }
开发者ID:NewDelion,项目名称:PocketMine-0.13.x,代码行数:27,代码来源:Player.php

示例7: onSendPacket

 public function onSendPacket(DataPacketSendEvent $ev)
 {
     if ($ev->getPacket()->pid() !== ProtocolInfo::FULL_CHUNK_DATA_PACKET) {
         return;
     }
     // Re-spawn as chunks get sent...
     $pl = $ev->getPlayer();
     $level = $pl->getLevel();
     if (!isset($this->cases[$level->getName()])) {
         return;
     }
     $chunkX = $ev->getPacket()->chunkX;
     $chunkZ = $ev->getPacket()->chunkZ;
     foreach (array_keys($this->cases[$level->getName()]) as $cid) {
         $pos = explode(":", $cid);
         if ($pos[0] >> 4 == $chunkX && $pos[2] >> 4 == $chunkZ) {
             //echo "Respawn case... $cid\n"; //##DEBUG
             $this->sndItemCase($level, $cid, [$pl]);
         }
     }
 }
开发者ID:flaxues,项目名称:pocketmine-plugins,代码行数:21,代码来源:Main.php

示例8: onDataPacketSendEvent

 public function onDataPacketSendEvent(DataPacketSendEvent $event)
 {
     $pk = $event->getPacket();
     if ($pk instanceof SetHealthPacket) {
         $attribute = Attribute::getAttribute(Attribute::MAX_HEALTH);
         $attributeData = AttributeProvider::getInstance()->getAttribute($event->getPlayer());
         $attribute->setMinValue(0);
         $attribute->setMaxValue($attributeData->getMaxHealth());
         if ($pk->health > $attributeData->getMaxHealth()) {
             $pk->health = $attributeData->getMaxHealth();
         }
         $attribute->setValue($pk->health);
         $attributePacket = new UpdateAttributesPacket();
         $attributePacket->entityId = 0;
         $attributePacket->entries = [$attribute];
         $event->setCancelled();
         $event->getPlayer()->dataPacket($attributePacket);
     }
 }
开发者ID:TDMGamingMC,项目名称:PlayHarder,代码行数:19,代码来源:EventListener.php

示例9: onSend

 public function onSend(DataPacketSendEvent $event)
 {
     $player = $event->getPlayer();
     $user = $this->main->getUserByPlayer($player);
     $pk = $event->getPacket();
     if ($pk::NETWORK_ID === Info::CONTAINER_SET_CONTENT_PACKET) {
         /** @var ContainerSetContentPacket $pk */
         if ($user !== null and $user->isPlaying()) {
             return;
         }
         if ($player->isSurvival()) {
             // survival/adventure
             if ($pk->windowid === ContainerSetContentPacket::SPECIAL_ARMOR or $pk->windowid === ContainerSetContentPacket::SPECIAL_INVENTORY) {
                 $event->setCancelled();
             }
         }
     }
 }
开发者ID:GoneTone,项目名称:HereAuth,代码行数:18,代码来源:EventRouter.php

示例10: onDataPacket

 public function onDataPacket(DataPacketSendEvent $event)
 {
     if ($event->getPacket() instanceof MessagePacket) {
         if ($event->getPacket()->pid() != 0x85) {
             return;
         }
         if ($event->isCancelled()) {
             return;
         }
         if (isset($this->db[$event->getPlayer()->getName()]["CHAT"])) {
             if ($this->db[$event->getPlayer()->getName()]["CHAT"] == false) {
                 $event->setCancelled();
                 return;
             }
         }
         if (isset($this->db[$event->getPlayer()->getName()]["localCHAT"])) {
             if ($this->db[$event->getPlayer()->getName()]["localCHAT"] == false) {
                 if (isset($this->localChatQueue["Player"])) {
                     if ($this->localChatQueue["Player"] instanceof Player) {
                         if ($this->localChatQueue["Message"] == null) {
                             $this->localChatQueue["Message"] = $event->getPacket()->message;
                         }
                         // 보내는 메시지가 동일할때만
                         if ($this->localChatQueue["Message"] == $event->getPacket()->message) {
                             $dx = abs($event->getPlayer()->x - $this->localChatQueue["Player"]->x);
                             $dy = abs($event->getPlayer()->y - $this->localChatQueue["Player"]->y);
                             $dz = abs($event->getPlayer()->z - $this->localChatQueue["Player"]->z);
                             // 거리가 멀면 패킷보내지않음
                             if ($dx > 25 or $dy > 25 or $dz > 25) {
                                 $event->setCancelled();
                                 return;
                             }
                         }
                     }
                 }
             }
         }
         if (isset($this->db[$event->getPlayer()->getName()]["NameTAG"])) {
             if ($this->db[$event->getPlayer()->getName()]["NameTAG"] == true) {
                 $event->setCancelled();
                 $this->putStack($event->getPlayer()->getName(), $event->getPacket()->message);
                 return;
             }
         }
     }
 }
开发者ID:EmreTr1,项目名称:rtr,代码行数:46,代码来源:Chatty.php

示例11: onPacketSend

 public function onPacketSend(DataPacketSendEvent $event)
 {
     if (isset($event->getPacket()->eid)) {
         if ($this->isDisguised($event->getPacket()->eid) && !$event->getPlayer()->hasPermission("disguiseme.exempt")) {
             if ($event->getPacket() instanceof MovePlayerPacket) {
                 $pk = new MoveEntityPacket();
                 $pk->entities = [[$event->getPacket()->eid, $event->getPacket()->x, $event->getPacket()->y, $event->getPacket()->z, $event->getPacket()->yaw, $event->getPacket()->pitch]];
                 $event->getPlayer()->dataPacket($pk);
                 $event->setCancelled();
             } elseif ($event->getPacket() instanceof AddPlayerPacket) {
                 $pk = new AddEntityPacket();
                 $pk->eid = $event->getPacket()->eid;
                 $pk->type = $this->e[$event->getPacket()->eid]->getType();
                 $pk->x = $event->getPacket()->x;
                 $pk->y = $event->getPacket()->y;
                 $pk->z = $event->getPacket()->z;
                 $pk->pitch = $event->getPacket()->pitch;
                 $pk->yaw = $event->getPacket()->yaw;
                 $pk->metadata = [];
                 $event->getPlayer()->dataPacket($pk);
                 $event->setCancelled();
             } elseif ($event->getPacket() instanceof RemovePlayerPacket) {
                 $pk = new RemoveEntityPacket();
                 $pk->eid = $event->getPacket()->eid;
                 $event->getPlayer()->dataPacket($pk);
                 $event->setCancelled();
             }
         }
     }
 }
开发者ID:nacjm,项目名称:DisguiseMe,代码行数:30,代码来源:DisguiseMe.php

示例12: onDataPacket

 public function onDataPacket(DataPacketSendEvent $event)
 {
     if (!$event->getPacket() instanceof TextPacket or $event->getPacket()->pid() != 0x85 or $event->isCancelled()) {
         return;
     }
     if (isset($this->db[$event->getPlayer()->getName()]["chat"]) and $this->db[$event->getPlayer()->getName()]["chat"] == false) {
         $event->setCancelled();
         return;
     }
     if (isset($this->db[$event->getPlayer()->getName()]["nametag"]) and $this->db[$event->getPlayer()->getName()]["nametag"] == true) {
         $message = $this->getServer()->getLanguage()->translate(new TranslationContainer($event->getPacket()->message, $event->getPacket()->parameters));
         $this->putStack($event->getPlayer()->getName(), $message);
     }
 }
开发者ID:n15001,项目名称:Chatty,代码行数:14,代码来源:Chatty.php

示例13: directDataPacket

 /**
  * @param DataPacket $packet
  * @param bool       $needACK
  *
  * @return bool|int
  */
 public function directDataPacket(DataPacket $packet, $needACK = \false)
 {
     if ($this->connected === \false) {
         return \false;
     }
     $this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
     if ($ev->isCancelled()) {
         return \false;
     }
     $identifier = $this->interface->putPacket($this, $packet, $needACK, \true);
     if ($needACK and $identifier !== \null) {
         $this->needACK[$identifier] = \false;
         return $identifier;
     }
     return \true;
 }
开发者ID:Edwardthedog2,项目名称:Steadfast2,代码行数:22,代码来源:Player.php

示例14: onDataPacketSend

 public function onDataPacketSend(DataPacketSendEvent $event)
 {
     if ($event->getPacket() instanceof AddPlayerPacket) {
         $pk = $event->getPacket();
         if ($this->playerIsInGame($pk->username) === 2) {
             $event->setCancelled(true);
         }
     }
 }
开发者ID:rubbendu91,项目名称:FBlockHunt,代码行数:9,代码来源:Main.php

示例15: onDataPacketSend

 public function onDataPacketSend(DataPacketSendEvent $event)
 {
     $pk = $event->getPacket();
     $p = $event->getPlayer();
     if ($pk instanceof SetHealthPacket) {
         $health = floor($p->getHealth() / $p->getMaxHealth() * 20);
         $pk->health = $p->dead ? 0 : ($health <= 0 && $p->getHealth() > 0 ? 1 : $health);
     }
 }
开发者ID:Skull3x,项目名称:MineBlock,代码行数:9,代码来源:MaxHealth.php


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