Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Добрый день ;)

    Хотелось бы узнать, как проверить, в каком на данный момент регионе (WG) находится игрок. Если находиться например в привате "REGION", то выполнялся какой-либо код.
     
  2. Хостинг MineCraft
    <
  3. 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
    (я как раз стоял в этих рг)

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

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

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

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

    Баллы:
    46
    Я ничего не знаю, разбираться не хочу, думать тоже.Просто напишите мне готовый код что бы я мог вставить его.Ало, тебе же выше предоставили готовый код, только 2 строчки вставь.
     
  6. 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();
     
  7. Автор темы
    iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Ну я пытался найти на англоязычных форумах эту тему, прежде чем задать вопрос.. Конечно же можно было пойти на офф. статью с плагином, и почитать про API, но была ночь. Время было слишком мало, поэтому задал вопрос таким образом.[DOUBLEPOST=1482732921,1482732889][/DOUBLEPOST]Да и в общем, сейчас я в школе xd[DOUBLEPOST=1482745815][/DOUBLEPOST]
    Так, я пришёл домой, и понял, что рано закрыл тему. Возникает вопрос: "Что с этим кодом не так?". В консоль не крашит.
    Код:
    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("Вы там где надо (в жопе)");
            }
        }
     
  8. Fenix78563

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

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Я просто присоединил его к 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
     
  10. Fenix78563

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Хороший вопрос... Наверное.. "region" (без ковычек)
     
  12. Fenix78563

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Я конечно глупый, но не на столько, чтобы банально назвать регион неправильно. Я также пытался использовать первый код, который вывод название регионов в чат, но он тоже не работает.[DOUBLEPOST=1482751124,1482751069][/DOUBLEPOST]Но впрочем, я хотя бы правильно написал код? Относительно
    Код:
    WorldGuardPlugin wg = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
     
    Последнее редактирование: 23 янв 2017
  14. Fenix78563

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Зачем так официально?)

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

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

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

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

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

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Ура!11 DEPEND помох!!1[DOUBLEPOST=1482751589,1482751554][/DOUBLEPOST]Закрываю тему. Спасибо, Fenix78563
     
Статус темы:
Закрыта.

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