Помогите Как получить список из команды майнкрафт?

VulGAR Power

Новичок
Пользователь
Баллы
11
/mt (список)

Как мне в args передать список? То есть как написать аргумент в самом майнкрафте так, чтобы плагин принял это как список? Чтобы я мог прям взять и работать с ним, как с обычным списком.

А также как в него обратиться? Как его использовать, это ведь получится список в списке args
 
/mt (список)

Как мне в args передать список? То есть как написать аргумент в самом майнкрафте так, чтобы плагин принял это как список? Чтобы я мог прям взять и работать с ним, как с обычным списком.

А также как в него обратиться? Как его использовать, это ведь получится список в списке args
Мне кажется то что ты написал ты сам не понял. Твой args уже является списком только это массив. И все что пользователь введет после самой команды (эта та которая в начале и начинается с /) будет являться элементами этого "списка".
Для того чтобы получить один из элементов - args[номер элемента] пример - /mt test list example | args[1] вернет строку "list" (нумерация(индексация) начинается с 0)
Чтобы узнать максимальную длинна этого массива - args.length()
 
Это я понимаю. Я про то, как мне передать элементы в примерно такой форме
/mt (элм1,элм2..элмn)

Дело в том, что передавать я хочу координаты, да, возможно странно, но сейчас я пытаюсь добиться хотя бы этого. А нужны мне координаты целых 6-ти точек, а ведь это 18 цифр (ну, 12, если без Y). Как мне в самом майнкрафте написать команду так, чтобы я мог обратиться к любой из этих точек?

/mt (125 5, 87 35)

Чтобы я мог как-то получить первый элемент массива - 125 5, второй - 87 35, в общем-то все шесть. Я же не могу просто написать /mt 125 5 87 35
, ведь тогда первым элементом будет 125, вторым 5 и т.д. Можно конечно заморочиться и приравнивать это все к переменной по типу x1, x2, z1,z1, но разве нет способа получше? Именно его я ищу, если нет, ну что ж, придется тогда разбивать все на иксы да зеты.
 
Это я понимаю. Я про то, как мне передать элементы в примерно такой форме
/mt (элм1,элм2..элмn)

Дело в том, что передавать я хочу координаты, да, возможно странно, но сейчас я пытаюсь добиться хотя бы этого. А нужны мне координаты целых 6-ти точек, а ведь это 18 цифр (ну, 12, если без Y). Как мне в самом майнкрафте написать команду так, чтобы я мог обратиться к любой из этих точек?

/mt (125 5, 87 35)

Чтобы я мог как-то получить первый элемент массива - 125 5, второй - 87 35, в общем-то все шесть. Я же не могу просто написать /mt 125 5 87 35
, ведь тогда первым элементом будет 125, вторым 5 и т.д. Можно конечно заморочиться и приравнивать это все к переменной по типу x1, x2, z1,z1, но разве нет способа получше? Именно его я ищу, если нет, ну что ж, придется тогда разбивать все на иксы да зеты.
Сохраняй коодинаты в Location или напиши отдельный класс, в котором будут храниться по три точки и создай List, где будешь все это хранить.

Пример:
Код:
public class Point {
    private double x, y, z;
    public Point(double x, y, z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public double getX() {
        return x;
    }
    public double getY() {
        return y;
    }
    public double getZ() {
        return z;
    }
}

Код:
public class ExampleCommand implements CommandExecutor {

    @Override
    public void onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(args.length < 18) {
            sender.sendMessage("usage: ...");
            return true;
        }
 
        List<Point> points = new ArrayList<>();
      
        int i = 0;
        while(i < 18) {
            double x = Double.parseDouble(args[i]);
            i += 1;
            double y = Double.parseDouble(args[i]);
            i += 1;
            double z = Double.parseDouble(args[i]);
            i += 1;
            Point point = new Point(x, y, z);
            points.add(point);
        }

        // ну, дальше можно что-то делать с этим списком

        return true;
    }

}

P.S., писал код без IDE, так что где-то могут быть траблы
 
Последнее редактирование:
Это я понимаю. Я про то, как мне передать элементы в примерно такой форме
/mt (элм1,элм2..элмn)

Дело в том, что передавать я хочу координаты, да, возможно странно, но сейчас я пытаюсь добиться хотя бы этого. А нужны мне координаты целых 6-ти точек, а ведь это 18 цифр (ну, 12, если без Y). Как мне в самом майнкрафте написать команду так, чтобы я мог обратиться к любой из этих точек?

/mt (125 5, 87 35)

Чтобы я мог как-то получить первый элемент массива - 125 5, второй - 87 35, в общем-то все шесть. Я же не могу просто написать /mt 125 5 87 35
, ведь тогда первым элементом будет 125, вторым 5 и т.д. Можно конечно заморочиться и приравнивать это все к переменной по типу x1, x2, z1,z1, но разве нет способа получше? Именно его я ищу, если нет, ну что ж, придется тогда разбивать все на иксы да зеты.

Как вариант заключи в ковычки, и по идеи в args запишет я строка с пробелами.. А там уже сплит, и так дален
 
Назад
Верх