package com.rota.ee3help.commands;
import com.rota.ee3help.Helper;
import cpw.mods.fml.common.registry.GameData;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.RegistryNamespaced;
import net.minecraftforge.oredict.OreDictionary;
public class CommandIDItem extends CommandBase
{
// Prints all of a given item's identifiable names to chat.
// ITEM ID:DAMAGE VALUE
// UNLOCALIZED NAME
// ORE DICTIONARY NAMES
@Override
public String getCommandName()
{
return "iditem";
}
@Override
public String getCommandUsage(ICommandSender cs)
{
return "iditem, iditem <name/id>, iditem <name/id> <dmg>";
}
@Override
public void processCommand(ICommandSender cs, String[] args)
{
RegistryNamespaced rn = GameData.getItemRegistry();
if(cs instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer) cs;
try
{
Item i = null;
ItemStack iStack = null;
switch(args.length)
{
case 0:
i = (player.getHeldItem() != null) ? player.getHeldItem().getItem() : null; break;
case 1:
i = (Item) rn.getObjectById(Integer.parseInt(args[0])); break;
case 2:
i = (Item) rn.getObjectById(Integer.parseInt(args[0])); break;
}
if(i == null)
{
Helper.toChatErr(cs, "No held item, or no such item.");
return;
}
iStack = new ItemStack(i);
int dmg = 0;
switch(args.length)
{
case 0:
iStack.setItemDamage(player.getHeldItem().getItemDamage());
dmg = iStack.getItemDamage();
break;
case 1:
iStack.setItemDamage(dmg);
break;
case 2:
dmg = Integer.parseInt(args[1]);
iStack.setItemDamage(dmg);
break;
}
if(iStack != null)
{
Helper.toChat(cs, EnumChatFormatting.GRAY + "--");
Helper.toChat(cs, EnumChatFormatting.AQUA + "NNAME: "+ rn.getIDForObject(i) + ":" + dmg);
Helper.toChat(cs, EnumChatFormatting.AQUA + "UNAME: "+ rn.getNameForObject(i));
int [] oIDs = OreDictionary.getOreIDs(iStack);
for(int j = 0; j < oIDs.length; j++)
{
Helper.toChat(cs, EnumChatFormatting.AQUA + "ONAME: "+OreDictionary.getOreName(oIDs[j]));
}
}
}
catch(NumberFormatException e)
{
Helper.toChatErr(cs, "Non-number in numeric field.");
}
}
}
}