package net.minecraft.command;
import com.google.gson.JsonParseException;
import java.util.List;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.play.server.S45PacketTitle;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentProcessor;
import net.minecraft.util.IChatComponent;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class CommandTitle extends CommandBase
{
private static final Logger field_175774_a = LogManager.getLogger();
private static final String __OBFID = "CL_00002338";
public String getCommandName()
{
return "title";
}
/**
* Return the required permission level for this command.
*/
public int getRequiredPermissionLevel()
{
return 2;
}
public String getCommandUsage(ICommandSender sender)
{
return "commands.title.usage";
}
public void processCommand(ICommandSender sender, String[] args) throws CommandException
{
if (args.length < 2)
{
throw new WrongUsageException("commands.title.usage", new Object[0]);
}
else
{
if (args.length < 3)
{
if ("title".equals(args[1]) || "subtitle".equals(args[1]))
{
throw new WrongUsageException("commands.title.usage.title", new Object[0]);
}
if ("times".equals(args[1]))
{
throw new WrongUsageException("commands.title.usage.times", new Object[0]);
}
}
EntityPlayerMP var3 = getPlayer(sender, args[0]);
S45PacketTitle.Type var4 = S45PacketTitle.Type.func_179969_a(args[1]);
if (var4 != S45PacketTitle.Type.CLEAR && var4 != S45PacketTitle.Type.RESET)
{
if (var4 == S45PacketTitle.Type.TIMES)
{
if (args.length != 5)
{
throw new WrongUsageException("commands.title.usage", new Object[0]);
}
else
{
int var11 = parseInt(args[2]);
int var12 = parseInt(args[3]);
int var13 = parseInt(args[4]);
S45PacketTitle var14 = new S45PacketTitle(var11, var12, var13);
var3.playerNetServerHandler.sendPacket(var14);
notifyOperators(sender, this, "commands.title.success", new Object[0]);
}
}
else if (args.length < 3)
{
throw new WrongUsageException("commands.title.usage", new Object[0]);
}
else
{
String var10 = func_180529_a(args, 2);
IChatComponent var6;
try
{
var6 = IChatComponent.Serializer.jsonToComponent(var10);
}
catch (JsonParseException var9)
{
Throwable var8 = ExceptionUtils.getRootCause(var9);
throw new SyntaxErrorException("commands.tellraw.jsonException", new Object[] {var8 == null ? "" : var8.getMessage()});
}
S45PacketTitle var7 = new S45PacketTitle(var4, ChatComponentProcessor.func_179985_a(sender, var6, var3));
var3.playerNetServerHandler.sendPacket(var7);
notifyOperators(sender, this, "commands.title.success", new Object[0]);
}
}
else if (args.length != 2)
{
throw new WrongUsageException("commands.title.usage", new Object[0]);
}
else
{
S45PacketTitle var5 = new S45PacketTitle(var4, (IChatComponent)null);
var3.playerNetServerHandler.sendPacket(var5);
notifyOperators(sender, this, "commands.title.success", new Object[0]);
}
}
}
public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos)
{
return args.length == 1 ? getListOfStringsMatchingLastWord(args, MinecraftServer.getServer().getAllUsernames()) : (args.length == 2 ? getListOfStringsMatchingLastWord(args, S45PacketTitle.Type.func_179971_a()) : null);
}
/**
* Return whether the specified command parameter index is a username parameter.
*/
public boolean isUsernameIndex(String[] args, int index)
{
return index == 0;
}
}