Там всё говорят правильно, но damage - это не только урон, наносимый мобам, но и повреждения предмета (и много другое).
Это повреждения (или просто subId) предмета, а ТС'у нужен урон, наносимый мобу при атаке.
Названия можно получить из регистра предметов, ссылка на который есть в классе Item. Добраться до него можно через NMS.
Нет никого, кто мог бы пофиксить вообще всё. Я, например, не берусь за моды, написанные на Scala. Конечно, их можно исправить, если повозиться, но...
Полагаю, так удобно выбраться в код, запустивший выполнение команды, не пробрасывая данные через кучу return'ов.
Какие-то могу, какие-то - нет.
Конкретно этот случай - нет, но другие - да. UPD. Замерил. В этом случае разница невелика, но обычная проверка на null всё равно компактнее с...
Он не пустой. Там есть вывод сообщения. В любом случае это гораздо дороже обычного null check.
Фи, как неэффективно. Исключения стоят дорого, так что так можно легко просадить производительность.
Нужно добавить подобные проверки: armor[N] != null
Можно сделать команду, которая будет выводить строковый ID предмета в руке.
ItemStack.getType().toString()
Bukkit.getScheduler().runTaskTimer(myPlugin, runnable, 1, 1); Этот код заставит выполняться Runnable.run() каждый тик.
Если нужно просто ставить какое-то количество блоков за тик, то можно сделать шедулер, в котором x, y и z (ну и другие локальные переменные при...
Понятия не имею. Это зависит от того, где вы хотите проверять наличие предметов поблизости (в шедулер, обработчик ивентов, команду, что-то ещё).
Имена участников (разделяйте запятой).