Potential fix for a bunch of stuff that required the use of UUID -> username lookup on servers. This fix adds an extra tag to the NBT of items so that it caches the username of the owner. The UUID is still stored on items, but is not used client-side.
This commit is contained in:
parent
14459ddc69
commit
ec7676a69c
6 changed files with 28 additions and 22 deletions
|
@ -23,7 +23,7 @@ public class PlayerHelper
|
|||
|
||||
public static String getUsernameFromPlayer(EntityPlayer player)
|
||||
{
|
||||
return UsernameCache.getLastKnownUsername(getUUIDFromPlayer(player));
|
||||
return player.worldObj.isRemote ? "" : UsernameCache.getLastKnownUsername(getUUIDFromPlayer(player));
|
||||
}
|
||||
|
||||
public static EntityPlayer getPlayerFromUsername(String username)
|
||||
|
@ -63,16 +63,19 @@ public class PlayerHelper
|
|||
{
|
||||
stack = NBTHelper.checkNBT(stack);
|
||||
|
||||
return PlayerHelper.getUsernameFromUUID(stack.getTagCompound().getString(Constants.NBT.OWNER_UUID));
|
||||
return stack.getTagCompound().getString(Constants.NBT.OWNER_NAME);
|
||||
}
|
||||
|
||||
public static boolean isFakePlayer(EntityPlayer player)
|
||||
{
|
||||
return player != null && player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(getUsernameFromPlayer(player)).matches();
|
||||
return player != null && (player instanceof FakePlayer || FAKE_PLAYER_PATTERN.matcher(getUsernameFromPlayer(player)).matches());
|
||||
}
|
||||
|
||||
public static void causeNauseaToPlayer(ItemStack stack)
|
||||
{
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
|
||||
return;
|
||||
|
||||
stack = NBTHelper.checkNBT(stack);
|
||||
|
||||
if (!Strings.isNullOrEmpty(stack.getTagCompound().getString(Constants.NBT.OWNER_UUID)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue