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

Как работать с WorldEdit api

Delfi

Ньюби
Баллы
1
Имя в Minecraft
Delfi
Мне нужно понять как вообще взаимодействовать с worldedit api.
Хотелось бы понять:
как подключить worldedit api к плагину,
как собственно создать регион с помощью api и взаимодействовать с ним.
Я абсолютный ноль в этой сфере, так что извините заранее!
 
Для управления регионами тебе скорее нужен не WorldEdit, а WorldGuard API. Для этого необходимо скачать необходимую версию WG и засунуть в свой проект (.JAR файл)

Для создания региона можно сделать что-то вроде:

PHP:
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;

RegionManager regionManager = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world));

ProtectedRegion region = new ProtectedRegion(regionId, new BlockVector(minX, minY, minZ), new BlockVector(maxX, maxY, maxZ)); 
//Координаты 2-х точек, как во время создания привата в WG с помощью топорика

regionManager.addRegion(region);

Более подробная информация находится здесь: WorldGuard API — WorldGuard 7.0 documentation (enginehub.org)
 
Хорошо, спасибо, а как допустим проверить находится ли определённый игрок в заданном регионе или нет?
 
Хорошо, спасибо, а как допустим проверить находится ли определённый игрок в заданном регионе или нет?
Научись пожалуйста работать с документацией и искать ответы в google. Мне конечно не трудно помочь, но будет еще лучше, если научишься сам решать подобные проблемы

PHP:
Location playerLocation = player.getLocation();

if (region.contains(playerLocation)) {
    //Твой код, если находится на этом регионе
} else {
    // Твой код, если не находится на этом регионе
}
 
Последнее редактирование:
Хотите сказать что я не искал ответы в интернете? Я не нашёл нормального решения моих вопросов, поэтому обратился сюда.
 
Хотите сказать что я не искал ответы в интернете? Я не нашёл нормального решения моих вопросов, поэтому обратился сюда.
Я ничего не утверждал. Просто ответ на твой вопрос я нашел и в Интернете и в официальной документации.
 
Может тогда отправите ссылку на официальную документацию?
 
Может тогда отправите ссылку на официальную документацию?
Fe2LXYYzTYy1On7GPs8Tqg.png
 
Может тогда отправите ссылку на официальную документацию?
PHP:
public class WorldGuardUtils {
   @Nullable
    public ProtectedRegion getRegion(@NonNull Location locationAction) {
        Location location = locationAction.clone();

        ApplicableRegionSet set = getRegionManager(location.getWorld()).getApplicableRegions (
                BlockVector3.at (
                        location.getBlockX(),
                        location.getBlockY(),
                        location.getBlockZ()
                )
        );

        for (ProtectedRegion each : set) {
            if (each != null) {
                return each;
            }
        }

        return null;
    }

   @Nullable
    public ProtectedRegion getRegion(@NonNull Location locationAction) {
        Location location = locationAction.clone();

        ApplicableRegionSet set = getRegionManager(location.getWorld()).getApplicableRegions (
                BlockVector3.at (
                        location.getBlockX(),
                        location.getBlockY(),
                        location.getBlockZ()
                )
        );

        for (ProtectedRegion each : set) {
            if (each != null) {
                return each;
            }
        }

        return null;
    }
}
 

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

Назад
Верх