package com.rota.ee3help.commands;
import java.util.Map;
import com.pahimar.ee3.api.exchange.EnergyValue;
import com.pahimar.ee3.exchange.EnergyValueRegistry;
import com.pahimar.ee3.exchange.OreStack;
import com.pahimar.ee3.exchange.WrappedStack;
import com.pahimar.ee3.network.PacketHandler;
import com.pahimar.ee3.network.message.MessageSetEnergyValue;
import com.rota.ee3help.Helper;
import cpw.mods.fml.common.registry.GameData;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.RegistryNamespaced;
import net.minecraftforge.oredict.OreDictionary;
public class CommandAddOre extends CommandModifyBase
{
EnergyValueRegistry registryValues = EnergyValueRegistry.getInstance();
RegistryNamespaced registryNames = GameData.getItemRegistry();
private void addOre(String name, float value)
{
Map<WrappedStack, EnergyValue> valuesPre = Helper.loadPre();
WrappedStack w = WrappedStack.wrap(new OreStack(name));
EnergyValue e = new EnergyValue(value);
if (w != null && e != null && Float.compare(e.getValue(), 0) > 0)
{
if(valuesPre.containsKey(w))
valuesPre.replace(w, e);
else
valuesPre.put(w, e);
PacketHandler.INSTANCE.sendToAll(new MessageSetEnergyValue(w, e));
}
EnergyValueRegistry.getInstance().setShouldRegenNextRestart(true);
Helper.savePre(valuesPre);
}
@Override
public String getCommandName()
{
return "add-ore";
}
@Override
public String getCommandUsage(ICommandSender cs)
{
return "Use command with no arguments.";
}
@Override
public void processCommand(ICommandSender cs, String[] args)
{
resetFlag();
try
{
String name;
int dmg;
float value;
switch(args.length)
{
case 0:
Helper.toChatErr(cs, "add-ore <orename> <emcvalue>");
break;
case 2:
if(OreDictionary.doesOreNameExist(args[0]))
{
addOre(args[0],Float.parseFloat(args[1]));
Helper.toChat(cs, EnumChatFormatting.GREEN + "(+) ORE: "+args[0]);
}
else
Helper.toChatErr(cs, "(X) Invalid OreDict name.");
break;
default:
Helper.toChatErr(cs, "Invalid number of arguments for operation.");
Helper.toChatErr(cs, "add-ore <orename> <emcvalue>");
}
}
catch (NumberFormatException e)
{
Helper.toChatErr(cs, "Non-number in numeric field.");
}
}
}