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

Помогите Проверка игрока на локацию и её приват.

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

Статус темы:
Закрыта.
  1. Автор темы
    iD3LSY

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

    Баллы:
    76
    Добрый день ;)

    Хотелось бы узнать, как проверить, в каком на данный момент регионе (WG) находится игрок. Если находиться например в привате "REGION", то выполнялся какой-либо код.
     
  2. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Код:
    RegionManager rgm = plugin.wg.getRegionManager(p.getWorld());
    ApplicableRegionSet ars = rgm.getApplicableRegions(p.getLocation());
    ars.getRegions();
    for (ProtectedRegion prg: ars){
    p.sendMessage(prg.getId());
    }
    Он выдал мне это:
    upload_2016-12-26_0-52-9.png
    (я как раз стоял в этих рг)

    Я думаю разберешься как дальше.
     
  3. Автор темы
    iD3LSY

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

    Баллы:
    76
    Если честно, то я даже не пытался разобраться в WG API. По этому ничего не понял. Хочется узнать, находится-ли он в конкретном регионе(
     
  4. AtomicInteger

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

    Баллы:
    76
    Я ничего не знаю, разбираться не хочу, думать тоже.Просто напишите мне готовый код что бы я мог вставить его.Ало, тебе же выше предоставили готовый код, только 2 строчки вставь.
     
  5. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Код:
    RegionManager rgm = plugin.wg.getRegionManager(p.getWorld());
    ApplicableRegionSet ars = rgm.getApplicableRegions(p.getLocation());
    ars.getRegions();
    for (ProtectedRegion prg: ars){
          if (prg.getId().equalsIgnoreCase("region")) p.sendMessage("Вы там где надо (в жопе)");
    }
    не забывай что у WG все регионы при создании идут в ToLowerCase();
     
  6. Автор темы
    iD3LSY

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

    Баллы:
    76
    Ну я пытался найти на англоязычных форумах эту тему, прежде чем задать вопрос.. Конечно же можно было пойти на офф. статью с плагином, и почитать про API, но была ночь. Время было слишком мало, поэтому задал вопрос таким образом.
    Да и в общем, сейчас я в школе xd
    Так, я пришёл домой, и понял, что рано закрыл тему. Возникает вопрос: "Что с этим кодом не так?". В консоль не крашит.
    Код:
    public void onEnable() {
            Bukkit.getPluginManager().registerEvents(this, this);
        }
    
        @EventHandler
        public void onPlayerMove(PlayerMoveEvent e) {
            Player player = e.getPlayer();
            WorldGuardPlugin wg = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
            RegionManager rgm = wg.getRegionManager(player.getWorld());
            ApplicableRegionSet ars = rgm.getApplicableRegions(player.getLocation());
            ars.getRegions();
            for (ProtectedRegion prg: ars){
                 if (prg.getId().equalsIgnoreCase("region")) player.sendMessage("Вы там где надо (в жопе)");
            }
        }
     
  7. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    А что у тебя не работает?

    Скинь то во что ты его переделал
     
    Последнее редактирование: 26 дек 2016
  8. Автор темы
    iD3LSY

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

    Баллы:
    76
    Я просто присоединил его к PlayerMoveEvent. Сообщение в чат не выводит. Регион установил. Версия wg - 6.2
    Код:
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }
    @EventHandler
    public void onPlayerMove(PlayerMoveEvent e) {
        Player player = e.getPlayer();
        WorldGuardPlugin wg = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
        RegionManager rgm = wg.getRegionManager(player.getWorld());
        ApplicableRegionSet ars = rgm.getApplicableRegions(player.getLocation());
        ars.getRegions();
        for (ProtectedRegion prg: ars){
            if (prg.getId().equalsIgnoreCase("region")) player.sendMessage("Вы там где надо (в жопе)");
        }
    }
    И вообще, я уже скидывал код выше xd
     
  9. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    и как регион называется?
     
  10. Автор темы
    iD3LSY

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

    Баллы:
    76
    Хороший вопрос... Наверное.. "region" (без ковычек)
     
  11. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    но как это не забавно у меня код с таким регином пашет
     
  12. Автор темы
    iD3LSY

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

    Баллы:
    76
    Я конечно глупый, но не на столько, чтобы банально назвать регион неправильно. Я также пытался использовать первый код, который вывод название регионов в чат, но он тоже не работает.
    Но впрочем, я хотя бы правильно написал код? Относительно
    Код:
    WorldGuardPlugin wg = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
     
    Последнее редактирование: 23 янв 2017
  13. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    вообще не уверен, но попробуйте подключить wg при запуске плагина, а не в каждом ивенте.
     
  14. Автор темы
    iD3LSY

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

    Баллы:
    76
    Зачем так официально?)

    Я подумал, посмотрел... А depend в plugin.yml делать обязательно нужно было? xd
     
  15. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    я без депенда сделал :D
     
  16. Автор темы
    iD3LSY

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

    Баллы:
    76
    Ладно. Тогда я не знаю в чём заключается проблема..(
     
  17. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Я тоже, ибо у меня ваш код запахал
     
  18. Автор темы
    iD3LSY

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

    Баллы:
    76
    Закрываю тему. Спасибо, Fenix78563
     
    Последнее редактирование: 15 мар 2018
Статус темы:
Закрыта.

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