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

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

Discussion in 'Разработка плагинов для новичков' started by MaрШутЧик, Aug 1, 2016.

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

    MaрШутЧик Новичок Пользователь

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

    MaрШутЧик Новичок Пользователь

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    как же ты заипал, честное слово
    http://wiki.sk89q.com/wiki/WorldGuard/Regions/API
     
  5. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
  6. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    и чо, т.к. нигде не используешь - вот и выводит
     
  7. This_is_GoOD

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

    Trophy Points:
    21
    Кусок из своего плагина, немного переделал под вас.
    1)
    Code:
    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)Мне кажется вы так можете игрока в гору тпхнуть:В Ну или проверку на пустоту нужно делать будет(А если не пусто, то прийдется еще раз куда-то тпхать, и мне кажется морока будет)
     
  8. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    о бог мой
    [​IMG]
     
  9. This_is_GoOD

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

    Trophy Points:
    21
    И что же я не правильно сказал?
     
  10. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Code:
    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;
      }
    }
    ЗАЧЕМ?
     
  11. This_is_GoOD

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

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    ясно просто ясно
     
  13. This_is_GoOD

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

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Можно проверку и легче сделать..
     
  15. This_is_GoOD

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

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    пффф Я и не спорю, МБ работает, но на 1.5.2 даже есть способ это проверить легче
     
  17. This_is_GoOD

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

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Подожди 5 - 7 минуток, до дома дойду :)[DOUBLEPOST=1470039725,1470038229][/DOUBLEPOST]
    Code:
            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);
    
                    }
                }
              
            }
    
        }
    
    }
     
  19. This_is_GoOD

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

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Я взял куд из своего плугина, мне эта проверка нужна была :)
     
  21. Автор темы
    MaрШутЧик

    MaрШутЧик Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    serega100
    Ничего из этого не понял, короче на примере worldborder. Переходишь рамку и тебя тпхает назад, ещё отправляет игроку уведомление о том, что он достиг края мира.
    Мне надо примерно также, когда игрок заходит на запрещённый регион, ему отправляется уведомление и тпхает назад.[DOUBLEPOST=1470042049,1470041827][/DOUBLEPOST]
    Дак для этого вроде флаг в wg есть
     

Share This Page