Jump to content

[1.7.10] Cannot get this hanging entity to work for the life of me


Recommended Posts

Posted

Hi

I am creating a mod that is related to ancient Egypt, I have everything coded and well except for one thing, my custom hanging entity (painting format). I have been trying to solve this for nearly a year now, I have even devoted complete weekends to just working on this one thing to only get 0 steps closer each time, I am not someone to give up though, so I refuse to abandon the project. I have read the minecraft source code dozen times over, looked at each function, studied other mods with custom hanging entities, and I am still completely stumped. My problem is that I am trying to make custom paintings for my mod which uses the same png template as normal minecraft paintings, so I wouldn't have to change the enum coordinates. Whenever I test my item which spawns the hanging entity the texture is that of the normal minecraft paintings and not my own, yet they still drop my item. Either it is spawning something I don't want it to or the texture adding is wrong, I don't know. I would be really grateful if someone can see what I'm not.

 

Item Class:

 

public class PapPapHanging extends Item{

private final Class hangpap;
public PapPapHanging(Class clas1) {
	super();
	this.hangpap = clas1;
}

public boolean onItemUse(ItemStack stak, EntityPlayer entplay, World world1, int int1, int int2, int int3, int int4, float flt1, float flt2, float flt3){
	if (int4 == 0){
		return false;
	}
	else if (int4 == 1){
		return false;
	}
	else{
		int i1 = Direction.facingToDirection[int4];
		PapPapEntity entitypap = new PapPapEntity(world1, int1, int2, int3, i1);

			if (!entplay.canPlayerEdit(int1, int2, int3, int4, stak)){
				return false;
			}
			else{
				if (entitypap != null && entitypap.onValidSurface()){
					if (!world1.isRemote){
						world1.spawnEntityInWorld(entitypap);
					}

					--stak.stackSize;
				}

				return true;
			}
	}
}

private PapPapEntity createPapPapEntity(World world2, int int5, int int6, int int7, int int8){
		return (PapPapEntity) (this.hangpap == PapPapEntity.class ? new PapPapEntity(world2, int5, int6, int7, int8) : (this.hangpap == EntityItemFrame.class ? new EntityItemFrame(world2, int5, int6, int7, int8) : null));
}

}

 

 

Entity Class:

 

public class PapPapEntity extends EntityPainting{


public PapPapEntity(World world) {
	super(world);
}

public PapPapEntity(World world2, int int1, int int2, int int3, int int4) {
	super(world2, int1, int2, int3, int4);
}

public void onBroken(Entity entit){
        if (entit instanceof EntityPlayer){
            EntityPlayer entityplayer = (EntityPlayer)entit;

            if (entityplayer.capabilities.isCreativeMode){
                return;
            }
        }

        this.entityDropItem(new ItemStack(TigerItems.PapPap), 0.0F);
    }

}

 

 

Render Class:

 

@SideOnly(Side.CLIENT)
public class PapPapRender extends Render{

protected static final ResourceLocation textur = new ResourceLocation(RefStrings.MODID + ":textures/painting/egypt.png");


public void renderThePainting(PapPapEntity ent, double douba, double doubb, double doubc, float flota, float flotb){
    	GL11.glPushMatrix();
        GL11.glTranslated(douba, doubb, doubc);
        GL11.glRotatef(flota, 0.0F, 1.0F, 0.0F);
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        this.bindEntityTexture(ent);
        PapPapEntity.EnumArt enumart = ent.art;
        float f2 = 0.0625F;
        GL11.glScalef(f2, f2, f2);
        funca(ent, enumart.sizeX, enumart.sizeY);
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
    }
    
    protected ResourceLocation getEntityTexture(PapPapEntity entity){
	return textur;
}



    private void funca(PapPapEntity entity1, int inta, int intb){
    	float f = (float)(-inta) / 2.0F;
        float f1 = (float)(-intb) / 2.0F;
        float f2 = 0.5F;
        float f3 = 0.75F;
        float f4 = 0.8125F;
        float f5 = 0.0F;
        float f6 = 0.0625F;
        float f7 = 0.75F;
        float f8 = 0.8125F;
        float f9 = 0.001953125F;
        float f10 = 0.001953125F;
        float f11 = 0.7519531F;
        float f12 = 0.7519531F;
        float f13 = 0.0F;
        float f14 = 0.0625F;

        for (int i1 = 0; i1 < inta / 16; ++i1) {
            for (int j1 = 0; j1 < intb / 16; ++j1){
                float f15 = f + (float)((i1 + 1) * 16);
                float f16 = f + (float)(i1 * 16);
                float f17 = f1 + (float)((j1 + 1) * 16);
                float f18 = f1 + (float)(j1 * 16);
                this.funcb(entity1, (f15 + f16) / 2.0F, (f17 + f18) / 2.0F);
                float f19 = (float)(0 + inta - i1 * 16) / 256.0F;
                float f20 = (float)(0 + inta - (i1 + 1) * 16) / 256.0F;
                float f21 = (float)(0 + intb - j1 * 16) / 256.0F;
                float f22 = (float)(0 + intb - (j1 + 1) * 16) / 256.0F;
                Tessellator t = Tessellator.instance;
                
                t.startDrawingQuads();
                t.setNormal(0.0F, 0.0F, 1.0F);
                t.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f3, (double)f5);
                t.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f4, (double)f5);
                t.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f4, (double)f6);
                t.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f3, (double)f6);
                t.setNormal(0.0F, 1.0F, 0.0F);
                t.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f7, (double)f9);
                t.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f8, (double)f9);
                t.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f8, (double)f10);
                t.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f7, (double)f10);
                t.setNormal(0.0F, -1.0F, 0.0F);
                t.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f7, (double)f9);
                t.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f8, (double)f9);
                t.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f8, (double)f10);
                t.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f7, (double)f10);
                t.setNormal(-1.0F, 0.0F, 0.0F);
                t.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f12, (double)f13);
                t.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f12, (double)f14);
                t.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f11, (double)f14);
                t.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f11, (double)f13);
                t.setNormal(1.0F, 0.0F, 0.0F);
                t.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f12, (double)f13);
                t.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f12, (double)f14);
                t.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f11, (double)f14);
                t.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f11, (double)f13);
                t.draw();
          }
        }
     }
    private void funcb(PapPapEntity entity1, float flot1, float flot2){
        int i = MathHelper.floor_double(entity1.posX);
        int j = MathHelper.floor_double(entity1.posY + (double)(flot2 / 16.0F));
        int k = MathHelper.floor_double(entity1.posZ);

        if (entity1.hangingDirection == 2)
        {
            i = MathHelper.floor_double(entity1.posX + (double)(flot1 / 16.0F));
        }

        if (entity1.hangingDirection == 1)
        {
            k = MathHelper.floor_double(entity1.posZ - (double)(flot1 / 16.0F));
        }

        if (entity1.hangingDirection == 0)
        {
            i = MathHelper.floor_double(entity1.posX - (double)(flot1 / 16.0F));
        }

        if (entity1.hangingDirection == 3)
        {
            k = MathHelper.floor_double(entity1.posZ + (double)(flot1 / 16.0F));
        }

        int l = this.renderManager.worldObj.getLightBrightnessForSkyBlocks(i, j, k, 0);
        int i1 = l % 65536;
        int j1 = l / 65536;
        OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)i1, (float)j1);
        GL11.glColor3f(1.0F, 1.0F, 1.0F);
    }
    @Override
    protected ResourceLocation getEntityTexture(Entity entity)
    {
        return this.getEntityTexture((PapPapEntity)entity);
    }

public void doRender(Entity entity2, double douba, double doubb, double doubc, float flota, float flotb){
	renderThePainting((PapPapEntity)entity2, douba, doubb, doubc, flota, flotb);
}

    

}

 

 

Item Registration:

 

public static void initializeItem(){
PapPap = new PapPapHanging(PapPapEntity.class).setCreativeTab(TigerCreativeTabs.tabItems).setUnlocalizedName("PapPap").setTextureName(RefStrings.MODID + ":ppap")
}
public static void registerItem(){
GameRegistry.registerItem(PapPap, PapPap.getUnlocalizedName());
};

 

 

Entity Registration:

 

public static void createEntity(Class entityClass, String entityName, int solidColour, int spotColour){
EntityRegistry.registerModEntity(PapPapEntity.class, "PapPapEntity", 216, MainRegistry.modInstance, 128, 1, true);
}

 

 

There is an anomaly when I test the code, I am not sure if it relates to why this is happening, but it will tell me that "Using missing texture, unable to load minecraft:textures/blocks/tigermodobelisk1_1.png", which I never told it to look for the texture in the minecraft directory, nor does it seem to actually affect the texture of the block, since none of them have a missing texture and are all correct, could there be something that I set up wrong in the main that would cause the mod to look in minecraft: first before my mod and that causes the painting to take on their png instead of mine? I'm not sure why it would since the png I told it to look for is not named like their painting png.

 

Thanks!

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

I don't see a client proxy with a (client side-only) renderer registration. You probably need something like this to bind your renderer to your entityPainting extended class:

 

    RenderingRegistry.registerEntityRenderingHandler (classAltEntityPainting.class, new classRenderAltPainting ());

 

Otherwise, MC will probably detect that it is an instance of EntityPainting and use the vanilla renderer.

 

Have you set a break point and stepped through rendering in the debugger? Do you know if your renderer was ever called?

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

Oops, my bad, I thought I forgot to add one of my classes

 

Client Proxy Registration:

 

public void registerRenderInformation(){
RenderingRegistry.registerEntityRenderingHandler(PapPapEntity.class, new PapPapRender());
}

 

 

You're right, when I debug using breakpoints absolutely no function is called in my rendering class when I spawn using my item. So I looked at my item class and noticed that "private PapPapEntity createPapPapEntity" at the bottom is also never called, but "public boolean onItemUse" is. So there must be some mis-coding with my item class, probably with the on item use function, although I am not too sure what :/

Although I am happy that I found a probable source of the problem! I am not sure where it is in the function, maybe someone can see what I am not? Thanks for your help!

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

Hm, well I figured out why "private PapPapEntity createPapPapEntity" wasn't being called and changed the instance in itemuse to now call on "private PapPapEntity createPapPapEntity", however my render functions have yet to be called on and it seems to still be using original minecraft's render

 

Tweaked Item Class:

 

public class PapPapHanging extends Item{

private final Class hangpap;
public PapPapHanging(Class clas1) {
	super();
	this.hangpap = clas1;
}

public boolean onItemUse(ItemStack stak, EntityPlayer entplay, World world1, int int1, int int2, int int3, int int4, float flt1, float flt2, float flt3){
	if (int4 == 0){
		return false;
	}
	else if (int4 == 1){
		return false;
	}
	else{
		int i1 = Direction.facingToDirection[int4];
		PapPapEntity entitypap = this.createPapPapEntity(world1, int1, int2, int3, i1);

			if (!entplay.canPlayerEdit(int1, int2, int3, int4, stak)){
				return false;
			}
			else{
				if (entitypap != null && entitypap.onValidSurface()){
					if (!world1.isRemote){
						world1.spawnEntityInWorld(entitypap);
					}

					--stak.stackSize;
				}

				return true;
			}
	}
}

private PapPapEntity createPapPapEntity(World world2, int int5, int int6, int int7, int int8){
		return (PapPapEntity) (this.hangpap == PapPapEntity.class ? new PapPapEntity(world2, int5, int6, int7, int8) : (this.hangpap == EntityItemFrame.class ? new EntityItemFrame(world2, int5, int6, int7, int8) : null));
}

}

 

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

I don't think your proxy is being called from anywhere. Also, you don't appear to have a main mod class with the @Mod annotation, and I don't see a sided-proxy annotation anywhere either.

 

Finally, when a server spawns a hanging entity in the world, it sends a message to the client, which then uses a different constructor to make its hanging entity client-side. You should walk that process in the debugger to see if there's a gotcha in vanilla's handling of the message. It might assume that it knows all possible types of hanging entities, so it might construct a vanilla painting client-side.

 

It may turn out that you need a spawn callback to call the right constructor on the right class (implements Function<EntitySpawnMessage, Entity> ). In that case, add "implements IEntityAdditionalSpawnData" to your entity class.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

  • 3 weeks later...
Posted

Here is my main mod class:

 

@Mod(modid = RefStrings.MODID , name = RefStrings.NAME , version = RefStrings.VERSION)
public class MainRegistry {

@SidedProxy(clientSide = RefStrings.CLIENTSIDE , serverSide = RefStrings.SERVERSIDE)
public static ServerProxy proxy;

@Instance
public static MainRegistry modInstance;

@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent){
	TigerCreativeTabs.initialiseTabs();
	TigerBlocks.mainRegistry();
	TigerEntity.mainRegistry(); 
	TigerItems.mainRegistry();
	TigerWorld.mainRegistry();
	CraftingManager.mainRegistry();
	proxy.registerRenderInfo();
}
@EventHandler
public static void load(FMLInitializationEvent event){

}
@EventHandler
public static void PostLoad(FMLPostInitializationEvent PostEvent){

}
}

 

 

And the Server Proxy is:

 

public class ServerProxy {
public void registerRenderInfo(){

}

public int addArmor(String armor){
	return 0;
}
}

 

 

Which the Client Proxy is:

 

public class ClientProxy extends ServerProxy{
public void registerRenderInfo(){
	RenderingRegistry.registerEntityRenderingHandler(EntityWrathRa.class, new RenderSnowball(TigerItems.WrathRa));
	RenderingRegistry.registerEntityRenderingHandler(PapPapEntity.class, new PapPapRender());
}
public int addArmor(String armor){
	return RenderingRegistry.addNewArmourRendererPrefix(armor);
}

}

 

 

Which I believe everything should be in order in those classes but perhaps a small error has waited until my hanging entity to display itself. I have been trying to use the call hierarchy on vanilla's render painting class to try to see what function in my classes is calling that instead of my own, my searching has turned up empty except it seems to be the rendermanager class that is initiating the vanilla render class when I use my item, however from there I cannot seem to find any trails to my classes :/

I tried implements IEntityAdditionalSpawnData however it had no effect on the issue.

Although this experience has helped me learn how to use the debugger more in detail so thank you for suggesting for me to use it in this issue. I'll keep searching the rendermanager's hierarchy and I will post if I find something, and thank you for any more suggestions you can give!

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

Can you explain more about how you're using the enums? I think what you're saying is that you have a texture that is just like the vanilla and you want to pick up the same coordinates. However, I don't understand where you set the enum for your entity. And out of curiosity, which vanilla texture is it displaying?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

If I understand his mod, he has made a new painting texture (one big collage that contains a whole set of paintings), and he has patterned it so that his paintings occupy the same tiles within the new painting file as vanilla paintings occupy within the vanilla painting file. He hopes that all of the vanilla machinery will then pick up his paintings when he manages to get his image file used in place of the vanilla file.

 

In vanilla's entity painting code, the enum is chosen randomly (in a constructor) from among those that can fit where placed. When reloading from a save, an NBT tag gives a painting name which is then used to look up the corresponding enum (different constructor).

 

NOTE: In late 1.7.10 and early 1.8 versions, vanilla has a bug that muffs the centering during that placement.

 

I think the problem is coaxing the render manager to use the custom renderer. If the renderer is registered, then maybe vanilla has an annoying assumption built in somewhere that must be defeated. Find where vanilla decides what renderer to call.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

I would suggest that if you can't figure it out you should try a different approach. Instead of extending EntityPainting you should copy it instead (ie as a class that extends EntityHanging). Then if their is any vanilla choose that is somehow doing something weird based on an instance of EntityPainting it won't trigger for your entity.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

I would suggest that if you can't figure it out you should try a different approach. Instead of extending EntityPainting you should copy it instead (ie as a class that extends EntityHanging). Then if their is any vanilla choose that is somehow doing something weird based on an instance of EntityPainting it won't trigger for your entity.

 

IIRC this won't work because there is a ton of code that uses instance-of checks necessary to the proper operation of paintings.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

jeffryfisher is right, I copied the vanilla painting png, replacing their paintings with my own, and used their set pixel enum template, since I rather not mess with adding more enum values before I can actually get the texture to display on my item's spawned hanging entity (currently my item's hanging entity uses the vanilla painting png). Draco18s is also right, through my many trials of trying to get this to work, one of them was to do that and just completely write out my entitypainting class and extend it to entityhanging, it opened up a whole new world of issues, mostly a java error: "don't know how to add [my entitypainting class]", but I don't think that is the solution (hopefully), so I just am going with the simplified entitypainting right now.

 

I'll keep combing through my classes and vanilla's, so far all I have found is it seems to be called by entityitemframe->renderitemframe->rendermanager, however I do not know yet if these frame classes are being called when I use my item yet, I do know from scanning the vanilla classes it seems that the frame classes are situated in the painting item class. It's frustrating to say in the least to back track in the rendermanager and use break points in there due to minecraft constantly uses all of the rendermanager functions for camera positions so they are called every frame.

 

EDIT: EntityItemFrame and RenderItemFrame seem to be constantly called, I don't think they are what I originally thought they were

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

Okay, I think I might know what is going wrong. You're registering the renderers in the preinit phase, but I always do it in the init phase. I suspect that it is not getting registered, and an interesting thing is that if you look at the getEntityClassRenderObject() method in the RenderManager, if it doesn't find an entry it will use the entry for the super-class. Since your class extends EntityPainting, its renderer would be called.

 

If you want to know whether to use pre-init or init or post-init for something you can look through the startGame() method in the Minecraft class. If you check it out, you'll see that the entityRenderer isn't created at the time of pre-init, and is created just a bit before the init event.

 

Anyway, try moving the registration to the init and see if you have the same problem.

 

Also, another thing to look at -- I don't see you actually registering the mod entity. I see you registering the renderer for the entity, but where do you register the entity itself? Maybe entities like this type don't need to be registered, but I'd double check.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Like this?

 

@Mod(modid = RefStrings.MODID , name = RefStrings.NAME , version = RefStrings.VERSION)
public class MainRegistry {

@SidedProxy(clientSide = RefStrings.CLIENTSIDE , serverSide = RefStrings.SERVERSIDE)
public static ServerProxy proxy;

@Instance
public static MainRegistry modInstance;

@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent){
	TigerCreativeTabs.initialiseTabs();
	TigerBlocks.mainRegistry();
	TigerEntity.mainRegistry(); 
	TigerItems.mainRegistry();
	TigerWorld.mainRegistry();
	CraftingManager.mainRegistry();
}
@EventHandler
public static void load(FMLInitializationEvent event){
	proxy.registerRenderInfo();
}
@EventHandler
public static void PostLoad(FMLPostInitializationEvent PostEvent){

}
}

 

 

Unfortunately it didn't seem to work, but maybe I misunderstood which one to put in the init :/

I thought i registered the entity in my TigerEntity class, which you can look at in my first post, I don't think I am missing any entity registrations, just need that one line i think, I tried putting the entity registrations in the init too, but that also had no affect

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

Yeah, that is what I meant. I'm quite sure that you need the rendering registering to happen in the init phase, so I think it is good you moved it.

 

Entity registering should happen in the pre-init phase. You're now talking about TigerEntity but in your previous posts it was something called PapPapEntity. In your first post you show some code for a createEntity() method that does the registering, but it is not clear to me where you're calling that from.

 

Anyway, there is another thing I'm a bit concerned with. You have a @Instance annotation without giving the mod id. I usually use @Instance(MODID) where MODID is constant containing my mod id string. I'm not sure what happens if you leave it blank. The default is is "" so perhaps your instance field is not being set properly which might be screwing up your registration?  Just a wild idea really...but worth a try.

 

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

I thought about what you said, and I concluded that just how I setup TigerEntity is probably causing the entity to not be called on or registered, so I abandoned my OCD style of clean calling and decided to register it right in my main class, at least for now, and something interesting happened. So now when I use my item the game crashes, BUT, it is an error dealing with MY render class, so now it is being called! Now I just need to find why there is a null pointer in my class.

 

Here is the modified main:

 

@Mod(modid = RefStrings.MODID , name = RefStrings.NAME , version = RefStrings.VERSION)
public class MainRegistry {

@SidedProxy(clientSide = RefStrings.CLIENTSIDE , serverSide = RefStrings.SERVERSIDE)
public static ServerProxy proxy;

@Instance(RefStrings.MODID)
public static MainRegistry modInstance;

@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent){
	TigerCreativeTabs.initialiseTabs();
	TigerBlocks.mainRegistry();
	TigerEntity.mainRegistry();
	registerEntities();
	TigerItems.mainRegistry();
	TigerWorld.mainRegistry();
	CraftingManager.mainRegistry();

}
private static void registerEntities(){
    EntityRegistry.registerGlobalEntityID(PapPapEntity.class, "PapPapEntity", EntityRegistry.findGlobalUniqueEntityId());
    EntityRegistry.registerModEntity(PapPapEntity.class, "PapPapEntity", 113, MainRegistry.modInstance, 128, 1, true);
    
}
@EventHandler
public static void load(FMLInitializationEvent event){
            proxy.registerRenderInfo();
}
@EventHandler
public static void PostLoad(FMLPostInitializationEvent PostEvent){

}
}

 

 

Here is my render class again for easier access:

 

@SideOnly(Side.CLIENT)
public class PapPapRender extends Render{

protected static final ResourceLocation textur = new ResourceLocation(RefStrings.MODID + ":textures/painting/egypt.png");


public void renderThePainting(PapPapEntity ent, double douba, double doubb, double doubc, float flota, float flotb){
    	GL11.glPushMatrix();
        GL11.glTranslated(douba, doubb, doubc);
        GL11.glRotatef(flota, 0.0F, 1.0F, 0.0F);
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        this.bindEntityTexture(ent);
        PapPapEntity.EnumArt enumart = ent.art;
        float f2 = 0.0625F;
        GL11.glScalef(f2, f2, f2);
        this.funca(ent, enumart.sizeX, enumart.sizeY);
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
    }
    
    protected ResourceLocation getEntityTexture(PapPapEntity entity){
	return textur;
}



    private void funca(PapPapEntity entity1, int inta, int intb){
    	float f = (float)(-inta) / 2.0F;
        float f1 = (float)(-intb) / 2.0F;
        float f2 = 0.5F;
        float f3 = 0.75F;
        float f4 = 0.8125F;
        float f5 = 0.0F;
        float f6 = 0.0625F;
        float f7 = 0.75F;
        float f8 = 0.8125F;
        float f9 = 0.001953125F;
        float f10 = 0.001953125F;
        float f11 = 0.7519531F;
        float f12 = 0.7519531F;
        float f13 = 0.0F;
        float f14 = 0.0625F;

        for (int i1 = 0; i1 < inta / 16; ++i1) {
            for (int j1 = 0; j1 < intb / 16; ++j1){
                float f15 = f + (float)((i1 + 1) * 16);
                float f16 = f + (float)(i1 * 16);
                float f17 = f1 + (float)((j1 + 1) * 16);
                float f18 = f1 + (float)(j1 * 16);
                this.funcb(entity1, (f15 + f16) / 2.0F, (f17 + f18) / 2.0F);
                float f19 = (float)(0 + inta - i1 * 16) / 256.0F;
                float f20 = (float)(0 + inta - (i1 + 1) * 16) / 256.0F;
                float f21 = (float)(0 + intb - j1 * 16) / 256.0F;
                float f22 = (float)(0 + intb - (j1 + 1) * 16) / 256.0F;
                Tessellator t = Tessellator.instance;
                
                t.startDrawingQuads();
                t.setNormal(0.0F, 0.0F, 1.0F);
                t.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f3, (double)f5);
                t.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f4, (double)f5);
                t.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f4, (double)f6);
                t.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f3, (double)f6);
                t.setNormal(0.0F, 1.0F, 0.0F);
                t.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f7, (double)f9);
                t.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f8, (double)f9);
                t.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f8, (double)f10);
                t.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f7, (double)f10);
                t.setNormal(0.0F, -1.0F, 0.0F);
                t.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f7, (double)f9);
                t.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f8, (double)f9);
                t.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f8, (double)f10);
                t.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f7, (double)f10);
                t.setNormal(-1.0F, 0.0F, 0.0F);
                t.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f12, (double)f13);
                t.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f12, (double)f14);
                t.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f11, (double)f14);
                t.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f11, (double)f13);
                t.setNormal(1.0F, 0.0F, 0.0F);
                t.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f12, (double)f13);
                t.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f12, (double)f14);
                t.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f11, (double)f14);
                t.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f11, (double)f13);
                t.draw();
          }
        }
     }
    private void funcb(PapPapEntity entity1, float flot1, float flot2){
        int i = MathHelper.floor_double(entity1.posX);
        int j = MathHelper.floor_double(entity1.posY + (double)(flot2 / 16.0F));
        int k = MathHelper.floor_double(entity1.posZ);

        if (entity1.hangingDirection == 2)
        {
            i = MathHelper.floor_double(entity1.posX + (double)(flot1 / 16.0F));
        }

        if (entity1.hangingDirection == 1)
        {
            k = MathHelper.floor_double(entity1.posZ - (double)(flot1 / 16.0F));
        }

        if (entity1.hangingDirection == 0)
        {
            i = MathHelper.floor_double(entity1.posX - (double)(flot1 / 16.0F));
        }

        if (entity1.hangingDirection == 3)
        {
            k = MathHelper.floor_double(entity1.posZ + (double)(flot1 / 16.0F));
        }

        int l = this.renderManager.worldObj.getLightBrightnessForSkyBlocks(i, j, k, 0);
        int i1 = l % 65536;
        int j1 = l / 65536;
        OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)i1, (float)j1);
        GL11.glColor3f(1.0F, 1.0F, 1.0F);
    }
    @Override
    protected ResourceLocation getEntityTexture(Entity entity)
    {
        return this.getEntityTexture((PapPapEntity)entity);
    }

public void doRender(Entity ent, double douba, double doubb, double doubc, float flota, float flotb){
	renderThePainting((PapPapEntity)ent, douba, doubb, doubc, flota, flotb);
}
}

 

 

And my lovely little error (and a little bit of log to have more reference):

 

[15:57:50] [server thread/INFO] [FML]: Applying holder lookups
[15:57:50] [server thread/INFO] [FML]: Holder lookups applied
[15:57:50] [Client thread/FATAL]: Reported exception thrown!
net.minecraft.util.ReportedException: Rendering entity in world
at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:346) ~[RenderManager.class:?]
at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:278) ~[RenderManager.class:?]
at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:251) ~[RenderManager.class:?]
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:527) ~[RenderGlobal.class:?]
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300) ~[EntityRenderer.class:?]
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1091) ~[EntityRenderer.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1056) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:951) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_66]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
Caused by: java.lang.NullPointerException
at com.tiger.entitiy.PapPapRender.renderThePainting(PapPapRender.java:34) ~[PapPapRender.class:?]
at com.tiger.entitiy.PapPapRender.doRender(PapPapRender.java:143) ~[PapPapRender.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300) ~[RenderManager.class:?]
... 16 more
[15:57:50] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!

Time: 12/8/15 3:57 PM
Description: Rendering entity in world

java.lang.NullPointerException: Rendering entity in world
at com.tiger.entitiy.PapPapRender.renderThePainting(PapPapRender.java:34)
at com.tiger.entitiy.PapPapRender.doRender(PapPapRender.java:143)
at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300)
at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:278)
at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:251)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:527)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1091)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1056)
at net.minecraft.client.Minecraft.run(Minecraft.java:951)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
at com.tiger.entitiy.PapPapRender.renderThePainting(PapPapRender.java:34)
at com.tiger.entitiy.PapPapRender.doRender(PapPapRender.java:143)

-- Entity being rendered --
Details:
Entity Type: PapPapEntity (com.tiger.entitiy.PapPapEntity)
Entity ID: 3456
Entity Name: entity.PapPapEntity.name
Entity's Exact location: 231.50, 77.00, 227.06
Entity's Block location: World: (231,77,227), Chunk: (at 7,4,3 in 14,14; contains blocks 224,0,224 to 239,255,239), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Entity's Momentum: 0.00, 0.00, 0.00

-- Renderer details --
Details:
Assigned renderer: com.tiger.entitiy.PapPapRender@7e822c11
Location: -0.59,1.38,-1.55 - World: (-1,1,-2), Chunk: (at 15,0,14 in -1,-1; contains blocks -16,0,-16 to -1,255,-1), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Rotation: -180.0
Delta: 0.0064231157
Stacktrace:
at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300)
at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:278)
at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:251)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:527)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300)

-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP['Player305'/2278, l='MpServer', x=232.09, y=75.62, z=228.62]]
Chunk stats: MultiplayerChunkCache: 555, 555
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options: 
Level spawn location: World: (228,64,252), Chunk: (at 4,4,12 in 14,15; contains blocks 224,0,240 to 239,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 1191 game time, 1191 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 91 total; [EntityZombie['Zombie'/3077, l='MpServer', x=273.50, y=19.00, z=239.50], EntitySkeleton['Skeleton'/2823, l='MpServer', x=157.50, y=18.00, z=294.50], EntitySkeleton['Skeleton'/2831, l='MpServer', x=199.50, y=36.00, z=269.50], EntitySpider['Spider'/3088, l='MpServer', x=277.50, y=51.00, z=310.50], EntitySkeleton['Skeleton'/2835, l='MpServer', x=289.50, y=38.00, z=300.50], EntitySkeleton['Skeleton'/2836, l='MpServer', x=289.50, y=38.00, z=299.50], EntitySkeleton['Skeleton'/2837, l='MpServer', x=288.50, y=38.00, z=299.50], EntityBat['Bat'/2327, l='MpServer', x=253.75, y=23.05, z=245.70], EntityWitch['Witch'/3095, l='MpServer', x=287.50, y=38.00, z=289.50], EntityBat['Bat'/2329, l='MpServer', x=224.52, y=20.00, z=244.75], EntitySpider['Spider'/3098, l='MpServer', x=297.44, y=38.00, z=295.44], EntityBat['Bat'/2333, l='MpServer', x=225.25, y=21.10, z=237.25], EntityBat['Bat'/2334, l='MpServer', x=225.39, y=20.29, z=237.25], EntityBat['Bat'/2335, l='MpServer', x=225.11, y=20.00, z=246.46], EntityBat['Bat'/2337, l='MpServer', x=220.67, y=21.00, z=260.63], EntitySkeleton['Skeleton'/3362, l='MpServer', x=259.69, y=37.00, z=279.03], EntitySpider['Spider'/3107, l='MpServer', x=234.50, y=16.00, z=191.50], EntityZombie['Zombie'/3116, l='MpServer', x=164.50, y=25.00, z=220.50], EntityZombie['Zombie'/3384, l='MpServer', x=210.50, y=15.00, z=299.50], EntityZombie['Zombie'/3398, l='MpServer', x=270.50, y=50.00, z=279.50], EntityZombie['Zombie'/3399, l='MpServer', x=244.50, y=14.00, z=228.50], EntitySkeleton['Skeleton'/3156, l='MpServer', x=245.50, y=12.00, z=241.50], EntitySkeleton['Skeleton'/3157, l='MpServer', x=245.50, y=12.00, z=240.50], EntityCreeper['Creeper'/3414, l='MpServer', x=156.71, y=18.02, z=305.43], EntitySkeleton['Skeleton'/2651, l='MpServer', x=159.50, y=25.00, z=232.50], EntityPig['Pig'/2153, l='MpServer', x=157.06, y=67.00, z=242.97], EntityPig['Pig'/2154, l='MpServer', x=163.09, y=68.00, z=237.75], EntityPig['Pig'/2155, l='MpServer', x=162.50, y=68.00, z=239.50], EntityPig['Pig'/2156, l='MpServer', x=164.78, y=68.00, z=241.16], EntityPig['Pig'/2157, l='MpServer', x=160.78, y=67.00, z=243.81], EntityZombie['Zombie'/2925, l='MpServer', x=186.34, y=42.00, z=266.34], EntityZombie['Zombie'/2926, l='MpServer', x=185.88, y=41.00, z=268.41], EntityPig['Pig'/2162, l='MpServer', x=176.50, y=70.00, z=238.22], EntityPig['Pig'/2163, l='MpServer', x=179.81, y=70.00, z=239.59], EntityPig['Pig'/2164, l='MpServer', x=176.50, y=70.00, z=240.97], EntityPig['Pig'/2169, l='MpServer', x=196.06, y=75.00, z=222.50], EntityPig['Pig'/2170, l='MpServer', x=198.53, y=75.00, z=222.50], EntityPig['Pig'/2171, l='MpServer', x=197.41, y=75.00, z=222.50], EntityPig['Pig'/2172, l='MpServer', x=189.03, y=72.00, z=230.59], EntityCreeper['Creeper'/2431, l='MpServer', x=275.50, y=27.00, z=246.50], EntityZombie['Zombie'/2432, l='MpServer', x=273.31, y=20.00, z=246.22], PapPapEntity['entity.PapPapEntity.name'/3456, l='MpServer', x=231.50, y=77.00, z=227.06], EntityCreeper['Creeper'/2434, l='MpServer', x=293.50, y=20.00, z=303.50], EntityZombie['Zombie'/3205, l='MpServer', x=300.50, y=42.00, z=309.50], EntitySkeleton['Skeleton'/3206, l='MpServer', x=214.50, y=28.00, z=188.50], EntityPig['Pig'/2197, l='MpServer', x=269.53, y=71.00, z=153.09], EntityPig['Pig'/2199, l='MpServer', x=259.09, y=75.00, z=161.13], EntityChicken['Chicken'/2200, l='MpServer', x=279.44, y=72.00, z=244.47], EntityWitch['Witch'/3224, l='MpServer', x=155.50, y=12.00, z=245.50], EntityChicken['Chicken'/2201, l='MpServer', x=260.27, y=71.00, z=244.21], EntityPig['Pig'/2202, l='MpServer', x=265.50, y=71.00, z=258.50], EntityWitch['Witch'/3226, l='MpServer', x=156.50, y=12.00, z=245.50], EntityPig['Pig'/2203, l='MpServer', x=269.50, y=71.00, z=261.50], EntityPig['Pig'/2204, l='MpServer', x=268.44, y=71.00, z=155.78], EntityChicken['Chicken'/2205, l='MpServer', x=274.69, y=72.00, z=248.09], EntitySheep['Sheep'/2206, l='MpServer', x=279.50, y=72.00, z=247.50], EntitySheep['Sheep'/2207, l='MpServer', x=276.09, y=72.00, z=247.50], EntitySheep['Sheep'/2208, l='MpServer', x=273.63, y=72.00, z=247.84], EntitySheep['Sheep'/2209, l='MpServer', x=274.13, y=72.00, z=243.66], EntityChicken['Chicken'/2210, l='MpServer', x=268.66, y=72.00, z=247.47], EntityPig['Pig'/2211, l='MpServer', x=273.50, y=69.00, z=260.50], EntityPig['Pig'/2212, l='MpServer', x=274.81, y=68.00, z=265.19], EntityPig['Pig'/2213, l='MpServer', x=284.13, y=67.00, z=270.09], EntityPig['Pig'/2214, l='MpServer', x=283.50, y=66.00, z=268.50], EntityPig['Pig'/2215, l='MpServer', x=292.09, y=70.00, z=266.06], EntitySkeleton['Skeleton'/2983, l='MpServer', x=196.69, y=37.00, z=271.25], EntityPig['Pig'/2216, l='MpServer', x=274.47, y=67.00, z=269.66], EntityPig['Pig'/2217, l='MpServer', x=290.09, y=67.00, z=214.09], EntityPig['Pig'/2218, l='MpServer', x=293.81, y=67.00, z=211.44], EntityPig['Pig'/2219, l='MpServer', x=294.72, y=67.00, z=209.13], EntityPig['Pig'/2220, l='MpServer', x=291.03, y=68.00, z=216.16], EntityPig['Pig'/2221, l='MpServer', x=296.97, y=68.00, z=233.06], EntityCreeper['Creeper'/2478, l='MpServer', x=230.50, y=31.00, z=255.50], EntityPig['Pig'/2225, l='MpServer', x=308.19, y=66.00, z=234.88], EntityPig['Pig'/2226, l='MpServer', x=306.50, y=66.00, z=225.50], EntityPig['Pig'/2227, l='MpServer', x=306.50, y=66.00, z=225.50], EntityZombie['Zombie'/2996, l='MpServer', x=240.50, y=29.00, z=232.50], EntityZombie['Zombie'/2997, l='MpServer', x=240.50, y=29.00, z=230.50], EntityZombie['Zombie'/2998, l='MpServer', x=244.50, y=29.00, z=232.94], EntityBat['Bat'/2491, l='MpServer', x=181.75, y=20.80, z=213.75], EntityCreeper['Creeper'/2747, l='MpServer', x=265.50, y=19.00, z=163.50], EntityBat['Bat'/2496, l='MpServer', x=172.57, y=33.48, z=174.46], EntityEnderman['Enderman'/3008, l='MpServer', x=269.50, y=35.00, z=238.50], EntitySkeleton['Skeleton'/2757, l='MpServer', x=308.04, y=37.00, z=303.56], EntityZombie['Zombie'/2507, l='MpServer', x=231.50, y=38.00, z=279.50], EntityZombie['Zombie'/2508, l='MpServer', x=228.47, y=36.00, z=280.97], EntityZombie['Zombie'/3293, l='MpServer', x=167.50, y=55.00, z=155.50], EntityZombie['Zombie'/2785, l='MpServer', x=272.50, y=37.00, z=268.50], EntityCreeper['Creeper'/2787, l='MpServer', x=268.50, y=37.00, z=261.50], EntityZombie['Zombie'/2789, l='MpServer', x=235.50, y=18.00, z=296.50], EntityClientPlayerMP['Player305'/2278, l='MpServer', x=232.09, y=75.62, z=228.62]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2555)
at net.minecraft.client.Minecraft.run(Minecraft.java:973)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)

 

The first line it is talking about is this.funca(ent, enumart.sizeX, enumart.sizeY);

and the second is the renderThePainting((PapPapEntity)ent, douba, doubb, doubc, flota, flotb); at the bottom

 

I'm getting close! I can feel it! Thank you so much for your help so far!

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

I suspect that you're passing a null entity to renderThePainting(...).

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

Hm, I looked at my classes the last two days to see what is making my entity null, however I am not sure what the culprit is here, nulls have always been my bane in programming. Can someone explain what is nulling the entity to me?

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted

Hm, I looked at my classes the last two days to see what is making my entity null, however I am not sure what the culprit is here, nulls have always been my bane in programming. Can someone explain what is nulling the entity to me?

 

You need to learn to use the debugging mode in Eclipse. You can create breakpoints to stop the execution, or step slowly through the code and give you time to examine the value of the fields. You can then work backwards to understand why a certain value happened. In this case you want to know why it is null. You must expect the value to be set somewhere, so you should set a breakpoint just after the code you think is supposed to set the value and set another breakpoint just before the null pointer exception. If your first breakpoint doesn't happen before the second breakpoint, then it confirms that the value isn't getting set. You can then step through and figure out why.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

I knew about breakpoints, but I didn't know you can use them to see what variables are each step! That's really useful, thank you for telling me about that. So I did that and found out that in "this.funca(ent, enumart.sizeX, enumart.sizeY, enumart.offsetX, enumart.offsetY);" That ent is just the globaluniqueID, while the sizeX, sizeY, offsetX, and offsetY are given randomly one of the fittable enum painting coordinates. However enumart is null, so I looked back to "PapPapEntity.EnumArt enumart = ent.art;" ent is still just the ID, however art seems to be null, then I looked in the vanilla EntityPainting class because that is where it designates these values and observed that at first few steps, art =  the ID of the random painting selected, but then randomly becomes null before put into my renderer. I tested using just manual coordinates in place of the enumart.sizeX and so on and the coordinated painting I put in actually rendered! However it moved up .5 blocks randomly but I am not really concerned about that considering it might just be a glitch by manually putting numbers in place of the variables. I find this strange because it is using solely the vanilla classes in creating the enum values, yet I recieve a null. I am now focusing on my PapPapEntity class, since that is where it is directing the render to get the enum values from EntityPainting. Plus trying to pinpoint why art suddenly nulls, unless it's supposed to do that, but I doubt it. I'll update if I find anything else.

 

I updated the code in my render class if any of you care to see it:

 

@SideOnly(Side.CLIENT)
public class PapPapRender extends Render{

@Override
protected ResourceLocation getEntityTexture(Entity textur) {
	return new ResourceLocation(RefStrings.MODID + ":textures/painting/egypt.png");
}

public void doRender(EntityPainting ent, double doub1, double doub2, double doub3, float flo1, float flo2){
	GL11.glPushMatrix();
	GL11.glTranslated(doub1, doub2, doub3);
	GL11.glRotatef(flo1, 0.0F, 1.0F, 0.0F);
	GL11.glEnable(GL12.GL_RESCALE_NORMAL);
	this.bindEntityTexture(ent);
	PapPapEntity.EnumArt enumart = ent.art;
	float f2 = 0.0625F;
	GL11.glScalef(f2, f2, f2);
	this.funca(ent, enumart.sizeX, enumart.sizeY, enumart.offsetX, enumart.offsetY);
	GL11.glDisable(GL12.GL_RESCALE_NORMAL);
	GL11.glPopMatrix();
}

private void funca(EntityPainting entit, int sizeX, int sizeY, int offX, int offY){
	float f = (float)(-sizeX) / 2.0F;
	float f1 = (float)(-sizeY) / 2.0F;
	float f2 = 0.5F;
	float f3 = 0.75F;
	float f4 = 0.8125F;
	float f5 = 0.0F;
	float f6 = 0.0625F;
	float f7 = 0.75F;
	float f8 = 0.8125F;
	float f9 = 0.001953125F;
	float f10 = 0.001953125F;
	float f11 = 0.7519531F;
	float f12 = 0.7519531F;
	float f13 = 0.0F;
	float f14 = 0.0625F;

	for (int i1 = 0; i1 < sizeX / 16; ++i1){
		for (int j1 = 0; j1 < sizeY / 16; ++j1){
			float f15 = f + (float)((i1 + 1) * 16);
			float f16 = f + (float)(i1 * 16);
			float f17 = f1 + (float)((j1 + 1) * 16);
			float f18 = f1 + (float)(j1 * 16);
			this.funb(entit, (f15 + f16) / 2.0F, (f17 + f18) / 2.0F);
			float f19 = (float)(offX + sizeX - i1 * 16) / 256.0F;
			float f20 = (float)(offX + sizeX - (i1 + 1) * 16) / 256.0F;
			float f21 = (float)(offY + sizeY - j1 * 16) / 256.0F;
			float f22 = (float)(offY + sizeY - (j1 + 1) * 16) / 256.0F;
			Tessellator tessellator = Tessellator.instance;
			tessellator.startDrawingQuads();
			tessellator.setNormal(0.0F, 0.0F, -1.0F);
			tessellator.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f20, (double)f21);
			tessellator.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f19, (double)f21);
			tessellator.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f19, (double)f22);
			tessellator.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f20, (double)f22);
			tessellator.setNormal(0.0F, 0.0F, 1.0F);
			tessellator.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f3, (double)f5);
			tessellator.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f4, (double)f5);
			tessellator.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f4, (double)f6);
			tessellator.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f3, (double)f6);
			tessellator.setNormal(0.0F, 1.0F, 0.0F);
			tessellator.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f7, (double)f9);
			tessellator.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f8, (double)f9);
			tessellator.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f8, (double)f10);
			tessellator.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f7, (double)f10);
			tessellator.setNormal(0.0F, -1.0F, 0.0F);
			tessellator.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f7, (double)f9);
			tessellator.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f8, (double)f9);
			tessellator.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f8, (double)f10);
			tessellator.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f7, (double)f10);
			tessellator.setNormal(-1.0F, 0.0F, 0.0F);
			tessellator.addVertexWithUV((double)f15, (double)f17, (double)f2, (double)f12, (double)f13);
			tessellator.addVertexWithUV((double)f15, (double)f18, (double)f2, (double)f12, (double)f14);
			tessellator.addVertexWithUV((double)f15, (double)f18, (double)(-f2), (double)f11, (double)f14);
			tessellator.addVertexWithUV((double)f15, (double)f17, (double)(-f2), (double)f11, (double)f13);
			tessellator.setNormal(1.0F, 0.0F, 0.0F);
			tessellator.addVertexWithUV((double)f16, (double)f17, (double)(-f2), (double)f12, (double)f13);
			tessellator.addVertexWithUV((double)f16, (double)f18, (double)(-f2), (double)f12, (double)f14);
			tessellator.addVertexWithUV((double)f16, (double)f18, (double)f2, (double)f11, (double)f14);
			tessellator.addVertexWithUV((double)f16, (double)f17, (double)f2, (double)f11, (double)f13);
			tessellator.draw();
		}
	}
}

private void funb(EntityPainting entit2, float floa, float flob){
	int i = MathHelper.floor_double(entit2.posX);
	int j = MathHelper.floor_double(entit2.posY + (double)(flob / 16.0F));
	int k = MathHelper.floor_double(entit2.posZ);

	if (entit2.hangingDirection == 2){
		i = MathHelper.floor_double(entit2.posX + (double)(floa / 16.0F));
	}

	if (entit2.hangingDirection == 1){
		k = MathHelper.floor_double(entit2.posZ - (double)(floa / 16.0F));
	}

	if (entit2.hangingDirection == 0){
		i = MathHelper.floor_double(entit2.posX - (double)(floa / 16.0F));
	}

	if (entit2.hangingDirection == 3){
		k = MathHelper.floor_double(entit2.posZ + (double)(floa / 16.0F));
	}

	int l = this.renderManager.worldObj.getLightBrightnessForSkyBlocks(i, j, k, 0);
	int i1 = l % 65536;
	int j1 = l / 65536;
	OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)i1, (float)j1);
	GL11.glColor3f(1.0F, 1.0F, 1.0F);
}
public void doRender(Entity ent, double doub1, double doub2, double doub3, float flo1, float flo2){
	this.doRender((PapPapEntity)ent, doub1, doub2, doub3, flo1, flo2);
}
}

 

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

Posted
art =  the ID of the random painting selected, but then randomly becomes null before put into my renderer.

It's doubtful that it is happening randomly. Keep tracing the execution in the debugger.

 

Watch out for (virtual) client - server communication issues. You may well see a correct enum on the server but get a null (or even vanilla painting) on client-side. That would point to an issue with message-handling or the constructor called on the client side in response to it (not the same constructor that chooses the random enum).

 

Home in on EntityPainting's client-side constructor and see what's happening in it and down-stream to the renderer.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

I see what you mean! It took me a few days but when I realized that I can do a compare contrast by spawning a vanilla painting and see what it does in entitypainting then spawn my own and see what the difference is, the vanilla painting uses the entitypainting client-side constructor:

 

@SideOnly(Side.CLIENT)
    public EntityPainting(World p_i1601_1_, int p_i1601_2_, int p_i1601_3_, int p_i1601_4_, int p_i1601_5_, String p_i1601_6_)
    {
        this(p_i1601_1_, p_i1601_2_, p_i1601_3_, p_i1601_4_, p_i1601_5_);
        EntityPainting.EnumArt[] aenumart = EntityPainting.EnumArt.values();
        int i1 = aenumart.length;

        for (int j1 = 0; j1 < i1; ++j1)
        {
            EntityPainting.EnumArt enumart = aenumart[j1];

            if (enumart.title.equals(p_i1601_6_))
            {
                this.art = enumart;
                break;
            }
        }

        this.setDirection(p_i1601_5_);
    }

 

however my painting does not, there's the reason art is null, so now I am scanning what is causing vanilla painting to call into that and not mine, I'll keep you all updated if I find anything.

I'm a novice programmer but I learn from others showing me how to code correctly so thank you for any help you give me! :)

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

    • that's the thing it doesn't give any crash report, you just get kicked from the server and no log comes up
    • I've been having multiple crashes (3 times today and once yesterday) for seemingly no reason. All within a few minutes of each other. All crash reports look like they're the same issue, so I'll only post the most recent crash. Crash Report is here. Any help would be greatly appreciated. 
    • java.lang.IllegalArgumentException: Can't find attribute minecraft:generic.attack_knockback having the same problem as this one: https://forums.minecraftforge.net/topic/151258-some-kind-of-issue-with-lycanites-mobs-and-the-knockback-attribute/ also my report on Lycanites Issue page(crash log included): https://gitlab.com/Lycanite/LycanitesMobs/-/issues/951
    • I just removed that mod as well and it's still stuck on 100% loading and does still not go past it. all of my modded maps are so unplayable, i like, have no idea what to do https://mclo.gs/XHWCu5M
    • Here is the newest crash report because I've been trying to fix the problem for hours, please help me also its "error code -1"   ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 2024-11-27 15:43:43 Description: Rendering screen java.lang.NoClassDefFoundError: org/spongepowered/asm/synthetic/args/Args$1     at net.minecraft.client.gui.GuiGraphics.m_280677_(GuiGraphics.java:562) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.GuiGraphics.renderTooltip(GuiGraphics.java:556) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventory.AbstractContainerScreen.m_280072_(AbstractContainerScreen.java:163) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:attributeslib.mixins.json:client.AbstractContainerScreenMixin,pl:mixin:APP:majruszlibrary-forge.mixins.json:MixinAbstractContainerScreen,plasmixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventoasasry.CreativeModeInventoryScreen.m_88315_(CreativeModeInventoryScreen.java:650) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_280264_(Screen.java:109) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenIgnoreRenderAfterOverlayMixin,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.ForgeHooksClient.drawScreenInternal(ForgeHooksClient.java:427) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin}     at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:420) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:965) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:jeg.mixins.json:client.GameRendererMixin,pl:mixin:APP:alexscaves.mixins.json:client.GameRendererMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.compat.MixinGameRenderer,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-47.3.0.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} Caused by: java.lang.ClassNotFoundException: org.spongepowered.asm.synthetic.args.Args$1     at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.10.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.10.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}     ... 26 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Suspected Mods: NONE Stacktrace:     at net.minecraft.client.gui.GuiGraphics.m_280677_(GuiGraphics.java:562) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.GuiGraphics.renderTooltip(GuiGraphics.java:556) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventory.AbstractContainerScreen.m_280072_(AbstractContainerScreen.java:163) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:attributeslib.mixins.json:client.AbstractContainerScreenMixin,pl:mixin:APP:majruszlibrary-forge.mixins.json:MixinAbstractContainerScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen.m_88315_(CreativeModeInventoryScreen.java:650) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_280264_(Screen.java:109) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenIgnoreRenderAfterOverlayMixin,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.ForgeHooksClient.drawScreenInternal(ForgeHooksClient.java:427) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin}     at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:420) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin} -- Screen render details -- Details:     Screen name: net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen     Mouse location: Scaled: (273, 153). Absolute: (546.000000, 307.000000)     Screen size: Scaled: (547, 308). Absolute: (1093, 615). Scale factor of 2.000000 Stacktrace:     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:965) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:jeg.mixins.json:client.GameRendererMixin,pl:mixin:APP:alexscaves.mixins.json:client.GameRendererMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.compat.MixinGameRenderer,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-47.3.0.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} -- Affected level -- Details:     All players: 1 total; [LocalPlayer['muglad'/4, l='ClientLevel', x=11.34, y=-62.50, z=7.05]]     Chunk stats: 529, 313     Level dimension: minecraft:overworld     Level spawn location: World: (0,-63,0), Section: (at 0,1,0 in 0,-4,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)     Level time: 522 game time, 522 day time     Server brand: forge     Server type: Integrated singleplayer server Stacktrace:     at net.minecraft.client.multiplayer.ClientLevel.m_6026_(ClientLevel.java:455) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:client.ClientLevelMixin,pl:mixin:APP:architectury.mixins.json:MixinClientLevel,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinClientLevel,pl:mixin:APP:starlight.mixins.json:client.world.ClientLevelMixin,pl:mixin:APP:alexscaves.mixins.json:client.ClientLevelMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91354_(Minecraft.java:2319) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:735) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-47.3.0.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: Yes     Packs: vanilla, mod_resources -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 17.0.8, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 1400903168 bytes (1336 MiB) / 3370123264 bytes (3214 MiB) up to 4261412864 bytes (4064 MiB)     CPUs: 4     Processor Vendor: GenuineIntel     Processor Name: 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz     Identifier: Intel64 Family 6 Model 140 Stepping 1     Microarchitecture: Tiger Lake     Frequency (GHz): 3.00     Number of physical packages: 1     Number of physical CPUs: 2     Number of logical CPUs: 4     Graphics card #0 name: Intel(R) UHD Graphics     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MB): 128.00     Graphics card #0 deviceId: 0x9a78     Graphics card #0 versionInfo: DriverVersion=31.0.101.5186     Memory slot #0 capacity (MB): 4096.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 4096.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MB): 19346.77     Virtual memory used (MB): 17116.04     Swap memory total (MB): 11511.14     Swap memory used (MB): 2066.14     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx4064m -Xms256m     Launched Version: forge-47.3.0     Backend library: LWJGL version 3.3.1 build 7     Backend API: Intel(R) UHD Graphics GL version 4.6.0 - Build 31.0.101.5186, Intel     Window size: 1093x615     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'     Type: Integrated Server (map_client.txt)     Graphics mode: fast     Resource Packs:      Current Language: en_us     CPU: 4x 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz     Server Running: true     Player Count: 1 / 8; [ServerPlayer['muglad'/4, l='ServerLevel[New Worldassssssssssssasasas]', x=11.34, y=-62.50, z=7.05]]     Data Packs: vanilla, mod:elevated_enchantment, mod:treechopper (incompatible), mod:quarryplus, mod:geckolib, mod:playeranimator (incompatible), mod:placebo (incompatible), mod:modernfix (incompatible), mod:citadel (incompatible), mod:mixinextras (incompatible), mod:morebuckets, mod:botanypotstiers (incompatible), mod:bookshelf, mod:ironshulkerbox, mod:ironbookshelves, mod:raw_iron_block_can_be_heated, mod:iron_extra_things, mod:cloth_config (incompatible), mod:more_villager_trades, mod:ironbows (incompatible), mod:industrialforegoing (incompatible), mod:farmersdelight, mod:iron_ender_chests, mod:ironfurnaces, mod:structurecompass, mod:lionfishapi (incompatible), mod:mysticaladaptations, mod:maxxam_aiot, mod:structureexpansion (incompatible), mod:patchouli (incompatible), mod:ironchests (incompatible), mod:advancednetherite, mod:mysticalagriculturedelight, mod:gk_unbreakable (incompatible), mod:attributeslib (incompatible), mod:mysticalcustomization, mod:mifa, mod:resourcefullib (incompatible), mod:veinst, mod:architectury (incompatible), mod:squatgrow (incompatible), mod:xenotech (incompatible), mod:monolib (incompatible), mod:disenchanting_table (incompatible), mod:more_bows_and_arrows (incompatible), mod:hasteenchantment, mod:quad (incompatible), mod:ironcoals (incompatible), mod:framework, mod:nebs (incompatible), mod:majruszlibrary (incompatible), mod:fixed_netherite, mod:x_player_info (incompatible), mod:cucumber, mod:jeg (incompatible), mod:ironladders, mod:attributefix (incompatible), mod:configlibtxf, mod:fortune_on_netherite_forge, mod:caelus (incompatible), mod:enchantment_reveal (incompatible), mod:botanypots (incompatible), mod:starlight (incompatible), mod:grand_enchantment_table, mod:iron_bushes, mod:iron_fishing_rods, mod:puzzlesaccessapi, mod:forge, mod:more_wandering_trades, mod:mctb (incompatible), mod:mteg (incompatible), mod:mysticalagriculture, mod:mysticalagradditions, mod:matc, mod:mysticriftsmelt_ancient_debris, mod:more_underground_structures, mod:lucky (incompatible), mod:aurorasarsenal (incompatible), mod:alexscaves, mod:more_useful_copper (incompatible), mod:enchdesc (incompatible), mod:customcursorcomm (incompatible), mod:titanium (incompatible), mod:mysterious_mountain_lib (incompatible), mod:ironspawners, mod:enchlevellangpatch (incompatible), mod:vtaw_mw (incompatible), mod:mr_reds_morestructures, mod:watching, mod:ironbarrels, mod:mysticalexpansion, mod:easy_emerald, mod:more_beautiful_torches (incompatible), mod:universalenchants, mod:immediatelyfast (incompatible), mod:moremobvariants, mod:ferritecore (incompatible), mod:mvw, mod:puzzleslib, mod:overpowered_creative_items, mod:overloadedarmorbar (incompatible), mod:overflowingbars     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.5.jar eventbus PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@null         [email protected]         javafml@null     Mod List:          Elevated enchantment-forge_1.20.1.jar             |Elevated enchantment          |elevated_enchantment          |1.0.0               |DONE      |Manifest: NOSIGNATURE         treechopper-1.0.0.jar                             |TreeChopper                   |treechopper                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         AdditionalEnchantedMiner-1.20.1-1201.1.90.jar     |QuarryPlus                    |quarryplus                    |1201.1.90           |DONE      |Manifest: ef:50:af:b3:03:e0:3e:70:a7:ef:78:77:a5:4d:d4:b5:07:ec:df:9d:d6:f3:12:13:c9:3c:cd:9a:0a:3e:6b:43         geckolib-forge-1.20.1-4.4.9.jar                   |GeckoLib 4                    |geckolib                      |4.4.9               |DONE      |Manifest: NOSIGNATURE         player-animation-lib-forge-1.0.2-rc1+1.20.jar     |Player Animator               |playeranimator                |1.0.2-rc1+1.20      |DONE      |Manifest: NOSIGNATURE         Placebo-1.20.1-8.6.2.jar                          |Placebo                       |placebo                       |8.6.2               |DONE      |Manifest: NOSIGNATURE         modernfix-forge-5.19.5+mc1.20.1.jar               |ModernFix                     |modernfix                     |5.19.5+mc1.20.1     |DONE      |Manifest: NOSIGNATURE         citadel-2.6.0-1.20.1.jar                          |Citadel                       |citadel                       |2.6.0               |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.4.1.jar                       |MixinExtras                   |mixinextras                   |0.4.1               |DONE      |Manifest: NOSIGNATURE         MoreBuckets-1.20.1-4.0.4.jar                      |More Buckets                  |morebuckets                   |4.0.4               |DONE      |Manifest: NOSIGNATURE         BotanyPotsTiers-Forge-1.20.1-6.0.1.jar            |BotanyPotsTiers               |botanypotstiers               |6.0.1               |DONE      |Manifest: NOSIGNATURE         Bookshelf-Forge-1.20.1-20.2.13.jar                |Bookshelf                     |bookshelf                     |20.2.13             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         ironshulkerbox-1.20.1-5.3.2.jar                   |Iron Shulker Boxes            |ironshulkerbox                |1.20.1-5.3.2        |DONE      |Manifest: NOSIGNATURE         ironbookshelves-1.20.1-1.4.0-forge.jar            |Iron Bookshelves              |ironbookshelves               |1.20.1-1.4.0-forge  |DONE      |Manifest: NOSIGNATURE         raw_iron_block_can_heated-1.0.0-forge-1.20.1.jar  |Raw Iron Block can be heated  |raw_iron_block_can_be_heated  |1.0.0               |DONE      |Manifest: NOSIGNATURE         Iron Extra Things 1.0.6.jar                       |Iron Extra Things             |iron_extra_things             |1.0.5               |DONE      |Manifest: NOSIGNATURE         cloth-config-11.1.136-forge.jar                   |Cloth Config v10 API          |cloth_config                  |11.1.136            |DONE      |Manifest: NOSIGNATURE         More Villager Trades 1.0.0 - 1.20.1.jar           |More Villager Trades          |more_villager_trades          |1.0.0               |DONE      |Manifest: NOSIGNATURE         ironbows-1.20.1-FORGE-1.10.jar                    |Iron Bows (Forge)             |ironbows                      |1.20.1-FORGE-1.10   |DONE      |Manifest: NOSIGNATURE         industrial-foregoing-1.20.1-3.5.19.jar            |Industrial Foregoing          |industrialforegoing           |3.5.19              |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.5.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.5        |DONE      |Manifest: NOSIGNATURE         iron_ender_chests-1.20-1.0.3.jar                  |Iron Ender Chests             |iron_ender_chests             |1.20-1.0.3          |DONE      |Manifest: NOSIGNATURE         ironfurnaces-1.20.1-4.1.6.jar                     |Iron Furnaces                 |ironfurnaces                  |4.1.6               |DONE      |Manifest: NOSIGNATURE         StructureCompass-1.20.1-2.1.0.jar                 |Structure Compass Mod         |structurecompass              |2.1.0               |DONE      |Manifest: NOSIGNATURE         lionfishapi-2.4-Fix.jar                           |LionfishAPI                   |lionfishapi                   |2.4-Fix             |DONE      |Manifest: NOSIGNATURE         MysticalAdaptations-1.20.1-1.0.1.jar              |Mystical Adaptations          |mysticaladaptations           |1.20.1-1.0.1        |DONE      |Manifest: NOSIGNATURE         AIOT 1.20.1 (v2.3) by 96maxxam69.jar              |maxxam AIOTs                  |maxxam_aiot                   |2.3                 |DONE      |Manifest: NOSIGNATURE         structure-expansion-2.0.1-build.11.jar            |Structure Expansion           |structureexpansion            |2.0.1-build.11      |DONE      |Manifest: NOSIGNATURE         Patchouli-1.20.1-84-FORGE.jar                     |Patchouli                     |patchouli                     |1.20.1-84-FORGE     |DONE      |Manifest: NOSIGNATURE         ironchests-5.0.2-forge.jar                        |Iron Chests: Restocked        |ironchests                    |5.0.2               |DONE      |Manifest: NOSIGNATURE         advancednetherite-forge-2.1.3-1.20.1.jar          |Advanced Netherite            |advancednetherite             |2.1.3               |DONE      |Manifest: NOSIGNATURE         mysticalagriculturedelight-1.0.2-1.20.1.jar       |Mystical Agriculture Delight  |mysticalagriculturedelight    |1.0.2-1.20.1        |DONE      |Manifest: NOSIGNATURE         gk_unbreakable-2.7.jar                            |Simple Unbreakable Tools      |gk_unbreakable                |2.7                 |DONE      |Manifest: NOSIGNATURE         ApothicAttributes-1.20.1-1.3.7.jar                |Apothic Attributes            |attributeslib                 |1.3.7               |DONE      |Manifest: NOSIGNATURE         MysticalCustomization-1.20.1-5.0.2.jar            |Mystical Customization        |mysticalcustomization         |5.0.2               |DONE      |Manifest: NOSIGNATURE         mifa-forge-1.20.x-1.1.1.jar                       |More Industrial Foregoing Addo|mifa                          |1.1.1               |DONE      |Manifest: NOSIGNATURE         resourcefullib-forge-1.20-2.0.6.jar               |Resourceful Lib               |resourcefullib                |2.0.6               |DONE      |Manifest: NOSIGNATURE         veinst-1.0.0.jar                                  |Veinst                        |veinst                        |1.0.0               |DONE      |Manifest: NOSIGNATURE         architectury-9.2.14-forge.jar                     |Architectury                  |architectury                  |9.2.14              |DONE      |Manifest: NOSIGNATURE         squatgrow-forge-5.3.0+mc1.20.1.jar                |Squat Grow                    |squatgrow                     |5.3.0+mc1.20.1      |DONE      |Manifest: NOSIGNATURE         xenotech-1.20.1-1.17.jar                          |XenoTech                      |xenotech                      |1.20.1-1.17         |DONE      |Manifest: NOSIGNATURE         monolib-forge-1.20.1-1.4.1.jar                    |MonoLib                       |monolib                       |1.4.1               |DONE      |Manifest: NOSIGNATURE         disenchanting_table-merged-1.20.1-3.1.0.jar       |Dis-Enchanting Table          |disenchanting_table           |3.1.0               |DONE      |Manifest: NOSIGNATURE         more_bows_and_arrows-merged-1.20.1-3.2.0.jar      |More Bows and Arrows          |more_bows_and_arrows          |3.2.0               |DONE      |Manifest: NOSIGNATURE         Haste Enchantment 1.0.0 - 1.20.1.jar              |Haste Enchantment             |hasteenchantment              |1.0.0               |DONE      |Manifest: NOSIGNATURE         Quad-1.2.9+1.20.4-Forge.jar                       |Quad                          |quad                          |1.2.9               |DONE      |Manifest: NOSIGNATURE         ironcoals-4.1.6.jar                               |Iron Coals                    |ironcoals                     |4.1.6               |DONE      |Manifest: NOSIGNATURE         framework-forge-1.20.1-0.7.12.jar                 |Framework                     |framework                     |0.7.12              |DONE      |Manifest: 0d:78:5f:44:c0:47:0c:8c:e2:63:a3:04:43:d4:12:7d:b0:7c:35:37:dc:40:b1:c1:98:ec:51:eb:3b:3c:45:99         NekosEnchantedBooks-1.20.1-1.8.0.jar              |Neko's Enchanted Books        |nebs                          |1.8.0               |DONE      |Manifest: NOSIGNATURE         majrusz-library-forge-1.20.1-7.0.8.jar            |Majrusz Library               |majruszlibrary                |7.0.8               |DONE      |Manifest: NOSIGNATURE         ReworkedNetheriteV2.jar                           |Fixed netherite               |fixed_netherite               |1.0.0               |DONE      |Manifest: NOSIGNATURE         X-PlayerInfo-1.20.1-1.0.8.1-SNAPSHOT.jar          |X-PlayerInfo                  |x_player_info                 |1.20.1-1.0.8.1-SNAPS|DONE      |Manifest: NOSIGNATURE         Cucumber-1.20.1-7.0.13.jar                        |Cucumber Library              |cucumber                      |7.0.13              |DONE      |Manifest: NOSIGNATURE         JustEnoughGuns-0.8.0-1.20.1.jar                   |Just Enough Guns              |jeg                           |0.8.0               |DONE      |Manifest: NOSIGNATURE         ironladders-1.20.1-2.5.10-forge.jar               |Iron Ladders                  |ironladders                   |2.5.10              |DONE      |Manifest: NOSIGNATURE         AttributeFix-Forge-1.20.1-21.0.4.jar              |AttributeFix                  |attributefix                  |21.0.4              |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         configlibtxf-4.2.5-forge.jar                      |ConfigLib TXF                 |configlibtxf                  |4.2.5-forge         |DONE      |Manifest: NOSIGNATURE         fortune_on_netherite_1.1.0_forge_1.20.1.jar       |Fortune on Netherite forge    |fortune_on_netherite_forge    |1.0.0               |DONE      |Manifest: NOSIGNATURE         caelus-forge-3.2.0+1.20.1.jar                     |Caelus API                    |caelus                        |3.2.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         Enchantment-Reveal-1.20.1-Forge.jar               |Enchantment Reveal            |enchantment_reveal            |1.0.0               |DONE      |Manifest: NOSIGNATURE         BotanyPots-Forge-1.20.1-13.0.39.jar               |BotanyPots                    |botanypots                    |13.0.39             |DONE      |Manifest: NOSIGNATURE         starlight-1.1.2+forge.1cda73c.jar                 |Starlight                     |starlight                     |1.1.2+forge.1cda73c |DONE      |Manifest: NOSIGNATURE         Grand Enchantment Table 1.0.0 - 1.20.1.jar        |Grand Enchantment Table       |grand_enchantment_table       |1.0.0               |DONE      |Manifest: NOSIGNATURE         Iron Bushes 1.0.0 - 1.20.1.jar                    |Iron Bushes                   |iron_bushes                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         Iron Fishing Rods 1.0.0 - 1.20.1.jar              |Iron Fishing Rods             |iron_fishing_rods             |1.0.0               |DONE      |Manifest: NOSIGNATURE         puzzlesaccessapi-forge-8.0.7.jar                  |Puzzles Access Api            |puzzlesaccessapi              |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         forge-1.20.1-47.3.0-universal.jar                 |Forge                         |forge                         |47.3.0              |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         More Wandering Trades 1.0.0 - 1.20.1.jar          |More Wandering Trades         |more_wandering_trades         |1.0.0               |DONE      |Manifest: NOSIGNATURE         [1.20.1]MoreCraftingTables-5.1.3.jar              |More Crafting Tables Mod      |mctb                          |1.20.1              |DONE      |Manifest: NOSIGNATURE         M'TEG-1.1.0-1.20.1.jar                            |Mo' Than Enough Guns          |mteg                          |1.1.0               |DONE      |Manifest: NOSIGNATURE         MysticalAgriculture-1.20.1-7.0.14.jar             |Mystical Agriculture          |mysticalagriculture           |7.0.14              |DONE      |Manifest: NOSIGNATURE         MysticalAgradditions-1.20.1-7.0.6.jar             |Mystical Agradditions         |mysticalagradditions          |7.0.6               |DONE      |Manifest: NOSIGNATURE         matc-1.6.0.jar                                    |Mystical Agriculture Tiered Cr|matc                          |1.6.0               |DONE      |Manifest: NOSIGNATURE         client-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         mysticriftsmelt_ancient_debris-1.2.2-forge-1.20.1.|MysticRift:Smelt Ancient Debri|mysticriftsmelt_ancient_debris|1.2.2               |DONE      |Manifest: NOSIGNATURE         more_undrground_structures_1.20.1_8.1.jar         |more underground structures   |more_underground_structures   |7.1.0               |DONE      |Manifest: NOSIGNATURE         lucky-block-forge-1.20.1-13.0.jar                 |Lucky Block                   |lucky                         |1.20.1-13.0         |DONE      |Manifest: NOSIGNATURE         Aurora's-Arsenal-1.0.0-1.20.1.jar                 |Aurora's Arsenal              |aurorasarsenal                |1.0.0               |DONE      |Manifest: NOSIGNATURE         alexscaves-2.0.2.jar                              |Alex's Caves                  |alexscaves                    |2.0.2               |DONE      |Manifest: NOSIGNATURE         more_useful_copper-merged-1.20.1-1.2.0.jar        |More Useful Copper            |more_useful_copper            |1.2.0               |DONE      |Manifest: NOSIGNATURE         EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar  |EnchantmentDescriptions       |enchdesc                      |17.1.19             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         CustomCursor-comm-1.2.0-forge.jar                 |customcursorcomm              |customcursorcomm              |1.0-SNAPSHOT        |DONE      |Manifest: NOSIGNATURE         titanium-1.20.1-3.8.32.jar                        |Titanium                      |titanium                      |3.8.32              |DONE      |Manifest: NOSIGNATURE         mysterious_mountain_lib-1.5.17-1.20.1.jar         |Mysterious Mountain Lib       |mysterious_mountain_lib       |1.5.17-1.20.1       |DONE      |Manifest: NOSIGNATURE         ironspawners-1.0.0.jar                            |Iron Spawners                 |ironspawners                  |1.0.0               |DONE      |Manifest: NOSIGNATURE         enchlevel-langpatch-2.2.8.jar                     |Enchantment Level Language Pat|enchlevellangpatch            |2.2.8               |DONE      |Manifest: NOSIGNATURE         vtaw_mw-forge-1.20.1-1.0.4.jar                    |Variant Tools and Weaponry - E|vtaw_mw                       |1.0.4               |DONE      |Manifest: NOSIGNATURE         reds-more-structures-1.0.8-common.jar             |Red’s More Structures         |mr_reds_morestructures        |1.0.8               |DONE      |Manifest: NOSIGNATURE         From-The-Fog-1.20-v1.9.2-Forge-Fabric.jar         |From The Fog                  |watching                      |1.9.2               |DONE      |Manifest: NOSIGNATURE         IronBarrels1.20.1-V1.0.jar                        |IronBarrelsUpdated            |ironbarrels                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         MysticalExpansion-1.20.1-1.0.0.jar                |Mystical Expansion            |mysticalexpansion             |1.0.0               |DONE      |Manifest: NOSIGNATURE         EasyEmerald-Forge-1.20.1-1.5.8.jar                |Easy Emerald                  |easy_emerald                  |1.5.8               |DONE      |Manifest: NOSIGNATURE         more_beautiful_torches-merged-1.20.1-3.0.0.jar    |More Beautiful Torches!       |more_beautiful_torches        |3.0.0               |DONE      |Manifest: NOSIGNATURE         UniversalEnchants-v8.0.0-1.20.1-Forge.jar         |Universal Enchants            |universalenchants             |8.0.0               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         ImmediatelyFast-Forge-1.3.2+1.20.4.jar            |ImmediatelyFast               |immediatelyfast               |1.3.2+1.20.4        |DONE      |Manifest: NOSIGNATURE         moremobvariants-forge+1.20.1-1.3.0.1.jar          |More Mob Variants             |moremobvariants               |1.3.0.1             |DONE      |Manifest: NOSIGNATURE         ferritecore-6.0.1-forge.jar                       |Ferrite Core                  |ferritecore                   |6.0.1               |DONE      |Manifest: 41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a         Mvw-2.3.3c.jar                                    |MoreVanillaWeapons            |mvw                           |2.3.3c              |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.25-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.25              |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         Overpowered Creative Items.jar                    |Overpowered Creative Items    |overpowered_creative_items    |1.0.0               |DONE      |Manifest: NOSIGNATURE         overloadedarmorbar-1.20.1-1.jar                   |Overloaded Armor Bar          |overloadedarmorbar            |1.20.1-1            |DONE      |Manifest: NOSIGNATURE         OverflowingBars-v8.0.1-1.20.1-Forge.jar           |Overflowing Bars              |overflowingbars               |8.0.1               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a     Crash Report UUID: ccaf101c-823f-47b9-9c2f-7d3d0db92823     FML: 47.3     Forge: net.minecraftforge:47.3.0
  • Topics

×
×
  • Create New...

Important Information

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