Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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);
     }
}
 
Последнее редактирование:
Вот код создания региона с центром block и размером size .(еще не проверял на работу).
Мне надо сделать проверку при создании, не пересекается ли регион с другими регионами. Сколько смотрел АПИ, так и не понял...
WG 6.0+
Кхм... Пробеги по блокам (лучше асинхронно) и проверяй наличие региона
 
Я думал может в 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

Как только прикрутить не знаю...
Другой вопрос. Как получить количество регионов, в котором Player является Овнером?
 
Я думал может в 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

Как только прикрутить не знаю...
Другой вопрос. Как получить количество регионов, в котором Player является Овнером?
Пройтись по всем и собрать подходящие вручную.
 

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

Назад
Верх