package net.minecraft.command;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.scoreboard.IScoreObjectiveCriteria;
import net.minecraft.scoreboard.Score;
import net.minecraft.scoreboard.ScoreObjective;
import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.BlockPos;
public class CommandTrigger extends CommandBase
{
private static final String __OBFID = "CL_00002337";
public String getCommandName()
{
return "trigger";
}
/**
* Return the required permission level for this command.
*/
public int getRequiredPermissionLevel()
{
return 0;
}
public String getCommandUsage(ICommandSender sender)
{
return "commands.trigger.usage";
}
public void processCommand(ICommandSender sender, String[] args) throws CommandException
{
if (args.length < 3)
{
throw new WrongUsageException("commands.trigger.usage", new Object[0]);
}
else
{
EntityPlayerMP var3;
if (sender instanceof EntityPlayerMP)
{
var3 = (EntityPlayerMP)sender;
}
else
{
Entity var4 = sender.getCommandSenderEntity();
if (!(var4 instanceof EntityPlayerMP))
{
throw new CommandException("commands.trigger.invalidPlayer", new Object[0]);
}
var3 = (EntityPlayerMP)var4;
}
Scoreboard var8 = MinecraftServer.getServer().worldServerForDimension(0).getScoreboard();
ScoreObjective var5 = var8.getObjective(args[0]);
if (var5 != null && var5.getCriteria() == IScoreObjectiveCriteria.field_178791_c)
{
int var6 = parseInt(args[2]);
if (!var8.func_178819_b(var3.getName(), var5))
{
throw new CommandException("commands.trigger.invalidObjective", new Object[] {args[0]});
}
else
{
Score var7 = var8.getValueFromObjective(var3.getName(), var5);
if (var7.func_178816_g())
{
throw new CommandException("commands.trigger.disabled", new Object[] {args[0]});
}
else
{
if ("set".equals(args[1]))
{
var7.setScorePoints(var6);
}
else
{
if (!"add".equals(args[1]))
{
throw new CommandException("commands.trigger.invalidMode", new Object[] {args[1]});
}
var7.increseScore(var6);
}
var7.func_178815_a(true);
if (var3.theItemInWorldManager.isCreative())
{
notifyOperators(sender, this, "commands.trigger.success", new Object[] {args[0], args[1], args[2]});
}
}
}
}
else
{
throw new CommandException("commands.trigger.invalidObjective", new Object[] {args[0]});
}
}
}
public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos)
{
if (args.length == 1)
{
Scoreboard var4 = MinecraftServer.getServer().worldServerForDimension(0).getScoreboard();
ArrayList var5 = Lists.newArrayList();
Iterator var6 = var4.getScoreObjectives().iterator();
while (var6.hasNext())
{
ScoreObjective var7 = (ScoreObjective)var6.next();
if (var7.getCriteria() == IScoreObjectiveCriteria.field_178791_c)
{
var5.add(var7.getName());
}
}
return getListOfStringsMatchingLastWord(args, (String[])var5.toArray(new String[var5.size()]));
}
else
{
return args.length == 2 ? getListOfStringsMatchingLastWord(args, new String[] {"add", "set"}): null;
}
}
}