Guest User

Untitled

a guest
Dec 16th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.22 KB | None | 0 0
  1. @EventHandler(priority = EventPriority.NORMAL)
  2.     public void onPlayerInteract(PlayerInteractEvent event) {
  3.         if(event.isCancelled()) {
  4.             return;
  5.         }
  6.  
  7.         Player player = event.getPlayer();
  8.         Material heldItem = player.getItemInHand().getType();
  9.         Block block = event.getClickedBlock();
  10.         Material mat = block.getType();
  11.         ILog.sendToPlayer(player, mat.toString());
  12.         if(!((isContainer(mat, block) || isCanUseEntity_RClickOnly(mat, block)) && event.getAction() == Action.RIGHT_CLICK_BLOCK || isCanUseEntity_BothClick(mat, block)||event.getAction() == Action.PHYSICAL)) {
  13.             int typeId = player.getItemInHand().getTypeId();
  14.             if(typeId != Residence.getConfigManager().getSelectionTooldID() && typeId != Residence.getConfigManager().getInfoToolID()&&typeId!=351) {
  15.                 return;
  16.             }
  17.         }
  18.         ILog.sendToPlayer(player, "onPlayerInteract Fired");
  19.         FlagPermissions perms = Residence.getPermsByLocForPlayer(block.getLocation(),player);
  20.         String world = player.getWorld().getName();
  21.         String permgroup = Residence.getPermissionManager().getGroupNameByPlayer(player);
  22.         boolean resadmin = Residence.isResAdminOn(player);
  23.         if(event.getAction() == Action.PHYSICAL){
  24.             if(!resadmin){
  25.                 boolean hasuse = perms.playerHas(player.getName(), world, "use", true);
  26.                 boolean hastrample = perms.playerHas(player.getName(), world, "trample", perms.playerHas(player.getName(), world, "build", true));
  27.                 boolean haspressure = perms.playerHas(player.getName(), world, "pressure", hasuse);
  28.                 if((!hasuse && !haspressure || !haspressure)&&(mat==Material.STONE_PLATE || mat == Material.WOOD_PLATE)){
  29.                     event.setCancelled(true);
  30.                     return;
  31.                 }
  32.                 if(!hastrample && (mat == Material.SOIL || mat == Material.SOUL_SAND)){
  33.                     event.setCancelled(true);
  34.                     return;
  35.                 }
  36.             }
  37.         }
  38.         if(!resadmin && !Residence.getItemManager().isAllowed(heldItem, permgroup, world)) {
  39.             player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("ItemBlacklisted"));
  40.             event.setCancelled(true);
  41.             return;
  42.         }
  43.         if(event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
  44.             if (player.getItemInHand().getTypeId() == Residence.getConfigManager().getSelectionTooldID()) {
  45.                 PermissionGroup group = Residence.getPermissionManager().getGroup(player);
  46.                 if(player.hasPermission("residence.create") || group.canCreateResidences()&&!player.isPermissionSet("residence.create") || resadmin) {
  47.                     if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
  48.                         Location loc = block.getLocation();
  49.                         Residence.getSelectionManager().placeLoc1(player, loc);
  50.                         player.sendMessage(ChatColor.GREEN+Residence.getLanguage().getPhrase("SelectPoint",Residence.getLanguage().getPhrase("Primary"))+ChatColor.RED+"(" + loc.getBlockX() + "," + loc.getBlockY() + "," + loc.getBlockZ() + ")"+ChatColor.GREEN+"!");
  51.                     } else if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
  52.                         Location loc = block.getLocation();
  53.                         Residence.getSelectionManager().placeLoc2(player, loc);
  54.                         player.sendMessage(ChatColor.GREEN+Residence.getLanguage().getPhrase("SelectPoint",Residence.getLanguage().getPhrase("Secondary"))+ChatColor.RED+"(" + loc.getBlockX() + "," + loc.getBlockY() + "," + loc.getBlockZ() + ")"+ChatColor.GREEN+"!");
  55.                     }
  56.                 }
  57.             }
  58.             if(player.getItemInHand().getTypeId() == Residence.getConfigManager().getInfoToolID()) {
  59.                 if(event.getAction() == Action.LEFT_CLICK_BLOCK) {
  60.                     Location loc = block.getLocation();
  61.                     String res = Residence.getResidenceManager().getNameByLoc(loc);
  62.                     if(res!=null) {
  63.                         Residence.getResidenceManager().printAreaInfo(res, player);
  64.                         event.setCancelled(true);
  65.                     }
  66.                     if(res==null){
  67.                         event.setCancelled(true);
  68.                         player.sendMessage(Residence.getLanguage().getPhrase("NoResHere"));
  69.                     }
  70.                 }
  71.             }
  72.             if(!resadmin) {
  73.                 if(player.getItemInHand()!=null){
  74.                     if(event.getAction()==Action.RIGHT_CLICK_BLOCK){
  75.                         if(player.getItemInHand().getTypeId()==351){
  76.                             if(player.getItemInHand().getData().getData()==15&&block.getType()==Material.GRASS||player.getItemInHand().getData().getData()==3&&block.getTypeId()==17&&(block.getData()==3||block.getData()==7||block.getData()==11||block.getData()==15)){
  77.                                 perms = Residence.getPermsByLocForPlayer(block.getRelative(event.getBlockFace()).getLocation(), player);
  78.                                 if(!perms.playerHas(player.getName(), world, "build", true)) {
  79.                                     event.setCancelled(true);
  80.                                     return;
  81.                                 }
  82.                                 return;
  83.                             }
  84.                         }
  85.                     }
  86.                 }
  87.                 if (isContainer(mat,block) || isCanUseEntity(mat, block)) {
  88.                     boolean hasuse = perms.playerHas(player.getName(), world, "use", true);
  89.                     for(Entry<Material, String> checkMat : FlagPermissions.getMaterialUseFlagList().entrySet()) {
  90.                         if(mat == checkMat.getKey()) {
  91.                             if(!perms.playerHas(player.getName(), world, checkMat.getValue(), hasuse)) {
  92.                                 if(hasuse||checkMat.getValue().equals("container")) {
  93.                                     event.setCancelled(true);
  94.                                     player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("FlagDeny",checkMat.getValue()));
  95.                                 } else {
  96.                                     event.setCancelled(true);
  97.                                     player.sendMessage(ChatColor.RED+Residence.getLanguage().getPhrase("FlagDeny","use"));
  98.                                 }
  99.                             }
  100.                         }
  101.                     }
  102.                 }
  103.             }
  104.         }
  105.     }
Add Comment
Please, Sign In to add comment