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

Помогите Проверка привата

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    Jenka20091
    Как мне в моём плагине сделать проверку на приват, то есть player interact event я сделал с помощью палки, а вот как сделать выполнение команды rg info без bukkit.dispatchCommand незнаю
     
  2. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    WorldGuard API в помощь. Читай доки
     
  3. Автор темы
    adodvstudios

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

    Баллы:
    76
    Имя в Minecraft:
    Jenka20091
    Сказал же нету в доках
     
  4. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Где ты это сказал? Читай внимательнее доки по WorldGuard API.
     
  5. Автор темы
    adodvstudios

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

    Баллы:
    76
    Имя в Minecraft:
    Jenka20091
    PHP:
    public static boolean inRegion(Location loc)
    {
        
    WorldGuardPlugin guard getWorldGuard();
        
    Vector v BukkitUtil.toVector(loc);
        
    RegionManager manager guard.getRegionManager(loc.getWorld());
        
    ApplicableRegionSet set manager.getApplicableRegions(v);
        return 
    set.size() > 0;
    }
    Норм?
     
  6. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Вроде да, все правильно. Лично я раньше получал список регионов по локации так:
    PHP:
    ApplicableRegionSet container WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().getApplicableRegions(BukkitAdapter.adapt(location));
     
  7. Автор темы
    adodvstudios

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

    Баллы:
    76
    Имя в Minecraft:
    Jenka20091
    А как теперь это в player interact event добавить? Мистер гуру
     
  8. alexandrage

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

    Баллы:
    173
    Ручками.
     
  9. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Совсем глупый?
    PHP:
        @EventHandler
        
    public void onInteract(PlayerInteractEvent e) {
            if (
    inRegion(e.getClickedBlock().getLocation())) {
                
    //TODO
            
    }
        }

        public 
    boolean inRegion(Location loc) {
            
    ApplicableRegionSet container WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().getApplicableRegions(BukkitAdapter.adapt(loc));
            return 
    container.size() > 0;
        }
     
    Последнее редактирование: 22 ноя 2020
  10. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Либо вот твоим вариантом:
    PHP:
        @EventHandler
        
    public void onInteract(PlayerInteractEvent e) {
            if (
    inRegion(e.getClickedBlock().getLocation())) {
                
    //TODO
            
    }
        }

        public 
    boolean inRegion(Location loc) {
            
    WorldGuard worldGuard WorldGuard.getInstance();
            
    BlockVector3 v BukkitAdapter.asBlockVector(loc);
            
    RegionManager manager worldGuard.getPlatform().getRegionContainer().get(BukkitAdapter.adapt(loc.getWorld()));
            
    ApplicableRegionSet set manager.getApplicableRegions(v);
            return 
    set.size() > 0;
        }
    Код на WG && WE 7.0.0 если что. Надеюсь перенести его на свою версию сможешь...
     

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