package advancedsystemsmanager.commands;
import advancedsystemsmanager.helpers.PastebinHelper;
import advancedsystemsmanager.items.ItemDuplicator;
import net.minecraft.client.Minecraft;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.Transferable;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class CommandPastebin extends CommandDuplicator
{
public static final Set<String> usernameWhitelist = new HashSet<String>();
public static CommandPastebin instance = new CommandPastebin();
private static String apiKey = "367773fafa3565615286cf270e73f3de";
private static ClipboardOwner clippy = new ClipboardOwner()
{
@Override
public void lostOwnership(Clipboard clipboard, Transferable contents)
{
}
};
@Override
public void doCommand(ItemStack duplicator, EntityPlayerMP sender, String[] arguments)
{
if (arguments.length < 2)
{
throw new WrongUsageException("asm.command." + getCommandName() + ".syntax");
}
try
{
if (arguments[1].equals("put"))
{
if (ItemDuplicator.validateNBT(duplicator) && duplicator.hasTagCompound())
{
new Thread(new PastebinHelper.Put(duplicator, sender, arguments)).start();
} else
{
throw new CommandException("asm.command.nothingToSave");
}
} else if (arguments[1].equals("get"))
{
if (arguments.length < 3)
{
throw new WrongUsageException("stevesaddons.command." + getCommandName() + ".syntax");
}
new Thread(new PastebinHelper.Set(duplicator, sender, arguments)).start();
} else
{
throw new WrongUsageException("asm.command." + getCommandName() + ".syntax");
}
} catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public String getCommandName()
{
return "pastebin";
}
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args)
{
return isVisible(sender) ? Arrays.asList("put", "get") : null;
}
@Override
public boolean isVisible(ICommandSender sender)
{
return usernameWhitelist.contains(sender.getCommandSenderName()) || Minecraft.getMinecraft().isIntegratedServerRunning();
}
}