adding cordinate support and playeronline check for tp command

This commit is contained in:
Martin Olischläger 2023-05-09 19:05:21 +02:00
parent e106cd8b56
commit c673ca4cb3

View File

@ -2,8 +2,8 @@ package eu.mhsl.craftattack.worldmuseum.commands;
import net.minestom.server.command.builder.Command;
import net.minestom.server.command.builder.arguments.ArgumentType;
import net.minestom.server.coordinate.Pos;
import net.minestom.server.entity.Player;
import java.util.Objects;
public class TeleportCommand extends Command {
@ -11,9 +11,16 @@ public class TeleportCommand extends Command {
public TeleportCommand() {
super("tp","teleport");
var playerArgument = ArgumentType.Entity("Spieler").onlyPlayers(true);
var cordinate = ArgumentType.RelativeBlockPosition("Kordinate");
addSyntax(((sender, context) -> {
Pos pos = context.get(cordinate).fromSender(sender).asPosition();
Player player = (Player) sender;
player.teleport(pos);
}), cordinate);
var playerArgument = ArgumentType.Entity("Spieler").onlyPlayers(true);
addSyntax(((sender, context) -> {
if (context.get(playerArgument).find(sender).size() == 0) return; //check if player is online
Player targetPlayer = (Player) context.get(playerArgument).find(sender).get(0);
Player p = (Player) sender;
if (!Objects.equals(p.getInstance(), targetPlayer.getInstance()))
@ -21,6 +28,5 @@ public class TeleportCommand extends Command {
else
p.teleport(targetPlayer.getPosition());
}), playerArgument);
}
}