Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

He is asking how to read lore not how to add it.

 

Why do you want to be able to read item lore? it dosnt exist in the game unless it is added by a mod or added to an item using an nbt editor.

To read it you need to first find out what nbt tag item lore uses the just check if that tag exists on the item and if so read its value.

I recommend you make an item nbt helper class to make this easier.

 

my item nbt helper class.

 

import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;


public final class ItemNBTHelper {



// SETTERS ///////////////////////////////////////////////////////////////////
public static NBTTagCompound getCompound(ItemStack stack){
	if (stack.getTagCompound() == null)
		return new NBTTagCompound();
	else
		return stack.getTagCompound();	
}

public static void setBoolean(ItemStack stack, String tag, boolean b)
{
	NBTTagCompound compound = getCompound(stack);
	compound.setBoolean(tag, b);
	stack.setTagCompound(compound);
}

public static void setShort(ItemStack stack, String tag, short s)
{
	NBTTagCompound compound = getCompound(stack);
	compound.setShort(tag, s);
	stack.setTagCompound(compound);
}

public static void setIntager(ItemStack stack, String tag, int i)
{
	NBTTagCompound compound = getCompound(stack);
	compound.setInteger(tag, i);
	stack.setTagCompound(compound);
}

public static void setFloat(ItemStack stack, String tag, float f)
{
	NBTTagCompound compound = getCompound(stack);
	compound.setFloat(tag, f);
	stack.setTagCompound(compound);
}

public static void setDouble(ItemStack stack, String tag, double d)
{
	NBTTagCompound compound = getCompound(stack);
	compound.setDouble(tag, d);
	stack.setTagCompound(compound);
}

public static void setString(ItemStack stack, String tag, String s) {
	NBTTagCompound compound = getCompound(stack);
	compound.setString(tag, s);
	stack.setTagCompound(compound);
}

// GETTERS ///////////////////////////////////////////////////////////////////

public static boolean verifyExistance(ItemStack stack, String tag) {
	NBTTagCompound compound = stack.getTagCompound();
	if (compound == null)
		return false;
	else
		return stack.getTagCompound().hasKey(tag);
}

public static boolean getBoolean(ItemStack stack, String tag, boolean defaultExpected) {
	return verifyExistance(stack, tag) ? stack.getTagCompound().getBoolean(tag) : defaultExpected;
}

public static short getShort(ItemStack stack, String tag, short defaultExpected) {
	return verifyExistance(stack, tag) ? stack.getTagCompound().getShort(tag) : defaultExpected;
}

public static int getIntager(ItemStack stack, String tag, int defaultExpected) {
	return verifyExistance(stack, tag) ? stack.getTagCompound().getInteger(tag) : defaultExpected;
}

public static float getFloat(ItemStack stack, String tag, float defaultExpected) {
	return verifyExistance(stack, tag) ? stack.getTagCompound().getFloat(tag) : defaultExpected;
}

public static double getDouble(ItemStack stack, String tag, double defaultExpected) {
	return verifyExistance(stack, tag) ? stack.getTagCompound().getDouble(tag) : defaultExpected;
}

public static String getString(ItemStack stack, String tag, String defaultExpected) {
	return verifyExistance(stack, tag) ? stack.getTagCompound().getString(tag) : defaultExpected;
}
}

 

 

to use it you would do something like

String loreLine1 = ItemNBTHelper.getString(itemstack, "tag", "");

I am the author of Draconic Evolution

Something like

 

   NBTTagCompound nbt = stack.getTagCompound();
   if (nbt != null) {
      NBTTagCompound disp = nbt.getCompoundTag("display");
      if (disp != null) {
         NBTTagList lore = disp.getTagList("Lore", ;
         if (lore != null) {
            // lore is now a list of NBTTagStrings
         }
      }
   }

 

If you call addInformation, it will fill the list you pass with everything you need, not add it.

 

You add information by overriding that method, but calling it is fine to get the information.

BEFORE ASKING FOR HELP READ THE EAQ!

 

I'll help if I can. Apologies if I do something obviously stupid. :D

 

If you don't know basic Java yet, go and follow these tutorials.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.