Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 37.97 KB | None | 0 0
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5.  
  6. package com.forgeessentials.permission.commands;
  7.  
  8. import com.forgeessentials.api.APIRegistry;
  9. import com.forgeessentials.api.permissions.Group;
  10. import com.forgeessentials.api.permissions.Zone;
  11. import com.forgeessentials.util.ChatUtils;
  12. import com.forgeessentials.util.OutputHandler;
  13. import com.forgeessentials.util.AreaSelector.WorldPoint;
  14. import java.util.ArrayList;
  15. import java.util.Collections;
  16. import java.util.Iterator;
  17. import net.minecraft.command.ICommandSender;
  18. import net.minecraft.entity.player.EntityPlayer;
  19. import net.minecraft.util.EnumChatFormatting;
  20.  
  21. public class CommandFEPermGroup {
  22.     public CommandFEPermGroup() {
  23.     }
  24.  
  25.     public static void processCommandPlayer(EntityPlayer sender, String[] args) {
  26.         if(args.length == 0) {
  27.             OutputHandler.chatConfirmation(sender, "Possible usage:");
  28.             OutputHandler.chatConfirmation(sender, "/p group create|delete");
  29.             OutputHandler.chatConfirmation(sender, "/p group <groupName>");
  30.             OutputHandler.chatConfirmation(sender, "/p group list ");
  31.         } else {
  32.             Zone zone;
  33.             if(!args[0].equalsIgnoreCase("create") && !args[0].equalsIgnoreCase("make")) {
  34.                 ArrayList list;
  35.                 if(!args[0].equalsIgnoreCase("delete") && !args[0].equalsIgnoreCase("remove")) {
  36.                     String result;
  37.                     if(args[0].equalsIgnoreCase("list")) {
  38.                         zone = APIRegistry.zones.getGLOBAL();
  39.                         if(args.length == 2) {
  40.                             if(APIRegistry.zones.doesZoneExist(args[1])) {
  41.                                 zone = APIRegistry.zones.getZone(args[1]);
  42.                             } else if(args[1].equalsIgnoreCase("here")) {
  43.                                 zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  44.                             } else {
  45.                                 OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  46.                             }
  47.                         }
  48.  
  49.                         list = APIRegistry.perms.getGroupsInZone(zone.getZoneName());
  50.                         result = "";
  51.                         int i = 0;
  52.                         Iterator var18 = list.iterator();
  53.  
  54.                         while(var18.hasNext()) {
  55.                             Object groupObj = var18.next();
  56.                             result = result + ((Group)groupObj).name;
  57.                             ++i;
  58.                             if(i != list.size()) {
  59.                                 result = result + ", ";
  60.                             }
  61.                         }
  62.  
  63.                         OutputHandler.chatConfirmation(sender, "Groups available in zone " + zone.getZoneName() + ":");
  64.                         OutputHandler.chatConfirmation(sender, result);
  65.                     } else {
  66.                         Group group = APIRegistry.perms.getGroupForName(args[0]);
  67.                         if(group == null) {
  68.                             OutputHandler.chatError(sender, args[0] + " does not exist as a group!");
  69.                         } else if(args.length == 1) {
  70.                             OutputHandler.chatConfirmation(sender, "Current settings for " + group.name + ": prefix=" + group.prefix + ", suffix=" + group.suffix + ", parent=" + group.parent + ", priority=" + group.priority);
  71.                             OutputHandler.chatConfirmation(sender, "To change any of these, type /p group <groupname> prefix|suffix|parent|priority set <value>");
  72.                         } else {
  73.                             Zone zone = APIRegistry.zones.getGLOBAL();
  74.                             if(args.length == 3 && (args[1].equalsIgnoreCase("prefix") || args[1].equalsIgnoreCase("suffix") || args[1].equalsIgnoreCase("parent") || args[1].equalsIgnoreCase("priority"))) {
  75.                                 if(args.length == 3) {
  76.                                     if(APIRegistry.zones.doesZoneExist(args[2])) {
  77.                                         zone = APIRegistry.zones.getZone(args[2]);
  78.                                     } else if(args[2].equalsIgnoreCase("here")) {
  79.                                         zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  80.                                     } else {
  81.                                         OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  82.                                     }
  83.                                 }
  84.                             } else if(args.length == 5) {
  85.                                 if(APIRegistry.zones.doesZoneExist(args[4])) {
  86.                                     zone = APIRegistry.zones.getZone(args[4]);
  87.                                 } else if(args[4].equalsIgnoreCase("here")) {
  88.                                     zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  89.                                 } else {
  90.                                     OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  91.                                 }
  92.                             }
  93.  
  94.                             boolean result;
  95.                             if(args[1].equalsIgnoreCase("prefix")) {
  96.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  97.                                     if(args.length == 3) {
  98.                                         group.prefix = " ";
  99.                                     } else {
  100.                                         group.prefix = args[3];
  101.                                     }
  102.  
  103.                                     result = APIRegistry.perms.updateGroup(group);
  104.                                     if(result) {
  105.                                         OutputHandler.chatConfirmation(sender, group.name + "'s prefix set to &f" + group.prefix);
  106.                                     } else {
  107.                                         OutputHandler.chatError(sender, "Error processing group prefix update.");
  108.                                     }
  109.  
  110.                                 } else {
  111.                                     OutputHandler.chatConfirmation(sender, group.name + "'s prefix is &f" + group.prefix);
  112.                                 }
  113.                             } else if(args[1].equalsIgnoreCase("suffix")) {
  114.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  115.                                     if(args.length == 3) {
  116.                                         group.suffix = " ";
  117.                                     } else {
  118.                                         group.suffix = args[3];
  119.                                     }
  120.  
  121.                                     result = APIRegistry.perms.updateGroup(group);
  122.                                     if(result) {
  123.                                         OutputHandler.chatConfirmation(sender, group.name + "'s suffix set to &f" + group.suffix);
  124.                                     } else {
  125.                                         OutputHandler.chatError(sender, "Error processing group suffix update.");
  126.                                     }
  127.  
  128.                                 } else {
  129.                                     OutputHandler.chatConfirmation(sender, group.name + "'s suffix is &f" + group.suffix);
  130.                                 }
  131.                             } else if(args[1].equalsIgnoreCase("parent")) {
  132.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  133.                                     if(args.length == 3) {
  134.                                         group.parent = null;
  135.                                     } else {
  136.                                         group.parent = args[3];
  137.                                     }
  138.  
  139.                                     result = APIRegistry.perms.updateGroup(group);
  140.                                     if(result) {
  141.                                         OutputHandler.chatConfirmation(sender, group.name + "'s parent set to " + group.parent);
  142.                                     } else {
  143.                                         OutputHandler.chatError(sender, "Error processing group parent update.");
  144.                                     }
  145.  
  146.                                 } else {
  147.                                     OutputHandler.chatConfirmation(sender, group.name + "'s parent is " + group.parent);
  148.                                 }
  149.                             } else if(args[1].equalsIgnoreCase("priority")) {
  150.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  151.                                     if(args.length == 3) {
  152.                                         group.priority = 0;
  153.                                     } else {
  154.                                         try {
  155.                                             group.priority = Integer.parseInt(args[3]);
  156.                                         } catch (NumberFormatException var9) {
  157.                                             OutputHandler.chatError(sender, args[3] + "");
  158.                                         }
  159.                                     }
  160.  
  161.                                     result = APIRegistry.perms.updateGroup(group);
  162.                                     if(result) {
  163.                                         OutputHandler.chatConfirmation(sender, group.name + "'s priority set to " + group.priority);
  164.                                     } else {
  165.                                         OutputHandler.chatError(sender, "Error processing group priority update.");
  166.                                     }
  167.  
  168.                                 } else {
  169.                                     OutputHandler.chatConfirmation(sender, group.name + "'s priority is " + group.priority);
  170.                                 }
  171.                             } else {
  172.                                 zone = APIRegistry.zones.getGLOBAL();
  173.                                 if(args.length == 4) {
  174.                                     if(APIRegistry.zones.doesZoneExist(args[3])) {
  175.                                         zone = APIRegistry.zones.getZone(args[3]);
  176.                                     } else if(args[3].equalsIgnoreCase("here")) {
  177.                                         zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  178.                                     } else {
  179.                                         OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[4]}));
  180.                                     }
  181.                                 }
  182.  
  183.                                 if(!args[1].equalsIgnoreCase("true") && !args[1].equalsIgnoreCase("allow")) {
  184.                                     if(!args[1].equalsIgnoreCase("false") && !args[1].equalsIgnoreCase("deny")) {
  185.                                         if(!args[1].equalsIgnoreCase("clear") && !args[1].equalsIgnoreCase("remove")) {
  186.                                             if(args[1].equalsIgnoreCase("get")) {
  187.                                                 result = APIRegistry.perms.getPermissionForGroup(group.name, zone.getZoneName(), args[2]);
  188.                                                 if(result == null) {
  189.                                                     OutputHandler.chatError(sender, "Error processing statement");
  190.                                                 } else if(result.equals("Zone or target invalid")) {
  191.                                                     OutputHandler.chatError(sender, "Zone or group does not exist!");
  192.                                                 } else {
  193.                                                     OutputHandler.chatConfirmation(sender, args[2] + " is " + result + " for " + group.name);
  194.                                                 }
  195.  
  196.                                             } else if(!args[1].equalsIgnoreCase("perms")) {
  197.                                                 OutputHandler.chatError(sender, "Improper syntax. Please try this instead: ");
  198.                                             } else {
  199.                                                 if(args.length == 3) {
  200.                                                     if(APIRegistry.zones.doesZoneExist(args[2])) {
  201.                                                         zone = APIRegistry.zones.getZone(args[2]);
  202.                                                     } else if(args[2].equalsIgnoreCase("here")) {
  203.                                                         zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  204.                                                     } else {
  205.                                                         OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[4]}));
  206.                                                     }
  207.                                                 }
  208.  
  209.                                                 ArrayList<String> list = APIRegistry.perms.getGroupPermissions(group.name, zone.getZoneName());
  210.                                                 Collections.sort(list);
  211.                                                 ArrayList<String> messageAllowed = new ArrayList();
  212.                                                 ArrayList<String> messageDenied = new ArrayList();
  213.                                                 Iterator var7 = list.iterator();
  214.  
  215.                                                 String perm;
  216.                                                 while(var7.hasNext()) {
  217.                                                     perm = (String)var7.next();
  218.                                                     if(perm.contains("has no individual permissions.")) {
  219.                                                         OutputHandler.chatConfirmation(sender, perm);
  220.                                                         return;
  221.                                                     }
  222.  
  223.                                                     if(!perm.toLowerCase().contains("allow") && !perm.toLowerCase().contains("true")) {
  224.                                                         messageDenied.add(" " + EnumChatFormatting.DARK_RED + perm.substring(0, perm.indexOf(":")));
  225.                                                     } else {
  226.                                                         messageAllowed.add(" " + EnumChatFormatting.DARK_GREEN + perm.substring(0, perm.indexOf(":")));
  227.                                                     }
  228.                                                 }
  229.  
  230.                                                 OutputHandler.chatConfirmation(sender, group.name + (group.parent != null?" inherits from " + group.parent:"") + ".\nCurrent permissions in zone " + zone.getZoneName() + ":");
  231.                                                 OutputHandler.chatConfirmation(sender, " (" + EnumChatFormatting.DARK_GREEN + "ALLOWED" + EnumChatFormatting.DARK_RED + " DENIED" + EnumChatFormatting.GREEN + ")");
  232.                                                 var7 = messageAllowed.iterator();
  233.  
  234.                                                 while(var7.hasNext()) {
  235.                                                     perm = (String)var7.next();
  236.                                                     OutputHandler.chatConfirmation(sender, perm);
  237.                                                 }
  238.  
  239.                                                 var7 = messageDenied.iterator();
  240.  
  241.                                                 while(var7.hasNext()) {
  242.                                                     perm = (String)var7.next();
  243.                                                     OutputHandler.chatConfirmation(sender, perm);
  244.                                                 }
  245.  
  246.                                             }
  247.                                         } else {
  248.                                             result = APIRegistry.perms.clearGroupPermission(group.name, args[2], zone.getZoneName());
  249.                                             if(result == null) {
  250.                                                 OutputHandler.chatConfirmation(sender, args[2] + " has been removed from " + group.name + " in zone " + zone.getZoneName());
  251.                                             } else {
  252.                                                 OutputHandler.chatError(sender, result);
  253.                                             }
  254.  
  255.                                         }
  256.                                     } else {
  257.                                         result = APIRegistry.perms.setGroupPermission(group.name, args[2], false, zone.getZoneName());
  258.                                         if(result == null) {
  259.                                             OutputHandler.chatConfirmation(sender, group.name + " in zone " + zone.getZoneName() + " denied access to " + args[2]);
  260.                                         } else {
  261.                                             OutputHandler.chatError(sender, result);
  262.                                         }
  263.  
  264.                                     }
  265.                                 } else {
  266.                                     result = APIRegistry.perms.setGroupPermission(group.name, args[2], true, zone.getZoneName());
  267.                                     if(result == null) {
  268.                                         OutputHandler.chatConfirmation(sender, group.name + " in zone " + zone.getZoneName() + " allowed access to " + args[2]);
  269.                                     } else {
  270.                                         OutputHandler.chatError(sender, result);
  271.                                     }
  272.  
  273.                                 }
  274.                             }
  275.                         }
  276.                     }
  277.                 } else if(args.length == 1) {
  278.                     OutputHandler.chatConfirmation(sender, "Usage: /p group delete <groupname>");
  279.                 } else if(APIRegistry.perms.getGroupForName(args[1]) == null) {
  280.                     OutputHandler.chatError(sender, args[1] + " does not exist as a group!");
  281.                 } else {
  282.                     zone = APIRegistry.zones.getGLOBAL();
  283.                     if(args.length == 3) {
  284.                         if(APIRegistry.zones.doesZoneExist(args[2])) {
  285.                             zone = APIRegistry.zones.getZone(args[2]);
  286.                         } else if(args[2].equalsIgnoreCase("here")) {
  287.                             zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  288.                         } else {
  289.                             OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  290.                         }
  291.                     }
  292.  
  293.                     list = APIRegistry.perms.getGroupsInZone(zone.getZoneName());
  294.                     Iterator var4 = list.iterator();
  295.  
  296.                     Group group;
  297.                     do {
  298.                         if(!var4.hasNext()) {
  299.                             OutputHandler.chatError(sender, args[1] + " does not exist in " + zone.getZoneName() + " zone!");
  300.                             return;
  301.                         }
  302.  
  303.                         Object groupObj = var4.next();
  304.                         group = (Group)groupObj;
  305.                     } while(!group.name.equalsIgnoreCase(args[1]));
  306.  
  307.                     APIRegistry.perms.deleteGroupInZone(args[1], zone.getZoneName());
  308.                     OutputHandler.chatConfirmation(sender, "Group " + args[1] + " removed in zone " + zone.getZoneName());
  309.                 }
  310.             } else if(args.length == 1) {
  311.                 OutputHandler.chatConfirmation(sender, "Usage: /p group create <groupname>");
  312.             } else {
  313.                 zone = APIRegistry.zones.getGLOBAL();
  314.                 if(args.length > 2) {
  315.                     if(APIRegistry.zones.doesZoneExist(args[2])) {
  316.                         zone = APIRegistry.zones.getZone(args[2]);
  317.                     } else if(args[2].equalsIgnoreCase("here")) {
  318.                         zone = APIRegistry.zones.getWhichZoneIn(new WorldPoint(sender));
  319.                     } else {
  320.                         OutputHandler.chatError(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  321.                     }
  322.                 }
  323.  
  324.                 APIRegistry.perms.createGroupInZone(args[1], zone.getZoneName(), "", "", (String)null, 0);
  325.                 ChatUtils.sendMessage(sender, "Group " + args[1] + " made in zone " + zone.getZoneName());
  326.             }
  327.         }
  328.     }
  329.  
  330.     public static void processCommandConsole(ICommandSender sender, String[] args) {
  331.         if(args.length == 0) {
  332.             ChatUtils.sendMessage(sender, "Possible usage:");
  333.             ChatUtils.sendMessage(sender, "/p group create|delete");
  334.             ChatUtils.sendMessage(sender, "/p group <groupName>");
  335.             ChatUtils.sendMessage(sender, "/p group list ");
  336.         } else {
  337.             Zone zone;
  338.             if(!args[0].equalsIgnoreCase("create") && !args[0].equalsIgnoreCase("make")) {
  339.                 if(!args[0].equalsIgnoreCase("delete") && !args[0].equalsIgnoreCase("remove")) {
  340.                     String result;
  341.                     if(args[0].equalsIgnoreCase("list")) {
  342.                         zone = APIRegistry.zones.getGLOBAL();
  343.                         if(args.length == 2) {
  344.                             if(APIRegistry.zones.doesZoneExist(args[1])) {
  345.                                 zone = APIRegistry.zones.getZone(args[1]);
  346.                             } else {
  347.                                 ChatUtils.sendMessage(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  348.                             }
  349.                         }
  350.  
  351.                         ArrayList<?> list = APIRegistry.perms.getGroupsInZone(zone.getZoneName());
  352.                         result = "";
  353.                         int i = 0;
  354.                         Iterator var14 = list.iterator();
  355.  
  356.                         while(var14.hasNext()) {
  357.                             Object groupObj = var14.next();
  358.                             result = result + ((Group)groupObj).name;
  359.                             ++i;
  360.                             if(i != list.size()) {
  361.                                 result = result + ", ";
  362.                             }
  363.                         }
  364.  
  365.                         ChatUtils.sendMessage(sender, "Groups available in zone " + zone.getZoneName() + ":");
  366.                         ChatUtils.sendMessage(sender, result);
  367.                     } else {
  368.                         Group group = APIRegistry.perms.getGroupForName(args[0]);
  369.                         if(group == null) {
  370.                             ChatUtils.sendMessage(sender, args[0] + " does not exist as a group!");
  371.                         } else if(args.length == 1) {
  372.                             ChatUtils.sendMessage(sender, "Current settings for " + group.name + ": prefix=" + group.prefix + ", suffix=" + group.suffix + ", parent=" + group.parent + ", priority=" + group.priority);
  373.                             ChatUtils.sendMessage(sender, "To change any of these, type /p group <groupname> prefix|suffix|parent|priority set <value>");
  374.                         } else {
  375.                             Zone zone = APIRegistry.zones.getGLOBAL();
  376.                             if(args.length == 3 && (args[1].equalsIgnoreCase("prefix") || args[1].equalsIgnoreCase("suffix") || args[1].equalsIgnoreCase("parent") || args[1].equalsIgnoreCase("priority"))) {
  377.                                 if(args.length == 3) {
  378.                                     if(APIRegistry.zones.doesZoneExist(args[2])) {
  379.                                         zone = APIRegistry.zones.getZone(args[2]);
  380.                                     } else {
  381.                                         ChatUtils.sendMessage(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  382.                                     }
  383.                                 }
  384.                             } else if(args.length == 5) {
  385.                                 if(APIRegistry.zones.doesZoneExist(args[4])) {
  386.                                     zone = APIRegistry.zones.getZone(args[4]);
  387.                                 } else {
  388.                                     ChatUtils.sendMessage(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  389.                                 }
  390.                             }
  391.  
  392.                             boolean result;
  393.                             if(args[1].equalsIgnoreCase("prefix")) {
  394.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  395.                                     if(args.length == 3) {
  396.                                         group.prefix = " ";
  397.                                     } else {
  398.                                         group.prefix = args[3];
  399.                                     }
  400.  
  401.                                     result = APIRegistry.perms.updateGroup(group);
  402.                                     if(result) {
  403.                                         ChatUtils.sendMessage(sender, group.name + "'s prefix set to &f" + group.prefix);
  404.                                     } else {
  405.                                         ChatUtils.sendMessage(sender, "Error processing group prefix update.");
  406.                                     }
  407.  
  408.                                 } else {
  409.                                     ChatUtils.sendMessage(sender, group.name + "'s prefix is &f" + group.prefix);
  410.                                 }
  411.                             } else if(args[1].equalsIgnoreCase("suffix")) {
  412.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  413.                                     if(args.length == 3) {
  414.                                         group.suffix = " ";
  415.                                     } else {
  416.                                         group.suffix = args[3];
  417.                                     }
  418.  
  419.                                     result = APIRegistry.perms.updateGroup(group);
  420.                                     if(result) {
  421.                                         ChatUtils.sendMessage(sender, group.name + "'s suffix set to &f" + group.suffix);
  422.                                     } else {
  423.                                         ChatUtils.sendMessage(sender, "Error processing group suffix update.");
  424.                                     }
  425.  
  426.                                 } else {
  427.                                     ChatUtils.sendMessage(sender, group.name + "'s suffix is &f" + group.suffix);
  428.                                 }
  429.                             } else if(args[1].equalsIgnoreCase("parent")) {
  430.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  431.                                     if(args.length == 3) {
  432.                                         group.parent = null;
  433.                                     } else {
  434.                                         group.parent = args[3];
  435.                                     }
  436.  
  437.                                     result = APIRegistry.perms.updateGroup(group);
  438.                                     if(result) {
  439.                                         ChatUtils.sendMessage(sender, group.name + "'s parent set to " + group.parent);
  440.                                     } else {
  441.                                         ChatUtils.sendMessage(sender, "Error processing group parent update.");
  442.                                     }
  443.  
  444.                                 } else {
  445.                                     ChatUtils.sendMessage(sender, group.name + "'s parent is " + group.parent);
  446.                                 }
  447.                             } else if(args[1].equalsIgnoreCase("priority")) {
  448.                                 if(args.length != 2 && args[2].equalsIgnoreCase("set")) {
  449.                                     if(args.length == 3) {
  450.                                         group.priority = 0;
  451.                                     } else {
  452.                                         try {
  453.                                             group.priority = Integer.parseInt(args[3]);
  454.                                         } catch (NumberFormatException var9) {
  455.                                             ChatUtils.sendMessage(sender, args[3] + "");
  456.                                         }
  457.                                     }
  458.  
  459.                                     result = APIRegistry.perms.updateGroup(group);
  460.                                     if(result) {
  461.                                         ChatUtils.sendMessage(sender, group.name + "'s priority set to " + group.priority);
  462.                                     } else {
  463.                                         ChatUtils.sendMessage(sender, "Error processing group priority update.");
  464.                                     }
  465.  
  466.                                 } else {
  467.                                     ChatUtils.sendMessage(sender, group.name + "'s priority is " + group.priority);
  468.                                 }
  469.                             } else {
  470.                                 zone = APIRegistry.zones.getGLOBAL();
  471.                                 if(args.length == 4) {
  472.                                     if(APIRegistry.zones.doesZoneExist(args[3])) {
  473.                                         zone = APIRegistry.zones.getZone(args[3]);
  474.                                     } else {
  475.                                         ChatUtils.sendMessage(sender, String.format("No zone by the name %s exists!", new Object[]{args[4]}));
  476.                                     }
  477.                                 }
  478.  
  479.                                 if(!args[1].equalsIgnoreCase("true") && !args[1].equalsIgnoreCase("allow")) {
  480.                                     if(!args[1].equalsIgnoreCase("false") && !args[1].equalsIgnoreCase("deny")) {
  481.                                         if(!args[1].equalsIgnoreCase("clear") && !args[1].equalsIgnoreCase("remove")) {
  482.                                             if(args[1].equalsIgnoreCase("get")) {
  483.                                                 result = APIRegistry.perms.getPermissionForGroup(group.name, zone.getZoneName(), args[2]);
  484.                                                 if(result == null) {
  485.                                                     ChatUtils.sendMessage(sender, "Error processing statement");
  486.                                                 } else if(result.equals("Zone or target invalid")) {
  487.                                                     ChatUtils.sendMessage(sender, "Zone or group does not exist!");
  488.                                                 } else {
  489.                                                     ChatUtils.sendMessage(sender, args[2] + " is " + result + " for " + group.name);
  490.                                                 }
  491.  
  492.                                             } else if(!args[1].equalsIgnoreCase("perms")) {
  493.                                                 ChatUtils.sendMessage(sender, "Improper syntax. Please try this instead: ");
  494.                                             } else {
  495.                                                 if(args.length == 3) {
  496.                                                     if(APIRegistry.zones.doesZoneExist(args[2])) {
  497.                                                         zone = APIRegistry.zones.getZone(args[2]);
  498.                                                     } else if(args[2].equalsIgnoreCase("here")) {
  499.                                                         ChatUtils.sendMessage(sender, "ERROR: You are not allowed to use the here keyword in console.");
  500.                                                     } else {
  501.                                                         ChatUtils.sendMessage(sender, "ERROR: " + String.format("No zone by the name %s exists!", new Object[]{args[4]}));
  502.                                                     }
  503.                                                 }
  504.  
  505.                                                 ArrayList<String> list = APIRegistry.perms.getGroupPermissions(group.name, zone.getZoneName());
  506.                                                 Collections.sort(list);
  507.                                                 ArrayList<String> messageAllowed = new ArrayList();
  508.                                                 ArrayList<String> messageDenied = new ArrayList();
  509.                                                 Iterator var7 = list.iterator();
  510.  
  511.                                                 String perm;
  512.                                                 while(var7.hasNext()) {
  513.                                                     perm = (String)var7.next();
  514.                                                     if(perm.contains("has no individual permissions.")) {
  515.                                                         ChatUtils.sendMessage(sender, perm);
  516.                                                         return;
  517.                                                     }
  518.  
  519.                                                     if(perm.contains("ALLOW")) {
  520.                                                         messageAllowed.add(" " + perm);
  521.                                                     } else {
  522.                                                         messageDenied.add(" " + perm);
  523.                                                     }
  524.                                                 }
  525.  
  526.                                                 ChatUtils.sendMessage(sender, group.name + (group.parent != null?" inherits from " + group.parent:"") + ".\nCurrent permissions in zone " + zone.getZoneName() + ":");
  527.                                                 var7 = messageAllowed.iterator();
  528.  
  529.                                                 while(var7.hasNext()) {
  530.                                                     perm = (String)var7.next();
  531.                                                     ChatUtils.sendMessage(sender, perm);
  532.                                                 }
  533.  
  534.                                                 var7 = messageDenied.iterator();
  535.  
  536.                                                 while(var7.hasNext()) {
  537.                                                     perm = (String)var7.next();
  538.                                                     ChatUtils.sendMessage(sender, perm);
  539.                                                 }
  540.  
  541.                                             }
  542.                                         } else {
  543.                                             result = APIRegistry.perms.clearGroupPermission(group.name, args[2], zone.getZoneName());
  544.                                             if(result == null) {
  545.                                                 ChatUtils.sendMessage(sender, args[2] + " has been removed from " + group.name + " in zone " + zone.getZoneName());
  546.                                             } else {
  547.                                                 ChatUtils.sendMessage(sender, result);
  548.                                             }
  549.  
  550.                                         }
  551.                                     } else {
  552.                                         result = APIRegistry.perms.setGroupPermission(group.name, args[2], false, zone.getZoneName());
  553.                                         if(result == null) {
  554.                                             ChatUtils.sendMessage(sender, group.name + " in zone " + zone.getZoneName() + " denied access to " + args[2]);
  555.                                         } else {
  556.                                             ChatUtils.sendMessage(sender, result);
  557.                                         }
  558.  
  559.                                     }
  560.                                 } else {
  561.                                     result = APIRegistry.perms.setGroupPermission(group.name, args[2], true, zone.getZoneName());
  562.                                     if(result == null) {
  563.                                         ChatUtils.sendMessage(sender, group.name + " in zone " + zone.getZoneName() + " allowed access to " + args[2]);
  564.                                     } else {
  565.                                         ChatUtils.sendMessage(sender, result);
  566.                                     }
  567.  
  568.                                 }
  569.                             }
  570.                         }
  571.                     }
  572.                 } else if(args.length == 1) {
  573.                     ChatUtils.sendMessage(sender, "Usage: /p group delete <groupname>");
  574.                 } else if(APIRegistry.perms.getGroupForName(args[1]) == null) {
  575.                     ChatUtils.sendMessage(sender, args[0] + " does not exist as a group!");
  576.                 } else {
  577.                     zone = APIRegistry.zones.getGLOBAL();
  578.                     if(args.length == 3) {
  579.                         if(APIRegistry.zones.doesZoneExist(args[2])) {
  580.                             zone = APIRegistry.zones.getZone(args[2]);
  581.                         } else {
  582.                             ChatUtils.sendMessage(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  583.                         }
  584.                     }
  585.  
  586.                     APIRegistry.perms.deleteGroupInZone(args[1], zone.getZoneName());
  587.                     ChatUtils.sendMessage(sender, "Group " + args[1] + " removed in zone " + zone.getZoneName());
  588.                 }
  589.             } else if(args.length == 1) {
  590.                 ChatUtils.sendMessage(sender, "Usage: /p group create <groupname>");
  591.             } else {
  592.                 zone = APIRegistry.zones.getGLOBAL();
  593.                 if(args.length > 2) {
  594.                     if(APIRegistry.zones.doesZoneExist(args[2])) {
  595.                         zone = APIRegistry.zones.getZone(args[2]);
  596.                     } else {
  597.                         ChatUtils.sendMessage(sender, String.format("No zone by the name %s exists!", new Object[]{args[2]}));
  598.                     }
  599.                 }
  600.  
  601.                 APIRegistry.perms.createGroupInZone(args[1], zone.getZoneName(), "", "", (String)null, 0);
  602.                 ChatUtils.sendMessage(sender, "Group " + args[1] + " made in zone " + zone.getZoneName());
  603.             }
  604.         }
  605.     }
  606. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement