Jump to content

Recommended Posts

Posted

I really hate to make my first post a problem but I need help. Whenever I try to add forge to MCP it gives me this message-

 

=================================== Minecraft Forge Setup Start =================================
Downloaded Fernflower successfully
== MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
# found jad, ff, jad patches, ff patches, osx patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle config
!! Updates available. Please run updatemcp to get them. !!
> Creating Retroguard config files
== Decompiling client using fernflower ==
> Creating SRGs
> Applying Retroguard
> Applying MCInjector
> Unpacking jar
> Copying classes
> Decompiling
> Copying sources
> Applying fernflower fixes
> Applying patches
> Cleaning comments
- Done in 138.70 seconds
== Reformating client ==
> Cleaning sources
> Replacing OpenGL constants
> Reformating sources
- Done in 7.97 seconds
!! renaming disabled !!
!! Missing server jar file. Aborting !!
!! recompile disabled !!
Stripping META-INF from minecraft.jar
Skipping: META-INF/MANIFEST.MF
Skipping: META-INF/CODESIGN.SF
Skipping: META-INF/CODESIGN.RSA
Applying Forge ModLoader patches
patching file net/minecraft/client/Minecraft.java.patch
patching file minecraft/net/minecraft/client/Minecraft.java
patching file net/minecraft/src/BlockDispenser.java.patch
patching file minecraft/net/minecraft/src/BlockDispenser.java
patching file net/minecraft/src/ChunkProvider.java.patch
patching file minecraft/net/minecraft/src/ChunkProvider.java
patching file net/minecraft/src/EntityItem.java.patch
patching file minecraft/net/minecraft/src/EntityItem.java
patching file net/minecraft/src/EntityList.java.patch
patching file minecraft/net/minecraft/src/EntityList.java
patching file net/minecraft/src/GenLayerBiome.java.patch
patching file minecraft/net/minecraft/src/GenLayerBiome.java
patching file net/minecraft/src/GuiCreateWorld.java.patch
patching file minecraft/net/minecraft/src/GuiCreateWorld.java
patching file net/minecraft/src/GuiMainMenu.java.patch
patching file minecraft/net/minecraft/src/GuiMainMenu.java
patching file net/minecraft/src/NetClientHandler.java.patch
patching file minecraft/net/minecraft/src/NetClientHandler.java
patching file net/minecraft/src/PanelCrashReport.java.patch
patching file minecraft/net/minecraft/src/PanelCrashReport.java
patching file net/minecraft/src/RenderBlocks.java.patch
patching file minecraft/net/minecraft/src/RenderBlocks.java
Hunk #13 FAILED at 3272.
Hunk #14 FAILED at 3395.
Hunk #15 FAILED at 3518.
Hunk #16 FAILED at 3641.
Hunk #17 succeeded at 2871 with fuzz 1 (offset -794 lines).
Hunk #18 succeeded at 2953 (offset -794 lines).
Hunk #19 succeeded at 2969 (offset -794 lines).
Hunk #20 succeeded at 2985 (offset -794 lines).
Hunk #21 succeeded at 3001 (offset -794 lines).
Hunk #22 succeeded at 4509 (offset -794 lines).
Hunk #23 succeeded at 4569 (offset -794 lines).
4 out of 23 hunks FAILED -- saving rejects to file minecraft/net/minecraft/src/RenderBlocks.java.rej
patching file net/minecraft/src/RenderEngine.java.patch
patching file minecraft/net/minecraft/src/RenderEngine.java
patching file net/minecraft/src/RenderManager.java.patch
patching file minecraft/net/minecraft/src/RenderManager.java
patching file net/minecraft/src/RenderPlayer.java.patch
patching file minecraft/net/minecraft/src/RenderPlayer.java
patching file net/minecraft/src/SlotCrafting.java.patch
patching file minecraft/net/minecraft/src/SlotCrafting.java
patching file net/minecraft/src/SlotFurnace.java.patch
patching file minecraft/net/minecraft/src/SlotFurnace.java
patching file net/minecraft/src/StringTranslate.java.patch
patching file minecraft/net/minecraft/src/StringTranslate.java
patching file net/minecraft/src/TextureCompassFX.java.patch
patching file minecraft/net/minecraft/src/TextureCompassFX.java
patching file net/minecraft/src/TextureFlamesFX.java.patch
patching file minecraft/net/minecraft/src/TextureFlamesFX.java
patching file net/minecraft/src/TextureLavaFlowFX.java.patch
patching file minecraft/net/minecraft/src/TextureLavaFlowFX.java
patching file net/minecraft/src/TextureLavaFX.java.patch
patching file minecraft/net/minecraft/src/TextureLavaFX.java
patching file net/minecraft/src/TexturePackList.java.patch
patching file minecraft/net/minecraft/src/TexturePackList.java
patching file net/minecraft/src/TexturePortalFX.java.patch
patching file minecraft/net/minecraft/src/TexturePortalFX.java
patching file net/minecraft/src/TextureWatchFX.java.patch
patching file minecraft/net/minecraft/src/TextureWatchFX.java
patching file net/minecraft/src/TextureWaterFlowFX.java.patch
patching file minecraft/net/minecraft/src/TextureWaterFlowFX.java
patching file net/minecraft/src/TextureWaterFX.java.patch
patching file minecraft/net/minecraft/src/TextureWaterFX.java
patching file net/minecraft/src/TileEntity.java.patch
patching file minecraft/net/minecraft/src/TileEntity.java
patching file net/minecraft/src/TileEntityFurnace.java.patch
patching file minecraft/net/minecraft/src/TileEntityFurnace.java
patching file net/minecraft/src/TileEntityRenderer.java.patch
patching file minecraft/net/minecraft/src/TileEntityRenderer.java
patching file net/minecraft/src/World.java.patch
patching file minecraft/net/minecraft/src/World.java
patching file net/minecraft/src/WorldProvider.java.patch
patching file minecraft/net/minecraft/src/WorldProvider.java
patching file net/minecraft/src/WorldType.java.patch
patching file minecraft/net/minecraft/src/WorldType.java
== MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
== Updating client ==
> Adding javadoc
> Renaming sources
- Done in 3.89 seconds
Applying forge patches
patching file net/minecraft/client/Minecraft.java.patch
patching file minecraft/net/minecraft/client/Minecraft.java
patching file net/minecraft/src/AnvilChunkLoader.java.patch
patching file minecraft/net/minecraft/src/AnvilChunkLoader.java
patching file net/minecraft/src/AnvilSaveHandler.java.patch
patching file minecraft/net/minecraft/src/AnvilSaveHandler.java
patching file net/minecraft/src/Block.java.patch
patching file minecraft/net/minecraft/src/Block.java
patching file net/minecraft/src/BlockButton.java.patch
patching file minecraft/net/minecraft/src/BlockButton.java
patching file net/minecraft/src/BlockChest.java.patch
patching file minecraft/net/minecraft/src/BlockChest.java
patching file net/minecraft/src/BlockContainer.java.patch
patching file minecraft/net/minecraft/src/BlockContainer.java
patching file net/minecraft/src/BlockCrops.java.patch
patching file minecraft/net/minecraft/src/BlockCrops.java
patching file net/minecraft/src/BlockDoor.java.patch
patching file minecraft/net/minecraft/src/BlockDoor.java
patching file net/minecraft/src/BlockFire.java.patch
patching file minecraft/net/minecraft/src/BlockFire.java
patching file net/minecraft/src/BlockLadder.java.patch
patching file minecraft/net/minecraft/src/BlockLadder.java
patching file net/minecraft/src/BlockLeaves.java.patch
patching file minecraft/net/minecraft/src/BlockLeaves.java
patching file net/minecraft/src/BlockLever.java.patch
patching file minecraft/net/minecraft/src/BlockLever.java
patching file net/minecraft/src/BlockLog.java.patch
patching file minecraft/net/minecraft/src/BlockLog.java
patching file net/minecraft/src/BlockNetherStalk.java.patch
patching file minecraft/net/minecraft/src/BlockNetherStalk.java
patching file net/minecraft/src/BlockPistonBase.java.patch
patching file minecraft/net/minecraft/src/BlockPistonBase.java
patching file net/minecraft/src/BlockPressurePlate.java.patch
patching file minecraft/net/minecraft/src/BlockPressurePlate.java
patching file net/minecraft/src/BlockRail.java.patch
patching file minecraft/net/minecraft/src/BlockRail.java
patching file net/minecraft/src/BlockRedstoneRepeater.java.patch
patching file minecraft/net/minecraft/src/BlockRedstoneRepeater.java
patching file net/minecraft/src/BlockRedstoneWire.java.patch
patching file minecraft/net/minecraft/src/BlockRedstoneWire.java
patching file net/minecraft/src/BlockSnow.java.patch
patching file minecraft/net/minecraft/src/BlockSnow.java
patching file net/minecraft/src/BlockTallGrass.java.patch
patching file minecraft/net/minecraft/src/BlockTallGrass.java
patching file net/minecraft/src/BlockTorch.java.patch
patching file minecraft/net/minecraft/src/BlockTorch.java
patching file net/minecraft/src/BlockTrapDoor.java.patch
patching file minecraft/net/minecraft/src/BlockTrapDoor.java
patching file net/minecraft/src/BlockVine.java.patch
patching file minecraft/net/minecraft/src/BlockVine.java
patching file net/minecraft/src/Chunk.java.patch
patching file minecraft/net/minecraft/src/Chunk.java
patching file net/minecraft/src/ChunkProvider.java.patch
patching file minecraft/net/minecraft/src/ChunkProvider.java
patching file net/minecraft/src/ContainerCreative.java.patch
patching file minecraft/net/minecraft/src/ContainerCreative.java
patching file net/minecraft/src/ContainerFurnace.java.patch
patching file minecraft/net/minecraft/src/ContainerFurnace.java
patching file net/minecraft/src/CraftingManager.java.patch
patching file minecraft/net/minecraft/src/CraftingManager.java
patching file net/minecraft/src/EffectRenderer.java.patch
patching file minecraft/net/minecraft/src/EffectRenderer.java
patching file net/minecraft/src/Enchantment.java.patch
patching file minecraft/net/minecraft/src/Enchantment.java
patching file net/minecraft/src/EnchantmentHelper.java.patch
patching file minecraft/net/minecraft/src/EnchantmentHelper.java
patching file net/minecraft/src/Entity.java.patch
patching file minecraft/net/minecraft/src/Entity.java
patching file net/minecraft/src/EntityEnderman.java.patch
patching file minecraft/net/minecraft/src/EntityEnderman.java
patching file net/minecraft/src/EntityItem.java.patch
patching file minecraft/net/minecraft/src/EntityItem.java
patching file net/minecraft/src/EntityLiving.java.patch
patching file minecraft/net/minecraft/src/EntityLiving.java
patching file net/minecraft/src/EntityMinecart.java.patch
patching file minecraft/net/minecraft/src/EntityMinecart.java
patching file net/minecraft/src/EntityMooshroom.java.patch
patching file minecraft/net/minecraft/src/EntityMooshroom.java
patching file net/minecraft/src/EntityOcelot.java.patch
patching file minecraft/net/minecraft/src/EntityOcelot.java
patching file net/minecraft/src/EntityPlayer.java.patch
patching file minecraft/net/minecraft/src/EntityPlayer.java
patching file net/minecraft/src/EntityRenderer.java.patch
patching file minecraft/net/minecraft/src/EntityRenderer.java
patching file net/minecraft/src/EntitySheep.java.patch
patching file minecraft/net/minecraft/src/EntitySheep.java
patching file net/minecraft/src/Explosion.java.patch
patching file minecraft/net/minecraft/src/Explosion.java
patching file net/minecraft/src/FurnaceRecipes.java.patch
patching file minecraft/net/minecraft/src/FurnaceRecipes.java
patching file net/minecraft/src/GuiAchievements.java.patch
patching file minecraft/net/minecraft/src/GuiAchievements.java
patching file net/minecraft/src/GuiControls.java.patch
patching file minecraft/net/minecraft/src/GuiControls.java
patching file net/minecraft/src/GuiIngame.java.patch
patching file minecraft/net/minecraft/src/GuiIngame.java
patching file net/minecraft/src/Item.java.patch
patching file minecraft/net/minecraft/src/Item.java
patching file net/minecraft/src/ItemBow.java.patch
patching file minecraft/net/minecraft/src/ItemBow.java
patching file net/minecraft/src/ItemBucket.java.patch
patching file minecraft/net/minecraft/src/ItemBucket.java
patching file net/minecraft/src/ItemDye.java.patch
patching file minecraft/net/minecraft/src/ItemDye.java
patching file net/minecraft/src/ItemHoe.java.patch
patching file minecraft/net/minecraft/src/ItemHoe.java
patching file net/minecraft/src/ItemMap.java.patch
patching file minecraft/net/minecraft/src/ItemMap.java
patching file net/minecraft/src/ItemRenderer.java.patch
patching file minecraft/net/minecraft/src/ItemRenderer.java
patching file net/minecraft/src/ItemShears.java.patch
patching file minecraft/net/minecraft/src/ItemShears.java
patching file net/minecraft/src/ItemTool.java.patch
patching file minecraft/net/minecraft/src/ItemTool.java
patching file net/minecraft/src/MovingObjectPosition.java.patch
patching file minecraft/net/minecraft/src/MovingObjectPosition.java
patching file net/minecraft/src/NetClientHandler.java.patch
patching file minecraft/net/minecraft/src/NetClientHandler.java
patching file net/minecraft/src/NetworkManager.java.patch
patching file minecraft/net/minecraft/src/NetworkManager.java
patching file net/minecraft/src/Packet53BlockChange.java.patch
patching file minecraft/net/minecraft/src/Packet53BlockChange.java
patching file net/minecraft/src/PlayerController.java.patch
patching file minecraft/net/minecraft/src/PlayerController.java
patching file net/minecraft/src/PlayerControllerCreative.java.patch
patching file minecraft/net/minecraft/src/PlayerControllerCreative.java
patching file net/minecraft/src/PlayerControllerMP.java.patch
patching file minecraft/net/minecraft/src/PlayerControllerMP.java
patching file net/minecraft/src/PlayerControllerSP.java.patch
patching file minecraft/net/minecraft/src/PlayerControllerSP.java
patching file net/minecraft/src/RailLogic.java.patch
patching file minecraft/net/minecraft/src/RailLogic.java
patching file net/minecraft/src/RenderBiped.java.patch
patching file minecraft/net/minecraft/src/RenderBiped.java
patching file net/minecraft/src/RenderBlocks.java.patch
patching file minecraft/net/minecraft/src/RenderBlocks.java
Hunk #8 FAILED at 3609.
Hunk #9 FAILED at 3732.
Hunk #10 FAILED at 3855.
Hunk #11 FAILED at 3978.
Hunk #12 succeeded at 3296 (offset -794 lines).
Hunk #13 succeeded at 3312 (offset -794 lines).
Hunk #14 succeeded at 3328 (offset -794 lines).
Hunk #15 succeeded at 3344 (offset -794 lines).
4 out of 15 hunks FAILED -- saving rejects to file minecraft/net/minecraft/src/RenderBlocks.java.rej
patching file net/minecraft/src/RenderEngine.java.patch
patching file minecraft/net/minecraft/src/RenderEngine.java
patching file net/minecraft/src/RenderGlobal.java.patch
patching file minecraft/net/minecraft/src/RenderGlobal.java
patching file net/minecraft/src/RenderItem.java.patch
patching file minecraft/net/minecraft/src/RenderItem.java
patching file net/minecraft/src/RenderManager.java.patch
patching file minecraft/net/minecraft/src/RenderManager.java
patching file net/minecraft/src/RenderPlayer.java.patch
patching file minecraft/net/minecraft/src/RenderPlayer.java
patching file net/minecraft/src/RenderSnowMan.java.patch
patching file minecraft/net/minecraft/src/RenderSnowMan.java
patching file net/minecraft/src/SlotCrafting.java.patch
patching file minecraft/net/minecraft/src/SlotCrafting.java
patching file net/minecraft/src/SoundManager.java.patch
patching file minecraft/net/minecraft/src/SoundManager.java
patching file net/minecraft/src/SoundPool.java.patch
patching file minecraft/net/minecraft/src/SoundPool.java
patching file net/minecraft/src/SpawnerAnimals.java.patch
patching file minecraft/net/minecraft/src/SpawnerAnimals.java
patching file net/minecraft/src/StatList.java.patch
patching file minecraft/net/minecraft/src/StatList.java
patching file net/minecraft/src/Teleporter.java.patch
patching file minecraft/net/minecraft/src/Teleporter.java
patching file net/minecraft/src/Tessellator.java.patch
patching file minecraft/net/minecraft/src/Tessellator.java
patching file net/minecraft/src/TileEntity.java.patch
patching file minecraft/net/minecraft/src/TileEntity.java
patching file net/minecraft/src/TileEntityBrewingStand.java.patch
patching file minecraft/net/minecraft/src/TileEntityBrewingStand.java
patching file net/minecraft/src/TileEntityFurnace.java.patch
patching file minecraft/net/minecraft/src/TileEntityFurnace.java
patching file net/minecraft/src/TileEntityRendererPiston.java.patch
patching file minecraft/net/minecraft/src/TileEntityRendererPiston.java
patching file net/minecraft/src/World.java.patch
patching file minecraft/net/minecraft/src/World.java
patching file net/minecraft/src/WorldGenBigMushroom.java.patch
patching file minecraft/net/minecraft/src/WorldGenBigMushroom.java
patching file net/minecraft/src/WorldGenDeadBush.java.patch
patching file minecraft/net/minecraft/src/WorldGenDeadBush.java
patching file net/minecraft/src/WorldGenDungeons.java.patch
patching file minecraft/net/minecraft/src/WorldGenDungeons.java
patching file net/minecraft/src/WorldGenForest.java.patch
patching file minecraft/net/minecraft/src/WorldGenForest.java
patching file net/minecraft/src/WorldGenHugeTrees.java.patch
patching file minecraft/net/minecraft/src/WorldGenHugeTrees.java
patching file net/minecraft/src/WorldGenMinable.java.patch
patching file minecraft/net/minecraft/src/WorldGenMinable.java
patching file net/minecraft/src/WorldGenShrub.java.patch
patching file minecraft/net/minecraft/src/WorldGenShrub.java
patching file net/minecraft/src/WorldGenSwamp.java.patch
patching file minecraft/net/minecraft/src/WorldGenSwamp.java
patching file net/minecraft/src/WorldGenTaiga1.java.patch
patching file minecraft/net/minecraft/src/WorldGenTaiga1.java
patching file net/minecraft/src/WorldGenTaiga2.java.patch
patching file minecraft/net/minecraft/src/WorldGenTaiga2.java
patching file net/minecraft/src/WorldGenTallGrass.java.patch
patching file minecraft/net/minecraft/src/WorldGenTallGrass.java
patching file net/minecraft/src/WorldGenTrees.java.patch
patching file minecraft/net/minecraft/src/WorldGenTrees.java
patching file net/minecraft/src/WorldProvider.java.patch
patching file minecraft/net/minecraft/src/WorldProvider.java
patching file net/minecraft/src/WorldProviderEnd.java.patch
patching file minecraft/net/minecraft/src/WorldProviderEnd.java
patching file net/minecraft/src/WorldProviderHell.java.patch
patching file minecraft/net/minecraft/src/WorldProviderHell.java
patching file net/minecraft/src/WorldProviderSurface.java.patch
patching file minecraft/net/minecraft/src/WorldProviderSurface.java
patching file net/minecraft/src/WorldRenderer.java.patch
patching file minecraft/net/minecraft/src/WorldRenderer.java
== MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
== Updating MCP ==
New version found for : conf/methods.csv
New version found for : conf/fields.csv
Retrieving file from server : conf/methods.csv
Retrieving file from server : conf/fields.csv
== MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
== Updating client ==
> Adding javadoc
> Renaming sources
- Done in 1.98 seconds
== MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
== Recompiling client ==
> Cleaning bin
> Recompiling
'"javac" -Xlint:-options -deprecation -g -source 1.6 -target 1.6 -classpath "lib:lib/*:jars/bin/minec...' failed : 1

== ERRORS FOUND ==

src/minecraft/net/minecraft/src/forge/ForgeHooks.java:359: warning: [deprecation] net.minecraft.src.forge.ISpecialMobSpawnHandler in net.minecraft.src.forge has been deprecated
    static LinkedList<ISpecialMobSpawnHandler> specialMobSpawnHandlers = new LinkedList<ISpecialMobSpawnHandler>();
                      ^

src/minecraft/net/minecraft/src/forge/MinecraftForge.java:164: warning: [deprecation] net.minecraft.src.forge.ISpecialMobSpawnHandler in net.minecraft.src.forge has been deprecated
    public static void registerSpecialMobSpawnHandler(ISpecialMobSpawnHandler handler)
                                                      ^

src/minecraft/net/minecraft/src/RenderBlocks.java:3209: missing return statement
    }
    ^

src/minecraft/net/minecraft/src/ModLoader.java:387: type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object
        return ReflectionHelper.getPrivateValue(instanceclass, instance, fieldindex);
                                               ^

src/minecraft/net/minecraft/src/ModLoader.java:401: type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object
        return ReflectionHelper.getPrivateValue(instanceclass, instance, field);
                                               ^

3 errors
2 warnings
==================

Client recompile failed, correct source then rerun updatemd5
!! Can not find server sources, try decompiling !!
=================================== Minecraft Forge Setup Finished =================================

 

What I do-

1. Extract mcp 62

2. Extract the forge source into the mcp directory

3. Place my "bin" folder into mcp's "jars" folder

4 Run install.sh with terminal

5. Get an Error message

 

[side note] I've used forge and mcp before but it has always worked, with one exception, my RenderBlocks.java is always screwed up.

 

[Edit] If I'm just being stupid and this isn't actually an error, can somebody please tell me why render blocks never works.

Posted

What.. the.. hell...

Why is it trying to patch everything twice.

Anyways, if you wanna do me a favor, delete all the .path files inside the forge folder.

And run the install, then e-mail me a zip of the resulting MCP folder to [email protected]

Its odd...

 

Seems you're decompiling to something odd..

Aside from that, update your JDK thats what causes the Reflection related errors.

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

Alright I did that. I wasn't sure what you meant by the path files, so I just sent my entire mcp folder. Also I'm ragsd77194. I sent you a completely new mcp folder but I got the same error message so it should be fine. This appears to be working okay when I load it in eclipse; I just have to use fast lighting because of the BlockRender.java error.

 

 

Posted

Ah I ment the .patch files, inside for forge/fml/patches and forge/patches/

 

Your renderblocks issue is derived from this:

ERROR: Method func_22330_a (Lnet/minecraft/src/Block;IIIFFF)Z couldn't be decompiled.

No clue what causes it.

 

Anyways update your jre/jdk and see if that helps.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • To prevent dependency errors, yes  
    • All of the Dynamic Tree mods?
    • dynamictrees and dtneapolitan are the last mentioned mod - remove these
    • https://mclo.gs/9y5ciD2 anyone ever had this issue?  Internal exception illegal argument exception: unable to fit 3194354 into 3
    • Hi! I'm trying to add my custom models/textures renderer like this: public class PonyPlayerWrapperRenderer extends EntityRenderer<Player> { // wrapper class under my LivingEntityRenderer class implementation private final PonyPlayerRenderer innerRenderer; private final PonyPlayerRenderer innerSlimRenderer; public PonyPlayerWrapperRenderer(final EntityRendererProvider.Context context) { super(context); System.out.println("creating new PonyPlayerWrapperRenderer"); this.innerRenderer = new PonyPlayerRenderer(context, false); this.innerSlimRenderer = new PonyPlayerRenderer(context, true); } @Override public void render(final Player entity, final float yaw, final float partialTicks, final PoseStack poseStack, final MultiBufferSource bufferSource, final int packedLight) { System.out.println("PonyPlayerWrapperRenderer render: " + entity.toString()); if (entity instanceof AbstractClientPlayer clientPlayer) { if (clientPlayer.getModelName().contains("slim")) { innerSlimRenderer.render(clientPlayer, yaw, partialTicks, poseStack, bufferSource, packedLight); } else { innerRenderer.render(clientPlayer, yaw, partialTicks, poseStack, bufferSource, packedLight); } } } @Override public ResourceLocation getTextureLocation(final Player player) { System.out.println("PonyPlayerWrapperRenderer getTextureLocation"); if (player instanceof AbstractClientPlayer clientPlayer) { return clientPlayer.getSkinTextureLocation(); } System.out.println("player instanceof AbstractClientPlayer is false"); return getDefaultSkin(player.getUUID()); } } public class PonyPlayerRenderer extends LivingEntityRenderer<AbstractClientPlayer, PlayerModel<AbstractClientPlayer>> { private final PlayerModel<AbstractClientPlayer> earthModel; private final PlayerModel<AbstractClientPlayer> pegasusModel; private final PlayerModel<AbstractClientPlayer> unicornModel; public PonyPlayerRenderer(final EntityRendererProvider.Context context, final boolean slim) { super( context, slim ? new PonyModelSlim(context.bakeLayer(PonyModelSlim.LAYER_LOCATION)) : new PonyModel(context.bakeLayer(PonyModel.LAYER_LOCATION)), 0.5f ); System.out.println("creating new PonyPlayerRenderer"); this.earthModel = slim ? new PonyModelSlim(context.bakeLayer(PonyModelSlim.LAYER_LOCATION)) : new PonyModel(context.bakeLayer(PonyModel.LAYER_LOCATION)); this.pegasusModel = new PegasusModel(context.bakeLayer(PegasusModel.LAYER_LOCATION)); this.unicornModel = new UnicornModel(context.bakeLayer(UnicornModel.LAYER_LOCATION)); } @Override public void render(final AbstractClientPlayer player, final float entityYaw, final float partialTicks, final PoseStack poseStack, final MultiBufferSource buffer, final int packedLight) { final PonyRace race = player.getCapability(PONY_DATA) .map(data -> ofNullable(data.getRace()).orElse(PonyRace.EARTH)) .orElse(PonyRace.EARTH); this.model = switch (race) { case PEGASUS -> pegasusModel; case UNICORN -> unicornModel; case EARTH -> earthModel; }; super.render(player, entityYaw, partialTicks, poseStack, buffer, packedLight); } @Override public ResourceLocation getTextureLocation(final AbstractClientPlayer player) { final PonyRace race = player.getCapability(PONY_DATA) .map(data -> ofNullable(data.getRace()).orElse(PonyRace.EARTH)) .orElse(PonyRace.EARTH); return switch (race) { case EARTH -> fromNamespaceAndPath(MODID, "textures/entity/earth_pony.png"); case PEGASUS -> fromNamespaceAndPath(MODID, "textures/entity/pegasus.png"); case UNICORN -> fromNamespaceAndPath(MODID, "textures/entity/unicorn.png"); }; } } @Mod.EventBusSubscriber(modid = MODID, bus = MOD, value = CLIENT) public class ClientRenderers { // mod bus render registration config @SubscribeEvent public static void onRegisterLayerDefinitions(final EntityRenderersEvent.RegisterLayerDefinitions event) { event.registerLayerDefinition(PonyModel.LAYER_LOCATION, PonyModel::createBodyLayer); event.registerLayerDefinition(PonyModelSlim.LAYER_LOCATION, PonyModelSlim::createBodyLayer); event.registerLayerDefinition(PegasusModel.LAYER_LOCATION, PegasusModel::createBodyLayer); event.registerLayerDefinition(UnicornModel.LAYER_LOCATION, UnicornModel::createBodyLayer); event.registerLayerDefinition(InnerPonyArmorModel.LAYER_LOCATION, InnerPonyArmorModel::createBodyLayer); event.registerLayerDefinition(OuterPonyArmorModel.LAYER_LOCATION, OuterPonyArmorModel::createBodyLayer); } @SubscribeEvent public static void onRegisterRenderers(final EntityRenderersEvent.RegisterRenderers event) { event.registerEntityRenderer(EntityType.PLAYER, PonyPlayerWrapperRenderer::new); System.out.println("onRegisterRenderers end"); } } Method onRegisterRenderers() is called and I can see it being logged. But when I enter the world, my PonyWrapperRenderer render() method doesn't ever seem to be called. I also tried to put my renderer to EntityRenderDispatcher's playerRenderers via reflection: @Mod.EventBusSubscriber(modid = MODID, bus = MOD, value = CLIENT) public class ClientRenderers { @SubscribeEvent public static void onRegisterLayerDefinitions(final EntityRenderersEvent.RegisterLayerDefinitions event) { event.registerLayerDefinition(PonyModel.LAYER_LOCATION, PonyModel::createBodyLayer); event.registerLayerDefinition(PonyModelSlim.LAYER_LOCATION, PonyModelSlim::createBodyLayer); event.registerLayerDefinition(PegasusModel.LAYER_LOCATION, PegasusModel::createBodyLayer); event.registerLayerDefinition(UnicornModel.LAYER_LOCATION, UnicornModel::createBodyLayer); event.registerLayerDefinition(InnerPonyArmorModel.LAYER_LOCATION, InnerPonyArmorModel::createBodyLayer); event.registerLayerDefinition(OuterPonyArmorModel.LAYER_LOCATION, OuterPonyArmorModel::createBodyLayer); } @SubscribeEvent public static void onClientSetup(final FMLClientSetupEvent event) { event.enqueueWork(() -> { try { final EntityRenderDispatcher dispatcher = Minecraft.getInstance().getEntityRenderDispatcher(); final Field renderersField = getEntityRenderDispatcherField("playerRenderers"); final Field itemInHandRenderer = getEntityRenderDispatcherField("itemInHandRenderer"); @SuppressWarnings("unchecked") final Map<String, EntityRenderer<? extends Player>> playerRenderers = (Map<String, EntityRenderer<? extends Player>>)renderersField.get(dispatcher); final PonyPlayerWrapperRenderer renderer = new PonyPlayerWrapperRenderer( new EntityRendererProvider.Context( dispatcher, Minecraft.getInstance().getItemRenderer(), Minecraft.getInstance().getBlockRenderer(), (ItemInHandRenderer)itemInHandRenderer.get(dispatcher), Minecraft.getInstance().getResourceManager(), Minecraft.getInstance().getEntityModels(), Minecraft.getInstance().font ) ); playerRenderers.put("default", renderer); playerRenderers.put("slim", renderer); System.out.println("Player renderers replaced"); } catch (final Exception e) { throw new RuntimeException("Failed to replace player renderers", e); } }); } private static Field getEntityRenderDispatcherField(final String fieldName) throws NoSuchFieldException { final Field field = EntityRenderDispatcher.class.getDeclaredField(fieldName); field.setAccessible(true); return field; } } But I receive the error before Minecraft Client appears (RuntimeException: Failed to replace player renderers - from ClientRenderers onClientSetup() method - and its cause below): java.lang.IllegalArgumentException: No model for layer anotherlittlepony:earth_pony#main at net.minecraft.client.model.geom.EntityModelSet.bakeLayer(EntityModelSet.java:18) ~[forge-1.20.1-47.4.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.entity.EntityRendererProvider$Context.bakeLayer(EntityRendererProvider.java:69) ~[forge-1.20.1-47.4.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A} at com.thuggeelya.anotherlittlepony.client.renderer.pony.PonyPlayerRenderer.<init>(PonyPlayerRenderer.java:32) ~[main/:?] {re:classloading} at com.thuggeelya.anotherlittlepony.client.renderer.pony.PonyPlayerWrapperRenderer.<init>(PonyPlayerWrapperRenderer.java:24) ~[main/:?] {re:classloading} at com.thuggeelya.anotherlittlepony.client.renderer.ClientRenderers.lambda$onClientSetup$0(ClientRenderers.java:79) ~[main/:?] {re:classloading} ... 33 more Problem appears when EntityRendererProvider context tries to bakeLayer with my model layer location: new PonyModel(context.bakeLayer(PonyModel.LAYER_LOCATION)); // PonyPlayerRenderer.java:32 public class PonyModel extends PlayerModel<AbstractClientPlayer> { // the model class itself public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation( ResourceLocation.fromNamespaceAndPath(MODID, "earth_pony"), "main" ); public PonyModel(final ModelPart root) { super(root, false); } public static LayerDefinition createBodyLayer() { // some CubeListBuilder stuff for model appearance } } Textures PNGs are placed at: resources/assets/[my mod id]/textures/entity. My forge version is 1.20.1. Would appreciate any help.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.