getOrigin() Returns a level instance of the level the entity originated from. getTarget() Returns a level instance of the level the entity wants to go to. So you can do it like this (assuming the variable name is $event): PHP: $originalLevel = $event->getOrigin();$targetLevel = $event->getTarget(); And then you can do stuff with with these two levels
PHP: public function onLevelChange(EntityLevelChangeEvent $event){ $player = $event->getEntity(); $origin = $event->getOrigin(); $target = $event->getTarget(); if($player instanceof Player) return; if($origin instanceof Level){ //Like this? sorry I'm trying to learning } if($target instanceof Level) { //Like this? sorry I'm trying to learning } }
you don't need to check if it's an instance of a Level since it only returns a Level so you can remove these two PHP: if($origin instanceof Level){ //Like this? sorry I'm trying to learning}if($target instanceof Level) { //Like this? sorry I'm trying to learning} also what are you using that for? PHP: if($player instanceof Player) return; Can you tell me what are you trying to do so i can help :>
When one player enters the target level, all players at the target level will get a message, if 1 player leaves the world, all players in origin level will get a message
Like this If player join the target world, all players will get message like this: » <player name> Joined the world If player leave the world, all players will get message like this: » <player name> Leave the world
PHP: public function onLevelChange(EntityLevelChangeEvent $event){ if(!($player = $event->getEntity()) instanceof Player) { return; // Ignore if not player } $sendMessage = function(Level $level, string $message) use ($player) { foreach($level->getPlayers() as $p) { if($p !== $player) $p->sendMessage($player); } }; $sendMessage($event->getOrigin(), "{$player->getDisplayName()} left the level"; $sendMessage($event->getTarget(), "{$player->getDisplayName()} entered the level";}
did you register the event? it's easy to do it first you implement the Listener interface by adding this after your class name PHP: implements Listener then register it in onEnable function PHP: public function onEnable(){ $this->getServer()->getPluginManager()->registerEvents($this, $this);}
Yes i registered the events PHP: $this->getServer()->getPluginManager()->registerEvents(new EventListener($this), $this);