package net.minecraft.command; import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.scoreboard.ScoreObjective; import net.minecraft.server.MinecraftServer; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityCommandBlock; import net.minecraft.tileentity.TileEntitySign; import net.minecraft.util.BlockPos; import net.minecraft.world.World; public class CommandStats extends CommandBase { private static final String __OBFID = "CL_00002339"; public String getCommandName() { return "stats"; } /** * Return the required permission level for this command. */ public int getRequiredPermissionLevel() { return 2; } public String getCommandUsage(ICommandSender sender) { return "commands.stats.usage"; } public void processCommand(ICommandSender sender, String[] args) throws CommandException { if (args.length < 1) { throw new WrongUsageException("commands.stats.usage", new Object[0]); } else { boolean var3; if (args[0].equals("entity")) { var3 = false; } else { if (!args[0].equals("block")) { throw new WrongUsageException("commands.stats.usage", new Object[0]); } var3 = true; } byte var4; if (var3) { if (args.length < 5) { throw new WrongUsageException("commands.stats.block.usage", new Object[0]); } var4 = 4; } else { if (args.length < 3) { throw new WrongUsageException("commands.stats.entity.usage", new Object[0]); } var4 = 2; } int var11 = var4 + 1; String var5 = args[var4]; if ("set".equals(var5)) { if (args.length < var11 + 3) { if (var11 == 5) { throw new WrongUsageException("commands.stats.block.set.usage", new Object[0]); } throw new WrongUsageException("commands.stats.entity.set.usage", new Object[0]); } } else { if (!"clear".equals(var5)) { throw new WrongUsageException("commands.stats.usage", new Object[0]); } if (args.length < var11 + 1) { if (var11 == 5) { throw new WrongUsageException("commands.stats.block.clear.usage", new Object[0]); } throw new WrongUsageException("commands.stats.entity.clear.usage", new Object[0]); } } CommandResultStats.Type var6 = CommandResultStats.Type.func_179635_a(args[var11++]); if (var6 == null) { throw new CommandException("commands.stats.failed", new Object[0]); } else { World var7 = sender.getEntityWorld(); CommandResultStats var8; BlockPos var9; TileEntity var10; if (var3) { var9 = func_175757_a(sender, args, 1, false); var10 = var7.getTileEntity(var9); if (var10 == null) { throw new CommandException("commands.stats.noCompatibleBlock", new Object[] {Integer.valueOf(var9.getX()), Integer.valueOf(var9.getY()), Integer.valueOf(var9.getZ())}); } if (var10 instanceof TileEntityCommandBlock) { var8 = ((TileEntityCommandBlock)var10).func_175124_c(); } else { if (!(var10 instanceof TileEntitySign)) { throw new CommandException("commands.stats.noCompatibleBlock", new Object[] {Integer.valueOf(var9.getX()), Integer.valueOf(var9.getY()), Integer.valueOf(var9.getZ())}); } var8 = ((TileEntitySign)var10).func_174880_d(); } } else { Entity var12 = func_175768_b(sender, args[1]); var8 = var12.func_174807_aT(); } if ("set".equals(var5)) { String var13 = args[var11++]; String var14 = args[var11]; if (var13.length() == 0 || var14.length() == 0) { throw new CommandException("commands.stats.failed", new Object[0]); } CommandResultStats.func_179667_a(var8, var6, var13, var14); notifyOperators(sender, this, "commands.stats.success", new Object[] {var6.func_179637_b(), var14, var13}); } else if ("clear".equals(var5)) { CommandResultStats.func_179667_a(var8, var6, (String)null, (String)null); notifyOperators(sender, this, "commands.stats.cleared", new Object[] {var6.func_179637_b()}); } if (var3) { var9 = func_175757_a(sender, args, 1, false); var10 = var7.getTileEntity(var9); var10.markDirty(); } } } } public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { return args.length == 1 ? getListOfStringsMatchingLastWord(args, new String[] {"entity", "block"}): (args.length == 2 && args[0].equals("entity") ? getListOfStringsMatchingLastWord(args, this.func_175776_d()) : ((args.length != 3 || !args[0].equals("entity")) && (args.length != 5 || !args[0].equals("block")) ? ((args.length != 4 || !args[0].equals("entity")) && (args.length != 6 || !args[0].equals("block")) ? ((args.length != 6 || !args[0].equals("entity")) && (args.length != 8 || !args[0].equals("block")) ? null : func_175762_a(args, this.func_175777_e())) : getListOfStringsMatchingLastWord(args, CommandResultStats.Type.func_179634_c())) : getListOfStringsMatchingLastWord(args, new String[] {"set", "clear"}))); } protected String[] func_175776_d() { return MinecraftServer.getServer().getAllUsernames(); } protected List func_175777_e() { Collection var1 = MinecraftServer.getServer().worldServerForDimension(0).getScoreboard().getScoreObjectives(); ArrayList var2 = Lists.newArrayList(); Iterator var3 = var1.iterator(); while (var3.hasNext()) { ScoreObjective var4 = (ScoreObjective)var3.next(); if (!var4.getCriteria().isReadOnly()) { var2.add(var4.getName()); } } return var2; } /** * Return whether the specified command parameter index is a username parameter. */ public boolean isUsernameIndex(String[] args, int index) { return args.length > 0 && args[0].equals("entity") && index == 1; } }