I envision being able to write /tp as
@Command("tp")
void teleportLocation(Player sender, Vector3 target) {
sender.teleport(target)
}
@Command("tp")
void teleportPlayer(Player sender, Player target) {
sender.teleport(target.location())
}
And have CommandBucket figure everything else out - it should see they collapse to children of "tp", it should see that the Vector3 is a "minecraft:vec3", and that the Player is a "minecraft:entity" the the scoping flags to be only a single player.
It should also parse the string arguments internally, so the Command methods don't need to re-do the same parsing work.
I envision being able to write
/tpasAnd have CommandBucket figure everything else out - it should see they collapse to children of "tp", it should see that the
Vector3is a"minecraft:vec3", and that thePlayeris a"minecraft:entity"the the scoping flags to be only a single player.It should also parse the string arguments internally, so the Command methods don't need to re-do the same parsing work.