diff --git a/plugin.yml b/plugin.yml index ebe622e..8274ac4 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,7 +1,7 @@ name: SimpleLay main: brokiem\simplelay\SimpleLay -version: 3.0.2 -api: [ 4.0.0 ] +version: 4.0.0 +api: [ 5.3.0 ] author: brokiem commands: diff --git a/src/brokiem/simplelay/EventListener.php b/src/brokiem/simplelay/EventListener.php index dad84f6..5cb507a 100644 --- a/src/brokiem/simplelay/EventListener.php +++ b/src/brokiem/simplelay/EventListener.php @@ -43,6 +43,7 @@ use pocketmine\event\player\PlayerQuitEvent; use pocketmine\event\player\PlayerToggleSneakEvent; use pocketmine\event\server\DataPacketReceiveEvent; +use pocketmine\network\mcpe\NetworkBroadcastUtils; use pocketmine\network\mcpe\protocol\AnimatePacket; use pocketmine\network\mcpe\protocol\InteractPacket; use pocketmine\player\Player; @@ -84,9 +85,9 @@ public function onInteract(PlayerInteractEvent $event): void { $block = $event->getBlock(); if (!$this->plugin->isToggleSit($player) && $this->getConfig()->get("enable-tap-to-sit", true)) { - if ($block instanceof Slab and $block->getMeta() < 6 and $this->getConfig()->getNested("enabled-block-tap.slab", true)) { + if ($block instanceof Slab and $this->getConfig()->getNested("enabled-block-tap.slab", true)) { $this->plugin->sit($player, $block); - } elseif ($block instanceof Stair and $block->getMeta() < 4 and $this->getConfig()->getNested("enabled-block-tap.stair", true)) { + } elseif ($block instanceof Stair and $this->getConfig()->getNested("enabled-block-tap.stair", true)) { $this->plugin->sit($player, $block); } } @@ -114,22 +115,6 @@ public function onPlayerQuit(PlayerQuitEvent $event): void { } } - /*public function onLevelChange(EntityLevelChangeEvent $event): void - { - $entity = $event->getEntity(); - - if ($entity instanceof Player) { - if ($this->plugin->isLaying($entity)) { - $this->plugin->unsetLay($entity); - } elseif ($this->plugin->isSitting($entity)) { - $this->plugin->unsetSit($entity); - } - } - } - - What is this? - */ - public function onTeleport(EntityTeleportEvent $event): void { $entity = $event->getEntity(); @@ -225,7 +210,7 @@ public function onDataPacketReceive(DataPacketReceiveEvent $event): void { if ($entity instanceof LayingEntity) { $pk = AnimatePacket::create($entity->getId(), $packet->action); - $this->plugin->getServer()->broadcastPackets($entity->getViewers(), [$pk]); + NetworkBroadcastUtils::broadcastPackets($entity->getViewers(), [$pk]); } } } diff --git a/src/brokiem/simplelay/SimpleLay.php b/src/brokiem/simplelay/SimpleLay.php index 4df28d6..9b983b0 100644 --- a/src/brokiem/simplelay/SimpleLay.php +++ b/src/brokiem/simplelay/SimpleLay.php @@ -44,6 +44,7 @@ use pocketmine\nbt\tag\DoubleTag; use pocketmine\nbt\tag\FloatTag; use pocketmine\nbt\tag\ListTag; +use pocketmine\network\mcpe\NetworkBroadcastUtils; use pocketmine\network\mcpe\protocol\AddActorPacket; use pocketmine\network\mcpe\protocol\MoveActorAbsolutePacket; use pocketmine\network\mcpe\protocol\RemoveActorPacket; @@ -165,7 +166,7 @@ public function unsetLay(Player $player): void { $entity = $this->layData[strtolower($player->getName())]["entity"]; $player->setInvisible(false); - $player->setImmobile(false); + $player->setNoClientPredictions(false); $player->setScale(1); $player->sendMessage(TextFormat::colorize($this->getConfig()->get("no-longer-lay-message", "&6You are no longer laying!"))); @@ -213,7 +214,7 @@ public function setLay(Player $player): void { ]; $player->setInvisible(); - $player->setImmobile(); + $player->setNoClientPredictions(); $player->setScale(0.01); $player->sendMessage(TextFormat::colorize($this->getConfig()->get("lay-message", "&6You are now laying!"))); @@ -229,14 +230,14 @@ public function unsetSit(Player $player): void { $pk1->actorUniqueId = $this->sittingData[strtolower($player->getName())]['eid']; $pk = new SetActorLinkPacket(); - $pk->link = new EntityLink($this->sittingData[strtolower($player->getName())]['eid'], $player->getId(), EntityLink::TYPE_REMOVE, true, true); + $pk->link = new EntityLink($this->sittingData[strtolower($player->getName())]['eid'], $player->getId(), EntityLink::TYPE_REMOVE, true, true, 0.0); unset($this->sittingData[strtolower($player->getName())]); $player->getNetworkProperties()->setGenericFlag(EntityMetadataFlags::RIDING, false); $player->sendMessage(TextFormat::colorize($this->getConfig()->get("no-longer-sit-message", "&6You are no longer sitting!"))); - $this->getServer()->broadcastPackets($this->getServer()->getOnlinePlayers(), [$pk1, $pk]); + NetworkBroadcastUtils::broadcastPackets($this->getServer()->getOnlinePlayers(), [$pk1, $pk]); } /** @@ -309,10 +310,10 @@ public function setSit(Player $player, array $viewers, Position $pos, ?int $eid $pk->syncedProperties = new PropertySyncData([], []); $link = new SetActorLinkPacket(); - $link->link = new EntityLink($eid, $player->getId(), EntityLink::TYPE_RIDER, true, true); + $link->link = new EntityLink($eid, $player->getId(), EntityLink::TYPE_RIDER, true, true, 0.0); $player->getNetworkProperties()->setGenericFlag(EntityMetadataFlags::RIDING, true); - $this->getServer()->broadcastPackets($viewers, [$pk, $link]); + NetworkBroadcastUtils::broadcastPackets($viewers, [$pk, $link]); if ($this->isSitting($player)) { return; @@ -348,7 +349,7 @@ public function optimizeRotation(Player $player): void { $pk->yaw = $player->getLocation()->getYaw(); $pk->headYaw = $player->getLocation()->getYaw(); - $this->getServer()->broadcastPackets($this->getServer()->getOnlinePlayers(), [$pk]); + NetworkBroadcastUtils::broadcastPackets($this->getServer()->getOnlinePlayers(), [$pk]); } public function onDisable(): void {