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.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.fluids.FluidRegistry;
public class CommandAddFluid extends CommandModifyBase
{
EnergyValueRegistry registryValues = EnergyValueRegistry.getInstance();
RegistryNamespaced registryNames = GameData.getItemRegistry();
private void addFluid(String name, float value, int mb)
{
Map<WrappedStack, EnergyValue> valuesPre = Helper.loadPre();
WrappedStack w = WrappedStack.wrap(FluidRegistry.getFluid(name));
EnergyValue e = new EnergyValue(value/1000);
if (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-fluid";
}
@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-fluid <fluidname> <emcvalue>");
Helper.toChatErr(cs, "add-fluid <fluidname> <emcvalue> <mB>");
break;
case 2:
if(FluidRegistry.isFluidRegistered((args[0])))
{
addFluid(args[0],Float.parseFloat(args[1]),0);
Helper.toChat(cs, EnumChatFormatting.GREEN + "(+) FLUID: "+args[0]);
}
else
Helper.toChatErr(cs, "(X) Invalid Fluid name.");
break;
case 3:
if(FluidRegistry.isFluidRegistered((args[0])))
{
addFluid(args[0],Float.parseFloat(args[1]),Integer.parseInt(args[2]));
Helper.toChat(cs, EnumChatFormatting.GREEN + "(+) FLUID: "+args[0]);
}
else
Helper.toChatErr(cs, "(X) Invalid Fluid name.");
break;
default:
Helper.toChatErr(cs, "Invalid number of arguments for operation.");
Helper.toChatErr(cs, "add-fluid <fluidname> <emcvalue>");
Helper.toChatErr(cs, "add-fluid <fluidname> <emcvalue> <mB>");
}
}
catch (NumberFormatException e)
{
Helper.toChatErr(cs, "Non-number in numeric field.");
}
}
}