Fixed DBC overlay rendering in obfuscated clients.

This commit is contained in:
c0508383 committed 2022-08-19 03:20:47 -05:00
1 parent ab0c4a48c3
commit 51982e5bee
1 file changed
+130 -3
@@ -379,7 +379,6 @@ public class RenderCNPCPlayer extends RenderPlayer {
ModelRenderer bipedRL = (ModelRenderer) ModelBipedBody.getField("bipedRightLeg").get(m);
ModelRenderer bipedLL = (ModelRenderer) ModelBipedBody.getField("bipedLeftLeg").get(m);
ModelRenderer Brightarm = (ModelRenderer) ModelBipedBody.getField("Brightarm").get(m);
ModelRenderer Bleftarm = (ModelRenderer) ModelBipedBody.getField("Bleftarm").get(m);
ModelRenderer rightleg = (ModelRenderer) ModelBipedBody.getField("rightleg").get(m);
@@ -487,8 +486,136 @@ public class RenderCNPCPlayer extends RenderPlayer {
postRenderOverlay();
}
}
} catch (Exception ignored) {
postRenderOverlay();
} catch (Exception ignored) {}
try {
Class<?> RenderPlayerJBRA = Class.forName("JinRyuu.JBRA.RenderPlayerJBRA");
Class<?> ModelBipedDBC = Class.forName("JinRyuu.JBRA.ModelBipedDBC");
Class<?> ModelBipedBody = Class.forName("JinRyuu.JRMCore.entity.ModelBipedBody");
Method renderDBC = ModelBipedBody.getMethod("func_78088_a",Entity.class,float.class,float.class,float.class,float.class,float.class,float.class);
Field rot1 = ModelBipedDBC.getField("rot1");
Field rot2 = ModelBipedDBC.getField("rot2");
Field rot3 = ModelBipedDBC.getField("rot3");
Field rot4 = ModelBipedDBC.getField("rot4");
Field rot5 = ModelBipedDBC.getField("rot5");
Field rot6 = ModelBipedDBC.getField("rot6");
Object m = RenderPlayerJBRA.getField("modelMain").get(event.renderer);
ModelBipedBody.getField("field_78095_p").set(m, (int) player.getSwingProgress(event.partialRenderTick));
ModelBipedBody.getField("field_78093_q").set(m, player.isRiding());
ModelBipedBody.getField("field_78091_s").set(m, player.isChild());
ModelBipedBody.getField("field_78117_n").set(m, player.isSneaking());
ModelBipedBody.getField("y").set(null, ModelBipedDBC.getField("y").get(null));
ModelRenderer bipedHead = (ModelRenderer) ModelBipedBody.getField("field_78116_c").get(m);
ModelRenderer bipedBody = (ModelRenderer) ModelBipedBody.getField("field_78115_e").get(m);
ModelRenderer bipedRA = (ModelRenderer) ModelBipedBody.getField("field_78112_f").get(m);
ModelRenderer bipedLA = (ModelRenderer) ModelBipedBody.getField("field_78113_g").get(m);
ModelRenderer bipedRL = (ModelRenderer) ModelBipedBody.getField("field_78123_h").get(m);
ModelRenderer bipedLL = (ModelRenderer) ModelBipedBody.getField("field_78124_i").get(m);
ModelRenderer Brightarm = (ModelRenderer) ModelBipedBody.getField("Brightarm").get(m);
ModelRenderer Bleftarm = (ModelRenderer) ModelBipedBody.getField("Bleftarm").get(m);
ModelRenderer rightleg = (ModelRenderer) ModelBipedBody.getField("rightleg").get(m);
ModelRenderer leftleg = (ModelRenderer) ModelBipedBody.getField("leftleg").get(m);
ModelRenderer body = (ModelRenderer) ModelBipedBody.getField("body").get(m);
ModelRenderer hip = (ModelRenderer) ModelBipedBody.getField("hip").get(m);
ModelRenderer waist = (ModelRenderer) ModelBipedBody.getField("waist").get(m);
ModelRenderer bottom = (ModelRenderer) ModelBipedBody.getField("bottom").get(m);
ModelRenderer Bbreast = (ModelRenderer) ModelBipedBody.getField("Bbreast").get(m);
ModelRenderer Bbreast2 = (ModelRenderer) ModelBipedBody.getField("Bbreast2").get(m);
ModelRenderer breast = (ModelRenderer) ModelBipedBody.getField("breast").get(m);
ModelRenderer breast2 = (ModelRenderer) ModelBipedBody.getField("breast2").get(m);
float childScl = (float) RenderPlayerJBRA.getMethod("childSclGet").invoke(null);
if (Client.skinOverlays.containsKey(player.getUniqueID())) {
for (SkinOverlay overlayData : Client.skinOverlays.get(player.getUniqueID()).values()) {
if (overlayData.texture.isEmpty())
continue;
if (overlayData.location == null) {
overlayData.location = new ResourceLocation(overlayData.texture);
} else {
String str = overlayData.location.getResourceDomain() + ":" + overlayData.location.getResourcePath();
if (!str.equals(overlayData.texture)) {
overlayData.location = new ResourceLocation(overlayData.texture);
}
}
if (!preRenderOverlay(player, overlayData.location, overlayData.glow, overlayData.blend, overlayData.alpha, overlayData.size,
overlayData.speedX, overlayData.speedY, overlayData.scaleX, overlayData.scaleY,
overlayData.offsetX, overlayData.offsetY, overlayData.offsetZ
))
continue;
bipedHead.isHidden = true;
renderDBC.invoke(m, player,
(float) rot1.get(m), (float) rot2.get(m), (float) rot3.get(m),
(float) rot4.get(m), (float) rot5.get(m), (float) rot6.get(m)
);
bipedHead.isHidden = false;
bipedBody.isHidden = true;
bipedRA.isHidden = true;
bipedLA.isHidden = true;
bipedRL.isHidden = true;
bipedLL.isHidden = true;
//Female render
Brightarm.isHidden = true;
Bleftarm.isHidden = true;
rightleg.isHidden = true;
leftleg.isHidden = true;
body.isHidden = true;
hip.isHidden = true;
waist.isHidden = true;
bottom.isHidden = true;
Bbreast.isHidden = true;
Bbreast2.isHidden = true;
breast.isHidden = true;
breast2.isHidden = true;
if (player.isSneaking()) {
GL11.glTranslatef(0, 0.06F, 0);
}
if (childScl > 1.5F) {
GL11.glTranslatef(0, -0.015F, 0);
GL11.glScalef(1.025F, 1.025F, 1.025F);
} else {
if (childScl > 1) {
GL11.glTranslatef(0, -0.01F, 0);
GL11.glScalef(1.025F, 1.025F, 1.025F);
} else {
GL11.glTranslatef(0, 0.0025F, 0);
GL11.glScalef(1.02F, 1.02F, 1.02F);
}
}
renderDBC.invoke(m, player,
(float) rot1.get(m), (float) rot2.get(m), (float) rot3.get(m),
(float) rot4.get(m), (float) rot5.get(m), (float) rot6.get(m)
);
bipedBody.isHidden = false;
bipedRA.isHidden = false;
bipedLA.isHidden = false;
bipedRL.isHidden = false;
bipedLL.isHidden = false;
//Female render
Brightarm.isHidden = false;
Bleftarm.isHidden = false;
rightleg.isHidden = false;
leftleg.isHidden = false;
body.isHidden = false;
hip.isHidden = false;
waist.isHidden = false;
bottom.isHidden = false;
Bbreast.isHidden = false;
Bbreast2.isHidden = false;
breast.isHidden = false;
breast2.isHidden = false;
postRenderOverlay();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}