Помогите [Решено] Как написать функцию, которая не будет работать в Чужих приватах (WG)?

  • Автор темы Автор темы Nippels
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Nippels

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Nippels
В названии все написано)
Например как сделать так, чтобы Interact event Не работал в Чужих регионах, а в своих все работало как обычно?

Пожалуйста напишите КАК МОЖНО по ПОДРОБНЕЕ!
 
А никто с ложки код давать не будет (наверно), а то придешь ты через неделю на форум с еще одним глупым вопросом.
Гугли
Скажи пожалуйста, вы не понимаете, что я новичок? Или вы не видели, что раздел называется: "
Разработка плагинов для новичков"

Если так трудно написать код, и вам очень жалко потратить время для его написания или простого объяснения не заходите на такие темы.
Вы не напишите, найдутся те, кто напишет. Удачи
 
Скажи пожалуйста, вы не понимаете, что я новичок? Или вы не видели, что раздел называется: "
Разработка плагинов для новичков"

Если так трудно написать код, и вам очень жалко потратить время для его написания или простого объяснения не заходите на такие темы.
Вы не напишите, найдутся те, кто напишет. Удачи
Бл*ть, как же бесят такие люди.
Гугл? Нет, не слышали.
Загуглить "WorldGuard documentation"? Нет, не слышали.
Посмотреть туториалы на YouTube? Нет, не слышали.
@Mr_RoboMan
 
В главном классе WG есть метод canBuild, возвращающий булево значение, обозначающее возможность строить в привате. Вы можете воспользоваться этим методом.
Ещё можно получить список регионов по координатам и проверить списки владельцев/участников, но это уже сложнее.
 
Я опишу подробно как это делать, но чуть позже
Апи*Просто чтобы было понятно откуда я взял wgApi*:
JavaScript:
WorldGuardPlugin wgApi = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");

Метод для проверки на владение регионом:
JavaScript:
public boolean isOwner(Player player, Location loc) {
        ApplicableRegionSet set = wgApi.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        for(ProtectedRegion region : set){
            if(region.getOwners().getUniqueIds().contains(player.getUniqueId()) ||  region.getMembers().getUniqueIds().contains(player.getUniqueId())){
                return true;
            }          
        }
        return false;
    }

Код ивента PlayerIneractEvent:
JavaScript:
@EventHandler
     public void interact(PlayerInteractEvent e){
        if(!isOwner(e.getPlayer(), e.getClickedBlock().getLocation())){
            e.setCancelled(true);
        }
      }
P.S. Думаю дальше уже можно самому понять
 
Я опишу подробно как это делать, но чуть позже
Апи*Просто чтобы было понятно откуда я взял wgApi*:
JavaScript:
WorldGuardPlugin wgApi = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");

Метод для проверки на владение регионом:
JavaScript:
public boolean isOwner(Player player, Location loc) {
        ApplicableRegionSet set = wgApi.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        for(ProtectedRegion region : set){
            if(region.getOwners().getUniqueIds().contains(player.getUniqueId()) ||  region.getMembers().getUniqueIds().contains(player.getUniqueId())){
                return true;
            }         
        }
        return false;
    }

Код ивента PlayerIneractEvent:
JavaScript:
@EventHandler
     public void interact(PlayerInteractEvent e){
        if(!isOwner(e.getPlayer(), e.getClickedBlock().getLocation())){
            e.setCancelled(true);
        }
      }
P.S. Думаю дальше уже можно самому понять
Ща прибежит и будет орать, что нифига не понял. (50% на 50%)
 
Ну дальше я не буду помогать. Я и так дал практически готовый код, а за это меня тут уже убить готовы)
Этим дуракам ничего и давать готового не надо - вопросами за*бут
 
Я опишу подробно как это делать, но чуть позже
Апи*Просто чтобы было понятно откуда я взял wgApi*:
JavaScript:
WorldGuardPlugin wgApi = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");

Метод для проверки на владение регионом:
JavaScript:
public boolean isOwner(Player player, Location loc) {
        ApplicableRegionSet set = wgApi.getRegionManager(loc.getWorld()).getApplicableRegions(loc);
        for(ProtectedRegion region : set){
            if(region.getOwners().getUniqueIds().contains(player.getUniqueId()) ||  region.getMembers().getUniqueIds().contains(player.getUniqueId())){
                return true;
            }         
        }
        return false;
    }

Код ивента PlayerIneractEvent:
JavaScript:
@EventHandler
     public void interact(PlayerInteractEvent e){
        if(!isOwner(e.getPlayer(), e.getClickedBlock().getLocation())){
            e.setCancelled(true);
        }
      }
P.S. Думаю дальше уже можно самому понять
Пасиб)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх