package org.freeforums.geforce.securitycraft.commands;
import java.util.ArrayList;
import java.util.List;
import org.freeforums.geforce.securitycraft.items.ItemModule;
import org.freeforums.geforce.securitycraft.main.HelpfulMethods;
import org.freeforums.geforce.securitycraft.main.mod_SecurityCraft;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.EnumChatFormatting;
public class CommandModule extends CommandBase implements ICommand {
private List nicknames;
private final String usage = "/module add <playerName> OR /module copy OR /module paste";
public CommandModule() {
this.nicknames = new ArrayList();
this.nicknames.add("module");
}
public int getRequiredPermissionLevel()
{
return 0;
}
public String getCommandName() {
return "module";
}
public List getCommandAliases() {
return this.nicknames;
}
public String getCommandUsage(ICommandSender p_71518_1_) {
return usage;
}
public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) {
return true;
}
public void processCommand(ICommandSender par1ICommandSender, String[] par2String) {
if(par2String.length == 1){
if(par2String[0].matches("copy")){
EntityPlayer player = HelpfulMethods.getPlayerFromName(par1ICommandSender.getCommandSenderName());
if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemModule && ((ItemModule) player.getCurrentEquippedItem().getItem()).canBeModified()){
mod_SecurityCraft.instance.setSavedModule(player.getCurrentEquippedItem().stackTagCompound);
HelpfulMethods.sendMessageToPlayer(player, "Module data saved.", EnumChatFormatting.GREEN);
}else{
HelpfulMethods.sendMessageToPlayer(player, "You must be holding the module you wish to save data from.", EnumChatFormatting.RED);
}
return;
}else if(par2String[0].matches("paste")){
EntityPlayer player = HelpfulMethods.getPlayerFromName(par1ICommandSender.getCommandSenderName());
if(mod_SecurityCraft.instance.getSavedModule() == null){
HelpfulMethods.sendMessageToPlayer(player, "There is no module data saved.", EnumChatFormatting.RED);
return;
}
if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemModule && ((ItemModule) player.getCurrentEquippedItem().getItem()).canBeModified()){
player.getCurrentEquippedItem().stackTagCompound = mod_SecurityCraft.instance.getSavedModule();
mod_SecurityCraft.instance.setSavedModule(null);
HelpfulMethods.sendMessageToPlayer(player, "Saved data to module.", EnumChatFormatting.GREEN);
}
return;
}
}else if(par2String.length == 2){
if(par2String[0].matches("add")){
EntityPlayer player = HelpfulMethods.getPlayerFromName(par1ICommandSender.getCommandSenderName());
if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemModule && ((ItemModule) player.getCurrentEquippedItem().getItem()).canBeModified()){
if(player.getCurrentEquippedItem().stackTagCompound == null){
player.getCurrentEquippedItem().stackTagCompound = new NBTTagCompound();
}
player.getCurrentEquippedItem().stackTagCompound.setString("Player" + getNextSlot(player.getCurrentEquippedItem().stackTagCompound), par2String[1]);
return;
}else{
HelpfulMethods.sendMessageToPlayer(player, "You must be holding the module you wish to modify!", EnumChatFormatting.RED);
return;
}
}
}
throw new WrongUsageException(usage);
}
private int getNextSlot(NBTTagCompound stackTagCompound) {
for(int i = 1; i <= 10; i++){
if(stackTagCompound.getString("Player" + i) != null && !stackTagCompound.getString("Player" + i).isEmpty()){
continue;
}else{
return i;
}
}
return 0;
}
public int compareTo(Object par1Obj) {
return this.compareTo((ICommand)par1Obj);
}
}