1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем JustCoder, 22 ноя 2018.

  1. Автор темы
    JustCoder

    JustCoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    JustCoder
    Каким образом можно сделать такую штуку:
    Если игрок попал в координаты где Y < 50, то его убивает
     
  2. DeethzzCoder

    DeethzzCoder Активный участник Пользователь

    Баллы:
    76
    Можно запустить шедуляр, который выполняется раз в секунд, в нем уже делать проверку, если Y у игрока < 50, то убивай его. Либо использовать PlayerMoveEvent, но это более затратно по ресурсам сервера.
     
  3. 6yntar05

    6yntar05 Новичок Пользователь

    Баллы:
    11
    ReActions в помощь!
     
  4. NukerFall

    NukerFall Активный участник Пользователь

    Баллы:
    76
    Невероятно часто всплывает тема про ReActions. Даже не знаю, хорошо это, или плохо...
    У людей вроде есть желание писать самим. Ни в коем случае не пытаюсь задеть)
     
  5. Автор темы
    JustCoder

    JustCoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    JustCoder
    Вот как именно проверку написать?
     
  6. 6yntar05

    6yntar05 Новичок Пользователь

    Баллы:
    11
    Зайди в тему fromgate и зайди на сайт,посмотри активаторы найди
     
  7. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    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)");
        }
    }
     
    Последнее редактирование: 22 ноя 2018
  8. xkiksx

    xkiksx Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    xkiksx
    Объясните мне,дураку,почему вы разделили плагин в 1 эвент на 2 класса?
     
  9. DeethzzCoder

    DeethzzCoder Активный участник Пользователь

    Баллы:
    76
    А разве в этом есть что-то плохое?)
     
  10. xkiksx

    xkiksx Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    xkiksx
    Я задал вопрос "почему",в надежде на то,что мне ответят в стиле "потому что".
     
  11. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    Удобнее.
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  13. xkiksx

    xkiksx Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    xkiksx
  14. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Почему и нет.
     
  15. xkiksx

    xkiksx Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    xkiksx
    спасибо за ответ,теперь я понел!
     
  16. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    event.getTo().getY < 40
    Сравнение чисел, ого какая нагрузка в ивенте будет
     

Поделиться этой страницей