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

  • Автор темы Автор темы iD3LSY
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

iD3LSY

Активный участник
Пользователь
Баллы
76
Добрый день ;)

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

Я думаю разберешься как дальше.
 
Java:
RegionManager rgm = plugin.wg.getRegionManager(p.getWorld());
ApplicableRegionSet ars = rgm.getApplicableRegions(p.getLocation());
ars.getRegions();
for (ProtectedRegion prg: ars){
p.sendMessage(prg.getId());
}

Он выдал мне это:
Посмотреть вложение 44215
(я как раз стоял в этих рг)

Я думаю разберешься как дальше.
Если честно, то я даже не пытался разобраться в WG API. По этому ничего не понял. Хочется узнать, находится-ли он в конкретном регионе(
 
Если честно, то я даже не пытался разобраться в WG API. По этому ничего не понял. Хочется узнать, находится-ли он в конкретном регионе(
Я ничего не знаю, разбираться не хочу, думать тоже.Просто напишите мне готовый код что бы я мог вставить его.Ало, тебе же выше предоставили готовый код, только 2 строчки вставь.
 
Если честно, то я даже не пытался разобраться в WG API. По этому ничего не понял. Хочется узнать, находится-ли он в конкретном регионе(
Java:
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();
 
Я ничего не знаю, разбираться не хочу, думать тоже.Просто напишите мне готовый код что бы я мог вставить его.Ало, тебе же выше предоставили готовый код, только 2 строчки вставь.
Ну я пытался найти на англоязычных форумах эту тему, прежде чем задать вопрос.. Конечно же можно было пойти на офф. статью с плагином, и почитать про API, но была ночь. Время было слишком мало, поэтому задал вопрос таким образом.
Да и в общем, сейчас я в школе xd
Java:
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();
Так, я пришёл домой, и понял, что рано закрыл тему. Возникает вопрос: "Что с этим кодом не так?". В консоль не крашит.
Код:
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("Вы там где надо (в жопе)");
        }
    }
 
Ну я пытался найти на англоязычных форумах эту тему, прежде чем задать вопрос.. Конечно же можно было пойти на офф. статью с плагином, и почитать про 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("Вы там где надо (в жопе)");
        }
    }
А что у тебя не работает?

Скинь то во что ты его переделал
 
Последнее редактирование:
А что у тебя не работает?

Скинь то во что ты его переделал
Я просто присоединил его к PlayerMoveEvent. Сообщение в чат не выводит. Регион установил. Версия wg - 6.2
Java:
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
 
Я конечно глупый, но не на столько, чтобы банально назвать регион неправильно. Я также пытался использовать первый код, который вывод название регионов в чат, но он тоже не работает.
Но впрочем, я хотя бы правильно написал код? Относительно
Java:
WorldGuardPlugin wg = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
 
Последнее редактирование:
Я просто присоединил его к PlayerMoveEvent. Сообщение в чат не выводит. Регион установил. Версия wg - 6.2
Java:
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
вообще не уверен, но попробуйте подключить wg при запуске плагина, а не в каждом ивенте.
 
Ладно. Тогда я не знаю в чём заключается проблема..(
 
Я тоже, ибо у меня ваш код запахал
 
Закрываю тему. Спасибо, Fenix78563
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх