diff options
| author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-05-12 11:28:26 +1000 | 
|---|---|---|
| committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-05-12 11:28:26 +1000 | 
| commit | 051a002d043d9e307dda4d92732f5ef2832cf146 (patch) | |
| tree | aad527f2ea301b6d3fe9a15524b6e137ed581136 /src/Java/gtPlusPlus/xmod/gregtech/common | |
| parent | e5193543b16561e0f6b13ba0a347d94092d8a9b4 (diff) | |
| download | GT5-Unofficial-051a002d043d9e307dda4d92732f5ef2832cf146.tar.gz GT5-Unofficial-051a002d043d9e307dda4d92732f5ef2832cf146.tar.bz2 GT5-Unofficial-051a002d043d9e307dda4d92732f5ef2832cf146.zip | |
$ Greatly improved Cape Handler, Prevents long delays upon first inventory open.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common')
| -rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java | 40 | 
1 files changed, 31 insertions, 9 deletions
| diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java index 7dd376759a..763a4a129d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/render/GTPP_CapeRenderer.java @@ -49,6 +49,7 @@ import net.minecraft.server.MinecraftServer;  import net.minecraft.util.MathHelper;  import net.minecraft.util.ResourceLocation;  import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.common.UsernameCache;  public class GTPP_CapeRenderer extends RenderPlayer { @@ -91,7 +92,7 @@ public class GTPP_CapeRenderer extends RenderPlayer {  				aEvent.setCanceled(true);  				Logger.WARNING("A2");  				return; -			}		 +			}  		}  		// Make sure we don't keep checking on clients who dont have capes. @@ -100,14 +101,35 @@ public class GTPP_CapeRenderer extends RenderPlayer {  			// Time to Spliterate some data  			Map<String, ResourceLocation> aPlayerData = new HashMap<String, ResourceLocation>();  			Map<String, String> aNameMap = new HashMap<String, String>(); -			int i = 0; -			for (String s : mData) { -				String[] aSplit = s.split("@"); -				int a[] = new int[] { 0, mCapes.length - 1 }; -				int aID = Integer.parseInt(aSplit[1]); -				String aPlayerName = this.getPlayerName("iteration-" + (i++), aSplit[0]); -				aNameMap.put(aSplit[0], aPlayerName); -				aPlayerData.put(aPlayerName, this.mCapes[Math.max(a[0], Math.min(aID, a[1]))]); +			int i = 0;		 +			if (!CORE.DEVENV) { +				for (String s : mData) { +					String[] aSplit = s.split("@"); +					int a[] = new int[] { 0, mCapes.length - 1 }; +					int aID = Integer.parseInt(aSplit[1]); +					// Quick Check to prevent lag +					Logger.WARNING("Trying to create UUID from - " + aSplit[0]); +					UUID aPlayerID = UUID.fromString(aSplit[0]); +					Logger.WARNING("Result: " + aPlayerID.toString()); +					if (aPlayerID != null) { +						if (UsernameCache.containsUUID(aPlayerID)) { +							Logger.WARNING("UsernameCache contains a last known username for current players UUID."); +							if (!UsernameCache.getLastKnownUsername(aPlayerID).toLowerCase() +									.equals(ClientProxy.playerName)) { +								Logger.WARNING("Last known name does not match current name. Checking next UUID."); +								continue; +							} else { +								Logger.WARNING("Last known name does match current name."); +							} +						} else { +							Logger.WARNING("UsernameCache did not hold results for current player, oops."); +							continue; +						} +					} +					String aPlayerName = this.getPlayerName("iteration-" + (i++), aSplit[0]); +					aNameMap.put(aSplit[0], aPlayerName); +					aPlayerData.put(aPlayerName, this.mCapes[Math.max(a[0], Math.min(aID, a[1]))]); +				}  			}  			// Set flag to only render this event if player has a cape. | 
