From cf21b2dcbfe44fbac62e98dc7c6595efd4419da0 Mon Sep 17 00:00:00 2001 From: James Horsley Date: Thu, 1 Jan 2015 15:41:00 +0000 Subject: [PATCH] Fixed for 1.8 --- build.gradle | 4 +-- .../net/jadar/devcapesdemo/DevCapesDemo.java | 10 +++---- .../developercapes/HDImageBuffer.java | 6 ++-- .../developercapes/RenderEventHandler.java | 28 +++++++++++-------- .../cape/CapeConfigManager.java | 1 - .../developercapes/cape/StaticCape.java | 22 ++++++++++++++- 6 files changed, 47 insertions(+), 24 deletions(-) diff --git a/build.gradle b/build.gradle index d5e9d1c..7a74d3c 100644 --- a/build.gradle +++ b/build.gradle @@ -48,7 +48,7 @@ sourceSets { // minecraft properteis minecraft { - version = "1.7.10-10.13.0.1160" + version = "1.8-11.14.0.1281-1.8" } //buildNumber is deprecated @@ -160,4 +160,4 @@ uploadArchives } } } -} \ No newline at end of file +} diff --git a/src/demo/java/net/jadar/devcapesdemo/DevCapesDemo.java b/src/demo/java/net/jadar/devcapesdemo/DevCapesDemo.java index b163c1b..13aae31 100644 --- a/src/demo/java/net/jadar/devcapesdemo/DevCapesDemo.java +++ b/src/demo/java/net/jadar/devcapesdemo/DevCapesDemo.java @@ -1,11 +1,11 @@ package net.jadar.devcapesdemo; -import com.jadarstudios.developercapes.DevCapes; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.relauncher.Side; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.relauncher.Side; +import com.jadarstudios.developercapes.DevCapes; @Mod(modid = "devcapesdemo", name = "Developer Capes Demo", version = "1.0") public class DevCapesDemo { diff --git a/src/main/java/com/jadarstudios/developercapes/HDImageBuffer.java b/src/main/java/com/jadarstudios/developercapes/HDImageBuffer.java index 884c8ca..6d2e7f4 100644 --- a/src/main/java/com/jadarstudios/developercapes/HDImageBuffer.java +++ b/src/main/java/com/jadarstudios/developercapes/HDImageBuffer.java @@ -6,9 +6,9 @@ */ package com.jadarstudios.developercapes; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.IImageBuffer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.awt.Graphics; import java.awt.image.BufferedImage; @@ -37,5 +37,5 @@ public BufferedImage parseUserSkin(final BufferedImage texture) { } @Override - public void func_152634_a() {} + public void skinAvailable() {} } \ No newline at end of file diff --git a/src/main/java/com/jadarstudios/developercapes/RenderEventHandler.java b/src/main/java/com/jadarstudios/developercapes/RenderEventHandler.java index ec14953..bfc40b3 100644 --- a/src/main/java/com/jadarstudios/developercapes/RenderEventHandler.java +++ b/src/main/java/com/jadarstudios/developercapes/RenderEventHandler.java @@ -9,9 +9,10 @@ import com.jadarstudios.developercapes.cape.ICape; import com.jadarstudios.developercapes.user.User; import com.jadarstudios.developercapes.user.UserManager; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; + import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.client.event.RenderLivingEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; /** * This is not the class you are looking for. @@ -20,20 +21,23 @@ */ public class RenderEventHandler { + //mmdanggg2: renderPlayerEvent seems to be getting depreciated so this will do for now. @SubscribeEvent - public void renderPlayer(RenderPlayerEvent.Specials.Pre event) { - AbstractClientPlayer player = (AbstractClientPlayer) event.entityPlayer; + public void renderPlayer(RenderLivingEvent.Pre event) { + if (event.entity instanceof AbstractClientPlayer) { + AbstractClientPlayer player = (AbstractClientPlayer) event.entity; - UserManager manager = UserManager.getInstance(); - User user = manager.getUser(player.getCommandSenderName()); - if (user == null) return; + UserManager manager = UserManager.getInstance(); + User user = manager.getUser(player.getName()); + if (user == null) return; - ICape cape = user.capes.get(0); - if (cape == null) return; + ICape cape = user.capes.get(0); + if (cape == null) return; - boolean flag = cape.isTextureLoaded(player); - if (!flag) { - cape.loadTexture(player); + boolean flag = cape.isTextureLoaded(player); + if (!flag) { + cape.loadTexture(player); + } } } } \ No newline at end of file diff --git a/src/main/java/com/jadarstudios/developercapes/cape/CapeConfigManager.java b/src/main/java/com/jadarstudios/developercapes/cape/CapeConfigManager.java index be6f7a8..d91bc7f 100644 --- a/src/main/java/com/jadarstudios/developercapes/cape/CapeConfigManager.java +++ b/src/main/java/com/jadarstudios/developercapes/cape/CapeConfigManager.java @@ -15,7 +15,6 @@ import com.jadarstudios.developercapes.user.GroupManager; import com.jadarstudios.developercapes.user.User; import com.jadarstudios.developercapes.user.UserManager; -import com.javafx.tools.doclets.internal.toolkit.util.DocFinder; import org.apache.commons.lang3.ObjectUtils; import java.io.BufferedReader; diff --git a/src/main/java/com/jadarstudios/developercapes/cape/StaticCape.java b/src/main/java/com/jadarstudios/developercapes/cape/StaticCape.java index 1844f95..a99d7b8 100644 --- a/src/main/java/com/jadarstudios/developercapes/cape/StaticCape.java +++ b/src/main/java/com/jadarstudios/developercapes/cape/StaticCape.java @@ -6,13 +6,17 @@ */ package com.jadarstudios.developercapes.cape; +import com.jadarstudios.developercapes.DevCapes; import com.jadarstudios.developercapes.HDImageBuffer; import com.mojang.authlib.minecraft.MinecraftProfileTexture; + import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.client.renderer.ThreadDownloadImageData; import net.minecraft.util.ResourceLocation; +import java.lang.reflect.Field; import java.net.URL; /** @@ -34,7 +38,23 @@ public StaticCape(String name) { @Override public void loadTexture(AbstractClientPlayer player) { ResourceLocation location = this.getLocation(); - player.func_152121_a(MinecraftProfileTexture.Type.CAPE, location); + + //mmdanggg2: using reflection to modify the private locationCape, hacky but it works. + try { + Field playerInfoF = AbstractClientPlayer.class.getDeclaredField("playerInfo"); + playerInfoF.setAccessible(true); + NetworkPlayerInfo nci = (NetworkPlayerInfo) playerInfoF.get(player); + + Field locationCapeF = NetworkPlayerInfo.class.getDeclaredField("locationCape"); + locationCapeF.setAccessible(true); + locationCapeF.set(nci, location); + + playerInfoF.setAccessible(false); + locationCapeF.setAccessible(false); + } catch (Exception e) { + e.printStackTrace(); + DevCapes.getInstance().logger.error("Setting cape ResourceLocation failed!"); + } Minecraft.getMinecraft().renderEngine.loadTexture(location, this.getTexture()); }