Аргументи команд
Аргументи використовуються в більшості команд. Іноді вони можуть бути необов’язковими, тобто якщо ви не надасте аргумент, команда також буде виконана. Один нод може мати кілька типів аргументів, але майте на увазі, що існує можливість двозначність, якої слід уникати.
java
No lines matched.1
java
No lines matched.1
У цьому випадку після тексту команди /command_with_arg слід ввести ціле число. Наприклад, якщо ви запустіть /command_with_arg 3, ви отримаєте повідомлення зворотного зв'язку:
Викликається /command_with_arg зі значенням = 3
Якщо ввести /command_with_arg без аргументів, команду неможливо правильно проаналізувати.
Потім ми додаємо необов'язковий другий аргумент:
java
No lines matched.1
java
No lines matched.1
Зараз ви можете написати одне або два цілих числа. Якщо ви надаєте одне число — відповідь з одним значенням буде надрукована. Якщо ви надаєте два чиста — відповідь з двома значеннями буде надрукована.
Ви можете вважати непотрібним вказувати подібні виконання двічі. Таким чином, ми можемо створити метод, який буде використовуватися в обидва виконання.
java
No lines matched.1
java
No lines matched.1
Власні типи аргументу
Якщо в грі не має потрібного типу аргументу, ви можете створити свій власний. Для цього вам потрібно створити клас, який успадковує інтерфейс ArgumentType<T>, де T є типом аргументу.
Вам потрібно буде реалізувати метод parse, який аналізуватиме вхідний рядок у потрібний тип.
Наприклад, ви можете створити тип аргументу, який аналізує BlockPos із рядка в такому форматі: {x, y, z}
java
No lines matched.1
Реєстрація спеціальних типів аргументів
WARNING
Вам потрібно зареєструвати тип спеціального аргументу як на сервері, так і на клієнті, інакше команда не працюватиме!
Ви можете зареєструвати власний тип аргументу в методі onInitialize вашого ініціалізатора мода за допомогою класу ArgumentTypeRegistry:
java
No lines matched.1
Використання спеціальних типів аргументів
Ми можемо використовувати наш власний тип аргументу в команді, передавши його екземпляр у метод .argument у конструкторі команд.
java
No lines matched.1
java
No lines matched.1
Виконуючи команду, ми можемо перевірити, чи працює тип аргументу:



