Jump to content

[SOLVED] GUI Items in player inventory behaving awkwardly


intermediateuser

Recommended Posts

I have a very simple block.  When you right-click that block, there appears a very simple GUI that, currently, only has one placeholder button and the player's inventory.  The items in the player's inventory appear to be placed correctly, but when clicked, they hop to the cursor then immediately drop back into the inventory.  Sometimes I can pick up an item but it doesn't appear to *actually* be happening when I click again; or the item disappears entirely; or the item is dropped into the world.

 

Edit: added the tile entity and my proxies, for reference.

 

MerchantBlock.java

package x.thealphaelement.block;

import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import x.thealphaelement.TheAlphaElement;
import x.thealphaelement.tileentity.TileEntityMerchantBlock;

public class MerchantBlock extends BlockContainer {

private InventoryPlayer playerInventory;

        public MerchantBlock (int id, int texture, Material material) {
                super(id, material);
                
                setHardness(0.3F);
        		setStepSound(soundWoodFootstep);
        		setUnlocalizedName("merchantBlock");
        		setCreativeTab(CreativeTabs.tabDecorations);
        }
        
        public void registerIcons(IconRegister iconRegister) {
        	blockIcon = iconRegister.registerIcon("TheAlphaElement:blocktest");
        }
        
        public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
        {
        	TileEntityMerchantBlock merchantBlock = (TileEntityMerchantBlock)par1World.getBlockTileEntity(par2, par3, par4);
            par5EntityPlayer.openGui(TheAlphaElement.instance, 0, par1World, par2, par3, par4);
            return true;
        }

	@Override
	public TileEntity createNewTileEntity(World world) {
		return new TileEntityMerchantBlock();
	}

 

GuiMerchantBlock.java

package x.thealphaelement.client.gui;

import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.EntityPlayer;

import org.lwjgl.opengl.GL11;

import x.thealphaelement.tileentity.TileEntityMerchantBlock;

public class GuiMerchantBlock extends GuiContainer {

public final int xSizeOfTexture = 176;
public final int ySizeOfTexture = 207;
private int inventoryRows = 0;

private EntityPlayer player; 

public GuiMerchantBlock(EntityPlayer player, TileEntityMerchantBlock te) {
	super(new ContainerMerchantBlock(player.inventory, te));
	this.player = player;
	short short1 = 223;
        int i = short1 - 108;
        this.inventoryRows = player.inventory.getSizeInventory() / 9;
        this.ySize = i + this.inventoryRows * 18;
       

}

public void initGui()
{
	super.initGui();
	int posX = (this.width - xSizeOfTexture) / 2;
	int posY = (this.height - ySizeOfTexture) / 2;
	this.buttonList.clear();
	this.buttonList.add(new GuiButton(0, posX+ 40, posY + 40, 100, 20, "no use"));
}

@Override
public boolean doesGuiPauseGame()
{
return false;
}

@Override
protected void keyTyped(char par1, int par2) {
	if (par2 == 1 || par2 == this.mc.gameSettings.keyBindInventory.keyCode) {
		this.mc.thePlayer.closeScreen();
	}
}

public void actionPerformed(GuiButton button) {
	switch(button.id) {
		case 0: player.addChatMessage("Good job!");

		break;
		default:	
	}
}

@Override
protected void drawGuiContainerBackgroundLayer(float f, int i, int j) {
	GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
	this.mc.renderEngine.bindTexture("/mods/TheAlphaElement/textures/gui/generalMerchant.png");

	int posX = (this.width - xSizeOfTexture) / 2;
	int posY = (this.height - ySizeOfTexture) / 2;


	drawTexturedModalRect(posX, posY, 0, 0, this.xSize, ySizeOfTexture);

}


}

 

ContainerMerchantBlock.java

package x.thealphaelement.client.gui;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import x.thealphaelement.tileentity.TileEntityMerchantBlock;

public class ContainerMerchantBlock extends Container {

private TileEntityMerchantBlock tileEntity;
    private int numRows;
    protected IInventory playerInventory;

public ContainerMerchantBlock(InventoryPlayer playerInv, TileEntityMerchantBlock te) {
	tileEntity = te;
	playerInventory = playerInv;
	playerInv.openChest();
        this.numRows = playerInv.getSizeInventory() / 9;
        int i = (this.numRows - 4) * 18;
        int j;
        int k;

        for (j = 0; j < 3; ++j)
        {
            for (k = 0; k < 9; ++k)
            {
                this.addSlotToContainer(new Slot(playerInv, k + j * 9 + 9, 8 + k * 18, 115 + j * 18 + i));
            }  
        }
        
        for (j = 0; j < 9; ++j)
        {
            this.addSlotToContainer(new Slot(playerInv, j, 8 + j * 18, 173 + i));
        }
        
}

@Override
public boolean canInteractWith(EntityPlayer entityplayer) {
	return playerInventory.isUseableByPlayer(entityplayer);
}

public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) {
        return null;
    }

}

 

TileEntityMerchantBlock.java

package x.thealphaelement.tileentity;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;

public class TileEntityMerchantBlock extends TileEntity implements IInventory {

public TileEntityMerchantBlock() {

}

public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
{
         if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this)
         {
                 return false;
         }

         return par1EntityPlayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D;
}

@Override
public int getSizeInventory() {
	// TODO Auto-generated method stub
	return 0;
}

@Override
public ItemStack getStackInSlot(int i) {
	// TODO Auto-generated method stub
	return null;
}

@Override
public ItemStack decrStackSize(int i, int j) {
	// TODO Auto-generated method stub
	return null;
}

@Override
public ItemStack getStackInSlotOnClosing(int i) {
	// TODO Auto-generated method stub
	return null;
}

@Override
public void setInventorySlotContents(int i, ItemStack itemstack) {
	// TODO Auto-generated method stub

}

@Override
public String getInvName() {
	// TODO Auto-generated method stub
	return null;
}

@Override
public boolean isInvNameLocalized() {
	// TODO Auto-generated method stub
	return false;
}

@Override
public int getInventoryStackLimit() {
	// TODO Auto-generated method stub
	return 0;
}

@Override
public void openChest() {
	// TODO Auto-generated method stub

}

@Override
public void closeChest() {
	// TODO Auto-generated method stub

}

@Override
public boolean isStackValidForSlot(int i, ItemStack itemstack) {
	// TODO Auto-generated method stub
	return false;
}

}

 

ClientProxy.java

package x.thealphaelement.client;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import x.thealphaelement.CommonProxy;
import x.thealphaelement.client.gui.GuiMerchantBlock;
import x.thealphaelement.client.renderer.RenderBlazeModded;
import x.thealphaelement.client.renderer.RenderCreeperModded;
import x.thealphaelement.client.renderer.RenderEndermanModded;
import x.thealphaelement.client.renderer.RenderGhastModded;
import x.thealphaelement.client.renderer.RenderSkeletonModded;
import x.thealphaelement.client.renderer.RenderSpiderModded;
import x.thealphaelement.client.renderer.RenderWitchModded;
import x.thealphaelement.client.renderer.RenderZombieModded;
import x.thealphaelement.entity.monster.EntityBlazeModded;
import x.thealphaelement.entity.monster.EntityBlueSkeleton;
import x.thealphaelement.entity.monster.EntityBlueSpider;
import x.thealphaelement.entity.monster.EntityBlueZombie;
import x.thealphaelement.entity.monster.EntityCaveSpiderModded;
import x.thealphaelement.entity.monster.EntityCreeperModded;
import x.thealphaelement.entity.monster.EntityEndermanModded;
import x.thealphaelement.entity.monster.EntityGhastModded;
import x.thealphaelement.entity.monster.EntityPigZombieModded;
import x.thealphaelement.entity.monster.EntityRedSkeleton;
import x.thealphaelement.entity.monster.EntityRedSpider;
import x.thealphaelement.entity.monster.EntityRedZombie;
import x.thealphaelement.entity.monster.EntitySkeletonModded;
import x.thealphaelement.entity.monster.EntitySpiderModded;
import x.thealphaelement.entity.monster.EntitySpiderling;
import x.thealphaelement.entity.monster.EntityWitchModded;
import x.thealphaelement.entity.monster.EntityZombieModded;
import x.thealphaelement.tileentity.TileEntityMerchantBlock;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;

public class ClientProxy extends CommonProxy {
        
        @Override
        public void registerRenderers() {
        	RenderingRegistry.registerEntityRenderingHandler(EntitySkeletonModded.class, new RenderSkeletonModded());
            EntityRegistry.registerGlobalEntityID(EntitySkeletonModded.class, "NormalSkeleton", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityZombieModded.class, new RenderZombieModded());
            EntityRegistry.registerGlobalEntityID(EntityZombieModded.class, "NormalZombie", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntitySpiderModded.class, new RenderSpiderModded());
            EntityRegistry.registerGlobalEntityID(EntitySpiderModded.class, "NormalSpider", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityCreeperModded.class, new RenderCreeperModded());
            EntityRegistry.registerGlobalEntityID(EntityCreeperModded.class, "NormalCreeper", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityEndermanModded.class, new RenderEndermanModded());
            EntityRegistry.registerGlobalEntityID(EntityEndermanModded.class, "NormalEnderman", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityCaveSpiderModded.class, new RenderSpiderModded());
            EntityRegistry.registerGlobalEntityID(EntityCaveSpiderModded.class, "NormalCaveSpider", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityWitchModded.class, new RenderWitchModded());
            EntityRegistry.registerGlobalEntityID(EntityWitchModded.class, "NormalWitch", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityBlazeModded.class, new RenderBlazeModded());
            EntityRegistry.registerGlobalEntityID(EntityBlazeModded.class, "NormalBlaze", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityGhastModded.class, new RenderGhastModded());
            EntityRegistry.registerGlobalEntityID(EntityGhastModded.class, "NormalGhast", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityPigZombieModded.class, new RenderZombieModded());
            EntityRegistry.registerGlobalEntityID(EntityPigZombieModded.class, "NormalPigZombie", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityRedZombie.class, new RenderZombieModded());
            EntityRegistry.registerGlobalEntityID(EntityRedZombie.class, "RedZombie", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityBlueZombie.class, new RenderZombieModded());
            EntityRegistry.registerGlobalEntityID(EntityBlueZombie.class, "BlueZombie", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityRedSkeleton.class, new RenderSkeletonModded());
            EntityRegistry.registerGlobalEntityID(EntityRedSkeleton.class, "RedSkeleton", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityBlueSkeleton.class, new RenderSkeletonModded());
            EntityRegistry.registerGlobalEntityID(EntityBlueSkeleton.class, "BlueSkeleton", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityRedSpider.class, new RenderSpiderModded());
            EntityRegistry.registerGlobalEntityID(EntityRedSpider.class, "RedSpider", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntityBlueSpider.class, new RenderSpiderModded());
            EntityRegistry.registerGlobalEntityID(EntityBlueSpider.class, "BlueSpider", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            RenderingRegistry.registerEntityRenderingHandler(EntitySpiderling.class, new RenderSpiderModded());
            EntityRegistry.registerGlobalEntityID(EntitySpiderling.class, "Spiderling", EntityRegistry.findGlobalUniqueEntityId(), 3515848, 12102);
            
            
       }
        
        public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        	TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
        	if (tileEntity != null) {
        		switch(ID) {
        			case 0: return new GuiMerchantBlock(player, (TileEntityMerchantBlock)tileEntity); // your GUIs go here
        		}
        	}
        	return null;
        }
        
}

 

 

CommonProxy.java

package x.thealphaelement;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;

public class CommonProxy implements IGuiHandler {
        
	// Client stuff
        public void registerRenderers() {
                // Nothing here as the server doesn't render graphics!
        }

	@Override
	public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		return null;
	}

	@Override
	public Object getServerGuiElement(int ID, EntityPlayer player,
			World world, int x, int y, int z) {
		// TODO Auto-generated method stub
		return null;
	}

        
}

 

I feel like I'm really close here.  Any ideas?

Link to comment
Share on other sites

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
        {
        	TileEntityMerchantBlock merchantBlock = (TileEntityMerchantBlock)par1World.getBlockTileEntity(par2, par3, par4);
            par5EntityPlayer.openGui(TheAlphaElement.instance, 0, par1World, par2, par3, par4);
            return true;
        }

Here is your problem.Just change it to:

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
        {
           if(!par1World.isRemote){
        	TileEntityMerchantBlock merchantBlock =    (TileEntityMerchantBlock)par1World.getBlockTileEntity(par2, par3, par4);
            par5EntityPlayer.openGui(TheAlphaElement.instance, 0, par1World, par2, par3, par4);
            }
            return true;
        }

Link to comment
Share on other sites

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
        {
        	TileEntityMerchantBlock merchantBlock = (TileEntityMerchantBlock)par1World.getBlockTileEntity(par2, par3, par4);
            par5EntityPlayer.openGui(TheAlphaElement.instance, 0, par1World, par2, par3, par4);
            return true;
        }

Here is your problem.Just change it to:

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
        {
           if(!par1World.isRemote){
        	TileEntityMerchantBlock merchantBlock =    (TileEntityMerchantBlock)par1World.getBlockTileEntity(par2, par3, par4);
            par5EntityPlayer.openGui(TheAlphaElement.instance, 0, par1World, par2, par3, par4);
            }
            return true;
        }

 

Thank you so much for the response.  I've honestly been working on this sole issue for about 3 days.  When I make your change, though, the block simply doesn't activate anymore, lol.  This is really confusing.

Link to comment
Share on other sites

I forgot. Make the canInteractWith() method in your container aleays return true.

 

I've done that; it has no effect.  I tried making canInteractWith() always return true again with your code from above too, and the block still does not activate with the proposed change, so I simply changed it back.

Link to comment
Share on other sites

I posted my code here as per your PM. I'm not sure what your problem is, but I think it might be with your TileEntity.

 

Thanks for the help.  The problem persists quite stubbornly... as for my tile entity, I've updated the original post with it.  But it's mostly empty; I didn't think the tile entity had anything to do with the player's inventory.  The gui and block aren't calling for the block's inventory at all; for now, it's just trying to properly bind the player's inventory to the gui/container.

 

But, if you can see something in the mostly barebones tile entity, please let me know.

Link to comment
Share on other sites

I posted my code here as per your PM. I'm not sure what your problem is, but I think it might be with your TileEntity.

 

Thanks for the help.  The problem persists quite stubbornly... as for my tile entity, I've updated the original post with it.  But it's mostly empty; I didn't think the tile entity had anything to do with the player's inventory.  The gui and block aren't calling for the block's inventory at all; for now, it's just trying to properly bind the player's inventory to the gui/container.

 

But, if you can see something in the mostly barebones tile entity, please let me know.

The TileEntity is just as important as the Container. Perhaps more so. You need to add an ItemStack[] field and fix all those auto-generated IInventory functions. Look at my code for an example.

BEWARE OF GOD

---

Co-author of Pentachoron Labs' SBFP Tech.

Link to comment
Share on other sites

The TileEntity is just as important as the Container. Perhaps more so. You need to add an ItemStack[] field and fix all those auto-generated IInventory functions. Look at my code for an example.

 

I thought that might be the case, so before updating my original post I did change my tile entity to this, but it had no effect:

 

package x.thealphaelement.tileentity;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.StringTranslate;

public class TileEntityMerchantBlock extends TileEntity implements IInventory {

private ItemStack[] inventory = new ItemStack[8];
private boolean hasItem = false;

public TileEntityMerchantBlock() {

}

public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
{
         if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this)
         {
                 return false;
         }

         return par1EntityPlayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D;
}

@Override
public int getSizeInventory(){
	return this.inventory.length;
}

@Override
public ItemStack getStackInSlot(int index){
	return this.inventory[index];
}

@Override
public ItemStack decrStackSize(int slot, int num){
	if(this.inventory[slot]!=null){
		ItemStack stack;
		if(this.inventory[slot].stackSize<=num){
			stack = this.inventory[slot];
			this.inventory[slot] = null;
			return stack;
		}else{
			stack = this.inventory[slot].splitStack(num);
			if(this.inventory[slot].stackSize==0){
				this.inventory[slot] = null;
			}
			return stack;
		}
	}else return null;
}

@Override
public ItemStack getStackInSlotOnClosing(int index){
	if(this.inventory[index]!=null){
		ItemStack var2 = this.inventory[index];
		this.inventory[index] = null;
		return var2;
	}else return null;
}

@Override
public void setInventorySlotContents(int index, ItemStack stack){
	this.inventory[index] = stack;
	if(stack!=null&&stack.stackSize>this.getInventoryStackLimit()){
		stack.stackSize = this.getInventoryStackLimit();
	}
}

@Override
public String getInvName(){
	return StringTranslate.getInstance().translateKey("merchantBlock.name");
}

@Override
public boolean isInvNameLocalized(){
	return true;
}

@Override
public int getInventoryStackLimit(){
	return 64;
}

@Override
public void openChest() {
	// TODO Auto-generated method stub

}

@Override
public void closeChest() {
	// TODO Auto-generated method stub

}

@Override
public boolean isStackValidForSlot(int i, ItemStack itemstack) {
	// TODO Auto-generated method stub
	return true;
}



}

 

Then I reverted back to my original, barebones tile entity, seeing that the change didn't seem significant.  Am I editing the wrong methods in the tile entity?  Also, I suppose I'm confused as to how the tile entity can affect this because although the tile entity is called in the block's constructor, the tile entity is never actually used in the code.

Link to comment
Share on other sites

Considering that I am having the same problem, and that my tile entity does have the read and write functions (as well as simple packet code), and that their container doesn't actually create any slots for the tile, I would be quite surprised if that were the root of the problem.

 

here is my tile code to be clear:

package com.quargos.am.blocks.tiles;

import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet132TileEntityData;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.liquids.ILiquidTank;
import net.minecraftforge.liquids.LiquidContainerRegistry;
import net.minecraftforge.liquids.LiquidStack;

public class TileCrystaliser extends TileEntity implements IInventory,
        ILiquidTank
{
    public LiquidStack liquid = new LiquidStack(Block.waterStill, 0);
    
    public ItemStack[] contents = new ItemStack[3];
    
    @Override
    public void updateEntity()
    {
        super.updateEntity();
    }
    
    public Packet getDescriptionPacket()
    {
        NBTTagCompound nbtTag = new NBTTagCompound();
        this.writeToNBT(nbtTag);
        return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 1, nbtTag);
    }

    public void onDataPacket(INetworkManager net, Packet132TileEntityData packet) {
        readFromNBT(packet.customParam1);
    }
    
    @Override
    public void readFromNBT(NBTTagCompound nbt)
    {
        for(int i = 0; i < contents.length; i++)
        {
            contents[i] = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("content_" + i));
        }
        liquid.amount = nbt.getInteger("waterLevel");
        
        super.readFromNBT(nbt);
    }
    
    @Override
    public void writeToNBT(NBTTagCompound nbt)
    {
        for(int i = 0; i < contents.length; i++)
        {
            if(contents[i] != null)
                contents[i].writeToNBT(nbt.getCompoundTag("content_" + i)); //Ensure works!
        }
        nbt.setInteger("waterLevel", liquid.amount);
        
        super.writeToNBT(nbt);
    }
    
    
    //ILiquidTank
    @Override
    public LiquidStack getLiquid()
    {
        return liquid;
    }
    
    @Override
    public int getCapacity()
    {
        return 8*LiquidContainerRegistry.BUCKET_VOLUME;
    }
    
    @Override
    public int fill(LiquidStack resource, boolean doFill)
    {
        if(doFill)
        {
            if(resource.itemID == Block.waterStill.blockID)
            {
                int amount = liquid.amount + resource.amount;
                if(amount > getCapacity())
                {
                    amount -= getCapacity();
                    liquid.amount = getCapacity();
                    return resource.amount - amount;
                }
                liquid.amount += resource.amount;
                return resource.amount;
            }
        }
        return 0;
    }
    
    @Override
    public LiquidStack drain(int maxDrain, boolean doDrain)
    {
        if(doDrain)
        {
            liquid.amount -= maxDrain;
            if(liquid.amount < 0)
            {
                LiquidStack out = new LiquidStack(liquid.itemID, -liquid.amount);
                liquid.amount = 0;
                return out;
            }
            return new LiquidStack(liquid.itemID, maxDrain);
        }
        return null;
    }
    
    @Override
    public int getTankPressure()
    {
        return 0;
    }
    
    
    //IInventory
    
    
    @Override
    public int getSizeInventory()
    {
        return contents.length;
    }
    
    @Override
    public ItemStack getStackInSlot(int i)
    {
        if(i >= 0 && i < contents.length)
            return contents[i];
        return null;
    }
    
    @Override
    public ItemStack decrStackSize(int i, int j)
    {
        if(i >= 0 && i < contents.length)
        {
            if(contents[i].stackSize > j)
            {
                contents[i].stackSize -= j;
                return new ItemStack(contents[i].itemID,j,contents[i].getItemDamage());
            }
            ItemStack out = contents[i];
            contents[i] = null;
            return out;
        }
        return null;
    }
    
    @Override
    public ItemStack getStackInSlotOnClosing(int i)
    {
        return null;
    }
    
    @Override
    public void setInventorySlotContents(int i, ItemStack itemstack)
    {
        contents[i] = itemstack;
    }
    
    @Override
    public String getInvName()
    {
        return "Soul Crystaliser";
    }
    
    @Override
    public boolean isInvNameLocalized()
    {
        return true; //should change when implementing localisation stuff.
    }
    
    @Override
    public int getInventoryStackLimit()
    {
        return 64;
    }
    
    @Override
    public boolean isUseableByPlayer(EntityPlayer entityplayer)
    {
        return true;
    }
    
    @Override
    public void openChest()
    {
        
    }
    
    @Override
    public void closeChest()
    {
        
    }
    
    @Override
    public boolean isStackValidForSlot(int i, ItemStack itemstack)
    {
        return true;
    }
    
}

Link to comment
Share on other sites

You also need the NBT read/write functions. Actually, I think that is at the root of the problem.

 

I just added them, but am I mistaken to think the NBT stuff is for storing and loading the tile entity's inventory?  We're only dealing with player inventory here; the tile entity doesn't have an inventory (well, now it might, with the NBT stuff added).  New code here, though the problem is unaffected:

 

package x.thealphaelement.tileentity;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.StringTranslate;

public class TileEntityMerchantBlock extends TileEntity implements IInventory {

private ItemStack[] inventory = new ItemStack[8];
private boolean hasItem = false;

public TileEntityMerchantBlock() {

}

public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
{
         if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this)
         {
                 return false;
         }

         return par1EntityPlayer.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64D;
}

@Override
public int getSizeInventory(){
	return this.inventory.length;
}

@Override
public ItemStack getStackInSlot(int index){
	return this.inventory[index];
}

@Override
public ItemStack decrStackSize(int slot, int num){
	if(this.inventory[slot]!=null){
		ItemStack stack;
		if(this.inventory[slot].stackSize<=num){
			stack = this.inventory[slot];
			this.inventory[slot] = null;
			return stack;
		}else{
			stack = this.inventory[slot].splitStack(num);
			if(this.inventory[slot].stackSize==0){
				this.inventory[slot] = null;
			}
			return stack;
		}
	}else return null;
}

@Override
public ItemStack getStackInSlotOnClosing(int index){
	if(this.inventory[index]!=null){
		ItemStack var2 = this.inventory[index];
		this.inventory[index] = null;
		return var2;
	}else return null;
}

@Override
public void setInventorySlotContents(int index, ItemStack stack){
	this.inventory[index] = stack;
	if(stack!=null&&stack.stackSize>this.getInventoryStackLimit()){
		stack.stackSize = this.getInventoryStackLimit();
	}
}

@Override
public String getInvName(){
	return StringTranslate.getInstance().translateKey("merchantBlock.name");
}

@Override
public boolean isInvNameLocalized(){
	return true;
}

@Override
public int getInventoryStackLimit(){
	return 64;
}

@Override
public void openChest() {
	// TODO Auto-generated method stub

}

@Override
public void closeChest() {
	// TODO Auto-generated method stub

}

@Override
public boolean isStackValidForSlot(int i, ItemStack itemstack) {
	// TODO Auto-generated method stub
	return true;
}

@Override
public void writeToNBT(NBTTagCompound tagCompound){
	super.writeToNBT(tagCompound);
	NBTTagList tagList = new NBTTagList();
	for(int i = 0; i<this.inventory.length; ++i){
		if(this.inventory[i]!=null){
			NBTTagCompound ntc3 = new NBTTagCompound();
			ntc3.setByte("slot",(byte) i);
			this.inventory[i].writeToNBT(ntc3);
			tagList.appendTag(ntc3);
		}
	}
	tagCompound.setTag("items",tagList);
}

@Override
public void readFromNBT(NBTTagCompound tagCompound){
	super.readFromNBT(tagCompound);
	NBTTagList var2 = tagCompound.getTagList("items");
	for(int i = 0; i<var2.tagCount(); ++i){
		NBTTagCompound ntc3 = (NBTTagCompound) var2.tagAt(i);
		byte slot = ntc3.getByte("slot");
		if(slot>=0&&slot<this.inventory.length){
			this.inventory[slot] = ItemStack.loadItemStackFromNBT(ntc3);
		}
	}
}



}

Link to comment
Share on other sites

You also need the NBT read/write functions. Actually, I think that is at the root of the problem.

 

I just added them, but am I mistaken to think the NBT stuff is for storing and loading the tile entity's inventory?  We're only dealing with player inventory here; the tile entity doesn't have an inventory (well, now it might, with the NBT stuff added).  New code here, though the problem is unaffected:

-snip-

*impersonates Dirk Gently*

"I believe in the fundamental interconnectedness of all things."

 

...Actually, I'm just trying various things and hoping something works. I can't find anything wrong.

BEWARE OF GOD

---

Co-author of Pentachoron Labs' SBFP Tech.

Link to comment
Share on other sites

You also need the NBT read/write functions. Actually, I think that is at the root of the problem.

 

I just added them, but am I mistaken to think the NBT stuff is for storing and loading the tile entity's inventory?  We're only dealing with player inventory here; the tile entity doesn't have an inventory (well, now it might, with the NBT stuff added).  New code here, though the problem is unaffected:

-snip-

*impersonates Dirk Gently*

"I believe in the fundamental interconnectedness of all things."

 

...Actually, I'm just trying various things and hoping something works. I can't find anything wrong.

 

Hahaha alright then.  Well, at least I know it is most likely that my logic isn't flawed, and the issue probably has something more to do with Minecraft or Forge.

 

I really do appreciate you at least taking a look.

 

A bit more info that has come to light: it seems that when I click an item in the inventory, the item that gets picked up is the one from the slot above it.  I've run the process in a verbose manner, echoing the id's of the slots, and they seem to be placed in the correct order, but maybe this symptom of the problem tells of something you might know more about than a new modder does?

Link to comment
Share on other sites

I had realised much the same thing, except adding additional slots *before* the inventory results in offsetting the slot taken from, (see my post here which goes into a bit more detail about it and some other odd behaviour.)

 

Yeah I'm following your post and reading your updates.  Thanks for posting here to let me know in case I wasn't, though.  :)  Here's something I just tried, and it's produced some interesting information.  In your Container class, try adding this method:

 

public ItemStack slotClick(int par1, int par2, int par3, EntityPlayer par4EntityPlayer) {
	par4EntityPlayer.addChatMessage("clicky " + par1 + " " + par2 + " " + par3);
	super.slotClick(par1, par2, par3, par4EntityPlayer);
	return new ItemStack(Item.wheat);
}

 

The wheat is just a placeholder ItemStack to satisfy the return requirement.  What this does is override (but still activate, because of the super method call) the slotClick method, and it outputs the parameters the slotClick method is using to the player's chat screen (though you could use System.out.println() instead of player.addChatMessage() to have the echo go only to the console if you wanted).

 

I'm finding the only thing that changes is the first int, par1 (everything else is 0's; I'm not sure if that should concern me yet).  But the result is what interests me; the par1 is always a number that's equal to the slot it should be clicking on, plus 9 (meaning the method always tries to use the slot directly above the slot actually clicked).

 

I'm trying to find out why the method is identifying each slot the way it is.

Link to comment
Share on other sites

I just updated my latest post in the other thread, it appears that (with my mod at least) the server thinks that the player has their regular inventory open while the client thinks that the tile inventory is open. (which explains all of these oddities, since the player inventory has nine additional slots, 4 armour, 4 crafting, and the crafting output, and adding more slots in the custom container class will move the slots that the client closer to those the server uses)

 

As such; I guess there must be something we are both missing for the opening of the GUI.

 

EDIT: here is the code used for opening the GUI for me:

@Override
    public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer player, int a, float b, float c, float d)
    {
        TileEntity tileEntity = world.getBlockTileEntity(i, j, k);
        if (tileEntity == null || player.isSneaking()) 
        {
            return false;
        }
        player.openGui(Alchemagic.instance, 0, world, i, j, k);
        return true;
    }

Link to comment
Share on other sites

I decided to use a few break points to see what actually happens when I open the gui, and I found that it wasn't opening the gui handler server-side because my @Mod file didn't have an @NetworkMod annotation, simply adding @NetworkMod after the @Mod annotation and it's parameters seems to have fixed it for me.

Link to comment
Share on other sites

You also need the NBT read/write functions. Actually, I think that is at the root of the problem.

 

I just added them, but am I mistaken to think the NBT stuff is for storing and loading the tile entity's inventory?  We're only dealing with player inventory here; the tile entity doesn't have an inventory (well, now it might, with the NBT stuff added).  New code here, though the problem is unaffected:

-snip-

*impersonates Dirk Gently*

"I believe in the fundamental interconnectedness of all things."

 

...Actually, I'm just trying various things and hoping something works. I can't find anything wrong.

 

Hahaha alright then.  Well, at least I know it is most likely that my logic isn't flawed, and the issue probably has something more to do with Minecraft or Forge.

 

I really do appreciate you at least taking a look.

 

A bit more info that has come to light: it seems that when I click an item in the inventory, the item that gets picked up is the one from the slot above it.  I've run the process in a verbose manner, echoing the id's of the slots, and they seem to be placed in the correct order, but maybe this symptom of the problem tells of something you might know more about than a new modder does?

To be quite frank, I think it's more likely that you have a small typo somewhere; after all, I have a TE that works just fine. Maybe I can try doing an exhaustive compare... if I find the time.

BEWARE OF GOD

---

Co-author of Pentachoron Labs' SBFP Tech.

Link to comment
Share on other sites

Alright, finally got it.  My CommonProxy class didn't have container information in it.  I added this to my CommonProxy class:

 

@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
		if (tileEntity != null) {
			switch(ID) {
				case 0: return new ContainerMerchantBlock(player.inventory, (TileEntityMerchantBlock)tileEntity); // your Containers go here
			}
		}
		return null;
	}

 

I was mistakenly under the impression that a "server GUI element" (as in the method's name) wouldn't be needed for what I was trying to do, as the block was only supposed to display the player's inventory, and thus wouldn't need any inventory information from the server.  I therefore omitted this code.

 

It was only after hours of tracking through Minecraft's code and adding verbosity through System.out.println() at key points was I able to discover that, when opening a normal chest or furnace, or anything of the sort, Minecraft was referring to the container by its container class name (so, something like ContainerChest or ContainerFurnace), but when activating my MerchantBlock the container object that Minecraft referenced was "ContainerPlayer", which is the same container used when a player opens their inventory normally.

 

So my block was actually trying to manipulate the player's inventory via what Minecraft thought was the player's normal inventory window (which has additional slots), and the slots my ContainerMerchantBlock class were using, were, of course, mismatched to that of the player's inventory window.

 

Once I discovered this, it still took me quite some time searching through the code and adding verbosity to realize I had to tell the server what container to use by adding the above code to the CommonProxy class.

 

Thanks a ton Quarg, Newt, and Dark for your replies!  This has been quite a learning experience.

Link to comment
Share on other sites

Alright, finally got it.  My CommonProxy class didn't have container information in it.  I added this to my CommonProxy class:

 

@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
		if (tileEntity != null) {
			switch(ID) {
				case 0: return new ContainerMerchantBlock(player.inventory, (TileEntityMerchantBlock)tileEntity); // your Containers go here
			}
		}
		return null;
	}

 

I was mistakenly under the impression that a "server GUI element" (as in the method's name) wouldn't be needed for what I was trying to do, as the block was only supposed to display the player's inventory, and thus wouldn't need any inventory information from the server.  I therefore omitted this code.

 

It was only after hours of tracking through Minecraft's code and adding verbosity through System.out.println() at key points was I able to discover that, when opening a normal chest or furnace, or anything of the sort, Minecraft was referring to the container by its container class name (so, something like ContainerChest or ContainerFurnace), but when activating my MerchantBlock the container object that Minecraft referenced was "ContainerPlayer", which is the same container used when a player opens their inventory normally.

 

So my block was actually trying to manipulate the player's inventory via what Minecraft thought was the player's normal inventory window (which has additional slots), and the slots my ContainerMerchantBlock class were using, were, of course, mismatched to that of the player's inventory window.

 

Once I discovered this, it still took me quite some time searching through the code and adding verbosity to realize I had to tell the server what container to use by adding the above code to the CommonProxy class.

 

Thanks a ton Quarg, Newt, and Dark for your replies!  This has been quite a learning experience.

This is what programming is all about :)

 

I feel stupid to have missed that, though. I should have noticed that you were missing a common proxy function.

BEWARE OF GOD

---

Co-author of Pentachoron Labs' SBFP Tech.

Link to comment
Share on other sites

Thank you Community, I finally have my inventory working correctly, I had looked everywhere about what was wrong with my container, tileentity and my GUI bit I couldn't find anything that related to/fixed my issue. 

 

It wasn't until I got to this thread when someone mentioned that @NetworkMod was missing from their base mod class.  I added that and boom, all working. (I am sure I had that at some stage)

 

Again I would like to say thanks and love this community and love Open source. (will publish my code to github when closer to public release.)

Neoublie

Author of Codename: Project Shadow

 

if you do models and textures pm me. looking for some assistance.

Link to comment
Share on other sites

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

    • "downloading minecraft server failed, invalid Checksum. try again, or manually place server.jar to skip download"    
    • You have to create an Entity class called PlayerPart and use multiple of them to make the different parts of the player. See EnderDragonPart.java source code. The green hitboxes of the dragon are all EnderDragonParts
    • Yeah, so deltaMovement and jumping have to be done on the client. The reason it only happens on the client is so that the animations are smooth. Client to server communication for movement is not very smooth. You can move the player with player.setPos(x, y, z) on the server using manually managed velocity, but the player’s movement on the client will not be smooth. I hope this helps 😃
    • Every single time I start a mod pack it brings me to the launcher and then I play the game it opens up the game with the red screen and then eventually it crashes. It worked earlier this morning and I don't know why this is happening because I thought it was just one modpack but now nothing will open, it will just get to red screen loading everything and then eventually it crashes.
    • ---- Minecraft Crash Report ---- // Uh... Did I do that? Time: 2024-04-24 17:16:01 Description: mouseClicked event handler java.lang.IllegalStateException: Failed to load registries due to above errors     at net.minecraft.resources.RegistryDataLoader.m_247207_(RegistryDataLoader.java:77) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_246152_(WorldLoader.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_245736_(WorldLoader.java:58) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_214362_(WorldLoader.java:31) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.m_232896_(CreateWorldScreen.java:125) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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.worldselection.WorldSelectionList.m_233213_(WorldSelectionList.java:167) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.WorldSelectionList.<init>(WorldSelectionList.java:93) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.SelectWorldScreen.m_7856_(SelectWorldScreen.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.Screen.m_6575_(Screen.java:321) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91152_(Minecraft.java:1007) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,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.TitleScreen.m_279796_(TitleScreen.java:159) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.Button.m_5691_(Button.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractButton.m_5716_(AbstractButton.java:55) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractWidget.m_6375_(AbstractWidget.java:175) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.events.ContainerEventHandler.m_6375_(ContainerEventHandler.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:computing_frames,re:mixin,re:classloading}     at net.minecraft.client.gui.screens.TitleScreen.m_6375_(TitleScreen.java:294) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168084_(MouseHandler.java:92) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:437) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:189) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:102) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:APP:mixins.essential.json:client.Mixin_ThreadTaskExecutor,pl:mixin:A}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:188) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar%23153!/:build 7] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {re:mixin}     at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.platform.Window.m_85435_(Window.java:274) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1170) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1-forge-47.1.29-wrapper.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.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.29.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:?] {}     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 io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraft.resources.RegistryDataLoader.m_247207_(RegistryDataLoader.java:77) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_246152_(WorldLoader.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_245736_(WorldLoader.java:58) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.server.WorldLoader.m_214362_(WorldLoader.java:31) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.m_232896_(CreateWorldScreen.java:125) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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.worldselection.WorldSelectionList.m_233213_(WorldSelectionList.java:167) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.WorldSelectionList.<init>(WorldSelectionList.java:93) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.worldselection.SelectWorldScreen.m_7856_(SelectWorldScreen.java:54) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.gui.screens.Screen.m_6575_(Screen.java:321) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91152_(Minecraft.java:1007) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,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.TitleScreen.m_279796_(TitleScreen.java:159) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.Button.m_5691_(Button.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractButton.m_5716_(AbstractButton.java:55) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.AbstractWidget.m_6375_(AbstractWidget.java:175) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.events.ContainerEventHandler.m_6375_(ContainerEventHandler.java:38) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:computing_frames,re:mixin,re:classloading}     at net.minecraft.client.gui.screens.TitleScreen.m_6375_(TitleScreen.java:294) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.TitleScreenMixin,pl:mixin:APP:aether.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.TitleScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiMainMenu,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168084_(MouseHandler.java:92) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:437) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:189) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:102) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:APP:mixins.essential.json:client.Mixin_ThreadTaskExecutor,pl:mixin:A}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:188) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar%23153!/:build 7] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {re:mixin}     at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A} -- Affected screen -- Details:     Screen name: net.minecraft.client.gui.screens.TitleScreen Stacktrace:     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:437) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {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:aether.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.blur.json:MixinScreen,pl:mixin:APP:cumulus_menus.mixins.json:client.accessor.ScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.GuiScreenAccessor,pl:mixin:APP:mixins.essential.json:client.gui.MixinGuiScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:189) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:102) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin,pl:mixin:APP:mixins.essential.json:client.Mixin_ThreadTaskExecutor,pl:mixin:A}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:188) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent_Priority,pl:mixin:APP:creativecore.mixins.json:MouseHandlerAccessor,pl:mixin:APP:mixins.essential.json:client.MouseHelperAccessor,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiClickEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_GuiMouseReleaseEvent,pl:mixin:APP:mixins.essential.json:events.Mixin_MouseScrollEvent,pl:mixin:APP:mixins.essential.json:feature.chat.Mixin_ChatPeekScrolling,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar%23153!/:build 7] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar%23141!/:build 7] {re:mixin}     at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:201) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:212) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.essential.json:client.Mixin_SuppressScreenshotBufferFlip,pl:mixin:A}     at com.mojang.blaze3d.platform.Window.m_85435_(Window.java:274) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1170) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1-forge-47.1.29-wrapper.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.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.29.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:?] {}     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 io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: Yes     Packs: vanilla, mod_resources, essential Stacktrace:     at net.minecraft.client.ResourceLoadStateTracker.m_168562_(ResourceLoadStateTracker.java:49) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:classloading}     at net.minecraft.client.Minecraft.m_91354_(Minecraft.java:2326) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:735) ~[client-1.20.1-20230612.114412-srg.jar%23337!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1-forge-47.1.29-wrapper.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.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.29.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.1.29.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:?] {}     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 io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:67) ~[?:?] {} -- 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: 3035115104 bytes (2894 MiB) / 4664066048 bytes (4448 MiB) up to 15032385536 bytes (14336 MiB)     CPUs: 16     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 5800H with Radeon Graphics              Identifier: AuthenticAMD Family 25 Model 80 Stepping 0     Microarchitecture: Zen 3     Frequency (GHz): 3.19     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: AMD Radeon(TM) Graphics     Graphics card #0 vendor: Advanced Micro Devices, Inc. (0x1002)     Graphics card #0 VRAM (MB): 512.00     Graphics card #0 deviceId: 0x1638     Graphics card #0 versionInfo: DriverVersion=31.0.21024.5     Graphics card #1 name: NVIDIA GeForce RTX 3050 Ti Laptop GPU     Graphics card #1 vendor: NVIDIA (0x10de)     Graphics card #1 VRAM (MB): 4095.00     Graphics card #1 deviceId: 0x25a0     Graphics card #1 versionInfo: DriverVersion=31.0.15.5212     Memory slot #0 capacity (MB): 16384.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 16384.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MB): 36968.25     Virtual memory used (MB): 27557.49     Swap memory total (MB): 4864.00     Swap memory used (MB): 52.98     JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx14G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     Launched Version: 1.20.1-forge-47.1.29-wrapper     Backend library: LWJGL version 3.3.1 build 7     Backend API: NVIDIA GeForce RTX 3050 Ti Laptop GPU/PCIe/SSE2 GL version 4.6.0 NVIDIA 552.12, NVIDIA Corporation     Window size: 854x480     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'     Type: Client (map_client.txt)     Graphics mode: fancy     Resource Packs: vanilla, mod_resources     Current Language: en_us     CPU: 16x AMD Ryzen 7 5800H with Radeon Graphics      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.1.29.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.1.29.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar essential-loader TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@null         javafml@null     Mod List:          totw_modded-forge-1.20.1-1.0.5.jar                |Towers of the Wild Modded     |totw_modded                   |1.0.5               |DONE      |Manifest: NOSIGNATURE         man_of_many_planes-0.0.3+1.20.1-forge.jar         |Man of Many Planes            |man_of_many_planes            |0.0.3+1.20.1        |DONE      |Manifest: NOSIGNATURE         blue_skies-1.20.1-1.3.31.jar                      |Blue Skies                    |blue_skies                    |1.3.31              |DONE      |Manifest: NOSIGNATURE         satin-forge-1.20.1+1.15.0-SNAPSHOT.jar            |Satin Forge                   |satin                         |1.20.1+1.15.0-SNAPSH|DONE      |Manifest: NOSIGNATURE         geckolib-forge-1.20.1-4.4.4.jar                   |GeckoLib 4                    |geckolib                      |4.4.4               |DONE      |Manifest: NOSIGNATURE         botarium-forge-1.20.1-2.3.3.jar                   |Botarium                      |botarium                      |2.3.3               |DONE      |Manifest: NOSIGNATURE         aether-1.20.1-1.4.0-neoforge.jar                  |The Aether                    |aether                        |1.20.1-1.4.0-neoforg|DONE      |Manifest: NOSIGNATURE         naturalist-forge-4.0.3-1.20.1.jar                 |Naturalist                    |naturalist                    |4.0.3               |DONE      |Manifest: NOSIGNATURE         mcw-windows-2.2.1-mc1.20.1forge.jar               |Macaw's Windows               |mcwwindows                    |2.2.1               |DONE      |Manifest: NOSIGNATURE         valhelsia_furniture-forge-1.20.1-1.1.3.jar        |Valhelsia Furniture           |valhelsia_furniture           |1.1.3               |DONE      |Manifest: NOSIGNATURE         Incendium_1.20.4_v5.3.4.jar                       |Incendium                     |incendium                     |5.3.4               |DONE      |Manifest: NOSIGNATURE         immersive_aircraft-0.7.5+1.20.1-forge.jar         |Immersive Aircraft            |immersive_aircraft            |0.7.5+1.20.1        |DONE      |Manifest: NOSIGNATURE         sophisticatedcore-1.20.1-0.6.18.597.jar           |Sophisticated Core            |sophisticatedcore             |0.6.18.597          |DONE      |Manifest: NOSIGNATURE         modernfix-forge-5.17.0+mc1.20.1.jar               |ModernFix                     |modernfix                     |5.17.0+mc1.20.1     |DONE      |Manifest: NOSIGNATURE         citadel-2.5.4-1.20.1.jar                          |Citadel                       |citadel                       |2.5.4               |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.2.0-beta.9.jar                |MixinExtras                   |mixinextras                   |0.2.0-beta.9        |DONE      |Manifest: NOSIGNATURE         sophisticatedbackpacks-1.20.1-3.20.5.1039 (1).jar |Sophisticated Backpacks       |sophisticatedbackpacks        |3.20.5.1039         |DONE      |Manifest: NOSIGNATURE         mcw-doors-1.1.0forge-mc1.20.1.jar                 |Macaw's Doors                 |mcwdoors                      |1.1.0               |DONE      |Manifest: NOSIGNATURE         bygonenether-1.3.2-1.20.x.jar                     |Bygone Nether                 |bygonenether                  |1.3.2               |DONE      |Manifest: NOSIGNATURE         SupremeMiningDimensions-1.20.1-V1.4.3.8.jar       |Supreme Mining Dimension      |supreme_mining_dimension      |1.4.3.8             |DONE      |Manifest: NOSIGNATURE         Paraglider-forge-20.1.3.jar                       |Paraglider                    |paraglider                    |20.1.3              |DONE      |Manifest: NOSIGNATURE         ctov-forge-3.4.3.jar                              |ChoiceTheorem's Overhauled Vil|ctov                          |3.4.3               |DONE      |Manifest: NOSIGNATURE         twilightforest-1.20.1-4.3.2145-universal.jar      |The Twilight Forest           |twilightforest                |4.3.2145            |DONE      |Manifest: NOSIGNATURE         geophilic-v2.2.0-mc1.20u1.20.2.jar                |Geophilic                     |geophilic                     |2.2.0-mc1.20u1.20.2 |DONE      |Manifest: NOSIGNATURE         structure_gel-1.20.1-2.16.2.jar                   |Structure Gel API             |structure_gel                 |2.16.2              |DONE      |Manifest: NOSIGNATURE         corruption 1.20.1.jar                             |corruption                    |corruption                    |1.0.0               |DONE      |Manifest: NOSIGNATURE         corpse-forge-1.20.1-1.0.12.jar                    |Corpse                        |corpse                        |1.20.1-1.0.12       |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.4.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.4        |DONE      |Manifest: NOSIGNATURE         ends_delight-1.20.1-1.0.1.jar                     |End's Delight                 |ends_delight                  |1.0.1               |DONE      |Manifest: NOSIGNATURE         handcrafted-forge-1.20.1-3.0.6.jar                |Handcrafted                   |handcrafted                   |3.0.6               |DONE      |Manifest: NOSIGNATURE         AmbientSounds_FORGE_v5.3.9_mc1.20.1.jar           |AmbientSounds                 |ambientsounds                 |5.3.9               |DONE      |Manifest: NOSIGNATURE         explorify-v1.4.0.jar                              |Explorify                     |explorify                     |1.4.0               |DONE      |Manifest: NOSIGNATURE         blur-forge-3.1.1.jar                              |Blur (Forge)                  |blur                          |3.1.1               |DONE      |Manifest: NOSIGNATURE         valhelsia_structures-forge-1.20.1-1.1.2.jar       |Valhelsia Structures          |valhelsia_structures          |1.20.1-1.1.2        |DONE      |Manifest: NOSIGNATURE         mcw-trapdoors-1.1.2-mc1.20.1forge.jar             |Macaw's Trapdoors             |mcwtrpdoors                   |1.1.2               |DONE      |Manifest: NOSIGNATURE         mcw-fences-1.1.1-mc1.20.1forge.jar                |Macaw's Fences and Walls      |mcwfences                     |1.1.1               |DONE      |Manifest: NOSIGNATURE         resourcefulconfig-forge-1.20.1-2.1.2.jar          |Resourcefulconfig             |resourcefulconfig             |2.1.2               |DONE      |Manifest: NOSIGNATURE         bendy-lib-forge-4.0.0.jar                         |Bendy lib                     |bendylib                      |4.0.0               |DONE      |Manifest: NOSIGNATURE         curios-forge-5.3.5+1.20.1.jar                     |Curios API                    |curios                        |5.3.5+1.20.1        |DONE      |Manifest: NOSIGNATURE         dungeons-and-taverns-3.0.3.f[Forge].jar           |Dungeons and Taverns          |mr_dungeons_andtaverns        |3.0.3.f             |DONE      |Manifest: NOSIGNATURE         resourcefullib-forge-1.20.1-2.1.24.jar            |Resourceful Lib               |resourcefullib                |2.1.24              |DONE      |Manifest: NOSIGNATURE         cumulus_menus-1.20.1-1.0.0-neoforge.jar           |Cumulus                       |cumulus_menus                 |1.20.1-1.0.0-neoforg|DONE      |Manifest: NOSIGNATURE         deeperdarker-forge-1.20.1-1.2.1.jar               |Deeper and Darker             |deeperdarker                  |1.2.1               |DONE      |Manifest: NOSIGNATURE         cfm-forge-1.20.1-7.0.0-pre36.jar                  |MrCrayfish's Furniture Mod    |cfm                           |7.0.0-pre36         |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         AI-Improvements-1.20-0.5.2.jar                    |AI-Improvements               |aiimprovements                |0.5.2               |DONE      |Manifest: NOSIGNATURE         mcw-furniture-3.2.2-mc1.20.1forge.jar             |Macaw's Furniture             |mcwfurnitures                 |3.2.2               |DONE      |Manifest: NOSIGNATURE         cupboard-1.20.1-2.6.jar                           |Cupboard utilities            |cupboard                      |1.20.1-2.6          |DONE      |Manifest: NOSIGNATURE         nitrogen_internals-1.20.1-1.0.7-neoforge.jar      |Nitrogen                      |nitrogen_internals            |1.20.1-1.0.7-neoforg|DONE      |Manifest: NOSIGNATURE         Towns-and-Towers-1.12-Fabric+Forge.jar            |Towns and Towers              |t_and_t                       |0.0NONE             |DONE      |Manifest: NOSIGNATURE         mcw-lights-1.0.6-mc1.20.1forge.jar                |Macaw's Lights and Lamps      |mcwlights                     |1.0.6               |DONE      |Manifest: NOSIGNATURE         Essential (forge_1.20.1).jar                      |Essential                     |essential                     |1.3.1.3+g88238d7752 |DONE      |Manifest: NOSIGNATURE         SmartBrainLib-forge-1.20.1-1.14.jar               |SmartBrainLib                 |smartbrainlib                 |1.14                |DONE      |Manifest: NOSIGNATURE         MutantMonsters-v8.0.7-1.20.1-Forge.jar            |Mutant Monsters               |mutantmonsters                |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         the-conjurer-1.20.1-1.1.6.jar                     |The Conjurer                  |conjurer_illager              |1.1.6               |DONE      |Manifest: NOSIGNATURE         Structory_Towers_1.20.4_v1.0.6.jar                |Structory: Towers             |structorytowers               |1.0.6               |DONE      |Manifest: NOSIGNATURE         Fallingleaves-1.20-2.1.0-beta.1.jar               |Falling Leaves                |fallingleaves                 |2.1.0-beta.1        |DONE      |Manifest: NOSIGNATURE         mcw-paintings-1.0.5-1.20.1forge.jar               |Macaw's Paintings             |mcwpaintings                  |1.0.5               |DONE      |Manifest: NOSIGNATURE         SereneSeasons-1.20.1-9.0.0.46.jar                 |Serene Seasons                |sereneseasons                 |9.0.0.46            |DONE      |Manifest: NOSIGNATURE         decorative_blocks-forge-1.20.1-4.1.3.jar          |Decorative Blocks             |decorative_blocks             |4.1.3               |DONE      |Manifest: NOSIGNATURE         ratsandtrapsmod2dot7dot0.jar                      |Rats and Traps                |ratmod                        |2.7.0               |DONE      |Manifest: NOSIGNATURE         Terralith_1.20.4_v2.4.11.jar                      |Terralith                     |terralith                     |2.4.11              |DONE      |Manifest: NOSIGNATURE         shadowlands-3.10.4.jar                            |Shadowlands                   |shadowlands                   |3.10.4              |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         skinlayers3d-forge-1.6.3-mc1.20.1.jar             |3d-Skin-Layers                |skinlayers3d                  |1.6.3               |DONE      |Manifest: NOSIGNATURE         friendsandfoes-forge-mc1.20.1-2.0.10.jar          |Friends&Foes                  |friendsandfoes                |2.0.10              |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         voicechat-forge-1.20.1-2.5.12.jar                 |Simple Voice Chat             |voicechat                     |1.20.1-2.5.12       |DONE      |Manifest: NOSIGNATURE         soundphysics-forge-1.20.1-1.1.2.jar               |Sound Physics Remastered      |sound_physics_remastered      |1.20.1-1.1.2        |DONE      |Manifest: NOSIGNATURE         TerraBlender-forge-1.20.1-3.0.1.4.jar             |TerraBlender                  |terrablender                  |3.0.1.4             |DONE      |Manifest: NOSIGNATURE         BiomesOPlenty-1.20.1-18.0.0.598.jar               |Biomes O' Plenty              |biomesoplenty                 |18.0.0.598          |DONE      |Manifest: NOSIGNATURE         ForgeConfigScreens-v8.0.2-1.20.1-Forge.jar        |Forge Config Screens          |forgeconfigscreens            |8.0.2               |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         RegionsUnexploredForge-0.5.5+1.20.1.jar           |Regions Unexplored            |regions_unexplored            |0.5.5               |DONE      |Manifest: NOSIGNATURE         CreativeCore_FORGE_v2.11.27_mc1.20.1.jar          |CreativeCore                  |creativecore                  |2.11.27             |DONE      |Manifest: NOSIGNATURE         nethersdelight-1.20.1-4.0.jar                     |Nether's Delight              |nethersdelight                |1.20.1-4.0          |DONE      |Manifest: NOSIGNATURE         ecologics-forge-1.20.1-2.2.0.jar                  |Ecologics                     |ecologics                     |2.2.0               |DONE      |Manifest: NOSIGNATURE         Rats-1.20.1-8.1.2.jar                             |Rats                          |rats                          |1.20.1-8.1.2        |DONE      |Manifest: NOSIGNATURE         forge-1.20.1-47.1.29-universal.jar                |Forge                         |forge                         |47.1.29             |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         [1.20.1] SecurityCraft v1.9.9.jar                 |SecurityCraft                 |securitycraft                 |1.9.9               |DONE      |Manifest: NOSIGNATURE         invhud.forge.1.20.1-3.4.18.jar                    |Inventory HUD+(Forge edition) |inventoryhud                  |3.4.18              |DONE      |Manifest: NOSIGNATURE         EndlessBiomes 1.5.0 - 1.20.1.jar                  |EndlessBiomes                 |endlessbiomes                 |1.0.0               |DONE      |Manifest: NOSIGNATURE         modonomicon-1.20.1-forge-1.69.0.jar               |Modonomicon                   |modonomicon                   |1.69.0              |DONE      |Manifest: NOSIGNATURE         creeperoverhaul-3.0.2-forge.jar                   |Creeper Overhaul              |creeperoverhaul               |3.0.2               |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         occultism-1.20.1-1.125.0.jar                      |Occultism                     |occultism                     |1.125.0             |DONE      |Manifest: NOSIGNATURE         biomemusic-1.20.1-2.3.jar                         |biomemusic mod                |biomemusic                    |1.20.1-2.3          |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.18-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.18              |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         valhelsia_core-forge-1.20.1-1.1.2.jar             |Valhelsia Core                |valhelsia_core                |1.1.2               |DONE      |Manifest: NOSIGNATURE         cristellib-1.1.5-forge.jar                        |Cristel Lib                   |cristellib                    |1.1.5               |DONE      |Manifest: NOSIGNATURE         ad_astra-forge-1.20.1-1.15.18.jar                 |Ad Astra                      |ad_astra                      |1.15.18             |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: 8710b41d-e083-48c2-84d4-e07dd1fb3190     FML: 47.1     Forge: net.minecraftforge:47.1.29
  • Topics

×
×
  • Create New...

Important Information

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