Jump to content

[SOLVED] [1.8] First Person Arm Rendering - Translate And Rotate Arm


EverythingGames

Recommended Posts

Hi

I have been working on my mod for some time now, and I have seem to have come to a problem. I can't seem to figure out how to obtain the hand in first person and translate / rotate it accordingly. If I could also add that I only need to do the modifications to the arm when I am holding a certain item. I am using the RenderPlayerAPI core for Minecraft 1.8. Thanks to all in advance!

public class CustomRenderPlayer extends ModelPlayerBase
{

public CustomRenderPlayer(ModelPlayerAPI modelPlayerAPI) 
{
	super(modelPlayerAPI);
}

@Override
public void setRotationAngles(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4, float paramFloat5, float paramFloat6, net.minecraft.entity.Entity paramEntity)
{
	this.modelPlayer.bipedLeftArm.rotateAngleX = 0.0F; //Not trying to rotate any here - I believe this is only included in third person... (Not what I need)
	this.modelPlayer.bipedRightArm.rotateAngleX = 0.0F; //Not trying to rotate any here - I believe this is only included in third person... (Not what I need)
}

}

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Link to comment
Share on other sites

Thanks for the reply, TGG, it helped lead me a lot further. I looked in the RenderPlayer class, and I found the various functions. Is the rendering of the hand in first person canceled when the player is holding an item? Should I override the function that modifies the first person arm - if so which exact function controls the rendering with an item. If you could clear some things up for me and point me in the right direction I would greatly appreciate it!

 

I am seeking to do something along the lines of this:

 

IWOVJzeuZos.jpg

 

[Courtesy of Last Days Mod]

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Link to comment
Share on other sites

Hi

 

It's hard going because of all the obfuscated names, but if you trace it through (perhaps with your debugger) you should be able to figure it out.

 

For example in

    public void renderItemInFirstPerson(float p_78440_1_)
    {
        float f1 = 1.0F - (this.prevEquippedProgress + (this.equippedProgress - this.prevEquippedProgress) * p_78440_1_);
        EntityPlayerSP entityplayersp = this.mc.thePlayer;
        float f2 = entityplayersp.getSwingProgress(p_78440_1_);
        float f3 = entityplayersp.prevRotationPitch + (entityplayersp.rotationPitch - entityplayersp.prevRotationPitch) * p_78440_1_;
        float f4 = entityplayersp.prevRotationYaw + (entityplayersp.rotationYaw - entityplayersp.prevRotationYaw) * p_78440_1_;
        this.func_178101_a(f3, f4);
        this.func_178109_a(entityplayersp);
        this.func_178110_a((EntityPlayerSP)entityplayersp, p_78440_1_);
        GlStateManager.enableRescaleNormal();
        GlStateManager.pushMatrix();

        if (this.itemToRender != null)   // is player holding an item?
        {                                               // yes
            if (this.itemToRender.getItem() == Items.filled_map)
            {
                this.func_178097_a(entityplayersp, f3, f1, f2);
            }
            else if (entityplayersp.getItemInUseCount() > 0)
           // ... etc ...
        } else if (!entityplayersp.isInvisible())  // player isn't holding an item; check if invisible
        {
            this.func_178095_a(entityplayersp, f1, f2);   // draw arm without item
        }

 

To be honest I'm not sure what the best way to hijack the first person rendering would be. 

The first thing I would check is whether there are any Forge hooks or events in the code as you are looking through it. 

If not, you could perhaps stop the first person arm rendering (eg by making the player invisible immediately before the arm render, and the restoring the visible flag immediately after), then rendering your own arms. 

You might be able to create your own MyRenderPlayer which overrides RenderPlayer, and replace the vanilla RenderPlayer with yours.

As a last resort you could use ASM+Reflection to insert your code into the vanilla code.  (This is tricky to get right).

 

You could also consider looking at other mods (Last Days for example) to see how they do it.  Even if it's not open source, you can use a decompiler (eg IntelliJ IDEA has one built in) to look through.

 

-TGG

Link to comment
Share on other sites

I'm just going to throw this out there: RenderHandEvent.

 

There are also several RenderPlayerEvents (e.g. Pre, Post, etc.), and other entity-based rendering events, if needed.

I remember that the Render player events are not used on 1.8

But RenderHandEvent would work.

 

EDIT: Confirmed that the render player events are not referenced anywhere.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

I remember that the Render player events are not used on 1.8

But RenderHandEvent would work.

Is that so? I haven't actually checked to see if they get called or not, but only the 'Specials' versions of it are marked as Deprecated...

 

I wish they would just completely remove things that no longer work, rather than leaving them in there (like IItemRenderer) causing people to think they might still function, deprecated or not.

 

Note that 'deprecated' does not mean "No longer functions", it means "Use the newer version instead, as this one sucks and / or might be removed in the future".

Link to comment
Share on other sites

Thanks for all the replies, everyone. I have used the RenderHandEvent, and I think RenderPlayer events work, you just have to use the subclasses (pre, post). I tested this by canceling the event and it did indeed not render the player as it was invisible. As far as my problem, TGG pointed out the various functions in the ItemRenderer and RenderPlayer classes, I had a look at them and am still stuck. Im trying my best to see whats going on (haha, too much obfuscated methods). As TGG suggested that I look into various other mods' source code to see how they achieved a custom first person render, most of them use the RenderPlayerAPI. Also I have tried using the functions in the ItemRenderer class, just not much luck. There is a couple of fields obtained with the player instance (I believe only the client, I may be wrong though) called renderArmPitch and renderArmYaw with looks to be the fact of being able to translate the model in first person. Maybe canceling the render hand event and rendering my own hand? I just don't know on too much how, rendering is a bit tricky for myself as far as entities go. I hope to achieve this first person view soon!

@SubscribeEvent
public void renderHandEvent(RenderHandEvent par1RenderHandEvent)
{
    //do something here
}

//With player instance
void test(EntityPlayer player)
{
    player.renderArmPitch = 0.0F; //there's also prevRenderArmPitch
    player.renderArmYaw = 0.0F; // there's also prevRenderArmYaw
}

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Link to comment
Share on other sites

Just throwing this out there (please feel encouraged to correct me):

I have tried to extend the ItemRenderer class, override the ItemRenderer.renderItemInFirstPerson(float par1Float) and call it in the RenderHandEvent. In the overridden renderItemInFirstPerson, I call another method (exactly the same as the vanilla method func_178095_a in ItemRenderer) called customRenderOne to try and render a new arm just to test. As you all know, my problem is to render the arm to make it look like the player is holding my model (specifically a gun / weapon model) in first person. Here is a trial of some tried code:

@SideOnly(Side.CLIENT)
public class CustomFirstPerson extends ItemRenderer
{

    private Minecraft mc;
    private RenderManager renderManager;
    private RenderItem itemRenderer;

    public CustomFirstPerson(Minecraft par1Minecraft)
    {
super(par1Minecraft);
this.mc = par1Minecraft;
this.renderManager = par1Minecraft.getRenderManager();
this.itemRenderer = par1Minecraft.getRenderItem();
    }

    @SubscribeEvent
    public void renderHandEvent(RenderHandEvent par1RenderHandEvent)
    {
this.renderItemInFirstPerson(1.0F);
    }

    @Override
    public void renderItemInFirstPerson(float par1Float)
    {
        try
{
    ItemRenderer itemrenderer = new ItemRenderer(this.mc);
            EntityPlayerSP entityplayersp = this.mc.thePlayer;
    Field field1 = ItemRenderer.class.getDeclaredField("equippedProgress");
    Field field2 = ItemRenderer.class.getDeclaredField("prevEquippedProgress");
    field1.setAccessible(true);
    field2.setAccessible(true);
    float equippedProgress = field1.getFloat(itemrenderer);
    float prevEquippedProgress = field2.getFloat(itemrenderer);
    float f1 = 1.0F - (prevEquippedProgress + (equippedProgress - prevEquippedProgress) * par1Float);
    float f2 = entityplayersp.getSwingProgress(par1Float);
    if(!entityplayersp.isInvisible())
    {
	customRenderOne(entityplayersp, f1, f2);
    }
        }
catch(Exception par2Exception)
{

}
    }

    private void customRenderOne(AbstractClientPlayer par1AbstractClientPlayer, float par2Float, float par3Float)
    {
float f2 = -0.3F * MathHelper.sin(MathHelper.sqrt_float(par3Float) * (float) Math.PI);
float f3 = 0.4F * MathHelper.sin(MathHelper.sqrt_float(par3Float) * (float) Math.PI * 2.0F);
float f4 = -0.4F * MathHelper.sin(par3Float * (float) Math.PI);
GlStateManager.translate(f2, f3, f4);
GlStateManager.translate(0.64000005F, -0.6F, -0.71999997F);
GlStateManager.translate(0.0F, par2Float * -0.6F, 0.0F);
GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F);
float f5 = MathHelper.sin(par3Float * par3Float * (float) Math.PI);
float f6 = MathHelper.sin(MathHelper.sqrt_float(par3Float) * (float) Math.PI);
GlStateManager.rotate(f6 * 70.0F, 0.0F, 1.0F, 0.0F);
GlStateManager.rotate(f5 * -20.0F, 0.0F, 0.0F, 1.0F);
this.mc.getTextureManager().bindTexture(par1AbstractClientPlayer.getLocationSkin());
GlStateManager.translate(-1.0F, 3.6F, 3.5F);
GlStateManager.rotate(120.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.rotate(200.0F, 1.0F, 0.0F, 0.0F);
GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F);
GlStateManager.scale(1.0F, 1.0F, 1.0F);
GlStateManager.translate(5.6F, 0.0F, 0.0F);
Render render = this.renderManager.getEntityRenderObject(this.mc.thePlayer);
RenderPlayer renderplayer = (RenderPlayer) render;
renderplayer.func_177138_b(this.mc.thePlayer);
    }

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Link to comment
Share on other sites

You really shouldn't need to take such drastic measures.

 

You can do all of that rendering directly from RenderHandEvent, which is only fired in first person anyway (I believe), or you could move it to happen with your Item's IPerspectiveAwareModel and do your rendering of the player's hand from the first person perspective there.

Link to comment
Share on other sites

You really shouldn't need to take such drastic measures.

 

You can do all of that rendering directly from RenderHandEvent, which is only fired in first person anyway (I believe), or you could move it to happen with your Item's IPerspectiveAwareModel and do your rendering of the player's hand from the first person perspective there.

Thanks for the reply, coolAlias. I don't why performing the rendering straight from the RenderHandEvent would be more benificial rather than just having one method (I'd like to know because I may be false on the subject matter). What is this IPerspectiveAwareModel? I haven't heard of this before and I don't know why. If you could briefly describe this to me (if it is benificial to my problem) or provide a link I would greatly appreciate it.

 

Some things to look at in ItemRenderer.class:

 

public void renderItem(EntityLivingBase entityIn, ItemStack heldStack, ItemCameraTransforms.TransformType p_178099_3_)
    {
        if (heldStack != null)
        {
            Item item = heldStack.getItem();
            Block block = Block.getBlockFromItem(item);
            GlStateManager.pushMatrix();

            if (this.itemRenderer.shouldRenderItemIn3D(heldStack))
            {
                GlStateManager.scale(2.0F, 2.0F, 2.0F);

                if (this.func_178107_a(block))
                {
                    GlStateManager.depthMask(false);
                }
            }

            this.itemRenderer.renderItemModelForEntity(heldStack, entityIn, p_178099_3_);

            if (this.func_178107_a(block))
            {
                GlStateManager.depthMask(true);
            }

            GlStateManager.popMatrix();
        }
    }

    private boolean func_178107_a(Block p_178107_1_)
    {
        return p_178107_1_ != null && p_178107_1_.getBlockLayer() == EnumWorldBlockLayer.TRANSLUCENT;
    }

    private void func_178101_a(float p_178101_1_, float p_178101_2_)
    {
        GlStateManager.pushMatrix();
        GlStateManager.rotate(p_178101_1_, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(p_178101_2_, 0.0F, 1.0F, 0.0F);
        RenderHelper.enableStandardItemLighting();
        GlStateManager.popMatrix();
    }

    private void func_178109_a(AbstractClientPlayer p_178109_1_)
    {
        int i = this.mc.theWorld.getCombinedLight(new BlockPos(p_178109_1_.posX, p_178109_1_.posY + (double)p_178109_1_.getEyeHeight(), p_178109_1_.posZ), 0);
        float f = (float)(i & 65535);
        float f1 = (float)(i >> 16);
        OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, f, f1);
    }

    private void func_178110_a(EntityPlayerSP p_178110_1_, float p_178110_2_)
    {
        float f1 = p_178110_1_.prevRenderArmPitch + (p_178110_1_.renderArmPitch - p_178110_1_.prevRenderArmPitch) * p_178110_2_;
        float f2 = p_178110_1_.prevRenderArmYaw + (p_178110_1_.renderArmYaw - p_178110_1_.prevRenderArmYaw) * p_178110_2_;
        GlStateManager.rotate((p_178110_1_.rotationPitch - f1) * 0.1F, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate((p_178110_1_.rotationYaw - f2) * 0.1F, 0.0F, 1.0F, 0.0F);
    }

    private float func_178100_c(float p_178100_1_)
    {
        float f1 = 1.0F - p_178100_1_ / 45.0F + 0.1F;
        f1 = MathHelper.clamp_float(f1, 0.0F, 1.0F);
        f1 = -MathHelper.cos(f1 * (float)Math.PI) * 0.5F + 0.5F;
        return f1;
    }

    private void func_180534_a(RenderPlayer p_180534_1_)
    {
        GlStateManager.pushMatrix();
        GlStateManager.rotate(54.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(64.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(-62.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.translate(0.25F, -0.85F, 0.75F);
        p_180534_1_.func_177138_b(this.mc.thePlayer);
        GlStateManager.popMatrix();
    }

    private void func_178106_b(RenderPlayer p_178106_1_)
    {
        GlStateManager.pushMatrix();
        GlStateManager.rotate(92.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(45.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(41.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.translate(-0.3F, -1.1F, 0.45F);
        p_178106_1_.func_177139_c(this.mc.thePlayer);
        GlStateManager.popMatrix();
    }

    private void func_178102_b(AbstractClientPlayer p_178102_1_)
    {
        this.mc.getTextureManager().bindTexture(p_178102_1_.getLocationSkin());
        Render render = this.renderManager.getEntityRenderObject(this.mc.thePlayer);
        RenderPlayer renderplayer = (RenderPlayer)render;

        if (!p_178102_1_.isInvisible())
        {
            this.func_180534_a(renderplayer);
            this.func_178106_b(renderplayer);
        }
    }

    private void func_178097_a(AbstractClientPlayer p_178097_1_, float p_178097_2_, float p_178097_3_, float p_178097_4_)
    {
        float f3 = -0.4F * MathHelper.sin(MathHelper.sqrt_float(p_178097_4_) * (float)Math.PI);
        float f4 = 0.2F * MathHelper.sin(MathHelper.sqrt_float(p_178097_4_) * (float)Math.PI * 2.0F);
        float f5 = -0.2F * MathHelper.sin(p_178097_4_ * (float)Math.PI);
        GlStateManager.translate(f3, f4, f5);
        float f6 = this.func_178100_c(p_178097_2_);
        GlStateManager.translate(0.0F, 0.04F, -0.72F);
        GlStateManager.translate(0.0F, p_178097_3_ * -1.2F, 0.0F);
        GlStateManager.translate(0.0F, f6 * -0.5F, 0.0F);
        GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(f6 * -85.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.rotate(0.0F, 1.0F, 0.0F, 0.0F);
        this.func_178102_b(p_178097_1_);
        float f7 = MathHelper.sin(p_178097_4_ * p_178097_4_ * (float)Math.PI);
        float f8 = MathHelper.sin(MathHelper.sqrt_float(p_178097_4_) * (float)Math.PI);
        GlStateManager.rotate(f7 * -20.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(f8 * -20.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.rotate(f8 * -80.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.scale(0.38F, 0.38F, 0.38F);
        GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.rotate(0.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.translate(-1.0F, -1.0F, 0.0F);
        GlStateManager.scale(0.015625F, 0.015625F, 0.015625F);
        this.mc.getTextureManager().bindTexture(RES_MAP_BACKGROUND);
        Tessellator tessellator = Tessellator.getInstance();
        WorldRenderer worldrenderer = tessellator.getWorldRenderer();
        GL11.glNormal3f(0.0F, 0.0F, -1.0F);
        worldrenderer.startDrawingQuads();
        worldrenderer.addVertexWithUV(-7.0D, 135.0D, 0.0D, 0.0D, 1.0D);
        worldrenderer.addVertexWithUV(135.0D, 135.0D, 0.0D, 1.0D, 1.0D);
        worldrenderer.addVertexWithUV(135.0D, -7.0D, 0.0D, 1.0D, 0.0D);
        worldrenderer.addVertexWithUV(-7.0D, -7.0D, 0.0D, 0.0D, 0.0D);
        tessellator.draw();
        MapData mapdata = Items.filled_map.getMapData(this.itemToRender, this.mc.theWorld);

        if (mapdata != null)
        {
            this.mc.entityRenderer.getMapItemRenderer().func_148250_a(mapdata, false);
        }
    }

    private void func_178095_a(AbstractClientPlayer p_178095_1_, float p_178095_2_, float p_178095_3_)
    {
        float f2 = -0.3F * MathHelper.sin(MathHelper.sqrt_float(p_178095_3_) * (float)Math.PI);
        float f3 = 0.4F * MathHelper.sin(MathHelper.sqrt_float(p_178095_3_) * (float)Math.PI * 2.0F);
        float f4 = -0.4F * MathHelper.sin(p_178095_3_ * (float)Math.PI);
        GlStateManager.translate(f2, f3, f4);
        GlStateManager.translate(0.64000005F, -0.6F, -0.71999997F);
        GlStateManager.translate(0.0F, p_178095_2_ * -0.6F, 0.0F);
        GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F);
        float f5 = MathHelper.sin(p_178095_3_ * p_178095_3_ * (float)Math.PI);
        float f6 = MathHelper.sin(MathHelper.sqrt_float(p_178095_3_) * (float)Math.PI);
        GlStateManager.rotate(f6 * 70.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(f5 * -20.0F, 0.0F, 0.0F, 1.0F);
        this.mc.getTextureManager().bindTexture(p_178095_1_.getLocationSkin());
        GlStateManager.translate(-1.0F, 3.6F, 3.5F);
        GlStateManager.rotate(120.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.rotate(200.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.scale(1.0F, 1.0F, 1.0F);
        GlStateManager.translate(5.6F, 0.0F, 0.0F);
        Render render = this.renderManager.getEntityRenderObject(this.mc.thePlayer);
        RenderPlayer renderplayer = (RenderPlayer)render;
        renderplayer.func_177138_b(this.mc.thePlayer);
    }

    private void func_178105_d(float p_178105_1_)
    {
        float f1 = -0.4F * MathHelper.sin(MathHelper.sqrt_float(p_178105_1_) * (float)Math.PI);
        float f2 = 0.2F * MathHelper.sin(MathHelper.sqrt_float(p_178105_1_) * (float)Math.PI * 2.0F);
        float f3 = -0.2F * MathHelper.sin(p_178105_1_ * (float)Math.PI);
        GlStateManager.translate(f1, f2, f3);
    }

    private void func_178104_a(AbstractClientPlayer p_178104_1_, float p_178104_2_)
    {
        float f1 = (float)p_178104_1_.getItemInUseCount() - p_178104_2_ + 1.0F;
        float f2 = f1 / (float)this.itemToRender.getMaxItemUseDuration();
        float f3 = MathHelper.abs(MathHelper.cos(f1 / 4.0F * (float)Math.PI) * 0.1F);

        if (f2 >= 0.8F)
        {
            f3 = 0.0F;
        }

        GlStateManager.translate(0.0F, f3, 0.0F);
        float f4 = 1.0F - (float)Math.pow((double)f2, 27.0D);
        GlStateManager.translate(f4 * 0.6F, f4 * -0.5F, f4 * 0.0F);
        GlStateManager.rotate(f4 * 90.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(f4 * 10.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(f4 * 30.0F, 0.0F, 0.0F, 1.0F);
    }

    private void func_178096_b(float p_178096_1_, float p_178096_2_)
    {
        GlStateManager.translate(0.56F, -0.52F, -0.71999997F);
        GlStateManager.translate(0.0F, p_178096_1_ * -0.6F, 0.0F);
        GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F);
        float f2 = MathHelper.sin(p_178096_2_ * p_178096_2_ * (float)Math.PI);
        float f3 = MathHelper.sin(MathHelper.sqrt_float(p_178096_2_) * (float)Math.PI);
        GlStateManager.rotate(f2 * -20.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(f3 * -20.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.rotate(f3 * -80.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.scale(0.4F, 0.4F, 0.4F);
    }

    private void func_178098_a(float p_178098_1_, AbstractClientPlayer p_178098_2_)
    {
        GlStateManager.rotate(-18.0F, 0.0F, 0.0F, 1.0F);
        GlStateManager.rotate(-12.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(-8.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.translate(-0.9F, 0.2F, 0.0F);
        float f1 = (float)this.itemToRender.getMaxItemUseDuration() - ((float)p_178098_2_.getItemInUseCount() - p_178098_1_ + 1.0F);
        float f2 = f1 / 20.0F;
        f2 = (f2 * f2 + f2 * 2.0F) / 3.0F;

        if (f2 > 1.0F)
        {
            f2 = 1.0F;
        }

        if (f2 > 0.1F)
        {
            float f3 = MathHelper.sin((f1 - 0.1F) * 1.3F);
            float f4 = f2 - 0.1F;
            float f5 = f3 * f4;
            GlStateManager.translate(f5 * 0.0F, f5 * 0.01F, f5 * 0.0F);
        }

        GlStateManager.translate(f2 * 0.0F, f2 * 0.0F, f2 * 0.1F);
        GlStateManager.scale(1.0F, 1.0F, 1.0F + f2 * 0.2F);
    }

    private void func_178103_d()
    {
        GlStateManager.translate(-0.5F, 0.2F, 0.0F);
        GlStateManager.rotate(30.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(-80.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(60.0F, 0.0F, 1.0F, 0.0F);
    }

    /**
     * Renders the active item in the player's hand when in first person mode. Args: partialTickTime
     */
    public void renderItemInFirstPerson(float p_78440_1_)
    {
        float f1 = 1.0F - (this.prevEquippedProgress + (this.equippedProgress - this.prevEquippedProgress) * p_78440_1_);
        EntityPlayerSP entityplayersp = this.mc.thePlayer;
        float f2 = entityplayersp.getSwingProgress(p_78440_1_);
        float f3 = entityplayersp.prevRotationPitch + (entityplayersp.rotationPitch - entityplayersp.prevRotationPitch) * p_78440_1_;
        float f4 = entityplayersp.prevRotationYaw + (entityplayersp.rotationYaw - entityplayersp.prevRotationYaw) * p_78440_1_;
        this.func_178101_a(f3, f4);
        this.func_178109_a(entityplayersp);
        this.func_178110_a((EntityPlayerSP)entityplayersp, p_78440_1_);
        GlStateManager.enableRescaleNormal();
        GlStateManager.pushMatrix();

        if (this.itemToRender != null)
        {
            if (this.itemToRender.getItem() == Items.filled_map)
            {
                this.func_178097_a(entityplayersp, f3, f1, f2);
            }
            else if (entityplayersp.getItemInUseCount() > 0)
            {
                EnumAction enumaction = this.itemToRender.getItemUseAction();

                switch (ItemRenderer.SwitchEnumAction.field_178094_a[enumaction.ordinal()])
                {
                    case 1:
                        this.func_178096_b(f1, 0.0F);
                        break;
                    case 2:
                    case 3:
                        this.func_178104_a(entityplayersp, p_78440_1_);
                        this.func_178096_b(f1, 0.0F);
                        break;
                    case 4:
                        this.func_178096_b(f1, 0.0F);
                        this.func_178103_d();
                        break;
                    case 5:
                        this.func_178096_b(f1, 0.0F);
                        this.func_178098_a(p_78440_1_, entityplayersp);
                }
            }
            else
            {
                this.func_178105_d(f2);
                this.func_178096_b(f1, f2);
            }

            this.renderItem(entityplayersp, this.itemToRender, ItemCameraTransforms.TransformType.FIRST_PERSON);
        }
        else if (!entityplayersp.isInvisible())
        {
            this.func_178095_a(entityplayersp, f1, f2);
        }

        GlStateManager.popMatrix();
        GlStateManager.disableRescaleNormal();
        RenderHelper.disableStandardItemLighting();
    }

 

Development of Plugins [2012 - 2014] Development of Mods [2012 - Current]

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hi everyone, I'm working on a mod where I need to display a custom GUI on top of the inventory screen that includes a slider. The goal is to allow the player to select a number using the slider, and then confirm the action, which will split an item stack (similar to shift-clicking, but with a custom number). I've successfully created custom GUIs before using Screen, but I’m running into a couple of issues when trying to integrate a slider into the inventory screen (AbstractContainerScreen): I found the slider in the forge package (net.minecraftforge.client.gui.widget.Slider), but I couldn’t find any usages or examples on how to properly implement it or use it in this context. My Questions: How can I properly integrate a slider into the custom gui screen ? Is net.minecraftforge.client.gui.widget.Slider the right class to use for this? If yes, are there any examples or recommended usages of this Forge slider widget? If not, what would be a good alternative to create a custom slider (maybe extending AbstractSlider or another class)? How do I ensure proper interaction between the slider and the rest of the inventory screen? Any advice, code snippets, or examples would be greatly appreciated! Thanks in advance for your help!
    • I can´t craft in minecraft because it shows: "forge empty tag", does anyone know a fix for this issue? Thank you for your time!
    • ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 2024-10-13 19:15:43 Description: Exception in server tick loop java.lang.NullPointerException: Cannot invoke "com.cobblemon.mod.common.api.conditional.RegistryLikeCondition.fits(Object, net.minecraft.class_2378)" because "condition" is null     at com.cobblemon.mod.common.api.spawning.condition.SpawningCondition.fits(SpawningCondition.java:85)     at com.cobblemon.mod.common.api.spawning.condition.AreaTypeSpawningCondition.fits(AreaTypeSpawningCondition.java:30)     at com.cobblemon.mod.common.api.spawning.condition.GroundedTypeSpawningCondition.fits(GroundedTypeSpawningCondition.java:28)     at com.cobblemon.mod.common.api.spawning.condition.GroundedTypeSpawningCondition.fits(GroundedTypeSpawningCondition.java:24)     at com.cobblemon.mod.common.api.spawning.condition.SpawningCondition.isSatisfiedBy(SpawningCondition.java:68)     at com.cobblemon.mod.common.api.spawning.detail.SpawnDetail.isSatisfiedBy(SpawnDetail.java:78)     at com.cobblemon.mod.common.api.spawning.spawner.Spawner$DefaultImpls.getMatchingSpawns(Spawner.java:42)     at com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner.getMatchingSpawns(TickingSpawner.java:31)     at com.cobblemon.mod.common.api.spawning.selection.FlatContextWeightedSelector.getSelectionData(FlatContextWeightedSelector.java:79)     at com.cobblemon.mod.common.api.spawning.selection.FlatContextWeightedSelector.select(FlatContextWeightedSelector.java:106)     at com.cobblemon.mod.common.api.spawning.spawner.AreaSpawner.run(AreaSpawner.java:94)     at com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner.tick(TickingSpawner.java:71)     at com.cobblemon.mod.common.api.spawning.SpawnerManager.onServerTick(SpawnerManager.java:58)     at com.cobblemon.mod.common.events.ServerTickHandler.onTick(ServerTickHandler.java:20)     at com.cobblemon.mod.common.Cobblemon$initialize$7.invoke(Cobblemon.java:368)     at com.cobblemon.mod.common.Cobblemon$initialize$7.invoke(Cobblemon.java:368)     at com.cobblemon.mod.common.api.reactive.ObservableSubscription.handle(ObservableSubscription.java:16)     at com.cobblemon.mod.common.api.reactive.SimpleObservable.emit(SimpleObservable.java:39)     at com.cobblemon.mod.fabric.CobblemonFabric.initialize$lambda$8(CobblemonFabric.kt:440)     at net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents.lambda$static$2(ServerTickEvents.java:43)     at net.minecraft.server.MinecraftServer.handler$cka002$fabric-lifecycle-events-v1$onEndTick(MinecraftServer.java:6862)     at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:847)     at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671)     at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265)     at java.base/java.lang.Thread.run(Thread.java:1583) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Cobblemon -- Details:     Version: 1.5.2     Is Snapshot: false     Git Commit: df8f078 (https://gitlab.com/cable-mc/cobblemon/-/commit/df8f078d13702ab9a000438910b822ceffbb2248)     Branch: HEAD -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Linux (amd64) version 6.5.0-41-generic     Java Version: 21.0.4, Amazon.com Inc.     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Amazon.com Inc.     Memory: 3487078768 bytes (3325 MiB) / 5360320512 bytes (5112 MiB) up to 11567890432 bytes (11032 MiB)     CPUs: 2     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 5800X 8-Core Processor     Identifier: AuthenticAMD Family 25 Model 33 Stepping 0     Microarchitecture: Zen 3     Frequency (GHz): -0.00     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: unknown     Graphics card #0 vendor: unknown     Graphics card #0 VRAM (MB): 0.00     Graphics card #0 deviceId: unknown     Graphics card #0 versionInfo: unknown     Virtual memory max (MB): 68443.22     Virtual memory used (MB): 51550.91     Swap memory total (MB): 4096.00     Swap memory used (MB): 793.75     JVM Flags: 2 total; -Xms128M -XX:MaxRAMPercentage=95.0     Fabric Mods:          a_man_with_plushies: A Man With Plushies 4.2.0         alloy_forgery: Alloy Forgery 2.1.2+1.20         almostunified: AlmostUnified 1.20.1-0.9.4         alternate-current: Alternate Current 1.9.0         amendments: Amendments 1.20-1.2.11         another_furniture: Another Furniture 1.20.1-3.0.1         appleskin: AppleSkin 2.5.1+mc1.20         architectury: Architectury 9.2.14         artifacts: Artifacts 9.5.13             cardinal-components-base: Cardinal Components API (base) 5.2.2             cardinal-components-entity: Cardinal Components API (entities) 5.2.2             expandability: ExpandAbility 9.0.4             step-height-entity-attribute: Step Height Entity Attribute 1.2.0         athena: Athena 3.1.2         attributefix: AttributeFix 21.0.4         automobility: Automobility 0.4.2+1.20.1-fabric             jsonem: JsonEM 0.2.1+1.20         bakery: [Let's Do] Bakery 1.1.15         balm-fabric: Balm 7.3.9             kuma_api: KumaAPI 20.1.8         barteringstation: Bartering Station 8.0.0         bbb: Building But Better 1.20.1-fabric-1.0.2         bcg_smp: BCG_SMP 1.0.1         bcgmusic: BCG Music 1.1.0-1.20.1         bcgutil: BCG Util 1.0.5         bclib: BCLib 3.0.14             wunderlib: WunderLib 1.1.5         beautify: Beautify 1.2.0+1.20.1         bedbenefits: BedBenefits 13.0.3         beekeeperhut: Friends&Foes - Beekeeper Hut 2.0.1         better_climbing: Better Climbing 3         bettercombat: Better Combat 1.8.6+1.20.1         betterdungeons: YUNG's Better Dungeons 1.20-Fabric-4.0.4             org_reflections_reflections: reflections 0.10.2         betterend: Better End 4.0.11         betterendisland: YUNG's Better End Island 1.20-Fabric-2.0.6         bettermineshafts: YUNG's Better Mineshafts 1.20-Fabric-4.0.4         betteroceanmonuments: YUNG's Better Ocean Monuments 1.20-Fabric-3.0.4         betterstrongholds: YUNG's Better Strongholds 1.20-Fabric-4.0.3         bitsandchisels: BitsAndChisels 2.7.3         blahaj: Blåhaj 0.3.2         boatbreakfix: Boat Break Fix 1.0.2         bookshelf: Bookshelf 20.2.13         brewery: [Let's Do] Brewery 1.1.9         bwncr: Bad Wither No Cookie Reloaded 3.17.0         candlelight: [Let's Do] Candlelight 1.2.13         cardinal-components: Cardinal Components API 5.2.2             cardinal-components-block: Cardinal Components API (blocks) 5.2.2             cardinal-components-chunk: Cardinal Components API (chunks) 5.2.2             cardinal-components-item: Cardinal Components API (items) 5.2.2             cardinal-components-level: Cardinal Components API (world saves) 5.2.2             cardinal-components-scoreboard: Cardinal Components API (scoreboard) 5.2.2             cardinal-components-world: Cardinal Components API (worlds) 5.2.2         carryon: Carry On 2.1.2.7         charmofundying: Charm of Undying 6.5.0+1.20.1         chefsdelight: Chefs Delight 1.0.3-fabric-1.20.1         chimes: Chimes 2.0.1         chipped: Chipped 3.0.6         clickadv: Clickable Advancements Mod 1.20.1-3.8         cloth-config: Cloth Config v11 11.1.136             cloth-basic-math: cloth-basic-math 0.6.1         clumps: Clumps 12.0.0.4         cobbledex: Cobbledex 1.1.0         cobbledollars: CobbleDollars 1.5.1+1.20.1         cobblemon: Cobblemon 1.5.2+1.20.1         cobblemon-ui-tweaks: Cobblemon UI Tweaks 1.0.6         cobblemon_capturexp: Cobblemon Capture EXP 1.5-fabric-1.0.1         cobblemon_counter: Cobblemon Counter 1.5-fabric-1.2.0         cobblemon_quests: Cobblemon Quests 1.1.11         cobblemon_spawn_notification: Cobblemon Spawn Notification 1.5-fabric-1.1.0         cobblemonbreakouts: Cobblemon Outbreaks fabric-1.1.4-1.20.1         cobblemontrainers: CobblemonTrainers 1.1.11+1.5.2         cobblepedia: Cobblepedia 0.6.8         cobbreeding: Cobbreeding 1.7.2         collective: Collective 7.84         comforts: Comforts 6.4.0+1.20.1         commonnetworking: Common Network 1.0.5-1.20.1         compact_storage: CompactStorage 6.0.1.64         connectivity: Connectivity Mod 1.20.1-5.8         convenientdecor: Convenient Decor 0.4.3             omega-config: OmegaConfig 1.4.0+1.20.1         copycats: Create: Copycats+ 2.1.4+mc.1.20.1-fabric         coroutil: CoroUtil 1.20.1-1.3.7         crawl: Crawl 0.12.0         create: Create 0.5.1-f-build.1417+mc1.20.1             com_google_code_findbugs_jsr305: jsr305 3.0.2             milk: Milk Lib 1.2.60                 dripstone_fluid_lib: Dripstone Fluid Lib 3.0.2             porting_lib_brewing: Porting Lib Brewing 2.3.2+1.20.1             porting_lib_client_events: Porting Lib Client Events 2.3.2+1.20.1             porting_lib_tags: Porting Lib Tags 3.0             registrate-fabric: Registrate for Fabric 1.3.62-MC1.20.1         create_cobblemon: Create: Cobblemon Industrialized 0.4         create_enchantment_industry: Create Enchantment Industry 1.2.16             create_dragon_lib: Create Dragon Lib 1.4.2         createaddition: Create Crafts & Additions 1.2.4         createbigcannons: Create Big Cannons 5.5.1+mc.1.20.1-fabric             ritchiesprojectilelib: Ritchie's Projectile Library 2.0.0-dev+mc.1.20.1-fabric-build.182                 porting_lib_utility: Porting Lib Utility 2.1.1127+1.20                     porting_lib_gametest: Porting Lib GameTest 2.1.1127+1.20         createdeco: Create Deco 2.0.2-1.20.1-fabric         creeperoverhaul: Creeper Overhaul 3.0.2         cupboard: cupboard 1.20.1-2.7         customcursorcomm: CustomCursorComm 1.2.0         dailyshop: Daily Shop 1.0.2         darkutils: DarkUtilities 17.0.5         debugify: Debugify 1.20.1+2.0         design_decor: Create: Design n' Decor 0.4.0b_fabric+1.20.1         deuf_refabricated: DEUF Refabricated 1.1.0         diagonalfences: Diagonal Fences 8.1.4         diagonalwalls: Diagonal Walls 8.0.3             diagonalblocks: Diagonal Blocks 8.0.5         diagonalwindows: Diagonal Windows 8.1.4         dimensionalsyncfixes: DimensionalSyncFixes 1.20.1-0.0.2         doapi: [Let's Do] API 1.2.15             terraform-wood-api-v1: Terraform Wood API (v1) 7.0.1         dragonfight: Dragonfight Mod 1.20.1-4.6         drippyloadingscreen: Drippy Loading Screen 3.0.2         e4mc_minecraft: e4mc 5.2.1             folk_sisby_kaleido-config: kaleido-config 0.3.1+1.3.1         easy_npc: Easy NPC 5.6.0         easyanvils: Easy Anvils 8.0.2         easymagic: Easy Magic 8.0.1         elytraslot: Elytra Slot 6.4.4+1.20.1             mixinsquared: MixinSquared 0.1.2-beta.6         emi: EMI 1.1.14+1.20.1+fabric         emi_letsdo_compat: emi-letsdo-compat 1.3         endermanoverhaul: Enderman Overhaul 1.0.4         endrem: End Remastered 5.2.4         ends_delight: End's Delight 2.1         entityculling: EntityCulling 1.7.0         everycomp: Every Compat 1.20-2.6.76             porting_lib_attributes: Porting Lib Attributes 2.3.4+1.20.1             porting_lib_common: Porting Lib Common 2.3.4+1.20.1             porting_lib_entity: Porting Lib Entity 2.3.4+1.20.1             porting_lib_extensions: Porting Lib Extensions 2.3.4+1.20.1             porting_lib_model_generators: Porting Lib Model Generators 2.3.4+1.20.1                 porting_lib_data: Porting Lib Data 2.3.4+1.20.1                 porting_lib_model_materials: Porting Lib Model Materials 2.3.4+1.20.1             porting_lib_model_loader: Porting Lib Model Loader 2.3.4+1.20.1             porting_lib_models: Porting Lib Models 2.3.4+1.20.1             porting_lib_obj_loader: Porting Lib Obj Loader 2.3.4+1.20.1             porting_lib_transfer: Porting Lib Transfer 2.3.4+1.20.1         expandeddelight: Expanded Delight 0.3.2         explorerscompass: Explorer's Compass 1.20.1-2.2.3-fabric         exposure: Exposure 1.7.7         extendedgears: Extended Cogwheels 2.1.1-1.20.1-0.5.1.f-fabric         fabric-api: Fabric API 0.92.2+1.20.1             fabric-api-base: Fabric API Base 0.4.31+1802ada577             fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.36+1802ada577             fabric-biome-api-v1: Fabric Biome API (v1) 13.0.13+1802ada577             fabric-block-api-v1: Fabric Block API (v1) 1.0.11+1802ada577             fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.1+1802ada577             fabric-command-api-v1: Fabric Command API (v1) 1.2.34+f71b366f77             fabric-command-api-v2: Fabric Command API (v2) 2.2.13+1802ada577             fabric-commands-v0: Fabric Commands (v0) 0.2.51+df3654b377             fabric-containers-v0: Fabric Containers (v0) 0.1.64+df3654b377             fabric-content-registries-v0: Fabric Content Registries (v0) 4.0.11+1802ada577             fabric-convention-tags-v1: Fabric Convention Tags 1.5.5+1802ada577             fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.19+1802ada577             fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.0.0+de0fd6d177             fabric-data-generation-api-v1: Fabric Data Generation API (v1) 12.3.4+1802ada577             fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.54+1802ada577             fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.0+1c78457f77             fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.6.2+1802ada577             fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.63+df3654b377             fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.40+1802ada577             fabric-item-api-v1: Fabric Item API (v1) 2.1.28+1802ada577             fabric-item-group-api-v1: Fabric Item Group API (v1) 4.0.12+1802ada577             fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.2.22+1802ada577             fabric-loot-api-v2: Fabric Loot API (v2) 1.2.1+1802ada577             fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.1.45+9e7660c677             fabric-message-api-v1: Fabric Message API (v1) 5.1.9+1802ada577             fabric-mining-level-api-v1: Fabric Mining Level API (v1) 2.1.50+1802ada577             fabric-networking-api-v1: Fabric Networking API (v1) 1.3.11+1802ada577             fabric-networking-v0: Fabric Networking (v0) 0.3.51+df3654b377             fabric-object-builder-api-v1: Fabric Object Builder API (v1) 11.1.3+1802ada577             fabric-particles-v1: Fabric Particles (v1) 1.1.2+1802ada577             fabric-recipe-api-v1: Fabric Recipe API (v1) 1.0.21+1802ada577             fabric-registry-sync-v0: Fabric Registry Sync (v0) 2.3.3+1802ada577             fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.37+92a0d36777             fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.0.28+1802ada577             fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 2.3.8+1802ada577             fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.11.10+1802ada577             fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.30+1802ada577             fabric-transfer-api-v1: Fabric Transfer API (v1) 3.3.5+8dd72ea377             fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 4.3.1+1802ada577         fabric-language-kotlin: Fabric Language Kotlin 1.12.2+kotlin.2.0.20             org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 2.0.20             org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 2.0.20             org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 2.0.20             org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 2.0.20             org_jetbrains_kotlinx_atomicfu-jvm: atomicfu-jvm 0.25.0             org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.9.0             org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.9.0             org_jetbrains_kotlinx_kotlinx-datetime-jvm: kotlinx-datetime-jvm 0.6.1             org_jetbrains_kotlinx_kotlinx-io-bytestring-jvm: kotlinx-io-bytestring-jvm 0.5.4             org_jetbrains_kotlinx_kotlinx-io-core-jvm: kotlinx-io-core-jvm 0.5.4             org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm: kotlinx-serialization-cbor-jvm 1.7.2             org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.7.2             org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.7.2         fabricloader: Fabric Loader 0.16.5             mixinextras: MixinExtras 0.4.1         fancymenu: FancyMenu 3.2.3             com_github_keksuccino_japng: japng 0.5.3             com_github_rtyley_animated-gif-lib-for-java: animated-gif-lib-for-java animated-gif-lib-1.7         farmersdelight: Farmer's Delight 1.20.1-2.1.6+refabricated             mm: Manningham Mills 2.3             porting_lib_accessors: Porting Lib Accessors 2.3.4+1.20.1             porting_lib_base: Porting Lib Base 2.3.4+1.20.1                 porting_lib_core: Porting Lib Core 2.3.4+1.20.1                 porting_lib_fluids: Porting Lib Fluids 2.3.4+1.20.1                 porting_lib_mixin_extensions: Porting Lib Mixin Extensions 2.3.4+1.20.1             porting_lib_config: Porting Lib Config 2.3.4+1.20.1             porting_lib_lazy_registration: Porting Lib Lazy Register 2.3.4+1.20.1             porting_lib_loot: Porting Lib Loot 2.3.4+1.20.1             porting_lib_networking: Porting Lib Networking 2.3.4+1.20.1             porting_lib_recipe_book_categories: Porting Lib Recipe Book Categories 2.3.4+1.20.1             porting_lib_tool_actions: Porting Lib Tool Actions 2.3.4+1.20.1         farsight: Farsight Mod 1.20.1-4.3             org_jctools_jctools-core: jctools-core 4.0.1         faster-random: Faster Random 5.1.0         fastpaintings: Fast Paintings 1.20-1.2.7         ferritecore: FerriteCore 6.0.1         fightorflight: Cobblemon Fight or Flight Fabric 0.5.0         flowerymooblooms: Friends&Foes - Flowery Mooblooms 2.0.2         forgeconfigapiport: Forge Config API Port 8.0.0         framework: Framework 0.6.16             org_javassist_javassist: javassist 3.29.2-GA         friendsandfoes: Friends & Foes 3.0.3         ftbchunks: FTB Chunks 2001.3.1         ftbessentials: FTB Essentials 2001.2.2         ftblibrary: FTB Library 2001.2.4         ftbquests: FTB Quests 2001.4.8             team_reborn_energy: Energy 3.0.0         ftbteams: FTB Teams 2001.3.0         ftbultimine: FTB Ultimine 2001.1.5         ftbxmodcompat: FTB XMod Compat 2.1.1         fwaystones: Fabric Waystones 3.3.2+mc1.20.1         fzzy_config: Fzzy Config 0.5.0+1.20.1             blue_endless_jankson: jankson 1.2.3             fabric-permissions-api-v0: fabric-permissions-api 0.3.1             net_peanuuutz_tomlkt_tomlkt-jvm: tomlkt-jvm 0.3.7         geckolib: GeckoLib 4 4.4.9             com_eliotlash_mclib_mclib: mclib 20         getittogetherdrops: Get It Together, Drops! fabric-1.20-1.3.1         globalpacks: Global Data- & Resourcepacks 1.16.1_fabric         go-fish: Go Fish 1.6.3+1.20.1         gpumemleakfix: Gpu memory leak fix mod 1.20.1-1.8         grindenchantments: Grind Enchantments 3.1.2+1.20             codec-config-api: Codec Config API 1.0.2+1.19.3         guarding: Guarding 2.4.0             scribe: Scribe 1.20.1-0.5.0-alpha         guardvillagers: GuardVillagers 2.0.9-1.20.1         gymbadges: GymBadges 1.0         hamsters: Hamsters fabric-1.0.3-1.20.1         handcrafted: Handcrafted 3.0.6         healingcampfire: Healing Campfire 6.1         herbalbrews: [Let's Do] HerbalBrews 1.0.8.1         herdspanic: Herds Panic 1.1.0         horseexpert: Horse Expert 8.1.1         icarus: Icarus 2.10.0         idwtialsimmoedm: idwtialsimmoedm 0.3.1+1.20         illagerinvasion: Illager Invasion 8.0.6             extensibleenums: Extensible Enums 7.0.1         immersive_aircraft: Immersive Aircraft 1.1.2+1.20.1             org_mariuszgromada_math_mathparser_org-mxparser: MathParser.org-mXparser 5.2.1         immersive_paintings: Immersive Paintings 0.6.7+1.20.1         incantationem: Incantationem 1.2.1+1.20         incendium: Incendium 5.3.5         item_obliterator: Item Obliterator 2.3.0         itemcollectors: Item Collectors 1.1.10         itemfilters: Item Filters 2001.1.0-build.59         jade: Jade 11.11.0+fabric         java: OpenJDK 64-Bit Server VM 21         jmi: JourneyMapIntegration 1.20.1-0.14-48         journeymap: Journeymap 5.10.2             journeymap-api-fabric: JourneyMap API 1.20-1.9-fabric-SNAPSHOT         jumpoverfences: Jump Over Fences 1.3.1         konkrete: Konkrete 1.8.1         leavesbegone: Leaves Be Gone 8.0.0         letmedespawn: Let Me Despawn 1.3.2b         lithium: Lithium 0.11.2         lmft: Load My F***ing Tags 1.0.2+1.20         logbegone: Log Begone 1.0.8         lootintegrations: Loot integration Mod 1.20.1-3.7         lootr: Lootr 0.7.34.84         luphieclutteredmod: Cluttered 2.1.0+1.20.1         magnumtorch: Magnum Torch 8.0.2         man_of_many_planes: Man of Many Planes 0.2.0+1.20.1         mavapi: More Axolotl Variants API 1.1.4         mavm: More Axolotl Variants Mod 1.2.6         mcwbridges: Macaw's Bridges 3.0.0         mcwdoors: Macaw's Doors 1.1.1         mcwfences: Macaw's Fences and Walls 1.1.2         mcwfurnitures: Macaw's Furniture 3.3.0         mcwholidays: Macaw's Holidays 1.1.0         mcwlights: Macaw's Lights and Lamps 1.1.1         mcwpaths: Macaw's Paths and Pavings 1.0.5         mcwroofs: Macaw's Roofs 2.3.1         mcwtrpdoors: Macaw's Trapdoors 1.1.3         mcwwindows: Macaw's Windows 2.3.0         megamons: Ascension Megamons 1.5.0+1.20.1-forge+fabric-75b66fa         melody: Melody 1.0.3         memoryleakfix: Memory Leak Fix 1.1.2         mighty_mail: Mighty Mail 1.0.14         mine-spawners: mine-spawners 1.0         minecraft: Minecraft 1.20.1         mixintrace: MixinTrace 1.1.1+1.17         modernfix: ModernFix 5.19.4+mc1.20.1         moonlight: Moonlight 1.20-2.13.2         more-axolotl: More Axolotl 2.0.1         mr_remove_terralithintromessage: Remove Terralith Intro Message 1.0         mss: Moog's Soaring Structures 1.1.2-1.20-fabric         mvs: Moog's Voyager Structures 4.1.4-1.20-fabric         mythicmetals: Mythic Metals 0.19.9+1.20.1             additionalentityattributes: Additional Entity Attributes 1.7.3+1.20.0             common-protection-api: Common Protection API 1.0.0             reach-entity-attributes: Reach Entity Attributes 2.4.0         mythsandlegends: Myths and Legends 1.5-HOTFIX             com_moandjiezana_toml_toml4j: toml4j 0.7.2         naturalist: Naturalist 4.0.3         naturescompass: Nature's Compass 1.20.1-2.2.3-fabric         necronomicon: Necronomicon 1.6.0         neruina: Neruina 2.1.2             com_fasterxml_jackson_core_jackson-annotations: jackson-annotations 2.17.0             com_fasterxml_jackson_core_jackson-core: jackson-core 2.17.0             com_fasterxml_jackson_core_jackson-databind: jackson-databind 2.17.0             org_apache_maven_maven-artifact: maven-artifact 3.8.1             org_kohsuke_github-api: github-api 1.318         netherportalfix: NetherPortalFix 13.0.1         nightlights: Night Lights 1.1         nochatreports: No Chat Reports 1.20.1-v2.2.2         notenoughanimations: NotEnoughAnimations 1.7.6         oceansdelight: Ocean's Delight fdrf-fabric-1.0.2-1.20         owo: oωo 0.11.2+1.20         packetfixer: Packet Fixer 1.4.2         patchouli: Patchouli 1.20.1-84-FABRIC             fiber: fiber 0.23.0-2         pehkui: Pehkui 3.8.3+1.14.4-1.21             kanos_config: Kanos Config 0.4.1+1.14.4-1.19.4         permanentsponges: Permanent Sponges 8.1.2         pigpen: PigPen 15.0.2         ping-wheel: Ping Wheel 1.9.1         player-animator: Player Animator 1.0.2-rc1+1.20         plushies: Plushie Mod 1.4.0         polymorph: Polymorph 0.49.7+1.20.1             spectrelib: SpectreLib 0.13.17+1.20.1         puzzleslib: Puzzles Lib 8.1.23             puzzlesaccessapi: Puzzles Access Api 8.0.7         railways: Create: Steam 'n' Rails 1.6.4+fabric-mc1.20.1         reacharound: Reacharound 1.3.0         recipeessentials: recipeessentials Mod 1.20.1-3.6         resourcefulconfig: Resourcefulconfig 2.1.2         resourcefullib: Resourceful Lib 2.1.29             com_teamresourceful_bytecodecs: bytecodecs 1.0.2             com_teamresourceful_yabn: yabn 1.0.3         ribbits: Ribbits 1.20.1-Fabric-3.0.0         runelic: Runelic 18.0.2         seasons: Fabric Seasons 2.3+1.20         seasonsdelightcompat: Fabric Seasons: Delight Compat 1.0-1.3.9         seasonsterralithcompat: Fabric Seasons: Terralith Compat 1.0-2.3.7         sellingbin: Selling Bin 1.0.4         serverredirect: Server Redirect 1.4.5         shadertoggle: Shader Toggle 1.0         simpletms: Cobblemon: Simple TM's 1.1.2         simplyswords: Simply Swords 1.56.0-1.20.1         sliceanddice: Create Slice & Dice 3.3.1         smallships: Small Ships 2.0.0-b1.4         spark: spark 1.10.53         spiceoffabric: Spice of Fabric 1.6.2+mc1.20.1             capsaicin: Capsaicin 1.3.3+mc1.20.1             tweed4_annotated: tweed4_annotated 1.3.1+mc1.20-pre1             tweed4_base: tweed4_base 1.7.1+mc1.20-pre1             tweed4_data: tweed4_data 1.2.1+mc1.20-pre1             tweed4_data_hjson: tweed4_data_hjson 1.1.1+mc1.20-pre1             tweed4_tailor_lang_json_descriptions: tweed4_tailor_lang_json_descriptions 1.1.0+mc1.20-pre1         stacc: Stacc 1.7.0         starterkit: Starter Kit 7.1         strawstatues: Straw Statues 8.0.3             puzzlesapi: Puzzles Api 8.1.4         structory: Structory 1.3.5         structory_towers: Structory: Towers 1.0.7         structureessentials: Structure Essentials Mod 1.20.1-3.4         supermartijn642configlib: SuperMartijn642's Config Lib 1.1.8+a         supermartijn642corelib: SuperMartijn642's Core Lib 1.1.17+a         supplementaries: Supplementaries 1.20-2.8.17         suppsquared: Supplementaries Squared 1.20-1.1.15         terrablender: TerraBlender 3.0.1.7             com_electronwill_night-config_core: core 3.6.7             com_electronwill_night-config_toml: toml 3.6.7         terralith: Terralith 2.5.4         thiccpackets: Extra Thicc Packets 1.17-1.19+         things: Things 0.3.3+1.20             lavender: Lavender 0.1.0-pre.18+1.20                 lavender-md: lavender-md 0.1.0-pre.3+1.20                 lavender-md-owo-ui: lavender-md-owo-ui 0.1.0-pre.3+1.20         toms_storage: Tom's Simple Storage Mod 1.6.8         toolstats: ToolStats 16.0.9         trade_cycling: Trade Cycling 1.20.1-1.0.7         tradingpost: Trading Post 8.0.2         trashcans: Trash Cans 1.0.18         travelersbackpack: Traveler's Backpack 9.1.17         trinkets: Trinkets 3.7.2         tutorialmod: Fullers Pokecenters 1.0.0             structurized-reborn: Structurized Reborn 1.20.1-01         ubesdelight: Ube's Delight 0.2.0             midnightlib: MidnightLib 1.4.1             porting_lib_registries: Porting Lib Registries 2.3.4+1.20.1         universal_shops: Universal Shops 1.3.2+1.20.1             common-economy-api: Common Economy API 1.1.1             placeholder-api: Placeholder API 2.1.1+1.20             polymer-core: Polymer (Core) 0.5.3+1.20.1                 polymer-networking: Polymer (Networking) 0.5.3+1.20.1                 polymer-registry-sync-manipulator: Polymer (Registry Sync Manipulator) 0.5.3+1.20.1             polymer-resource-pack: Polymer (Resource Pack) 0.5.3+1.20.1                 polymer-common: Polymer (Common) 0.5.3+1.20.1             polymer-virtual-entity: Polymer (Virtual Entity) 0.5.3+1.20.1             server_translations_api: Server Translations API 2.0.0+1.20                 packet_tweaker: Packet Tweaker 0.4.0+1.19.4             sgui: sgui 1.2.2+1.20         vanityslots: Vanity Slots 1.2.9         villagernames: Villager Names 8.1         vinery: [Let's Do] Vinery 1.4.28         visualworkbench: Visual Workbench 8.0.0         voicechat: Simple Voice Chat 1.20.1-2.5.23         wands: Building Wands 2.6.9-release         watut: What Are They Up To 1.20.1-1.1.3         xercamusic: Music Maker Mod fabric-1.20.1-1.0.2         xercapaint: Joy of Painting fabric-1.20.1-1.0.1         yet_another_config_lib_v3: YetAnotherConfigLib 3.5.0+1.20.1-fabric             com_twelvemonkeys_common_common-image: common-image 3.10.0             com_twelvemonkeys_common_common-io: common-io 3.10.0             com_twelvemonkeys_common_common-lang: common-lang 3.10.0             com_twelvemonkeys_imageio_imageio-core: imageio-core 3.10.0             com_twelvemonkeys_imageio_imageio-metadata: imageio-metadata 3.10.0             com_twelvemonkeys_imageio_imageio-webp: imageio-webp 3.10.0             org_quiltmc_parsers_gson: gson 0.2.1             org_quiltmc_parsers_json: json 0.2.1         yigd: You're in Grave Danger 2.0.9             libgui: LibGui 8.1.1+1.20.1                 jankson: Jankson 6.0.0+j1.2.3                 libninepatch: LibNinePatch 1.2.0         yosbr: YOSBR 0.1.2         ysns: You Shall Not Spawn 2.0.1         yungsapi: YUNG's API 1.20-Fabric-4.0.6         yungsextras: YUNG's Extras 1.20-Fabric-4.0.3     Server Running: true     Player Count: 3 / 20; [class_3222['TreverForever'/674, l='ServerLevel[world]', x=-524.99, y=124.62, z=-103.03], class_3222['Shadowknight3420'/675, l='ServerLevel[world]', x=-180.57, y=65.48, z=216.34], class_3222['XThatSamuraiGuyX'/1223, l='ServerLevel[world]', x=-78.28, y=65.00, z=220.26]]     Data Packs: vanilla, Everycomp Generated Pack, Supplementaries Generated Pack, Suppsquared Generated Pack, fabric, file/AlphabetSoup-v2.1, file/AshiMons_ver1.3, file/BCG Cobblemon Loot, file/BCG Datapack, file/BCG x AllTheMons 1.1.0, file/Cobblemon Village, file/Genomons [1.5.1], file/HiddenMons [Cobblemon] v0.5.3, file/Kale's Collection [v1.7], file/LackingMons-ReleaseCanditate-1, file/MissingMon_v3.0 [METALIC MADNESS], file/NotSoCobblemon, file/PigeonPack, file/Project Eevolve Data (incompatible), file/SaltMons v2.0, file/Vivillon Pride Patterns v1.0, file/Wavimons1.1, file/cobble_cats, file/diance, file/CobblemonLoot-v1.1.1, file/CobblemonPokeLoot 1.5, file/Legendary Structures v1.1.1, file/Poké Costume [2.0], file/Pokémon Fishing v1.1.4 [1.20.1-v1.4+], file/MythsandLegends-Datapack-v1.0.2     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     Is Modded: Definitely; Server brand changed to 'fabric'     Type: Dedicated Server (map_server.txt)
    • I am following a tutorial for modding minecraft 1.20.1, and while running the mod with the minecraft of the idea, no errors was present but, when I switched to real minecraft, it started to want a default constructor "public ZeroToAutomation()" instead of the one recomended by the video "public ZeroToAutomation(FMLJavaModLoadingContext context) {...}", and I can't use the default constructor because I need the FMLJavaModLoadingContext to register the blocks and items.   The problem is at: "net/myself/zerotoautomation/ZeroToAutomation.java" the file contains the default constructor, "Logger"s, and the code for the mod the defaut constructor was added after an error requesting it the Loggers was used to see which methods/constructors was used by the Launcher   things that I tried to fix the issue: remove the default constructor, but an error appeared "net.myself.zerotoautomation.ZeroToAutomation.<init>()", and nothing else on the class runs adding an "public static void init()" method, but it changed nothing   The mod files: https://github.com/Matwaua/Zero_To_Automation/tree/not-finished
  • Topics

×
×
  • Create New...

Important Information

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