package mcjty.gearswap.commands;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import java.util.List;
public class ItemInfoCommand implements ICommand {
@Override
public String getCommandName() {
return "iteminfo";
}
@Override
public String getCommandUsage(ICommandSender sender) {
return getCommandName();
}
@Override
public List getCommandAliases() {
return null;
}
@Override
public void processCommand(ICommandSender sender, String[] args) {
World world = sender.getEntityWorld();
if (world.isRemote) {
return;
}
if (!(sender instanceof EntityPlayer)) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "This command only works as a player!"));
return;
}
if (!sender.canCommandSenderUseCommand(2, getCommandName())) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Command is not allowed!"));
return;
}
EntityPlayer player = (EntityPlayer) sender;
ItemStack heldItem = player.getHeldItem();
if (heldItem == null) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Player must hold an item!"));
return;
}
Item item = heldItem.getItem();
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + (item instanceof ItemBlock ? "Block: " : "Item: ")
+ heldItem.getDisplayName() + "/" + item.getUnlocalizedName()
+ " (#" + heldItem.stackSize + ", " + heldItem.getItemDamage() + ")"));
NBTTagCompound tagCompound = heldItem.getTagCompound();
if (tagCompound != null) {
for (Object tag : tagCompound.func_150296_c()) {
NBTBase base = tagCompound.getTag((String) tag);
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + " Tag " + tag + " = '" + base.toString() + "'"));
}
}
}
@Override
public boolean canCommandSenderUseCommand(ICommandSender sender) {
return true;
}
@Override
public List addTabCompletionOptions(ICommandSender sender, String[] args) {
return null;
}
@Override
public boolean isUsernameIndex(String[] sender, int p_82358_2_) {
return false;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
@Override
public int compareTo(Object o) {
return getCommandName().compareTo(((ICommand)o).getCommandName());
}
}