package net.minecraft.command; import java.util.List; import net.minecraft.server.MinecraftServer; import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.MathHelper; import net.minecraft.world.border.WorldBorder; public class CommandWorldBorder extends CommandBase { private static final String __OBFID = "CL_00002336"; public String getCommandName() { return "worldborder"; } /** * Return the required permission level for this command. */ public int getRequiredPermissionLevel() { return 2; } public String getCommandUsage(ICommandSender sender) { return "commands.worldborder.usage"; } public void processCommand(ICommandSender sender, String[] args) throws CommandException { if (args.length < 1) { throw new WrongUsageException("commands.worldborder.usage", new Object[0]); } else { WorldBorder var3 = this.getWorldBorder(); double var4; double var6; long var8; if (args[0].equals("set")) { if (args.length != 2 && args.length != 3) { throw new WrongUsageException("commands.worldborder.set.usage", new Object[0]); } var4 = var3.getTargetSize(); var6 = parseDouble(args[1], 1.0D, 6.0E7D); var8 = args.length > 2 ? parseLong(args[2], 0L, 9223372036854775L) * 1000L : 0L; if (var8 > 0L) { var3.setTransition(var4, var6, var8); if (var4 > var6) { notifyOperators(sender, this, "commands.worldborder.setSlowly.shrink.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var6)}), String.format("%.1f", new Object[]{Double.valueOf(var4)}), Long.toString(var8 / 1000L)}); } else { notifyOperators(sender, this, "commands.worldborder.setSlowly.grow.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var6)}), String.format("%.1f", new Object[]{Double.valueOf(var4)}), Long.toString(var8 / 1000L)}); } } else { var3.setTransition(var6); notifyOperators(sender, this, "commands.worldborder.set.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var6)}), String.format("%.1f", new Object[]{Double.valueOf(var4)})}); } } else if (args[0].equals("add")) { if (args.length != 2 && args.length != 3) { throw new WrongUsageException("commands.worldborder.add.usage", new Object[0]); } var4 = var3.getDiameter(); var6 = var4 + parseDouble(args[1], -var4, 6.0E7D - var4); var8 = var3.getTimeUntilTarget() + (args.length > 2 ? parseLong(args[2], 0L, 9223372036854775L) * 1000L : 0L); if (var8 > 0L) { var3.setTransition(var4, var6, var8); if (var4 > var6) { notifyOperators(sender, this, "commands.worldborder.setSlowly.shrink.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var6)}), String.format("%.1f", new Object[]{Double.valueOf(var4)}), Long.toString(var8 / 1000L)}); } else { notifyOperators(sender, this, "commands.worldborder.setSlowly.grow.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var6)}), String.format("%.1f", new Object[]{Double.valueOf(var4)}), Long.toString(var8 / 1000L)}); } } else { var3.setTransition(var6); notifyOperators(sender, this, "commands.worldborder.set.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var6)}), String.format("%.1f", new Object[]{Double.valueOf(var4)})}); } } else if (args[0].equals("center")) { if (args.length != 3) { throw new WrongUsageException("commands.worldborder.center.usage", new Object[0]); } BlockPos var10 = sender.getPosition(); double var5 = func_175761_b((double)var10.getX() + 0.5D, args[1], true); double var7 = func_175761_b((double)var10.getZ() + 0.5D, args[2], true); var3.setCenter(var5, var7); notifyOperators(sender, this, "commands.worldborder.center.success", new Object[] {Double.valueOf(var5), Double.valueOf(var7)}); } else if (args[0].equals("damage")) { if (args.length < 2) { throw new WrongUsageException("commands.worldborder.damage.usage", new Object[0]); } if (args[1].equals("buffer")) { if (args.length != 3) { throw new WrongUsageException("commands.worldborder.damage.buffer.usage", new Object[0]); } var4 = parseDouble(args[2], 0.0D); var6 = var3.getDamageBuffer(); var3.setDamageBuffer(var4); notifyOperators(sender, this, "commands.worldborder.damage.buffer.success", new Object[] {String.format("%.1f", new Object[]{Double.valueOf(var4)}), String.format("%.1f", new Object[]{Double.valueOf(var6)})}); } else if (args[1].equals("amount")) { if (args.length != 3) { throw new WrongUsageException("commands.worldborder.damage.amount.usage", new Object[0]); } var4 = parseDouble(args[2], 0.0D); var6 = var3.func_177727_n(); var3.func_177744_c(var4); notifyOperators(sender, this, "commands.worldborder.damage.amount.success", new Object[] {String.format("%.2f", new Object[]{Double.valueOf(var4)}), String.format("%.2f", new Object[]{Double.valueOf(var6)})}); } } else if (args[0].equals("warning")) { if (args.length < 2) { throw new WrongUsageException("commands.worldborder.warning.usage", new Object[0]); } int var11 = parseInt(args[2], 0); int var12; if (args[1].equals("time")) { if (args.length != 3) { throw new WrongUsageException("commands.worldborder.warning.time.usage", new Object[0]); } var12 = var3.getWarningTime(); var3.setWarningTime(var11); notifyOperators(sender, this, "commands.worldborder.warning.time.success", new Object[] {Integer.valueOf(var11), Integer.valueOf(var12)}); } else if (args[1].equals("distance")) { if (args.length != 3) { throw new WrongUsageException("commands.worldborder.warning.distance.usage", new Object[0]); } var12 = var3.getWarningDistance(); var3.setWarningDistance(var11); notifyOperators(sender, this, "commands.worldborder.warning.distance.success", new Object[] {Integer.valueOf(var11), Integer.valueOf(var12)}); } } else if (args[0].equals("get")) { var4 = var3.getDiameter(); sender.func_174794_a(CommandResultStats.Type.QUERY_RESULT, MathHelper.floor_double(var4 + 0.5D)); sender.addChatMessage(new ChatComponentTranslation("commands.worldborder.get.success", new Object[] {String.format("%.0f", new Object[]{Double.valueOf(var4)})})); } } } protected WorldBorder getWorldBorder() { return MinecraftServer.getServer().worldServers[0].getWorldBorder(); } public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { return args.length == 1 ? getListOfStringsMatchingLastWord(args, new String[] {"set", "center", "damage", "warning", "add", "get"}): (args.length == 2 && args[0].equals("damage") ? getListOfStringsMatchingLastWord(args, new String[] {"buffer", "amount"}): (args.length == 2 && args[0].equals("warning") ? getListOfStringsMatchingLastWord(args, new String[] {"time", "distance"}): null)); } }