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

Posted

The item SHOULD have the creators name on hover, but there is no information when I hover over the Item

 

package com.bugzoo.FinancialMod;

import java.util.List;

import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;

public class ItemCreditCard extends Item {
	public ItemCreditCard(){
		setMaxStackSize(1);
		setUnlocalizedName("CreditCard");
		setCreativeTab(FinancialMod.financialTab);
	}

	    @Override
	    public void onCreated(ItemStack itemStack, World par2World, EntityPlayer player) {
	    	 itemStack.stackTagCompound = new NBTTagCompound();
	    	 itemStack.stackTagCompound.setString("owner", player.PERSISTED_NBT_TAG);
	    }

	    public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean par4) {
	    	 if (itemStack.stackTagCompound != null) {
                     String owner = itemStack.stackTagCompound.getString("owner");
                     int code = itemStack.stackTagCompound.getInteger("code");
                     list.add("owner: " + owner);
             }
	    }



}

  • Author

You are not saving the username of the player, why are you saving a random constant to your NBT data?

 

Im not sure on how to get the players username

  • Author

You shouldn't be storing the username, store the UUID of the player. Usernames will be able to change soon.

 

And how do I get the UUID

"And how do I get the UUID"

"I got it, I should have just done .getDisplayName()"

Big nope.

.getDisplayName() is the name ingame, it's not UUID.

To save UUID in NBT use this:

itemStack.stackTagCompound.setLong("muuid", player.getUniqueID().getMostSignificantBits());
itemStack.stackTagCompound.setLong("luuid", player.getUniqueID().getLeastSignificantBits());

1.7.10 is no longer supported by forge, you are on your own.

  • Author

"And how do I get the UUID"

"I got it, I should have just done .getDisplayName()"

Big nope.

.getDisplayName() is the name ingame, it's not UUID.

To save UUID in NBT use this:

itemStack.stackTagCompound.setLong("muuid", player.getUniqueID().getMostSignificantBits());
itemStack.stackTagCompound.setLong("luuid", player.getUniqueID().getLeastSignificantBits());

 

I wanted to get the ingame name, I guess I just didn't explain it right

  • Author

I wanted to get the ingame name, I guess I just didn't explain it right

if you use getDisplayName your Item will store a snapshot of the current name. It can change in future versions of Minecraft.

 

And when the name change addition gets made, I will update the code

Dude, do whatever you want, just know consequences:

 

If you create an ItemStack with Tag containing current player name:

1. After updating:

- Ingame nicks WILL be changeable, if you assign ingame name to item and someone changes it (nick), the item will be corrupted (in a way) - e.g if you make "Soulbound" items the owner will no longer be applicable.

- Converting ("I will update the code") ItemStacks with ingame nick in Tag will not be just easily updateable - you will have to make converter that would remove old tags and assign new ones. If only this would be this easy - it's not. Not all ItemStacks are loaded from HDD when you load your world. All this will lead to total break between versions (not compatible worlds -> all old items dissappearing or something and ofc. a lot of corrupted data).

 

Use the way I wrote in post before and then just read those least and most significant bits convert them to player (getPlayerByUUID or something similar) and get his ingame name.

 

1.7.10 is no longer supported by forge, you are on your own.

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.