Skip to content
This repository has been archived by the owner on Mar 16, 2020. It is now read-only.

Commit

Permalink
Fix inter-dimension teleport
Browse files Browse the repository at this point in the history
  • Loading branch information
CortexPE committed Oct 28, 2018
1 parent 01548be commit af2cf3e
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion src/CortexPE/EventListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
level\LevelLoadEvent, Listener, server\CommandEvent
};
use pocketmine\event\entity\{
EntityDamageEvent, EntityDeathEvent
EntityDamageEvent, EntityDeathEvent, EntityTeleportEvent
};
use pocketmine\event\player\{
cheat\PlayerIllegalMoveEvent,
Expand All @@ -64,6 +64,8 @@
use pocketmine\item\Armor;
use pocketmine\item\Item;
use pocketmine\level\Level;
use pocketmine\network\mcpe\protocol\ChangeDimensionPacket;
use pocketmine\network\mcpe\protocol\PlayStatusPacket;
use pocketmine\Player as PMPlayer;
use pocketmine\plugin\Plugin;
use pocketmine\Server as PMServer;
Expand Down Expand Up @@ -352,4 +354,25 @@ public function onPlayerDropItem(PlayerDropItemEvent $ev){
$ev->setCancelled();
}
}

/**
* @param EntityTeleportEvent $ev
*
* @priority LOWEST
*/
public function onTeleport(EntityTeleportEvent $ev){
if(Main::$registerDimensions && ($from = $ev->getFrom())->getLevel() !== ($to = $ev->getTo())->getLevel()){
if(Utils::getDimension($from->getLevel()) != ($dim = Utils::getDimension($to->getLevel()))){
$p = $ev->getEntity();
if($p instanceof PMPlayer){
$pk = new ChangeDimensionPacket();
$pk->dimension = $dim;
$pk->position = $to;
$pk->respawn = false;
$p->sendDataPacket($pk);
$p->sendPlayStatus(PlayStatusPacket::PLAYER_SPAWN);
}
}
}
}
}

0 comments on commit af2cf3e

Please sign in to comment.