Усовершенствование плагина TPServer [ PM5 ]

Кротко про плагин кто не в курсе: Плагин создает команду /tpserver с помощью которой можно будет перемещаться между серверами когда вводишь айпи и порт.

Хочу усовершенствовать его до того что бы можно было указать опеределённые координаты вот так /tpserver {ip} {port} {x, y ,z} для того что бы на другом мире появиться в том месте что указали при телепортации. А так же что бы можно было писать не только /tpserver {ip} {порт} но и вот так /tpserver {Nick} {ip} {port} что бы телепортировать игрока которого хочешь на другой сервер.

Вот исходный код:

<?php
namespace TpServer\TpServerMika050916;

use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\plugin\PluginBase;
use pocketmine\player\Player;
use pocketmine\network\mcpe\protocol\TransferPacket;

class Main extends PluginBase {

    public function onEnable() : void{
        $this->getLogger()->info("Плагин TPServer включен и готов к работе!");
    }

    public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool {
        if($command->getName() === "tpserver") {
            $this->getLogger()->info("Команда tpserver вызвана.");
            if(!$sender instanceof Player) {
                $sender->sendMessage("Эта команда может быть использована только в игре.");
                $this->getLogger()->info("Команда tpserver была вызвана не игроком.");
                return false;
            }

            if(count($args) < 2) {
                $sender->sendMessage("Пожалуйста, укажите IP-адрес и порт сервера.");
                $this->getLogger()->info("Не указаны IP-адрес и порт.");
                return false;
            }

            $address = $args[0];
            $port = $args[1];

            if(!is_numeric($port)) {
                $sender->sendMessage("Порт должен быть числом.");
                $this->getLogger()->info("Указанный порт не является числом: {$port}");
                return false;
            }

            $this->getLogger()->info("Перенос игрока {$sender->getName()} на сервер {$address}:{$port}");
            $this->transferPlayer($sender, $address, $port);
            return true;
        }

        return false;
    }

    private function transferPlayer(Player $player, string $address, int $port) {
        $pk = TransferPacket::create($address, $port);
        $player->getNetworkSession()->sendDataPacket($pk);
        $this->getLogger()->info("Пакет переноса отправлен игроку {$player->getName()}.");
    }
}
?>

Всем кто поможет буду благодарен.
P.s Не пишите ничего по типу “Хочет что бы за него написали плагин”

Хочет что бы за него написали плагин

Тебе придется писать дополнительный плагин который будет обрабатывать телепортацию на определенные координатына на сервере, на который ты перекинешь игрока

Как он должен выглядеть примерно?

Например: Перенос игрока на сервер через TPServer → сохранение координат и сервера в БД → проверка на наличие координат в БД при входе на нужный сервер → телепортация по координатам и удаление координат из БД.
Это просто пример реализации и возможно кто-то подскажет решение получше

так это вроде сервер на который ты тепаешься обрабатывает, не?

Да, по этому я и написал что потребуется еще 1 плагин

ничего не понял ну да ладно а 2 реалтзовать можно

Какой смысл от этого плагина если в пммп это встроенная команда?

Она не по координатам делает

Ну записывай в своём плагине в конфиг корды, а потом на втором сервере при входе проверяешь если игрок есть в конфиге, то ты его тепаешь на кординаты который в конфиге а после телепортации удаляешь его из конфига

То же что и я написал выше, только как ты будешь проверять информацию из конфига одного сервера на другом? А если этот сервер вообще на другой машине стоит?

Самое правильное решение: свой протокол. Сокет + битовые операции + пакет с позицией и игроком

Пнуть игрока на другой сервер, подождать пока войдёт и тпешнуть на нужные координаты через ркон

Подобное применимо и для авторизации как на дошике

И ещё в прокси связки серверов

Всё верно. Лучше никак не сделаешь.