Take a look at this https://github.com/diamond-gold/MiniBosses/blob/master/src/MiniBosses/Boss.php#L152
Just do PHP: $speed = 1;$x = $player-> x - $this->x;$y = $player-> y - $this->y;$z = $player-> z - $this->z;if($x ** 2 + $z ** 2 < 0.7){$motionX = 0;$motionZ = 0;}else{$diff = abs($x) + abs($z);$motionX = $speed * 0.15 * ($x / $diff);$motionZ = $speed * 0.15 * ($z / $diff);}$entity->move($motionX, $motionY, $motionZ);
You need to use Entity::createEntity() to be able to use this, if you just want to use packets see SetEntityMotionPacket
I tried this: But it has my skin an is a human PHP: public function onMove(PlayerMoveEvent $e) { $player = $e->getPlayer(); $pk = new MovePlayerPacket();$pk->eid = 2233;$pk->x = $player->x;$pk->y = $player->y;$pk->z = $player->z;$pk->yaw = $player->yaw;$pk->pitch = $player->pitch;$player->dataPacket($pk); }public function spawnPet($player){$name = $player->getName();$text = "§l§6Test";$pk = new AddPlayerPacket(); $pk->eid = 2233; $pk->uuid = UUID::fromRandom(); $pk->x = $player->x; $pk->y = $player->y; $pk->z = $player->z; $pk->speedX = 0; $pk->speedY = 0; $pk->speedZ = 0; $pk->yaw = 20; $pk->pitch = -30; $pk->item = Item::get(0); $flags = 0; $flags |= 1 << Entity::DATA_FLAG_CAN_SHOW_NAMETAG; $flags |= 1 << Entity::DATA_FLAG_ALWAYS_SHOW_NAMETAG; $flags |= 1 << Entity::DATA_FLAG_IMMOBILE; $pk->metadata = [ Entity::DATA_FLAGS => [Entity::DATA_TYPE_LONG, $flags], Entity::DATA_NAMETAG => [Entity::DATA_TYPE_STRING, $text],Entity::DATA_LEAD_HOLDER_EID => [Entity::DATA_TYPE_LONG, 12], ];$player->dataPacket($pk);}
I would suggest using Entity::createEntity() to spawn, because using packets is quite hard to manage the 'entities' you spawn
PHP: $nbt = new CompoundTag("", [ "Pos" => new ListTag("Pos", [ new DoubleTag("", $pos->x), new DoubleTag("", $pos->y), new DoubleTag("", $pos->z) ]), "Motion" => new ListTag("Motion", [ new DoubleTag("", 0), new DoubleTag("", 0), new DoubleTag("", 0) ]), "Rotation" => new ListTag("Rotation", [ new FloatTag("", $source instanceof Location ? $pos->yaw : 0), new FloatTag("", $source instanceof Location ? $pos->pitch : 0) ]), ]);$pig = Entity::createEntity("Pig",$chunk,$nbt);#$chunk can be $player->chunk$pig->spawnToAll();