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

Помогите Создание региона / проверка на пересечение

Тема в разделе "Разработка плагинов для новичков", создана пользователем MOR_IV, 4 май 2015.

  1. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Вот код создания региона с центром block и размером size .(еще не проверял на работу).
    Мне надо сделать проверку при создании, не пересекается ли регион с другими регионами. Сколько смотрел АПИ, так и не понял...
    WG 6.0+
    Код:
    public void CreateWg (Player player, Block block, int size){
         World w = player.getWorld();
         String plName = player.getName();
         RegionContainer container = getWorldGuard().getRegionContainer();
         RegionManager regions = container.get(w);
         if(!regions.getRegions().containsKey(plName)){
             Location loc = block.getLocation();
             int x = loc.getBlockX();
             int y = loc.getBlockY();
             int z = loc.getBlockZ();
             int i = size / 2;
             BlockVector min = new BlockVector(x - i, y - i, z - i);
             BlockVector max = new BlockVector(x + i, y + i, z + i);
             ProtectedRegion region = new ProtectedCuboidRegion(plName, min, max);
             regions.addRegion(region);
             DefaultDomain owners = region.getOwners();
             owners.addPlayer(plName);
             region.setOwners(owners);
         }
    }
     
    Последнее редактирование: 4 май 2015
  2. Хостинг MineCraft
    <
  3. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Кхм... Пробеги по блокам (лучше асинхронно) и проверяй наличие региона
     
  4. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV
    Я думал может в WG есть более быстрый способ... Потому как смотря в исходники WG я вижу:
    Код:
    // Check if this region overlaps any other region
            if (regions.size() > 0) {
                if (!regions.isOwnerOfAll(localPlayer)) {
                    throw new CommandException("This region overlaps with someone else's region.");
                }
    https://github.com/sk89q/WorldGuard...rd/bukkit/commands/region/RegionCommands.java

    Как только прикрутить не знаю...[DOUBLEPOST=1430738403,1430734567][/DOUBLEPOST]Другой вопрос. Как получить количество регионов, в котором Player является Овнером?
     
  5. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    Пройтись по всем и собрать подходящие вручную.
     
  6. NaPsTeR

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

    Баллы:
    88
    Имя в Minecraft:
    kesha0129
  7. Автор темы
    MOR_IV

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

    Баллы:
    88
    Имя в Minecraft:
    MOR_IV

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