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

Помогите Вопросы по WorldGuard API

Тема в разделе "Разработка плагинов для новичков", создана пользователем MaрШутЧик, 1 авг 2016.

  1. Автор темы
    MaрШутЧик

    MaрШутЧик Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    serega100
    1. Как получить регион, на котором стоит игрок.(желательно что-бы было через if).
    2. Как узнать название региона, на котором стоит игрок.
    3. Как телепортировать игрока за регион.
     
  2. Автор темы
    MaрШутЧик

    MaрШутЧик Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    serega100
    + ещё Как подключить WorldGuard API к плагину (с библиотекой разобрался, а с кодом нет)
     
  3. xDark

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

    Баллы:
    96
    как же ты заипал, честное слово
    http://wiki.sk89q.com/wiki/WorldGuard/Regions/API
     
  4. Автор темы
    MaрШутЧик

    MaрШутЧик Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    serega100
  5. xDark

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

    Баллы:
    96
    и чо, т.к. нигде не используешь - вот и выводит
     
  6. This_is_GoOD

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

    Баллы:
    21
    Кусок из своего плагина, немного переделал под вас.
    1)
    Код:
    package pl.invcheckrg.wgapi;
    
    import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    import com.sk89q.worldguard.protection.ApplicableRegionSet;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    import java.util.Iterator;
    import java.util.List;
    import org.bukkit.Location;
    import org.bukkit.plugin.Plugin;
    import pl.invcheckrg.InvCheckRG;
    
    public class WorldGuardAPI
    {
      private WorldGuardPlugin myWorldGuardPlugin;
    
      public WorldGuardAPI(Plugin wg)
      {
        this.myWorldGuardPlugin = ((WorldGuardPlugin)wg);
      }
    
      public ProtectedRegion getRegion(Location loc)
      {
        ApplicableRegionSet set = this.myWorldGuardPlugin.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        Iterator it = set.iterator();
        while (it.hasNext())
        {
          ProtectedRegion each = (ProtectedRegion)it.next();
          if (each != null) {
            return each;
          }
        }
        return null;
      }
    }
    2)each.getId();
    3)Мне кажется вы так можете игрока в гору тпхнуть:В Ну или проверку на пустоту нужно делать будет(А если не пусто, то прийдется еще раз куда-то тпхать, и мне кажется морока будет)
     
  7. xDark

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

    Баллы:
    96
    о бог мой
    [​IMG]
     
  8. This_is_GoOD

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

    Баллы:
    21
    И что же я не правильно сказал?
     
  9. xDark

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

    Баллы:
    96
    Код:
    public class WorldGuardAPI
    {
      private WorldGuardPlugin myWorldGuardPlugin;
      public WorldGuardAPI(Plugin wg)
      {
        this.myWorldGuardPlugin = ((WorldGuardPlugin)wg);
      }
      public ProtectedRegion getRegion(Location loc)
      {
        ApplicableRegionSet set = this.myWorldGuardPlugin.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        Iterator it = set.iterator();
        while (it.hasNext())
        {
          ProtectedRegion each = (ProtectedRegion)it.next();
          if (each != null) {
            return each;
          }
        }
        return null;
      }
    }
    ЗАЧЕМ?
     
  10. This_is_GoOD

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

    Баллы:
    21
    Ему нужно получить имя региона в котором стоит игрок, потом проверить есть ли там регион, а это то что возвратит эти данные. По-моему, это и так понятно.
     
  11. xDark

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

    Баллы:
    96
    ясно просто ясно
     
  12. This_is_GoOD

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

    Баллы:
    21
    Или я дурак и что-то не пойму, или вы. Если я, то что не так?
     
  13. xDark

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

    Баллы:
    96
    Можно проверку и легче сделать..
     
  14. This_is_GoOD

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

    Баллы:
    21
    Я не спорю. Это проверка еще с версии 1.5.2, я её не менял никогда. Она могла и устареть.
    P.S. Мне стыдно за вас.. Вместо того, чтобы поправить что-то, вы чмокаете и отворачиваете глаза. Прям как это делают девушки.
     
  15. xDark

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

    Баллы:
    96
    пффф Я и не спорю, МБ работает, но на 1.5.2 даже есть способ это проверить легче
     
  16. This_is_GoOD

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

    Баллы:
    21
    И чем это можно упросить, чтобы я знал?
     
  17. xDark

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

    Баллы:
    96
    Подожди 5 - 7 минуток, до дома дойду :)
    Код:
            RegionManager manager = getWorldGuard().getRegionManager(p.getLocation().getWorld());
            for (ProtectedRegion region : manager.getApplicableRegions(p.getLocation())) {
                if (region.getId().equalsIgnoreCase("pvp")) {
                    if (p.getGameMode() == GameMode.CREATIVE) {
                        p.setGameMode(GameMode.SURVIVAL);
                        event.setCancelled(true);
    
                    }
                }
              
            }
    
        }
    
    }
     
  18. This_is_GoOD

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

    Баллы:
    21
    Уууу.. Охохохо:В
    А чем то это проще?
    Работа такая же, только у меня отдельный класс и метод для этого)
    И тс не нужна проверка на креатив)
    А еще while, вроде быстрее for)
     
    Последнее редактирование: 1 авг 2016
  19. xDark

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

    Баллы:
    96
    Я взял куд из своего плугина, мне эта проверка нужна была :)
     
  20. Автор темы
    MaрШутЧик

    MaрШутЧик Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    serega100
    Ничего из этого не понял, короче на примере worldborder. Переходишь рамку и тебя тпхает назад, ещё отправляет игроку уведомление о том, что он достиг края мира.
    Мне надо примерно также, когда игрок заходит на запрещённый регион, ему отправляется уведомление и тпхает назад.
    Дак для этого вроде флаг в wg есть
     

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