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

Помогите Получить локацию региона

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

Статус темы:
Закрыта.
  1. Автор темы
    Kurumi

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

    Баллы:
    76
    Всем привет. Мне нужно получить полную локацию региона.
    Пока что, я могу получить максимальный и минимальный поинты, но чет не догоняю как из них выразить полный регион
    Не кидайтесь помидорками :lol:
     
  2. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Центр региона или кубоид?
     
  3. Автор темы
    Kurumi

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

    Баллы:
    76
    Наверное, кубоид
     
  4. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Там кажется можно как-то получить в апи
    метод вроде есть getRegion
     
  5. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    или getSelection
     
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Получить из WorldEdit или откуда?
     
  7. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Ну, а откуда еще? WG?
     
  8. Автор темы
    Kurumi

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

    Баллы:
    76
    Есть приват из вн.
    Нужно получить его локацию, чтобы спавнить партиклы снега. Они должны спавниться на всей территории региона, а сейчас я имею ттолько спавн на одной из точек региона
     
  9. Автор темы
    Kurumi

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

    Баллы:
    76
    Ща зачекаю
     
  10. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Что такое вн? WG?
     
  11. Автор темы
    Kurumi

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

    Баллы:
    76
    очепятка. вг, wg, worldguard, мировая защита
     
  12. Автор темы
    Kurumi

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

    Баллы:
    76
    Код:
    RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
            RegionManager regions = container.get(BukkitAdapter.adapt(Bukkit.getWorlds().get(0)));
            ProtectedRegion region = regions.getRegion(loc);
    Так я получаю нужный регион. Суть в том, что у protectedRegion я не нашел метода, связанного с кубоидом.
    getSelection тоже. (он, если не ошибаюсь, вообще из we)
     
  13. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Мм, тебе нужно во всем регионе спавнить частицы?
    Почему не получить BlockVector3 min,max вычислить Y на котором тебе надо спавнить, и пройти циклами по xz?
     
  14. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Крч, берешь BlockVector min,max проходишься циклами по xyz, создаешь локацию и спавнишь партиклы
     
  15. Автор темы
    Kurumi

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

    Баллы:
    76
    Код:
     private List<Location> checkpointLocation(String loc){
            RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
            RegionManager regions = container.get(BukkitAdapter.adapt(Bukkit.getWorlds().get(0)));
            ProtectedRegion region = regions.getRegion(loc);
            if(region == null) return null;
            BlockVector3 max = region.getMaximumPoint();
            BlockVector3 min = region.getMinimumPoint();
            List<Location> list = new ArrayList<>();
            for(int x = min.getX(); x < max.getX(); x++) {
                for(int y = min.getY(); y < max.getY(); y++) {
                    for(int z = min.getZ(); z < max.getZ(); z++) {
                        list.add(new Location(Bukkit.getWorlds().get(0), x, y, z));
                    }
                }
            }
            return list;
        }
    сделал так. Получаю список всех локаций, прохожусь по ним циклом и в каждой создаю партиклы.
    Клиент залагал + сервер крашнуло :rolleyes:
     
  16. alexandrage

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

    Баллы:
    173
    Вычисляешь центр региона. Потом снимаешь длину ширину для радиуса партиклов. По размеру региона вычисляешь какое число партиклов надо спавнить. Пруфит.
     
  17. alexandrage

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

    Баллы:
    173
    Нехер кодить по ночам :D.
     
  18. Автор темы
    Kurumi

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

    Баллы:
    76
    Для чего тогда центр?
     
  19. Автор темы
    Kurumi

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

    Баллы:
    76
    Все, сделал. Всем спасибо!
     
Статус темы:
Закрыта.

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