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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Delfi, 30 дек 2022.

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

    Delfi Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Delfi
    Мне нужно понять как вообще взаимодействовать с worldedit api.
    Хотелось бы понять:
    как подключить worldedit api к плагину,
    как собственно создать регион с помощью api и взаимодействовать с ним.
    Я абсолютный ноль в этой сфере, так что извините заранее!
     
  2. eXCore

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

    Баллы:
    68
    Имя в Minecraft:
    eXCore
    Для управления регионами тебе скорее нужен не 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(minXminYminZ), new BlockVector(maxXmaxYmaxZ)); 
    //Координаты 2-х точек, как во время создания привата в WG с помощью топорика

    regionManager.addRegion(region);
    Более подробная информация находится здесь: WorldGuard API — WorldGuard 7.0 documentation (enginehub.org)
     
  3. Автор темы
    Delfi

    Delfi Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Delfi
    Хорошо, спасибо, а как допустим проверить находится ли определённый игрок в заданном регионе или нет?
     
  4. eXCore

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

    Баллы:
    68
    Имя в Minecraft:
    eXCore
    Научись пожалуйста работать с документацией и искать ответы в google. Мне конечно не трудно помочь, но будет еще лучше, если научишься сам решать подобные проблемы

    PHP:
    Location playerLocation player.getLocation();

    if (
    region.contains(playerLocation)) {
        
    //Твой код, если находится на этом регионе
    } else {
        
    // Твой код, если не находится на этом регионе
    }
     
    Последнее редактирование: 17 июл 2023
  5. Автор темы
    Delfi

    Delfi Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Delfi
    Хотите сказать что я не искал ответы в интернете? Я не нашёл нормального решения моих вопросов, поэтому обратился сюда.
     
  6. eXCore

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

    Баллы:
    68
    Имя в Minecraft:
    eXCore
    Я ничего не утверждал. Просто ответ на твой вопрос я нашел и в Интернете и в официальной документации.
     
  7. Автор темы
    Delfi

    Delfi Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Delfi
    Может тогда отправите ссылку на официальную документацию?
     
  8. eXCore

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

    Баллы:
    68
    Имя в Minecraft:
    eXCore
    [​IMG]
     
  9. TheYto4kA

    TheYto4kA Участник

    Баллы:
    31
    Имя в Minecraft:
    68ytka68
    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;
        }
    }
     

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