Advertisement
Guest User

PlayerSelector.java

a guest
Jul 29th, 2016
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 21.84 KB | None | 0 0
  1. package net.minecraft.server.v1_10_R1;
  2.  
  3. import com.google.common.base.Predicate;
  4. import com.google.common.base.Predicates;
  5. import com.google.common.collect.ComparisonChain;
  6. import com.google.common.collect.Lists;
  7. import com.google.common.collect.Maps;
  8. import com.google.common.collect.Sets;
  9. import java.util.ArrayList;
  10. import java.util.Collections;
  11. import java.util.Comparator;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. import java.util.Map.Entry;
  16. import java.util.Set;
  17. import java.util.regex.Matcher;
  18. import java.util.regex.Pattern;
  19. import javax.annotation.Nullable;
  20.  
  21. public class PlayerSelector
  22. {
  23.   private static final Pattern a = Pattern.compile("^@([pare])(?:\\[([\\w=,!-]*)\\])?$");
  24.   private static final Pattern b = Pattern.compile("\\G([-!]?[\\w-]*)(?:$|,)");
  25.   private static final Pattern c = Pattern.compile("\\G(\\w+)=([-!]?[\\w-]*)(?:$|,)");
  26.   private static final Set<String> d = Sets.newHashSet(new String[] { "x", "y", "z", "dx", "dy", "dz", "rm", "r" });
  27.  
  28.   @Nullable
  29.   public static EntityPlayer getPlayer(ICommandListener paramICommandListener, String paramString)
  30.   {
  31.     return (EntityPlayer)getEntity(paramICommandListener, paramString, EntityPlayer.class);
  32.   }
  33.  
  34.   @Nullable
  35.   public static <T extends Entity> T getEntity(ICommandListener paramICommandListener, String paramString, Class<? extends T> paramClass)
  36.   {
  37.     List localList = getPlayers(paramICommandListener, paramString, paramClass);
  38.     return localList.size() == 1 ? (Entity)localList.get(0) : null;
  39.   }
  40.  
  41.   @Nullable
  42.   public static IChatBaseComponent getPlayerNames(ICommandListener paramICommandListener, String paramString)
  43.   {
  44.     List localList = getPlayers(paramICommandListener, paramString, Entity.class);
  45.     if (localList.isEmpty()) {
  46.       return null;
  47.     }
  48.     ArrayList localArrayList = Lists.newArrayList();
  49.     for (Entity localEntity : localList) {
  50.       localArrayList.add(localEntity.getScoreboardDisplayName());
  51.     }
  52.     return CommandAbstract.a(localArrayList);
  53.   }
  54.  
  55.   public static <T extends Entity> List<T> getPlayers(ICommandListener paramICommandListener, String paramString, Class<? extends T> paramClass)
  56.   {
  57.     Matcher localMatcher = a.matcher(paramString);
  58.     if ((localMatcher.matches()) && (paramICommandListener.a(1, "@")))
  59.     {
  60.       Map localMap = c(localMatcher.group(2));
  61.       if (!b(paramICommandListener, localMap)) {
  62.         return Collections.emptyList();
  63.       }
  64.       String str = localMatcher.group(1);
  65.       BlockPosition localBlockPosition = a(localMap, paramICommandListener.getChunkCoordinates());
  66.       Vec3D localVec3D = b(localMap, paramICommandListener.d());
  67.       List localList = a(paramICommandListener, localMap);
  68.       ArrayList localArrayList1 = Lists.newArrayList();
  69.       for (World localWorld : localList) {
  70.         if (localWorld != null)
  71.         {
  72.           ArrayList localArrayList2 = Lists.newArrayList();
  73.           localArrayList2.addAll(a(localMap, str));
  74.           localArrayList2.addAll(b(localMap));
  75.           localArrayList2.addAll(c(localMap));
  76.           localArrayList2.addAll(d(localMap));
  77.           localArrayList2.addAll(c(paramICommandListener, localMap));
  78.           localArrayList2.addAll(e(localMap));
  79.           localArrayList2.addAll(f(localMap));
  80.           localArrayList2.addAll(a(localMap, localVec3D));
  81.           localArrayList2.addAll(g(localMap));
  82.          
  83.           localArrayList1.addAll(a(localMap, paramClass, localArrayList2, str, localWorld, localBlockPosition));
  84.         }
  85.       }
  86.       return a(localArrayList1, localMap, paramICommandListener, paramClass, str, localVec3D);
  87.     }
  88.     return Collections.emptyList();
  89.   }
  90.  
  91.   private static List<World> a(ICommandListener paramICommandListener, Map<String, String> paramMap)
  92.   {
  93.     ArrayList localArrayList = Lists.newArrayList();
  94.     if (h(paramMap)) {
  95.       localArrayList.add(paramICommandListener.getWorld());
  96.     } else {
  97.       Collections.addAll(localArrayList, paramICommandListener.h().worldServer);
  98.     }
  99.     return localArrayList;
  100.   }
  101.  
  102.   private static <T extends Entity> boolean b(ICommandListener paramICommandListener, Map<String, String> paramMap)
  103.   {
  104.     String str = b(paramMap, "type");
  105.     str = (str != null) && (str.startsWith("!")) ? str.substring(1) : str;
  106.     if ((str != null) && (!EntityTypes.b(str)))
  107.     {
  108.       ChatMessage localChatMessage = new ChatMessage("commands.generic.entity.invalidType", new Object[] { str });
  109.       localChatMessage.getChatModifier().setColor(EnumChatFormat.RED);
  110.       paramICommandListener.sendMessage(localChatMessage);
  111.       return false;
  112.     }
  113.     return true;
  114.   }
  115.  
  116.   private static List<Predicate<Entity>> a(Map<String, String> paramMap, String paramString)
  117.   {
  118.     ArrayList localArrayList = Lists.newArrayList();
  119.     String str1 = b(paramMap, "type");
  120.     final boolean bool = (str1 != null) && (str1.startsWith("!"));
  121.     if (bool) {
  122.       str1 = str1.substring(1);
  123.     }
  124.     String str2 = str1;
  125.    
  126.     int i = !paramString.equals("e") ? 1 : 0;
  127.     int j = (paramString.equals("r")) && (str1 != null) ? 1 : 0;
  128.     if (((str1 != null) && (paramString.equals("e"))) || (j != 0)) {
  129.       localArrayList.add(new Predicate()
  130.       {
  131.         public boolean a(@Nullable Entity paramAnonymousEntity)
  132.         {
  133.           return EntityTypes.a(paramAnonymousEntity, this.a) != bool;
  134.         }
  135.       });
  136.     } else if (i != 0) {
  137.       localArrayList.add(new Predicate()
  138.       {
  139.         public boolean a(@Nullable Entity paramAnonymousEntity)
  140.         {
  141.           return paramAnonymousEntity instanceof EntityHuman;
  142.         }
  143.       });
  144.     }
  145.     return localArrayList;
  146.   }
  147.  
  148.   private static List<Predicate<Entity>> b(Map<String, String> paramMap)
  149.   {
  150.     ArrayList localArrayList = Lists.newArrayList();
  151.     int i = a(paramMap, "lm", -1);
  152.     final int j = a(paramMap, "l", -1);
  153.     if ((i > -1) || (j > -1)) {
  154.       localArrayList.add(new Predicate()
  155.       {
  156.         public boolean a(@Nullable Entity paramAnonymousEntity)
  157.         {
  158.           if (!(paramAnonymousEntity instanceof EntityPlayer)) {
  159.             return false;
  160.           }
  161.           EntityPlayer localEntityPlayer = (EntityPlayer)paramAnonymousEntity;
  162.           return ((this.a <= -1) || (localEntityPlayer.expLevel >= this.a)) && ((j <= -1) || (localEntityPlayer.expLevel <= j));
  163.         }
  164.       });
  165.     }
  166.     return localArrayList;
  167.   }
  168.  
  169.   private static List<Predicate<Entity>> c(Map<String, String> paramMap)
  170.   {
  171.     ArrayList localArrayList = Lists.newArrayList();
  172.     String str = b(paramMap, "m");
  173.     if (str == null) {
  174.       return localArrayList;
  175.     }
  176.     boolean bool = str.startsWith("!");
  177.     if (bool) {
  178.       str = str.substring(1);
  179.     }
  180.     EnumGamemode localEnumGamemode;
  181.     try
  182.     {
  183.       int i = Integer.parseInt(str);
  184.       localEnumGamemode = EnumGamemode.a(i, EnumGamemode.NOT_SET);
  185.     }
  186.     catch (Throwable localThrowable)
  187.     {
  188.       localEnumGamemode = EnumGamemode.a(str, EnumGamemode.NOT_SET);
  189.     }
  190.     final Object localObject = localEnumGamemode;
  191.     localArrayList.add(new Predicate()
  192.     {
  193.       public boolean a(@Nullable Entity paramAnonymousEntity)
  194.       {
  195.         if (!(paramAnonymousEntity instanceof EntityPlayer)) {
  196.           return false;
  197.         }
  198.         EntityPlayer localEntityPlayer = (EntityPlayer)paramAnonymousEntity;
  199.         EnumGamemode localEnumGamemode = localEntityPlayer.playerInteractManager.getGameMode();
  200.         return localEnumGamemode != localObject;
  201.       }
  202.     });
  203.     return localArrayList;
  204.   }
  205.  
  206.   private static List<Predicate<Entity>> d(Map<String, String> paramMap)
  207.   {
  208.     ArrayList localArrayList = Lists.newArrayList();
  209.     String str1 = b(paramMap, "team");
  210.     final boolean bool = (str1 != null) && (str1.startsWith("!"));
  211.     if (bool) {
  212.       str1 = str1.substring(1);
  213.     }
  214.     String str2 = str1;
  215.     if (str1 != null) {
  216.       localArrayList.add(new Predicate()
  217.       {
  218.         public boolean a(@Nullable Entity paramAnonymousEntity)
  219.         {
  220.           if (!(paramAnonymousEntity instanceof EntityLiving)) {
  221.             return false;
  222.           }
  223.           EntityLiving localEntityLiving = (EntityLiving)paramAnonymousEntity;
  224.           ScoreboardTeamBase localScoreboardTeamBase = localEntityLiving.aQ();
  225.           String str = localScoreboardTeamBase == null ? "" : localScoreboardTeamBase.getName();
  226.           return str.equals(this.a) != bool;
  227.         }
  228.       });
  229.     }
  230.     return localArrayList;
  231.   }
  232.  
  233.   private static List<Predicate<Entity>> c(ICommandListener paramICommandListener, Map<String, String> paramMap)
  234.   {
  235.     final Map localMap = a(paramMap);
  236.     if (localMap.isEmpty()) {
  237.       return Collections.emptyList();
  238.     }
  239.     Lists.newArrayList(new Predicate[] { new Predicate()
  240.     {
  241.       public boolean a(@Nullable Entity paramAnonymousEntity)
  242.       {
  243.         if (paramAnonymousEntity == null) {
  244.           return false;
  245.         }
  246.         Scoreboard localScoreboard = this.a.h().getWorldServer(0).getScoreboard();
  247.         for (Map.Entry localEntry : localMap.entrySet())
  248.         {
  249.           String str1 = (String)localEntry.getKey();
  250.           int i = 0;
  251.           if ((str1.endsWith("_min")) && (str1.length() > 4))
  252.           {
  253.             i = 1;
  254.             str1 = str1.substring(0, str1.length() - 4);
  255.           }
  256.           ScoreboardObjective localScoreboardObjective = localScoreboard.getObjective(str1);
  257.           if (localScoreboardObjective == null) {
  258.             return false;
  259.           }
  260.           String str2 = (paramAnonymousEntity instanceof EntityPlayer) ? paramAnonymousEntity.getName() : paramAnonymousEntity.bf();
  261.           if (!localScoreboard.b(str2, localScoreboardObjective)) {
  262.             return false;
  263.           }
  264.           ScoreboardScore localScoreboardScore = localScoreboard.getPlayerScoreForObjective(str2, localScoreboardObjective);
  265.           int j = localScoreboardScore.getScore();
  266.           if ((j < ((Integer)localEntry.getValue()).intValue()) && (i != 0)) {
  267.             return false;
  268.           }
  269.           if ((j > ((Integer)localEntry.getValue()).intValue()) && (i == 0)) {
  270.             return false;
  271.           }
  272.         }
  273.         return true;
  274.       }
  275.     } });
  276.   }
  277.  
  278.   private static List<Predicate<Entity>> e(Map<String, String> paramMap)
  279.   {
  280.     ArrayList localArrayList = Lists.newArrayList();
  281.     String str1 = b(paramMap, "name");
  282.     final boolean bool = (str1 != null) && (str1.startsWith("!"));
  283.     if (bool) {
  284.       str1 = str1.substring(1);
  285.     }
  286.     String str2 = str1;
  287.     if (str1 != null) {
  288.       localArrayList.add(new Predicate()
  289.       {
  290.         public boolean a(@Nullable Entity paramAnonymousEntity)
  291.         {
  292.           return (paramAnonymousEntity != null) && (paramAnonymousEntity.getName().equals(this.a) != bool);
  293.         }
  294.       });
  295.     }
  296.     return localArrayList;
  297.   }
  298.  
  299.   private static List<Predicate<Entity>> f(Map<String, String> paramMap)
  300.   {
  301.     ArrayList localArrayList = Lists.newArrayList();
  302.     String str1 = b(paramMap, "tag");
  303.     final boolean bool = (str1 != null) && (str1.startsWith("!"));
  304.     if (bool) {
  305.       str1 = str1.substring(1);
  306.     }
  307.     if (str1 != null)
  308.     {
  309.       String str2 = str1;
  310.       localArrayList.add(new Predicate()
  311.       {
  312.         public boolean a(@Nullable Entity paramAnonymousEntity)
  313.         {
  314.           if (paramAnonymousEntity == null) {
  315.             return false;
  316.           }
  317.           if ("".equals(this.a)) {
  318.             return paramAnonymousEntity.P().isEmpty() != bool;
  319.           }
  320.           return paramAnonymousEntity.P().contains(this.a) != bool;
  321.         }
  322.       });
  323.     }
  324.     return localArrayList;
  325.   }
  326.  
  327.   private static List<Predicate<Entity>> a(Map<String, String> paramMap, Vec3D paramVec3D)
  328.   {
  329.     double d1 = a(paramMap, "rm", -1);
  330.     double d2 = a(paramMap, "r", -1);
  331.    
  332.     final boolean bool1 = d1 < -0.5D;
  333.     boolean bool2 = d2 < -0.5D;
  334.     if ((bool1) && (bool2)) {
  335.       return Collections.emptyList();
  336.     }
  337.     double d3 = Math.max(d1, 1.0E-4D);
  338.     final double d4 = d3 * d3;
  339.     double d5 = Math.max(d2, 1.0E-4D);
  340.     final double d6 = d5 * d5;
  341.    
  342.     Lists.newArrayList(new Predicate[] { new Predicate()
  343.     {
  344.       public boolean a(@Nullable Entity paramAnonymousEntity)
  345.       {
  346.         if (paramAnonymousEntity == null) {
  347.           return false;
  348.         }
  349.         double d1 = this.a.c(paramAnonymousEntity.locX, paramAnonymousEntity.locY, paramAnonymousEntity.locZ);
  350.         return ((bool1) || (d1 >= d4)) && ((d6) || (d1 <= this.e));
  351.       }
  352.     } });
  353.   }
  354.  
  355.   private static List<Predicate<Entity>> g(Map<String, String> paramMap)
  356.   {
  357.     ArrayList localArrayList = Lists.newArrayList();
  358.     int i;
  359.     final int j;
  360.     if ((paramMap.containsKey("rym")) || (paramMap.containsKey("ry")))
  361.     {
  362.       i = MathHelper.b(a(paramMap, "rym", 0));
  363.       j = MathHelper.b(a(paramMap, "ry", 359));
  364.      
  365.       localArrayList.add(new Predicate()
  366.       {
  367.         public boolean a(@Nullable Entity paramAnonymousEntity)
  368.         {
  369.           if (paramAnonymousEntity == null) {
  370.             return false;
  371.           }
  372.           int i = MathHelper.b(MathHelper.d(paramAnonymousEntity.yaw));
  373.           if (this.a > j) {
  374.             return (i >= this.a) || (i <= j);
  375.           }
  376.           return (i >= this.a) && (i <= j);
  377.         }
  378.       });
  379.     }
  380.     if ((paramMap.containsKey("rxm")) || (paramMap.containsKey("rx")))
  381.     {
  382.       i = MathHelper.b(a(paramMap, "rxm", 0));
  383.       j = MathHelper.b(a(paramMap, "rx", 359));
  384.      
  385.       localArrayList.add(new Predicate()
  386.       {
  387.         public boolean a(@Nullable Entity paramAnonymousEntity)
  388.         {
  389.           if (paramAnonymousEntity == null) {
  390.             return false;
  391.           }
  392.           int i = MathHelper.b(MathHelper.d(paramAnonymousEntity.pitch));
  393.           if (this.a > j) {
  394.             return (i >= this.a) || (i <= j);
  395.           }
  396.           return (i >= this.a) && (i <= j);
  397.         }
  398.       });
  399.     }
  400.     return localArrayList;
  401.   }
  402.  
  403.   private static <T extends Entity> List<T> a(Map<String, String> paramMap, Class<? extends T> paramClass, List<Predicate<Entity>> paramList, String paramString, World paramWorld, BlockPosition paramBlockPosition)
  404.   {
  405.     ArrayList localArrayList = Lists.newArrayList();
  406.     String str = b(paramMap, "type");
  407.     str = (str != null) && (str.startsWith("!")) ? str.substring(1) : str;
  408.    
  409.     int i = !paramString.equals("e") ? 1 : 0;
  410.     int j = (paramString.equals("r")) && (str != null) ? 1 : 0;
  411.    
  412.     int k = a(paramMap, "dx", 0);
  413.     int m = a(paramMap, "dy", 0);
  414.     int n = a(paramMap, "dz", 0);
  415.    
  416.     int i1 = a(paramMap, "r", -1);
  417.    
  418.     Predicate localPredicate1 = Predicates.and(paramList);
  419.     Predicate localPredicate2 = Predicates.and(IEntitySelector.a, localPredicate1);
  420.     int i2 = paramWorld.players.size();
  421.     int i3 = paramWorld.entityList.size();
  422.     int i4 = i2 < i3 / 16 ? 1 : 0;
  423.     AxisAlignedBB localAxisAlignedBB;
  424.     if ((paramMap.containsKey("dx")) || (paramMap.containsKey("dy")) || (paramMap.containsKey("dz")))
  425.     {
  426.       localAxisAlignedBB = a(paramBlockPosition, k, m, n);
  427.       if ((i != 0) && (i4 != 0) && (j == 0))
  428.       {
  429.         Predicate local4 = new Predicate()
  430.         {
  431.           public boolean a(@Nullable Entity paramAnonymousEntity)
  432.           {
  433.             return (paramAnonymousEntity != null) && (this.a.b(paramAnonymousEntity.getBoundingBox()));
  434.           }
  435.         };
  436.         localArrayList.addAll(paramWorld.b(paramClass, Predicates.and(localPredicate2, local4)));
  437.       }
  438.       else
  439.       {
  440.         localArrayList.addAll(paramWorld.a(paramClass, localAxisAlignedBB, localPredicate2));
  441.       }
  442.     }
  443.     else if (i1 >= 0)
  444.     {
  445.       localAxisAlignedBB = new AxisAlignedBB(paramBlockPosition.getX() - i1, paramBlockPosition.getY() - i1, paramBlockPosition.getZ() - i1, paramBlockPosition.getX() + i1 + 1, paramBlockPosition.getY() + i1 + 1, paramBlockPosition.getZ() + i1 + 1);
  446.       if ((i != 0) && (i4 != 0) && (j == 0)) {
  447.         localArrayList.addAll(paramWorld.b(paramClass, localPredicate2));
  448.       } else {
  449.         localArrayList.addAll(paramWorld.a(paramClass, localAxisAlignedBB, localPredicate2));
  450.       }
  451.     }
  452.     else if (paramString.equals("a"))
  453.     {
  454.       localArrayList.addAll(paramWorld.b(paramClass, localPredicate1));
  455.     }
  456.     else if ((paramString.equals("p")) || ((paramString.equals("r")) && (j == 0)))
  457.     {
  458.       localArrayList.addAll(paramWorld.b(paramClass, localPredicate2));
  459.     }
  460.     else
  461.     {
  462.       localArrayList.addAll(paramWorld.a(paramClass, localPredicate2));
  463.     }
  464.     return localArrayList;
  465.   }
  466.  
  467.   private static <T extends Entity> List<T> a(List<T> paramList, Map<String, String> paramMap, ICommandListener paramICommandListener, Class<? extends T> paramClass, String paramString, Vec3D paramVec3D)
  468.   {
  469.     int i = a(paramMap, "c", (paramString.equals("a")) || (paramString.equals("e")) ? 0 : 1);
  470.     if ((paramString.equals("p")) || (paramString.equals("a")) || (paramString.equals("e"))) {
  471.       Collections.sort(paramList, new Comparator()
  472.       {
  473.         public int a(Entity paramAnonymousEntity1, Entity paramAnonymousEntity2)
  474.         {
  475.           return ComparisonChain.start().compare(paramAnonymousEntity1.e(this.a.x, this.a.y, this.a.z), paramAnonymousEntity2.e(this.a.x, this.a.y, this.a.z)).result();
  476.         }
  477.       });
  478.     } else if (paramString.equals("r")) {
  479.       Collections.shuffle(paramList);
  480.     }
  481.     Entity localEntity = paramICommandListener.f();
  482.     if ((localEntity != null) && (paramClass.isAssignableFrom(localEntity.getClass())) && (i == 1) && (paramList.contains(localEntity)) && (!"r".equals(paramString))) {
  483.       paramList = Lists.newArrayList(new Entity[] { localEntity });
  484.     }
  485.     if (i != 0)
  486.     {
  487.       if (i < 0) {
  488.         Collections.reverse(paramList);
  489.       }
  490.       paramList = paramList.subList(0, Math.min(Math.abs(i), paramList.size()));
  491.     }
  492.     return paramList;
  493.   }
  494.  
  495.   private static AxisAlignedBB a(BlockPosition paramBlockPosition, int paramInt1, int paramInt2, int paramInt3)
  496.   {
  497.     int i = paramInt1 < 0 ? 1 : 0;
  498.     int j = paramInt2 < 0 ? 1 : 0;
  499.     int k = paramInt3 < 0 ? 1 : 0;
  500.     int m = paramBlockPosition.getX() + (i != 0 ? paramInt1 : 0);
  501.     int n = paramBlockPosition.getY() + (j != 0 ? paramInt2 : 0);
  502.     int i1 = paramBlockPosition.getZ() + (k != 0 ? paramInt3 : 0);
  503.     int i2 = paramBlockPosition.getX() + (i != 0 ? 0 : paramInt1) + 1;
  504.     int i3 = paramBlockPosition.getY() + (j != 0 ? 0 : paramInt2) + 1;
  505.     int i4 = paramBlockPosition.getZ() + (k != 0 ? 0 : paramInt3) + 1;
  506.     return new AxisAlignedBB(m, n, i1, i2, i3, i4);
  507.   }
  508.  
  509.   private static BlockPosition a(Map<String, String> paramMap, BlockPosition paramBlockPosition)
  510.   {
  511.     return new BlockPosition(a(paramMap, "x", paramBlockPosition.getX()), a(paramMap, "y", paramBlockPosition.getY()), a(paramMap, "z", paramBlockPosition.getZ()));
  512.   }
  513.  
  514.   private static Vec3D b(Map<String, String> paramMap, Vec3D paramVec3D)
  515.   {
  516.     return new Vec3D(a(paramMap, "x", paramVec3D.x, true), a(paramMap, "y", paramVec3D.y, false), a(paramMap, "z", paramVec3D.z, true));
  517.   }
  518.  
  519.   private static double a(Map<String, String> paramMap, String paramString, double paramDouble, boolean paramBoolean)
  520.   {
  521.     return paramMap.containsKey(paramString) ? MathHelper.a((String)paramMap.get(paramString), MathHelper.floor(paramDouble)) + (paramBoolean ? 0.5D : 0.0D) : paramDouble;
  522.   }
  523.  
  524.   private static boolean h(Map<String, String> paramMap)
  525.   {
  526.     for (String str : d) {
  527.       if (paramMap.containsKey(str)) {
  528.         return true;
  529.       }
  530.     }
  531.     return false;
  532.   }
  533.  
  534.   private static int a(Map<String, String> paramMap, String paramString, int paramInt)
  535.   {
  536.     return paramMap.containsKey(paramString) ? MathHelper.a((String)paramMap.get(paramString), paramInt) : paramInt;
  537.   }
  538.  
  539.   @Nullable
  540.   private static String b(Map<String, String> paramMap, String paramString)
  541.   {
  542.     return (String)paramMap.get(paramString);
  543.   }
  544.  
  545.   public static Map<String, Integer> a(Map<String, String> paramMap)
  546.   {
  547.     HashMap localHashMap = Maps.newHashMap();
  548.     for (String str : paramMap.keySet()) {
  549.       if ((str.startsWith("score_")) && (str.length() > "score_".length())) {
  550.         localHashMap.put(str.substring("score_".length()), Integer.valueOf(MathHelper.a((String)paramMap.get(str), 1)));
  551.       }
  552.     }
  553.     return localHashMap;
  554.   }
  555.  
  556.   public static boolean isList(String paramString)
  557.   {
  558.     Matcher localMatcher = a.matcher(paramString);
  559.     if (localMatcher.matches())
  560.     {
  561.       Map localMap = c(localMatcher.group(2));
  562.       String str = localMatcher.group(1);
  563.       int i = ("a".equals(str)) || ("e".equals(str)) ? 0 : 1;
  564.       return a(localMap, "c", i) != 1;
  565.     }
  566.     return false;
  567.   }
  568.  
  569.   public static boolean isPattern(String paramString)
  570.   {
  571.     return a.matcher(paramString).matches();
  572.   }
  573.  
  574.   private static Map<String, String> c(@Nullable String paramString)
  575.   {
  576.     HashMap localHashMap = Maps.newHashMap();
  577.     if (paramString == null) {
  578.       return localHashMap;
  579.     }
  580.     int i = 0;
  581.     int j = -1;
  582.    
  583.     Matcher localMatcher = b.matcher(paramString);
  584.     Object localObject;
  585.     while (localMatcher.find())
  586.     {
  587.       localObject = null;
  588.       switch (i++)
  589.       {
  590.       case 0:
  591.         localObject = "x";
  592.         break;
  593.       case 1:
  594.         localObject = "y";
  595.         break;
  596.       case 2:
  597.         localObject = "z";
  598.         break;
  599.       case 3:
  600.         localObject = "r";
  601.       }
  602.       if ((localObject != null) && (!localMatcher.group(1).isEmpty())) {
  603.         localHashMap.put(localObject, localMatcher.group(1));
  604.       }
  605.       j = localMatcher.end();
  606.     }
  607.     if (j < paramString.length())
  608.     {
  609.       localObject = c.matcher(j == -1 ? paramString : paramString.substring(j));
  610.       while (((Matcher)localObject).find()) {
  611.         localHashMap.put(((Matcher)localObject).group(1), ((Matcher)localObject).group(2));
  612.       }
  613.     }
  614.     return localHashMap;
  615.   }
  616. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement