Start on MP skins

This commit is contained in:
catfoolyou 2025-03-05 12:41:56 -05:00
parent a70ca1cba5
commit 12bbc19c3e
8 changed files with 50 additions and 35 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK" />
</project> </project>

View File

@ -10,7 +10,7 @@ sourceSets {
java { java {
srcDirs( srcDirs(
"src/main/java", "src/main/java",
"src/teavm/java", "src/lwjgl/java",
"sp-server/src/ipc/java" "sp-server/src/ipc/java"
) )
} }
@ -26,10 +26,10 @@ tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "1000" options.compilerArgs << "-Xmaxerrs" << "1000"
} }
//sourceSets.main.resources.srcDirs += 'src/lwjgl/java/javazoom/jl/decoder' sourceSets.main.resources.srcDirs += 'src/lwjgl/java/javazoom/jl/decoder'
dependencies { dependencies {
//implementation fileTree(dir: './lwjgl-rundir/', include: '*.jar') implementation fileTree(dir: './lwjgl-rundir/', include: '*.jar')
teavm(teavm.libs.jso) teavm(teavm.libs.jso)
teavm(teavm.libs.jsoApis) teavm(teavm.libs.jsoApis)

View File

@ -36,7 +36,12 @@ assetOverrides: {
}, },
servers: [ servers: [
{ serverName: "Local Test Server", serverAddress: "ws://localhost:25565", hideAddress: false }, { serverName: "Local Test Server", serverAddress: "ws://localhost:25565", hideAddress: false },
{ serverName: "Ayunboom", serverAddress: "wss://sus.shhnowisnottheti.me", hideAddress: false } { serverName: "Minecraft Server", serverAddress: "wss://cautious-space-succotash-9g979vrp769cx655-25565.app.github.dev", hideAddress: false },
{ serverName: "Ayunboom", serverAddress: "wss://sus.shhnowisnottheti.me", hideAddress: false },
{ serverName: "Minecraft Server", serverAddress: "wss://25565-catfoolyou-eaglerserver-gyqthgj2gr2.ws-us114.gitpod.io", hideAddress: false },
{ serverName: "Minecraft Server", serverAddress: "wss://25565-catfoolyou-eaglerserver-500q8txwzw3.ws-us114.gitpod.io", hideAddress: false },
{ serverName: "Minecraft Server", serverAddress: "wss://25565-catfoolyou-eaglerserver-500q8txwzw3.ws-us110.gitpod.io", hideAddress: false }
], ],
relays: [ relays: [
{ addr: "wss://relay.deev.is/", name: "lax1dude relay #1", primary: relayId == 0 }, { addr: "wss://relay.deev.is/", name: "lax1dude relay #1", primary: relayId == 0 },

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3,19 +3,14 @@ package net.minecraft.src;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import net.lax1dude.eaglercraft.EaglerAdapter; import net.lax1dude.eaglercraft.*;
import net.lax1dude.eaglercraft.EaglercraftRandom;
import net.lax1dude.eaglercraft.GuiScreenSingleplayerException;
import net.lax1dude.eaglercraft.GuiScreenSingleplayerLoading;
import net.lax1dude.eaglercraft.IntegratedServer;
import net.lax1dude.eaglercraft.WebsocketNetworkManager;
import net.lax1dude.eaglercraft.WorkerNetworkManager;
import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.RateLimit; import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.RateLimit;
import org.json.JSONObject; import org.json.JSONObject;
@ -1398,30 +1393,42 @@ public class NetClientHandler extends NetHandler {
public void handleCustomPayload(Packet250CustomPayload par1Packet250CustomPayload) public void handleCustomPayload(Packet250CustomPayload par1Packet250CustomPayload)
{ {
if ("MC|TrList".equals(par1Packet250CustomPayload.channel)) if ("MC|TrList".equals(par1Packet250CustomPayload.channel)) {
{ DataInputStream var8 = new DataInputStream(new ByteArrayInputStream(par1Packet250CustomPayload.data));
DataInputStream var2 = new DataInputStream(new ByteArrayInputStream(par1Packet250CustomPayload.data));
try try {
{ int var9 = var8.readInt();
int var3 = var2.readInt();
GuiScreen var4 = this.mc.currentScreen; GuiScreen var4 = this.mc.currentScreen;
if (var4 != null && var4 instanceof GuiMerchant && var3 == this.mc.thePlayer.openContainer.windowId) if (var4 != null && var4 instanceof GuiMerchant && var9 == this.mc.thePlayer.openContainer.windowId) {
{ IMerchant var5 = ((GuiMerchant) var4).getIMerchant();
IMerchant var5 = ((GuiMerchant)var4).getIMerchant(); MerchantRecipeList var6 = MerchantRecipeList.readRecipiesFromStream(var8);
MerchantRecipeList var6 = MerchantRecipeList.readRecipiesFromStream(var2);
var5.setRecipes(var6); var5.setRecipes(var6);
} }
} } catch (IOException var7) {
catch (IOException var7)
{
var7.printStackTrace(); var7.printStackTrace();
} }
}else if("EAG|UserSkin".equals(par1Packet250CustomPayload.channel)) {
DefaultSkinRenderer.skinResponse(par1Packet250CustomPayload.data);
}else if("EAG|SkinLayers".equals(par1Packet250CustomPayload.channel)) {
DataInputStream var8 = new DataInputStream(new ByteArrayInputStream(par1Packet250CustomPayload.data));
try {
int var9 = var8.read();
String user = var8.readUTF();
EntityPlayer pp = mc.theWorld.getPlayerEntityByName(user);
if(pp != null && (pp instanceof EntityOtherPlayerMP)) {
byte[] pkt = ((EntityOtherPlayerMP)pp).skinPacket;
if(pkt != null) {
DefaultSkinRenderer.updateSkinLayerByte(var9, pkt);
} }
else if ("MC|Brand".equals(par1Packet250CustomPayload.channel)) }
{ } catch (IOException var7) {
this.mc.thePlayer.func_142020_c(new String(par1Packet250CustomPayload.data)); var7.printStackTrace();
}
}else if("EAG|Voice".equals(par1Packet250CustomPayload.channel)) {
EaglerAdapter.handleVoiceSignal(par1Packet250CustomPayload.data);
}else if("EAG|Reconnect".equals(par1Packet250CustomPayload.channel)) {
mc.reconnectAddress = new String(par1Packet250CustomPayload.data, StandardCharsets.UTF_8);
} }
} }

View File

@ -100,9 +100,11 @@ public class RenderPlayer extends RendererLivingEntity
public void renderPlayer(EntityPlayer par1EntityPlayer, double par2, double par4, double par6, float par8, float par9) public void renderPlayer(EntityPlayer par1EntityPlayer, double par2, double par4, double par6, float par8, float par9)
{ {
boolean isHiPoly = DefaultSkinRenderer.isPlayerHighPoly(par1EntityPlayer); if(par1EntityPlayer instanceof EntityOtherPlayerMP){
boolean fnawEnabled = Minecraft.getMinecraft().gameSettings.allowFNAWSkins; System.out.println("fuck");
if(DefaultSkinRenderer.isPlayerStandard(par1EntityPlayer) || (isHiPoly && !fnawEnabled)) { this.bindTexture(par1EntityPlayer);
}
if(DefaultSkinRenderer.isPlayerStandard(par1EntityPlayer)) {
float var10 = 1.0F; float var10 = 1.0F;
EaglerAdapter.glColor3f(var10, var10, var10); EaglerAdapter.glColor3f(var10, var10, var10);
ItemStack var11 = par1EntityPlayer.inventory.getCurrentItem(); ItemStack var11 = par1EntityPlayer.inventory.getCurrentItem();
@ -125,7 +127,7 @@ public class RenderPlayer extends RendererLivingEntity
var14 -= 0.125D; var14 -= 0.125D;
} }
this.mainModel = ((!isHiPoly && DefaultSkinRenderer.isPlayerNewSkin(par1EntityPlayer)) ? (DefaultSkinRenderer.isPlayerNewSkinSlim(par1EntityPlayer) ? this.modelBipedMainNewSkinSlim : this.modelBipedMainNewSkin) : this.modelBipedMain); this.mainModel = ((DefaultSkinRenderer.isPlayerNewSkin(par1EntityPlayer)) ? (DefaultSkinRenderer.isPlayerNewSkinSlim(par1EntityPlayer) ? this.modelBipedMainNewSkinSlim : this.modelBipedMainNewSkin) : this.modelBipedMain);
int skinLayersByte = DefaultSkinRenderer.getSkinLayerByte(par1EntityPlayer); int skinLayersByte = DefaultSkinRenderer.getSkinLayerByte(par1EntityPlayer);
if(this.mainModel instanceof ModelBipedNewSkins) { if(this.mainModel instanceof ModelBipedNewSkins) {
ModelBipedNewSkins md = (ModelBipedNewSkins)this.mainModel; ModelBipedNewSkins md = (ModelBipedNewSkins)this.mainModel;
@ -135,7 +137,7 @@ public class RenderPlayer extends RendererLivingEntity
md.field_178733_c.isHidden = (skinLayersByte & 16) != 16; md.field_178733_c.isHidden = (skinLayersByte & 16) != 16;
md.field_178731_d.isHidden = (skinLayersByte & 32) != 32; md.field_178731_d.isHidden = (skinLayersByte & 32) != 32;
} }
((ModelBiped)this.mainModel).bipedHeadwear.isHidden = isHiPoly || (skinLayersByte & 2) != 2; ((ModelBiped)this.mainModel).bipedHeadwear.isHidden = (skinLayersByte & 2) != 2;
this.mainModel.isChild = false; this.mainModel.isChild = false;
((ModelBiped)this.mainModel).blockTransparentSkin = true; ((ModelBiped)this.mainModel).blockTransparentSkin = true;
super.doRenderLiving(par1EntityPlayer, par2, var14, par6, par8, par9); super.doRenderLiving(par1EntityPlayer, par2, var14, par6, par8, par9);
@ -175,6 +177,7 @@ public class RenderPlayer extends RendererLivingEntity
super.doRenderLiving(par1EntityPlayer, par2, par4 - (double) par1EntityPlayer.yOffset + 0.05f, par6, par8, par9); super.doRenderLiving(par1EntityPlayer, par2, par4 - (double) par1EntityPlayer.yOffset + 0.05f, par6, par8, par9);
RenderEnderman.tex_eyes.bindTexture(); RenderEnderman.tex_eyes.bindTexture();
this.bindTexture(par1EntityPlayer);
EaglerAdapter.glPushMatrix(); EaglerAdapter.glPushMatrix();
EaglerAdapter.glDisable(EaglerAdapter.GL_CULL_FACE); EaglerAdapter.glDisable(EaglerAdapter.GL_CULL_FACE);