Помогите Проверка на координаты

JustCoder

Участник
Пользователь
Баллы
31
Имя в Minecraft
JustCoder
Каким образом можно сделать такую штуку:
Если игрок попал в координаты где Y < 50, то его убивает
 
Можно запустить шедуляр, который выполняется раз в секунд, в нем уже делать проверку, если Y у игрока < 50, то убивай его. Либо использовать PlayerMoveEvent, но это более затратно по ресурсам сервера.
 
Невероятно часто всплывает тема про ReActions. Даже не знаю, хорошо это, или плохо...
У людей вроде есть желание писать самим. Ни в коем случае не пытаюсь задеть)
 
Можно запустить шедуляр, который выполняется раз в секунд, в нем уже делать проверку, если Y у игрока < 50, то убивай его. Либо использовать PlayerMoveEvent, но это более затратно по ресурсам сервера.
Вот как именно проверку написать?
 
PHP:
//Приоритет поставь сам
@EventHander
public void onFallMove(PlayerMoveEvent event) {
     if(event.getPlayer().getLocation().getY < 50) {
        //Сюда вставить свой код
      }
}

PHP:
//Пакет (обычно указывается после названия плагина)
package ru.test.bukkit.eventexecute;

//Импорты (с библиотеки)
import org.bukkit.event.*;
import org.bukkit.event.player.*;

//Название класса и наследование
public class Executor implements Listener {
 
    //Аннотация указывающая на ивент
    @EventHandler
    //Название ивента и в скобках его действие
    public void onFall(PlayerMoveEvent event) {
        //Проверка (getY идёт в double)
        if(event.getPlayer().getLocation().getY() < 50) {
           //Отправка сообщения если игрок находиться на меньше чем 50 блоков в высоту. (getBlock возращает int)
           event.getPlayer().sendMessage("Вы на высоте: " + event.getPlayer().getLocation().getBlockY());
        }
      //Отменяем вызов ивента
       event.setCanselled(true);
    }
}
PHP:
//Пакет (обычно указывается после названия плагина)
package ru.test.bukkit.eventexecute;

//Импорты (с библиотеки)
import org.bukkit.*;
import org.bukkit.plugin.java.*;

//Название класса и расширение
public class Main extends JavaPlugin {

   //Аннотация
    @Override
    //Метод с класса JavaPlugin
    public void onEnable() {
       //Вывод в консоль
        getLogger().info("Plugin ON. Try register event...");
        //Регистрация ивента
        Bukkit.getPluginManager().registerEvents(new Executor(), this);
        //Вывод в консоль
        getLogger().info("Registered. (Check in game)");
    }
}
 
Последнее редактирование:
Объясните мне,дураку,почему вы разделили плагин в 1 эвент на 2 класса?
 
Можно запустить шедуляр, который выполняется раз в секунд, в нем уже делать проверку, если Y у игрока < 50, то убивай его. Либо использовать PlayerMoveEvent, но это более затратно по ресурсам сервера.
event.getTo().getY < 40
Сравнение чисел, ого какая нагрузка в ивенте будет
 
Назад
Верх