package net.minecraft.command; import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.server.MinecraftServer; import net.minecraft.util.BlockPos; import net.minecraft.util.IChatComponent; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class CommandExecuteAt extends CommandBase { private static final String __OBFID = "CL_00002344"; public String getCommandName() { return "execute"; } /** * Return the required permission level for this command. */ public int getRequiredPermissionLevel() { return 2; } public String getCommandUsage(ICommandSender sender) { return "commands.execute.usage"; } public void processCommand(final ICommandSender sender, String[] args) throws CommandException { if (args.length < 5) { throw new WrongUsageException("commands.execute.usage", new Object[0]); } else { final Entity var3 = func_175759_a(sender, args[0], Entity.class); final double var4 = func_175761_b(var3.posX, args[1], false); final double var6 = func_175761_b(var3.posY, args[2], false); final double var8 = func_175761_b(var3.posZ, args[3], false); final BlockPos var10 = new BlockPos(var4, var6, var8); byte var11 = 4; if ("detect".equals(args[4]) && args.length > 10) { World var12 = sender.getEntityWorld(); double var13 = func_175761_b(var4, args[5], false); double var15 = func_175761_b(var6, args[6], false); double var17 = func_175761_b(var8, args[7], false); Block var19 = getBlockByText(sender, args[8]); int var20 = parseInt(args[9], -1, 15); BlockPos var21 = new BlockPos(var13, var15, var17); IBlockState var22 = var12.getBlockState(var21); if (var22.getBlock() != var19 || var20 >= 0 && var22.getBlock().getMetaFromState(var22) != var20) { throw new CommandException("commands.execute.failed", new Object[] {"detect", var3.getName()}); } var11 = 10; } String var24 = func_180529_a(args, var11); ICommandSender var14 = new ICommandSender() { private static final String __OBFID = "CL_00002343"; public String getName() { return var3.getName(); } public IChatComponent getDisplayName() { return var3.getDisplayName(); } public void addChatMessage(IChatComponent message) { sender.addChatMessage(message); } public boolean canCommandSenderUseCommand(int permissionLevel, String command) { return sender.canCommandSenderUseCommand(permissionLevel, command); } public BlockPos getPosition() { return var10; } public Vec3 getPositionVector() { return new Vec3(var4, var6, var8); } public World getEntityWorld() { return var3.worldObj; } public Entity getCommandSenderEntity() { return var3; } public boolean sendCommandFeedback() { MinecraftServer var1 = MinecraftServer.getServer(); return var1 == null || var1.worldServers[0].getGameRules().getGameRuleBooleanValue("commandBlockOutput"); } public void func_174794_a(CommandResultStats.Type p_174794_1_, int p_174794_2_) { var3.func_174794_a(p_174794_1_, p_174794_2_); } }; ICommandManager var25 = MinecraftServer.getServer().getCommandManager(); try { int var16 = var25.executeCommand(var14, var24); if (var16 < 1) { throw new CommandException("commands.execute.allInvocationsFailed", new Object[] {var24}); } } catch (Throwable var23) { throw new CommandException("commands.execute.failed", new Object[] {var24, var3.getName()}); } } } public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { return args.length == 1 ? getListOfStringsMatchingLastWord(args, MinecraftServer.getServer().getAllUsernames()) : (args.length > 1 && args.length <= 4 ? func_175771_a(args, 1, pos) : (args.length > 5 && args.length <= 8 && "detect".equals(args[4]) ? func_175771_a(args, 5, pos) : (args.length == 9 && "detect".equals(args[4]) ? func_175762_a(args, Block.blockRegistry.getKeys()) : null))); } /** * Return whether the specified command parameter index is a username parameter. */ public boolean isUsernameIndex(String[] args, int index) { return index == 0; } }