public function onCommand(CommandSender $sender, Command $command, $label, array $args)
{
if ($label === "transfer") {
if (count($args) < 2 or count($args) > 3 or count($args) === 2 and !$sender instanceof Player) {
$sender->sendMessage(new TranslationContainer("commands.generic.usage", [$command->getUsage()]));
return true;
}
/** @var Player $target */
$target = $sender;
if (count($args) === 3) {
$target = $sender->getServer()->getPlayer($args[0]);
$address = $args[1];
$port = (int) $args[2];
} else {
$address = $args[0];
$port = (int) $args[1];
}
if ($target === null) {
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
return true;
}
$sender->sendMessage("Transferring player " . $target->getDisplayName() . " to {$address}:{$port}");
if (!$this->transferPlayer($target, $address, $port)) {
$sender->sendMessage(TextFormat::RED . "An error occurred during the transfer");
}
return true;
}
return false;
}