Jump to content

Recommended Posts

Posted (edited)

Hi Everyone ;)

 

I followed some tutorials and examples of existing mods to create my own Duel Furnace with custom recipes, annnnddddd ... It doesn't work (ofc, otherwise i wouldn't be here ^^)

 

I created a first one fully fonctionnal with IInventory, but as i wanted to refresh my code using ItemHandler i created a second one almost fonctional (it keeps items when i log out, drop my stuff when i break it, and doesn't allow me to put items on Output Slot and anything but fuel in FuelSlot),

but i just can't make it burn ...

 

In the code, you may find some useless parts (i started codding only a week ago). You still can point it out if you want.

My hypothesis is that the crash is because there is an hybrid IIventory-IItemHandler method hidden somewhere i didn't find when i tried to refresh my code.

 

 

Here is my block :

Spoiler

package sunsigne.MyMod.blocks;

import java.util.Random;

import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemStackHandler;
import sunsigne.MyMod.IHasModel;
import sunsigne.MyMod.MyMod;
import sunsigne.MyMod.Reference;
import sunsigne.MyMod.init.ModBlocks;
import sunsigne.MyMod.init.ModItems;
import sunsigne.MyMod.tileentity.FakeBlockTileEntity;
import sunsigne.MyMod.tileentity.ShelfTileEntity;

public class FakeBlock extends BlockContainer implements IHasModel
{
    public static final PropertyDirection FACING = BlockHorizontal.FACING;
    public static final int FAKE_BLOCK_GUI = 80;
    public static final PropertyBool BURNING = PropertyBool.create("burning");
    
    
    public FakeBlock(String name)
    {
    
        super(Material.ROCK);
        setUnlocalizedName(name);
        setRegistryName(name);
        setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
        
        setSoundType(SoundType.STONE);
        setHardness(3.5F);
        setResistance(17.5F);
        setHarvestLevel("pickaxe", 0);
        setLightLevel(0.0F);
        //setLightOpacity(1);
        //setBlockUnbreakable();
        
        ModBlocks.BLOCKS.add(this);
        ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName()));
        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(BURNING, false));
    }
    
    @Override
    public void registerModels()
    {
    
        MyMod.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory");
    }
    
    
    
    @Override
    public boolean isOpaqueCube(IBlockState state)
    {
        return false;
    }
    @Override
    public boolean isFullCube(IBlockState state)
    {
        return false;
    }
        
    
    //this block is at default state when i drop it
    @Override
    public Item getItemDropped(IBlockState state, Random rand, int fortune) {
        return Item.getItemFromBlock(ModBlocks.FAKE_BLOCK);
    }
    
    @Override
    public EnumBlockRenderType getRenderType(IBlockState state)
    {
        return EnumBlockRenderType.MODEL;
    }
    
    @Override
    public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
        return new ItemStack(ModBlocks.FAKE_BLOCK);
    }
    
    @Override
    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) 
    {
        if (!worldIn.isRemote) 
        {
            IBlockState north = worldIn.getBlockState(pos.north());
            IBlockState south = worldIn.getBlockState(pos.south());
            IBlockState west = worldIn.getBlockState(pos.west());
            IBlockState east = worldIn.getBlockState(pos.east());
            EnumFacing face = (EnumFacing)state.getValue(FACING);
            if (face == EnumFacing.NORTH && north.isFullBlock() && !south.isFullBlock()) face = EnumFacing.SOUTH;
            else if (face == EnumFacing.SOUTH && south.isFullBlock() && !north.isFullBlock()) face = EnumFacing.NORTH;
            else if (face == EnumFacing.WEST && west.isFullBlock() && !east.isFullBlock()) face = EnumFacing.EAST;
            else if (face == EnumFacing.EAST && east.isFullBlock() && !west.isFullBlock()) face = EnumFacing.WEST;
            worldIn.setBlockState(pos, state.withProperty(FACING, face), 2);
        }
    }
    
    //check the state of the block
        public static void setState(boolean active, World worldIn, BlockPos pos)
        {

            TileEntity tileentity = worldIn.getTileEntity(pos);

            if(tileentity != null) 
            {
                tileentity.validate();
                worldIn.setTileEntity(pos, tileentity);
            }
        }
    
    
    
    // Here is the CONTAINER (tileentity and gui) part
    
    
    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
       
        if (worldIn.isRemote) {
           return true;
        }
            
        playerIn.openGui(MyMod.instance, Reference.FAKE_BLOCK_GUI, worldIn, pos.getX(), pos.getY(), pos.getZ());
        
        return true;
    }    
    
    @Override
    public boolean canDropFromExplosion(Explosion explosionIn) {
       
        return false;
    }
    
        
    @Override
    public TileEntity createNewTileEntity(World wolrdIn, int meta) {
        return new FakeBlockTileEntity();
    }
    
    @Override
    public boolean hasTileEntity(IBlockState state)
    {
        return true;
    }
    
    @Override
    public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) 
    {
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
    }
    
    
        
    @Override
    public IBlockState withRotation(IBlockState state, Rotation rot)
    {
        return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
    }
    
    @Override
    public IBlockState withMirror(IBlockState state, Mirror mirrorIn) 
    {
        return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
    }
    
   
    @Override
    public IBlockState getStateFromMeta(int meta) 
    {
        EnumFacing facing = EnumFacing.getFront(meta);
        if(facing.getAxis() == EnumFacing.Axis.Y) facing = EnumFacing.NORTH;
        return this.getDefaultState().withProperty(FACING, facing).withProperty(BURNING, false);
    }
    
    @Override
    public int getMetaFromState(IBlockState state) {
        return ((EnumFacing)state.getValue(FACING)).getIndex();
    }

    
    @Override
    protected BlockStateContainer createBlockState()
    {
    
        return new BlockStateContainer(this, new IProperty[] {BURNING, FACING});
    }
    
    
    
    @Override
    public void breakBlock(World world, BlockPos pos, IBlockState state)
    {
        FakeBlockTileEntity te = (FakeBlockTileEntity) world.getTileEntity(pos);
        IItemHandler cap = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);

        for (int i = 0; i < cap.getSlots(); ++i)
        {
            ItemStack itemstack = cap.getStackInSlot(i);

            if (!itemstack.isEmpty())
            {
                InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), itemstack);
            }
        }

        super.breakBlock(world, pos, state);
    }
  
       
    
    

// End of the TILEENTITY part
    
}

 

The TileEntity :

Spoiler

package sunsigne.MyMod.tileentity;

import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityLockableLoot;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.ItemStackHandler;
import sunsigne.MyMod.Reference;
import sunsigne.MyMod.blocks.EnchantedCraftingTableBlock;
import sunsigne.MyMod.container.EnchantedRecipes;
import sunsigne.MyMod.container.FakeBlockContainer;
import sunsigne.MyMod.container.FakeRecipes;

public class FakeBlockTileEntity extends TileEntity implements ITickable {

        

public static final int SIZE = 4;
    
    private int burnTime;
    private int currentBurnTime;
    private int cookTime;
    private int totalCookTime;
        
    
    private ItemStackHandler itemStackHandler = new ItemStackHandler(SIZE) {
        @Override
        protected void onContentsChanged(int slot) {
            FakeBlockTileEntity.this.markDirty();
        }
    };
    
    ItemStack input1 = this.itemStackHandler.getStackInSlot(0);
    ItemStack input2 = this.itemStackHandler.getStackInSlot(1);
    ItemStack fuel = this.itemStackHandler.getStackInSlot(2);
    ItemStack output = this.itemStackHandler.getStackInSlot(3);
    
    ItemStack result = FakeRecipes.getInstance().getFakeResult(input1, input2);    
    
    
    
    public int getCookTime(ItemStack input1, ItemStack input2) 
    {
        return 20;
//        return 1200
    }
    
    public static int getItemBurnTime(ItemStack fuel) 
    {
        if(fuel.isEmpty()) return 0;
        else 
        {
            Item item = fuel.getItem();
            if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.AIR) {}
            
            if(item == Items.DIAMOND) return 20;
//            if(item == Items.LAPIS_LAZULI) return 1200;

            return GameRegistry.getFuelValue(fuel);
        }
    }
    
    
    public static boolean isItemFuel(ItemStack fuel)
    {
        return getItemBurnTime(fuel) > 0;
    }

    

    public boolean isItemValidForSlot(int index, ItemStack fuel) 
    {
        if(index == 3) return false;
        else if(index != 2) return true;
        else 
        {
            return isItemFuel(fuel);
        }
    }
    
    
    
    
    
    @Override
    public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newSate)
    {
        return true;
    }


    
    
    public boolean isBurning() 
    {
        return this.burnTime > 0;
    }
    
    
    @SideOnly(Side.CLIENT)
      public static boolean isBurning(FakeBlockTileEntity te) {

        return te.getField(0) > 0;
    }

    
    
    
    public void update() 
    {
        boolean flag = this.isBurning();
        boolean flag1 = false;
        
        if(this.isBurning()) --this.burnTime;
        
        if(!this.world.isRemote) 
        {
        
            
            
            if(this.isBurning() || !fuel.isEmpty() && !input1.isEmpty() || input2.isEmpty())
            {
                if(!this.isBurning() && this.canSmelt()) 
                {
                    this.burnTime = getItemBurnTime(fuel);
                    this.currentBurnTime = this.burnTime;
                    
                    if(this.isBurning()) 
                    {
                        flag1 = true;
                        
                        if(!fuel.isEmpty()) 
                        {
                            Item item = fuel.getItem();
                            fuel.shrink(1);
                            
                            if(fuel.isEmpty()) 
                            {
                                ItemStack item1 = item.getContainerItem(fuel);
                                this.itemStackHandler.setStackInSlot(2, item1);
                            }
                        }
                    }
                } 
                if(this.isBurning() && this.canSmelt()) 
                {
                    ++this.cookTime;
                    
                    if(this.cookTime == this.totalCookTime) 
                    {
                        this.cookTime = 0;
                        this.totalCookTime = this.getCookTime(input1, input2);
                        this.smeltItem();
                        flag1 = true;
                    }
                } 
                else this.cookTime = 0;
            } 
            else if(!this.isBurning() && this.cookTime > 0) 
            {
                this.cookTime = MathHelper.clamp(this.cookTime - 2, 0, this.totalCookTime);
            }
            if(flag != this.isBurning()) 
            {
                flag1 = true;
                EnchantedCraftingTableBlock.setState(this.isBurning(), this.world, this.pos);
            }
        } 
        if(flag1) this.markDirty();
    }
    
    
    
    private boolean canSmelt() 
    {
        if(input1.isEmpty() || (input2.isEmpty())) return false;
        else 
        {

            if(result.isEmpty()) return false;
            else
            {
                if(output.isEmpty()) return true;
                if(!output.isItemEqual(result)) return false;
                int res = output.getCount() + result.getCount();
                return res <= getInventoryStackLimit() && res <= output.getMaxStackSize();
            }
        }
    }
    
    
    private int getInventoryStackLimit() {
        return 64;
    
    }

    
    
    public void smeltItem() 
    {
        if(this.canSmelt()) 
        {
            
            if(output.isEmpty()) this.itemStackHandler.setStackInSlot(3, result.copy());
            else if(output.getItem() == result.getItem()) output.grow(result.getCount());
            
            input1.shrink(1);
            input2.shrink(1);
        }
    }
    
    
        

    
     public int getField(int id)
        {
            switch(id)
            {
            case 0:
                return this.burnTime;
            case 1:
                return this.currentBurnTime;
            case 2:
                return this.cookTime;
            case 3:
                return this.totalCookTime;
            default:
                return 0;
            }
        }
            public void setField(int id, int value)
        {
            switch(id)
            {
            case 0:
                this.burnTime = value;
                break;
            case 1:
                this.currentBurnTime = value;
                break;
            case 2:
                this.cookTime = value;
                break;
            case 3:
                this.totalCookTime = value;
            }
        }
    
    
    
    
    
    
    @Override
    public void readFromNBT(NBTTagCompound compound)
    {
        super.readFromNBT(compound);

        this.burnTime = compound.getInteger("BurnTime");
        this.cookTime = compound.getInteger("CookTime");
        this.totalCookTime = compound.getInteger("CookTimeTotal");
        
         if (compound.hasKey("items")) {itemStackHandler.deserializeNBT((NBTTagCompound) compound.getTag("items"));}
        
        }
    
    @Override
    public NBTTagCompound writeToNBT(NBTTagCompound compound) 
    {
        super.writeToNBT(compound);
        
        compound.setInteger("BurnTime", this.burnTime);
        compound.setInteger("CookTime", this.cookTime);
        compound.setInteger("CookTimeTotal", this.totalCookTime);
        
        compound.setTag("items", itemStackHandler.serializeNBT());
         return compound;
    }
    
        
     @Override
        public boolean hasCapability(Capability<?> capability, EnumFacing facing)
        {
            if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) return true;
            else return false;
        }
        
        @Override
        public <T> T getCapability(Capability<T> capability, EnumFacing facing)
        {
            if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(itemStackHandler);
            return super.getCapability(capability, facing);
        }
    
        public boolean isUsablebyplayer(EntityPlayer playerIn) {
            return !isInvalid() && playerIn.getDistanceSq(pos.add(0.5D, 0.5D, 0.5D)) <= 64D;
        }

        
        
        
        
    
}
 

 

The Container Part

Spoiler

package sunsigne.MyMod.container;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IContainerListener;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.SlotItemHandler;
import sunsigne.MyMod.tileentity.EnchantedCraftingTableTileEntity;
import sunsigne.MyMod.tileentity.FakeBlockTileEntity;

public class FakeBlockContainer extends Container
{
    
    
    private final FakeBlockTileEntity fakeblockInventory;
    
    private int cookTime, totalCookTime, burnTime, currentBurnTime;
    
    
    
    
    public FakeBlockContainer(InventoryPlayer player, FakeBlockTileEntity fakeblockInventory) 
    {
        this.fakeblockInventory = fakeblockInventory;
        IItemHandler itemHandler = fakeblockInventory.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
        
        this.addSlotToContainer(new SlotItemHandler(itemHandler, 0, 120, 19));
        this.addSlotToContainer(new SlotItemHandler(itemHandler, 1, 120, 55));
        this.addSlotToContainer(new FakeBlockFuelSlot(itemHandler, 2, 66, 37));
        this.addSlotToContainer(new FakeBlockOutputSlot(player.player, itemHandler, 3, 174, 37));
        
        
        for(int y = 0; y < 3; y++)
        {
            for(int x = 0; x < 9; x++)
            {
                this.addSlotToContainer(new Slot(player, x + y*9 + 9, 48 + x*18, 84 + y*18));
            }
        }
        
        for(int x = 0; x < 9; x++)
        {
            this.addSlotToContainer(new Slot(player, x, 48 + x * 18, 142));
        }
    }
    

    
    
    @Override
    public void detectAndSendChanges() 
    {
        super.detectAndSendChanges();
        
        for(int i = 0; i < this.listeners.size(); ++i) 
        {
            IContainerListener listener = (IContainerListener)this.listeners.get(i);
            
            if(this.cookTime != this.fakeblockInventory.getField(2)) listener.sendWindowProperty(this, 2, this.fakeblockInventory.getField(2));
            if(this.burnTime != this.fakeblockInventory.getField(0)) listener.sendWindowProperty(this, 0, this.fakeblockInventory.getField(0));
            if(this.currentBurnTime != this.fakeblockInventory.getField(1)) listener.sendWindowProperty(this, 1, this.fakeblockInventory.getField(1));
            if(this.totalCookTime != this.fakeblockInventory.getField(3)) listener.sendWindowProperty(this, 3, this.fakeblockInventory.getField(3));
        }
        
        this.cookTime = this.fakeblockInventory.getField(2);
        this.burnTime = this.fakeblockInventory.getField(0);
        this.currentBurnTime = this.fakeblockInventory.getField(1);
        this.totalCookTime = this.fakeblockInventory.getField(3);
    }
    
    @Override
    @SideOnly(Side.CLIENT)
    public void updateProgressBar(int id, int data) 
    {
        this.fakeblockInventory.setField(id, data);
    }
    
    
    
    @Override
    public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) 
    {
        ItemStack stack = ItemStack.EMPTY;
        Slot slot = (Slot)this.inventorySlots.get(index);
        
        if(slot != null && slot.getHasStack()) 
        {
            ItemStack stack1 = slot.getStack();
            stack = stack1.copy();
            
            if(index == 3) 
            {
                if(!this.mergeItemStack(stack1, 4, 40, true)) return ItemStack.EMPTY;
                slot.onSlotChange(stack1, stack);
            }
            else if(index != 2 && index != 1 && index != 0) 
            {        
                Slot slot1 = (Slot)this.inventorySlots.get(index + 1);
                
                if(!FakeRecipes.getInstance().getFakeResult(stack1, slot1.getStack()).isEmpty())
                {
                    if(!this.mergeItemStack(stack1, 0, 2, false)) 
                    {
                        return ItemStack.EMPTY;
                    }
                    else if(FakeBlockTileEntity.isItemFuel(stack1))
                    {
                        if(!this.mergeItemStack(stack1, 2, 3, false)) return ItemStack.EMPTY;
                    }
                    else if(FakeBlockTileEntity.isItemFuel(stack1))
                    {
                        if(!this.mergeItemStack(stack1, 2, 3, false)) return ItemStack.EMPTY;
                    }
                    else if(FakeBlockTileEntity.isItemFuel(stack1))
                    {
                        if(!this.mergeItemStack(stack1, 2, 3, false)) return ItemStack.EMPTY;
                    }
                    else if(index >= 4 && index < 31)
                    {
                        if(!this.mergeItemStack(stack1, 31, 40, false)) return ItemStack.EMPTY;
                    }
                    else if(index >= 31 && index < 40 && !this.mergeItemStack(stack1, 4, 31, false))
                    {
                        return ItemStack.EMPTY;
                    }
                }
            } 
            else if(!this.mergeItemStack(stack1, 4, 40, false)) 
            {
                return ItemStack.EMPTY;
            }
            if(stack1.isEmpty())
            {
                slot.putStack(ItemStack.EMPTY);
            }
            else
            {
                slot.onSlotChanged();

            }
            if(stack1.getCount() == stack.getCount()) return ItemStack.EMPTY;
            slot.onTake(playerIn, stack1);
        }
        return stack;
    }
    
    
    
    
    
    
     @Override
        public boolean canInteractWith(EntityPlayer playerIn)
        {

            return this.fakeblockInventory.isUsablebyplayer(playerIn);
        }
    
    
    
    
    
    
    
    
}

 

 

And the Fuel & OutPut slots (maybe the problem comes from here ^^ i really don't know) :

Spoiler

 

        

package sunsigne.MyMod.container;

import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.SlotItemHandler;
import sunsigne.MyMod.tileentity.EnchantedCraftingTableTileEntity;
import sunsigne.MyMod.tileentity.FakeBlockTileEntity;

public class FakeBlockFuelSlot extends SlotItemHandler{

    public FakeBlockFuelSlot(IItemHandler itemHandler, int index, int xPosition, int yPosition) {
        super(itemHandler, index, xPosition, yPosition);

    }

    @Override
    public boolean isItemValid(ItemStack fuel) 
    {
        return FakeBlockTileEntity.isItemFuel(fuel);
    }
    
    
}
 

    

Spoiler

package sunsigne.MyMod.container;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.SlotItemHandler;

public class FakeBlockOutputSlot extends SlotItemHandler {

    
    
    
    private final EntityPlayer player;
        
    
    public FakeBlockOutputSlot(EntityPlayer player, IItemHandler itemHandler, int index, int xPosition, int yPosition) {
        
        super(itemHandler, index, xPosition, yPosition);
        this.player = player;
        


    }

    
    @Override
    public boolean isItemValid(ItemStack stack)
    {
        return false;
    }
    
    @Override
    public ItemStack onTake(EntityPlayer thePlayer, ItemStack stack)
    {
        this.onCrafting(stack);
        super.onTake(thePlayer, stack);
        return stack;
    }
    
    
    
}
 

 

Ho and just in case, the recipes :

Spoiler

package sunsigne.MyMod.container;

import java.util.Map;
import java.util.Map.Entry;

import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Maps;
import com.google.common.collect.Table;

import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentData;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemEnchantedBook;
import net.minecraft.item.ItemStack;
import sunsigne.MyMod.init.ModBlocks;

public class FakeRecipes {

    
    private static final FakeRecipes INSTANCE = new FakeRecipes();
    private final Table<ItemStack, ItemStack, ItemStack> smeltingList = HashBasedTable.<ItemStack, ItemStack, ItemStack>create();
    private final Map<ItemStack, Float> experienceList = Maps.<ItemStack, Float>newHashMap();
    
    public static FakeRecipes getInstance()
    {
        return INSTANCE;
    }
    
    public void addFakeRecipe(ItemStack input1, ItemStack input2, ItemStack result) 
    {
        if(getFakeResult(input1, input2) != ItemStack.EMPTY) return;
        this.smeltingList.put(input1, input2, result);

    }
    
    public ItemStack getFakeResult(ItemStack input1, ItemStack input2) 
    {
        for(Entry<ItemStack, Map<ItemStack, ItemStack>> entry : this.smeltingList.columnMap().entrySet()) 
        {
            if(this.compareItemStacks(input1, (ItemStack)entry.getKey())) 
            {
                for(Entry<ItemStack, ItemStack> ent : entry.getValue().entrySet()) 
                {
                    if(this.compareItemStacks(input2, (ItemStack)ent.getKey())) 
                    {
                        return (ItemStack)ent.getValue();
                    }
                }
            }
        }
        return ItemStack.EMPTY;
    }
    
    private boolean compareItemStacks(ItemStack stack1, ItemStack stack2)
    {
        return stack2.getItem() == stack1.getItem() && (stack2.getMetadata() == 32767 || stack2.getMetadata() == stack1.getMetadata());
    }
    
    public Table<ItemStack, ItemStack, ItemStack> getDualSmeltingList() 
    {
        return this.smeltingList;
    }
    

    
    private FakeRecipes() 
    {
        
             
        addFakeRecipe(new ItemStack(Blocks.GOLD_BLOCK), new ItemStack(Blocks.IRON_BLOCK), new ItemStack(Blocks.DIAMOND_BLOCK));
        addFakeRecipe(new ItemStack(Blocks.DIAMOND_BLOCK), new ItemStack(Blocks.GOLD_BLOCK), new ItemStack(Blocks.IRON_BLOCK));
        addFakeRecipe(new ItemStack(Blocks.IRON_BLOCK), new ItemStack(Blocks.DIAMOND_BLOCK), new ItemStack(Blocks.GOLD_BLOCK));
        
    }

}    

 

 

 

 

I'm sorry if you find same mystakes again and again about IIventory and IHasModel, keep in mind i'm currently refreshing my code in purpose to make those parts dissapeared but i didn't finished yet. If I had completly succed I wouldn't be writing and you wouldn't be reading :s 

 

 

Thank by advance to anyone trying to help me ;) even if it's short messages like "don't use it", i can helps me :)

Edited by sunsigne
solved
Posted (edited)

Please use the coding text format when posting code like this, its a pain to read otherwise.

 

extends BlockContainer

I do not think you should be extended BlockContainer, just reimplement hasTileEntity and createNewTileEntity. The reasoning is that BlockContainer contains some useless vanilla code. Probably won't fix your problem.

 

---- Edit ----

 

9 hours ago, sunsigne said:

and doesn't allow me to put items on Output Slot and anything but fuel in FuelSlot

isn't this intended behavior? You shouldn't be able to put things in the output slot, and the fuel slot should be restricted to fuels?

 

9 hours ago, sunsigne said:

is that the crash

 

Please post the crash if you'd like more help other than the thing I said and please reformat your post. I really can't be bothered trying to read plaintext code and digging for a possibly small issue.

Edited by unassigned
Posted
12 hours ago, sunsigne said:

    ItemStack input1 = this.itemStackHandler.getStackInSlot(0);
    ItemStack input2 = this.itemStackHandler.getStackInSlot(1);
    ItemStack fuel = this.itemStackHandler.getStackInSlot(2);
    ItemStack output = this.itemStackHandler.getStackInSlot(3);


    ItemStack result = FakeRecipes.getInstance().getFakeResult(input1, input2);   

Why are these class level properties?

Why are these determined when the class instantiated and not when the class gets an update tick?

12 hours ago, sunsigne said:

if(this.isBurning() || !fuel.isEmpty() && !input1.isEmpty() || input2.isEmpty())

You probably want some parentheses here. Quick, will this entire statement be true or false for the following values:

true, true, true, false (note that I have not performed a ! on any of these).

How about for

false, false, true, false?

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

 

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

 

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

Posted (edited)
8 hours ago, unassigned said:

isn't this intended behavior? You shouldn't be able to put things in the output slot, and the fuel slot should be restricted to fuels?

Actually, that's exactly what I said, this part is fonctionnal ^^ didn't you read ?

 

8 hours ago, unassigned said:

Please post the crash

Actually, it's written two lines above your quote of me ... Again, you didn't read.

 

 

//

 

 

5 hours ago, Draco18s said:

Why are these class level properties?

As I had "input1, input2, fuel and output" a little everywhere in my tile entity, i thought it was a good idea to define those as class property instead of copy/paste those everywhere, wasn't it ? (true question)

 

 

 

I don't get your second point ... 

I mean, in my first furnace which works, at this exact part the code is :

Spoiler

if(this.isBurning() || !stack.isEmpty() && !((((ItemStack)this.inventory.get(0)).isEmpty()) || ((ItemStack)this.inventory.get(1)).isEmpty())) 

there are not true and false. Maybe I should adapt ?

 

Ho! And i noticed an little error in my code, right here

Spoiler

if(flag != this.isBurning()) 
            {
                flag1 = true;
                EnchantedCraftingTableBlock.setState(this.isBurning(), this.world, this.pos);

Ofc it couldn't work ! My block is FakeBlock, i forgot to change the name.

 

But now it stills doesn't work :/ it just refuses to cook anything ^^

Edited by sunsigne
spelling
Posted
11 hours ago, unassigned said:

createNewTileEntity

You mean createTileEntity

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Posted (edited)
10 hours ago, sunsigne said:

Actually, it's written two lines above your quote of me ... Again, you didn't read.

 

You say there is a crash, not a logical error.

You should really step through your code and see what is/not running under certain conditions. See what happens when you put in fuel and an item to smelt, see what variables are changing.

Also, do you have a github for this project? I'd take a closer look at it if I could run it through my ide and debug it myself.

 

7 hours ago, Cadiboo said:

You mean createTileEntity

 

Yes. Thanks for catching that.

 

 

Edited by unassigned
Posted
12 hours ago, sunsigne said:

i thought it was a good idea to define those as class property instead of copy/paste those everywhere, wasn't it ? (true question)

No. Worst idea. Because you never update the values. All of them are air, will always be air, and will never be anything BUT air, as you never assign a value to them except during class construction.

  • Like 1

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

 

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

 

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

Posted (edited)

I have been programming only for a week and my english isn't perfect, i don't get the difference between a crash and a logical error ?

 

13 hours ago, unassigned said:

Also, do you have a github for this project? I'd take a closer look at it if I could run it through my ide and debug it myself.

 

I just created a GitHub right now, if it can helps you helping me i can do that ^^ but you don't need debug mod imo, my furnace doesn't work but don't crash the game ^^

 

 

10 hours ago, Draco18s said:

No. Worst idea. Because you never update the values. All of them are air, will always be air, and will never be anything BUT air, as you never assign a value to them except during class construction.

I never tought like that but now you're saying it feels logical ^^ I really think you got the core of the problem !

I changed some things in that direction and now my fuel is burning when the recipe is good ! But things aren't cooking ? guess it's cooking "air" again ..

 

 

here is my tile entity now

Spoiler

package sunsigne.MyMod.tileentity;

import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityLockableLoot;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.ItemStackHandler;
import sunsigne.MyMod.Reference;
import sunsigne.MyMod.blocks.FakeBlock;
import sunsigne.MyMod.container.FakeBlockContainer;
import sunsigne.MyMod.container.FakeRecipes;

public class FakeBlockTileEntity extends TileEntity implements ITickable {

        

public static final int SIZE = 4;
    
    private int burnTime;
    private int currentBurnTime;
    private int cookTime;
    private int totalCookTime;
        
    
    private ItemStackHandler itemStackHandler = new ItemStackHandler(SIZE) {
        @Override
        protected void onContentsChanged(int slot) {
            FakeBlockTileEntity.this.markDirty();
        }
    };
    
   
    
    
    
    
    public int getCookTime(ItemStack input1, ItemStack input2) 
    {
        return 20;
//        return 1200
    }
    
    public static int getItemBurnTime(ItemStack fuel) 
    {
        if(fuel.isEmpty()) return 0;
        else 
        {
            Item item = fuel.getItem();
            if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.AIR) {}
            
            if(item == Items.DIAMOND) return 20;
//            if(item == Items.LAPIS_LAZULI) return 1200;

            return GameRegistry.getFuelValue(fuel);
        }
    }
    
    
    public static boolean isItemFuel(ItemStack fuel)
    {
        return getItemBurnTime(fuel) > 0;
    }

    
    
    
    @Override
    public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newSate)
    {
        return true;
    }


    
    
    public boolean isBurning() 
    {
        return this.burnTime > 0;
    }
    
    
    @SideOnly(Side.CLIENT)
      public static boolean isBurning(FakeBlockTileEntity te) {

        return te.getField(0) > 0;
    }

    
    
    
    public void update() 
    {
        boolean flag = this.isBurning();
        boolean flag1 = false;
        
        if(this.isBurning()) --this.burnTime;
        
        if(!this.world.isRemote) 
        {

                ItemStack fuel = this.itemStackHandler.getStackInSlot(2);
            
            
            if(this.isBurning() || !fuel.isEmpty() && !(this.itemStackHandler.getStackInSlot(0)).isEmpty() || (this.itemStackHandler.getStackInSlot(1)).isEmpty())
            {
                if(!this.isBurning() && this.canSmelt()) 
                {
                    this.burnTime = getItemBurnTime(fuel);
                    this.currentBurnTime = this.burnTime;
                    
                    if(this.isBurning()) 
                    {
                        flag1 = true;
                        
                        if(!fuel.isEmpty()) 
                        {
                            Item item = fuel.getItem();
                            fuel.shrink(1);
                            
                            if(fuel.isEmpty()) 
                            {
                                ItemStack item1 = item.getContainerItem(fuel);
                                this.itemStackHandler.setStackInSlot(2, item1);
                            }
                        }
                    }
                } 
                if(this.isBurning() && this.canSmelt()) 
                {
                    ++this.cookTime;
                    
                    if(this.cookTime == this.totalCookTime) 
                    {
                        this.cookTime = 0;
                        this.totalCookTime = this.getCookTime(this.itemStackHandler.getStackInSlot(0), this.itemStackHandler.getStackInSlot(1));
                        this.smeltItem();
                        flag1 = true;
                    }
                } 
                else this.cookTime = 0;
            } 
            else if(!this.isBurning() && this.cookTime > 0) 
            {
                this.cookTime = MathHelper.clamp(this.cookTime - 2, 0, this.totalCookTime);
            }
            if(flag != this.isBurning()) 
            {
                flag1 = true;
                FakeBlock.setState(this.isBurning(), this.world, this.pos);
            }
        } 
        if(flag1) this.markDirty();
    }
    
    
    
    private boolean canSmelt() 
    {
            
            
        
        
        if((this.itemStackHandler.getStackInSlot(0)).isEmpty() || ((this.itemStackHandler.getStackInSlot(0)).isEmpty())) return false;
        else 
        {
                
            ItemStack result = FakeRecipes.getInstance().getFakeResult(this.itemStackHandler.getStackInSlot(0), this.itemStackHandler.getStackInSlot(1));    
            
            if(result.isEmpty()) return false;
            else
            {
                ItemStack output = this.itemStackHandler.getStackInSlot(3);
                
                if(output.isEmpty()) return true;
                if(!output.isItemEqual(result)) return false;
                int res = output.getCount() + result.getCount();
                return res <= getInventoryStackLimit() && res <= output.getMaxStackSize();
            }
        }
    }
    
    
    private int getInventoryStackLimit() {
        return 64;
    
    }

    
    
    public void smeltItem() 
    {
                
        if(this.canSmelt()) 
        {
            
            ItemStack input1 = this.itemStackHandler.getStackInSlot(0);
            ItemStack input2 = this.itemStackHandler.getStackInSlot(1);
            ItemStack output = this.itemStackHandler.getStackInSlot(3);
            ItemStack result = FakeRecipes.getInstance().getFakeResult(input1, input2);    
            
            
            if(output.isEmpty()) this.itemStackHandler.setStackInSlot(3, result.copy());
            else if(output.getItem() == result.getItem()) output.grow(result.getCount());
            
            input1.shrink(1);
            input2.shrink(1);
        }
    }
    
    
        

    
     public int getField(int id)
        {
            switch(id)
            {
            case 0:
                return this.burnTime;
            case 1:
                return this.currentBurnTime;
            case 2:
                return this.cookTime;
            case 3:
                return this.totalCookTime;
            default:
                return 0;
            }
        }
            public void setField(int id, int value)
        {
            switch(id)
            {
            case 0:
                this.burnTime = value;
                break;
            case 1:
                this.currentBurnTime = value;
                break;
            case 2:
                this.cookTime = value;
                break;
            case 3:
                this.totalCookTime = value;
            }
        }
    
    
    
    
    
    
    @Override
    public void readFromNBT(NBTTagCompound compound)
    {
        super.readFromNBT(compound);

        this.burnTime = compound.getInteger("BurnTime");
        this.cookTime = compound.getInteger("CookTime");
        this.totalCookTime = compound.getInteger("CookTimeTotal");
        
         if (compound.hasKey("items")) {itemStackHandler.deserializeNBT((NBTTagCompound) compound.getTag("items"));}
        
        }
    
    @Override
    public NBTTagCompound writeToNBT(NBTTagCompound compound) 
    {
        super.writeToNBT(compound);
        
        compound.setInteger("BurnTime", this.burnTime);
        compound.setInteger("CookTime", this.cookTime);
        compound.setInteger("CookTimeTotal", this.totalCookTime);
        
        compound.setTag("items", itemStackHandler.serializeNBT());
         return compound;
    }
    
        
     @Override
        public boolean hasCapability(Capability<?> capability, EnumFacing facing)
        {
            if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) return true;
            else return false;
        }
        
        @Override
        public <T> T getCapability(Capability<T> capability, EnumFacing facing)
        {
            if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(itemStackHandler);
            return super.getCapability(capability, facing);
        }
    
        public boolean isUsablebyplayer(EntityPlayer playerIn) {
            return !isInvalid() && playerIn.getDistanceSq(pos.add(0.5D, 0.5D, 0.5D)) <= 64D;
        }

        
        
        
        
    
}

 

 

But you also can see it in my brand new GitHub right here ?

 

Edited by sunsigne
better explanation
Posted (edited)

it's not cooking air, actually it's burning when the recipe is good but it's not "cooking", i maybe didn't define this properly...

 

Even adding thos lines

Spoiler

public void setInventorySlotContents(int index, ItemStack stack) 
    {
        ItemStack itemstack = this.itemStackHandler.getStackInSlot(index);
        boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack);
        this.itemStackHandler.setStackInSlot(index, stack);
        
        if(stack.getCount() > this.getInventoryStackLimit()) stack.setCount(this.getInventoryStackLimit());
        if(index == 0 && index + 1 == 1 && !flag)
        {
            ItemStack stack1 = this.itemStackHandler.getStackInSlot(index + 1);
            this.totalCookTime = this.getCookTime(stack, stack1);
            this.cookTime = 0;
            this.markDirty();
        }
    }

 

it still doesn't cook :s

 

 

EDIT : if i delete the Cooktime part, it insta gives me the good item following the recipe, i'm currently following this track ^^ i'll give the result soon

Edited by sunsigne
Posted

Good Damn! I finally did it !

 

I don't understand why, but i maganed to make it work ^^ the solution was to delete "totalcooktime" everywhere in my tileentity and replace it by the actual totalcooktime i wanted (here, 20 ticks).

 

I finally can notice this topic as solved !

 

 

Now if people wants to make a custom furnace using ItemHandler instead of IIventory, just copy-paste this tile entity :

Spoiler

package sunsigne.MyMod.tileentity;

import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityLockableLoot;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.ItemStackHandler;
import sunsigne.MyMod.Reference;
import sunsigne.MyMod.blocks.FakeBlock;
import sunsigne.MyMod.container.FakeBlockContainer;
import sunsigne.MyMod.container.FakeRecipes;

public class FakeBlockTileEntity extends TileEntity implements ITickable {

        

public static final int SIZE = 4;
    
    private int burnTime;
    private int currentBurnTime;
    private int cookTime;
        
    
    private ItemStackHandler itemStackHandler = new ItemStackHandler(SIZE)
    {
        @Override
        protected void onContentsChanged(int slot) {
            
            FakeBlockTileEntity.this.markDirty();
        }
    };
    

    
    public static int getItemBurnTime(ItemStack fuel) 
    {
        if(fuel.isEmpty()) return 0;
        else 
        {
            Item item = fuel.getItem();
            if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.AIR) {}
            
            if(item == Items.DIAMOND) return 20;
//            if(item == Items.LAPIS_LAZULI) return 1200;

            return GameRegistry.getFuelValue(fuel);
        }
    }
    

    
    
    
    
    public static boolean isItemFuel(ItemStack fuel)
    {
        return getItemBurnTime(fuel) > 0;
    }

    
    
    
    @Override
    public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newSate)
    {
        return true;
    }


    
    
    public boolean isBurning() 
    {
        return this.burnTime > 0;
    }
    
    
    @SideOnly(Side.CLIENT)
      public static boolean isBurning(FakeBlockTileEntity te) {

        return te.getField(0) > 0;
    }

    
    
    
    public void update() 
    {
        boolean flag = this.isBurning();
        boolean flag1 = false;
        
        if(this.isBurning()) --this.burnTime;
        
        if(!this.world.isRemote) 
        {

                ItemStack fuel = this.itemStackHandler.getStackInSlot(2);
            
            
            if(this.isBurning() || !fuel.isEmpty() && !(this.itemStackHandler.getStackInSlot(0)).isEmpty() || (this.itemStackHandler.getStackInSlot(1)).isEmpty())
            {
                if(!this.isBurning() && this.canSmelt()) 
                {
                    this.burnTime = getItemBurnTime(fuel);
                    this.currentBurnTime = this.burnTime;
                    
                    if(this.isBurning()) 
                    {
                        flag1 = true;
                        
                        if(!fuel.isEmpty()) 
                        {
                            Item item = fuel.getItem();
                            fuel.shrink(1);
                            
                            if(fuel.isEmpty()) 
                            {
                                ItemStack item1 = item.getContainerItem(fuel);
                                this.itemStackHandler.setStackInSlot(2, item1);
                            }
                        }
                    }
                } 
                if(this.isBurning() && this.canSmelt()) 
                {
                    ++this.cookTime;
                    
//the 20 here is the total cook time i want. The cook lasts 20 ticks then the item is cooked
                    
                    if(this.cookTime == 20) 
                    {
                        this.cookTime = 0;
                        this.smeltItem();
                        flag1 = true;
                    }
                } 
                else this.cookTime = 0;
            } 
            else if(!this.isBurning() && this.cookTime > 0) 
                
//same here : 20 is for 20 ticks of cooking                
            {
                this.cookTime = MathHelper.clamp(this.cookTime - 2, 0, 20);
            }
            if(flag != this.isBurning()) 
            {
                flag1 = true;
                FakeBlock.setState(this.isBurning(), this.world, this.pos);
            }
        } 
        if(flag1) this.markDirty();
    }
    
    
    
    private boolean canSmelt() 
    {
            
            
        
        
        if((this.itemStackHandler.getStackInSlot(0)).isEmpty() || ((this.itemStackHandler.getStackInSlot(0)).isEmpty())) return false;
        else 
        {
                
            ItemStack result = FakeRecipes.getInstance().getFakeResult(this.itemStackHandler.getStackInSlot(0), this.itemStackHandler.getStackInSlot(1));    
            
            if(result.isEmpty()) return false;
            else
            {
                ItemStack output = this.itemStackHandler.getStackInSlot(3);
                
                if(output.isEmpty()) return true;
                if(!output.isItemEqual(result)) return false;
                int res = output.getCount() + result.getCount();
                return res <= getInventoryStackLimit() && res <= output.getMaxStackSize();
            }
        }
    }
    
    
    private int getInventoryStackLimit() {
        return 64;
    
    }

    
    
    public void smeltItem() 
    {
                
        if(this.canSmelt()) 
        {
            
            ItemStack input1 = this.itemStackHandler.getStackInSlot(0);
            ItemStack input2 = this.itemStackHandler.getStackInSlot(1);
            ItemStack output = this.itemStackHandler.getStackInSlot(3);
            ItemStack result = FakeRecipes.getInstance().getFakeResult(input1, input2);    
            
            
            if(output.isEmpty()) this.itemStackHandler.setStackInSlot(3, result.copy());
            else if(output.getItem() == result.getItem()) output.grow(result.getCount());
            
            input1.shrink(1);
            input2.shrink(1);
        }
    }
    
    
        

    
     public int getField(int id)
        {
            switch(id)
            {
            case 0:
                return this.burnTime;
            case 1:
                return this.currentBurnTime;
            case 2:
                return this.cookTime;
            default:
                return 0;
            }
        }
            public void setField(int id, int value)
        {
            switch(id)
            {
            case 0:
                this.burnTime = value;
                break;
            case 1:
                this.currentBurnTime = value;
                break;
            case 2:
                this.cookTime = value;
                break;
            }
        }
    
    
    
    
    
    
    @Override
    public void readFromNBT(NBTTagCompound compound)
    {
        super.readFromNBT(compound);

        this.burnTime = compound.getInteger("BurnTime");
        this.cookTime = compound.getInteger("CookTime");
        
         if (compound.hasKey("items")) {itemStackHandler.deserializeNBT((NBTTagCompound) compound.getTag("items"));}
        
        }
    
    @Override
    public NBTTagCompound writeToNBT(NBTTagCompound compound) 
    {
        super.writeToNBT(compound);
        
        compound.setInteger("BurnTime", this.burnTime);
        compound.setInteger("CookTime", this.cookTime);

        
        compound.setTag("items", itemStackHandler.serializeNBT());
         return compound;
    }
    
        
     @Override
        public boolean hasCapability(Capability<?> capability, EnumFacing facing)
        {
            if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) return true;
            else return false;
        }
        
        @Override
        public <T> T getCapability(Capability<T> capability, EnumFacing facing)
        {
            if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(itemStackHandler);
            return super.getCapability(capability, facing);
        }
    
        public boolean isUsablebyplayer(EntityPlayer playerIn) {
            return !isInvalid() && playerIn.getDistanceSq(pos.add(0.5D, 0.5D, 0.5D)) <= 64D;
        }

        
        
        
        
    
}
 

 

Posted (edited)

Your code could be cleaned up a bit (you don’t really need set/getField), made more readable (extract logic to functions) and simplified (your hasCapability method) but it looks pretty good IMO

Edited by Cadiboo
  • Like 1

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

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

    • so i have a forge 1.20.1 server hosted on oddblox and ive been playing it for about 3 days and suddenly now without adding new mods it crashes? can anyone help   heres my logs i think?       ---- Minecraft Crash Report ---- // But it works on my machine. Time: 2025-03-06 00:16:06 Description: Ticking entity java.lang.IllegalArgumentException: Cannot get property IntegerProperty{name=level, clazz=class java.lang.Integer, values=[0, 1, 2, 3, 4, 5, 6, 7, 8]} as it does not exist in Block{create:copycat_step}     at net.minecraft.world.level.block.state.StateHolder.m_61143_(StateHolder.java:98) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}     at mokiyoki.enhancedanimals.blocks.UnboundHayBlock.m_142072_(UnboundHayBlock.java:331) ~[GeneticAnimals-0_11_12.jar%23297!/:0_11_12] {re:classloading}     at com.simibubi.create.content.decoration.copycat.CopycatBlock.m_142072_(CopycatBlock.java:355) ~[create-1.20.1-0.5.1.j.jar%23261!/:0.5.1.j] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.world.entity.Entity.m_7840_(Entity.java:1128) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_7840_(LivingEntity.java:312) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.Entity.m_6478_(Entity.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_21074_(LivingEntity.java:2195) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_7023_(LivingEntity.java:2132) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_8107_(LivingEntity.java:2605) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.Mob.m_8107_(Mob.java:536) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorMob,pl:mixin:APP:sapience.mixins.json:MobAccessor,pl:mixin:APP:sapience.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:respawninganimals.forge.mixins.json:accessor.MobForgeAccessor,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:backpacked.common.mixins.json:common.MobMixin,pl:mixin:APP:vampirism.mixins.json:MixinMobEntity,pl:mixin:APP:werewolves.mixins.json:entity.MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.monster.Monster.m_8107_(Monster.java:42) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,re:computing_frames,re:classloading,pl:mixin:APP:naturalist-common.mixins.json:MonsterMixin,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2298) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.Mob.m_8119_(Mob.java:337) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorMob,pl:mixin:APP:sapience.mixins.json:MobAccessor,pl:mixin:APP:sapience.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:respawninganimals.forge.mixins.json:accessor.MobForgeAccessor,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:backpacked.common.mixins.json:common.MobMixin,pl:mixin:APP:vampirism.mixins.json:MixinMobEntity,pl:mixin:APP:werewolves.mixins.json:entity.MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.monster.Spider.m_8119_(Spider.java:79) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:alexsmobsinteraction.mixins.json:mobs.vanillamob.AMISpider,pl:mixin:APP:crittersandcompanions.mixins.json:NeutralMobsMixin,pl:mixin:A}     at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:694) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.world.level.Level.m_46653_(Level.java:479) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:LevelMixin,pl:mixin:A}     at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:343) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:classloading}     at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:323) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:lithostitched.mixins.json:server.DedicatedServerMixin,pl:mixin:APP:blueprint.mixins.json:DedicatedServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at java.lang.Thread.run(Thread.java:842) ~[?:?] {re:mixin} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Suspected Mods:     Create (create), Version: 0.5.1.j         Issue tracker URL: https://github.com/Creators-of-Create/Create/issues         at TRANSFORMER/[email protected]/com.simibubi.create.content.decoration.copycat.CopycatBlock.m_142072_(CopycatBlock.java:355)     Genetic Animals (eanimod), Version: 0.11.12         at TRANSFORMER/[email protected]/mokiyoki.enhancedanimals.blocks.UnboundHayBlock.m_142072_(UnboundHayBlock.java:331) Stacktrace:     at net.minecraft.world.level.block.state.StateHolder.m_61143_(StateHolder.java:98) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}     at mokiyoki.enhancedanimals.blocks.UnboundHayBlock.m_142072_(UnboundHayBlock.java:331) ~[GeneticAnimals-0_11_12.jar%23297!/:0_11_12] {re:classloading}     at com.simibubi.create.content.decoration.copycat.CopycatBlock.m_142072_(CopycatBlock.java:355) ~[create-1.20.1-0.5.1.j.jar%23261!/:0.5.1.j] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.world.entity.Entity.m_7840_(Entity.java:1128) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_7840_(LivingEntity.java:312) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.Entity.m_6478_(Entity.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_21074_(LivingEntity.java:2195) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_7023_(LivingEntity.java:2132) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_8107_(LivingEntity.java:2605) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.Mob.m_8107_(Mob.java:536) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorMob,pl:mixin:APP:sapience.mixins.json:MobAccessor,pl:mixin:APP:sapience.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:respawninganimals.forge.mixins.json:accessor.MobForgeAccessor,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:backpacked.common.mixins.json:common.MobMixin,pl:mixin:APP:vampirism.mixins.json:MixinMobEntity,pl:mixin:APP:werewolves.mixins.json:entity.MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.monster.Monster.m_8107_(Monster.java:42) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,re:computing_frames,re:classloading,pl:mixin:APP:naturalist-common.mixins.json:MonsterMixin,pl:mixin:A}     at net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2298) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:refurbished_furniture.common.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin,pl:mixin:APP:environmental.mixins.json:LivingEntityMixin,pl:mixin:APP:endermanoverhaul-common.mixins.json:common.LivingEntityMixin,pl:mixin:APP:truly_custom_horse_tack.mixins.json:LivingEntityMixin,pl:mixin:APP:ecologics-common.mixins.json:LivingEntityMixin,pl:mixin:APP:vampirism.mixins.json:LivingEntityAccessor,pl:mixin:APP:vampirism.mixins.json:MixinLivingEntity,pl:mixin:APP:werewolves.mixins.json:LivingEntityAccessor,pl:mixin:APP:werewolves.mixins.json:entity.LivingEntityMixin,pl:mixin:APP:crittersandcompanions.mixins.json:LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.Mob.m_8119_(Mob.java:337) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:naturalist-common.mixins.json:MobMixin,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorMob,pl:mixin:APP:sapience.mixins.json:MobAccessor,pl:mixin:APP:sapience.mixins.json:MobMixin,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin,pl:mixin:APP:respawninganimals.forge.mixins.json:accessor.MobForgeAccessor,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin,pl:mixin:APP:backpacked.common.mixins.json:common.MobMixin,pl:mixin:APP:vampirism.mixins.json:MixinMobEntity,pl:mixin:APP:werewolves.mixins.json:entity.MobMixin,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin,pl:mixin:A}     at net.minecraft.world.entity.monster.Spider.m_8119_(Spider.java:79) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:alexsmobsinteraction.mixins.json:mobs.vanillamob.AMISpider,pl:mixin:APP:crittersandcompanions.mixins.json:NeutralMobsMixin,pl:mixin:A}     at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:694) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.world.level.Level.m_46653_(Level.java:479) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:LevelMixin,pl:mixin:A}     at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:343) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:classloading}     at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:323) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A} -- Entity being ticked -- Details:     Entity Type: minecraft:spider (net.minecraft.world.entity.monster.Spider)     Entity ID: 110     Entity Name: Spider     Entity's Exact location: 4139.89, 64.50, 4211.54     Entity's Block location: World: (4139,64,4211), Section: (at 11,0,3 in 258,4,263; chunk contains blocks 4128,-64,4208 to 4143,319,4223), Region: (8,8; contains chunks 256,256 to 287,287, blocks 4096,-64,4096 to 4607,319,4607)     Entity's Momentum: -0.01, -0.30, -0.06     Entity's Passengers: []     Entity's Vehicle: null Stacktrace:     at net.minecraft.world.level.Level.m_46653_(Level.java:479) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:LevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:LevelMixin,pl:mixin:A}     at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:343) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:classloading}     at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:323) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:refurbished_furniture.common.mixins.json:ServerLevelMixin,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin,pl:mixin:APP:comforts.mixins.json:MixinServerSleepStatus,pl:mixin:APP:glitchcore.mixins.json:MixinServerLevel,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ohthetreesyoullgrow.mixins.json:MixinServerLevel,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:lithostitched.mixins.json:server.DedicatedServerMixin,pl:mixin:APP:blueprint.mixins.json:DedicatedServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at java.lang.Thread.run(Thread.java:842) ~[?:?] {re:mixin} -- Affected level -- Details:     All players: 0 total; []     Chunk stats: 2209     Level dimension: minecraft:overworld     Level spawn location: World: (4091,64,4157), Section: (at 11,0,13 in 255,4,259; chunk contains blocks 4080,-64,4144 to 4095,319,4159), Region: (7,8; contains chunks 224,256 to 255,287, blocks 3584,-64,4096 to 4095,319,4607)     Level time: 2357078 game time, 22859 day time     Level name: world     Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false     Level weather: Rain time: 15348 (now: false), thunder time: 10886 (now: false)     Known server brands: forge     Removed feature flags:     Level was modded: true     Level storage version: 0x04ABD - Anvil Stacktrace:     at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:lithostitched.mixins.json:server.DedicatedServerMixin,pl:mixin:APP:blueprint.mixins.json:DedicatedServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23359!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin,pl:mixin:A}     at java.lang.Thread.run(Thread.java:842) ~[?:?] {re:mixin} -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Linux (amd64) version 5.15.0-102-generic     Java Version: 17.0.10, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation     Memory: 2018486768 bytes (1924 MiB) / 5360320512 bytes (5112 MiB) up to 9865003008 bytes (9408 MiB)     CPUs: 16     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 7700X 8-Core Processor     Identifier: AuthenticAMD Family 25 Model 97 Stepping 2     Microarchitecture: Zen 3     Frequency (GHz): -0.00     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: unknown     Graphics card #0 vendor: unknown     Graphics card #0 VRAM (MB): 0.00     Graphics card #0 deviceId: unknown     Graphics card #0 versionInfo: unknown     Virtual memory max (MB): 104953.11     Virtual memory used (MB): 96677.30     Swap memory total (MB): 40959.99     Swap memory used (MB): 22821.18     JVM Flags: 29 total; -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:JVMCIThreadsPerNativeLibraryRuntime=1 -XX:-UnlockExperimentalVMOptions -XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:JVMCIThreadsPerNativeLibraryRuntime=1 -XX:-UnlockExperimentalVMOptions -Xms128M -XX:MaxRAMPercentage=95.0 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseNUMA -XX:AllocatePrefetchStyle=3 -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:+EagerJVMCI     Server Running: true     Player Count: 0 / 20; []     Data Packs: vanilla, mod:forge, mod:unusualfishmod (incompatible), mod:supermartijn642configlib (incompatible), mod:animal_barn, mod:playeranimator (incompatible), mod:naturalist (incompatible), mod:alexsmobsnaturalistcompat, mod:realisticbees, mod:citadel (incompatible), mod:mixinextras (incompatible), mod:gamma_creatures, mod:bookshelf, mod:createdieselgenerators (incompatible), mod:railways, mod:ctov, mod:fossilsorigins, mod:explorations, mod:oceans_enhancements, mod:farmersdelight, mod:supplementaries, mod:create_ultimate_factory, mod:structurecompass, mod:supermartijn642corelib, mod:resourcefulconfig (incompatible), mod:alexsmobsinteraction (incompatible), mod:alexsmobs (incompatible), mod:luphieclutteredmod, mod:hole_filler_mod, mod:curios (incompatible), mod:patchouli (incompatible), mod:createarmory, mod:blockui, mod:collective, mod:seadwellers, mod:horse_colors, mod:resourcefullib (incompatible), mod:sapience (incompatible), mod:architectury (incompatible), mod:mcwfurnitures, mod:cupboard (incompatible), mod:chimes, mod:refurbished_furniture, mod:framework, mod:fallingtree (incompatible), mod:bettas, mod:dynamictrees (incompatible), mod:dynamictreesplus (incompatible), mod:bighorsestable, mod:agricraft, mod:rechiseled (incompatible), mod:amendments (incompatible), mod:jei, mod:lithostitched, mod:pehkui (incompatible), mod:aardvarksweirdzoology, mod:comforts (incompatible), mod:naturescompass, mod:untamedwilds, mod:glitchcore (incompatible), mod:rechiseledcreate, mod:respawninganimals, mod:everycomp (incompatible), mod:explorerscompass, mod:iceandfire, mod:createhorsepower, mod:fusion, mod:animalistic_a, mod:puzzlesaccessapi, mod:tfmg (incompatible), mod:mo_creatures_reforge, mod:petting, mod:fishermans_haven, mod:cnc, mod:ancore, mod:seacreeps, mod:pumpeddesertremake, mod:enchdesc (incompatible), mod:terrablender, mod:biomesoplenty, mod:moonlight (incompatible), mod:endermanoverhaul (incompatible), mod:babyfat (incompatible), mod:mysterious_mountain_lib (incompatible), mod:mixinsquared (incompatible), mod:smallhorsestable, mod:jade (incompatible), mod:unusualprehistory, mod:ohthetreesyoullgrow, mod:spectrelib (incompatible), mod:corgilib, mod:eanimod (incompatible), mod:domum_ornamentum, mod:astikorcarts (incompatible), mod:dtalexsmobs (incompatible), mod:betterfpsdist (incompatible), mod:kotlinforforge (incompatible), mod:tctcore, mod:flywheel, mod:effortlessbuilding, mod:create, mod:ecologics, mod:dtecologics (incompatible), mod:polymorph (incompatible), mod:backpacked (incompatible), mod:regrowth, mod:offlineskins, mod:buildinggadgets2 (incompatible), mod:structurize, mod:wildernature, mod:vampirism, mod:vampirism_integrations (incompatible), mod:werewolves, mod:palegarden, mod:simplycats, mod:puzzleslib, mod:aquaculture, mod:spawn (incompatible), mod:oddorganisms (incompatible), mod:createaddition (incompatible), mod:fintastic, mod:geckolib, mod:swem (incompatible), mod:biomeswevegone, mod:crittersandcompanions (incompatible), mod:creeperoverhaul, Everycomp Generated Pack, Supplementaries Generated Pack, builtin/agricraft_datapacks_biomesoplenty, builtin/agricraft_datapacks_farmersdelight, lithostitched/breaks_seed_parity, mod:badmobs (incompatible), mod:truly_custom_horse_tack, mod:animal_feeding_trough (incompatible), mod:modogs (incompatible), mod:blueprint, mod:exoticbirds, mod:cnb (incompatible), mod:environmental (incompatible), mod:autumnity (incompatible)     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     Is Modded: Definitely; Server brand changed to 'forge'     Type: Dedicated Server (map_server.txt)     ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeserver     ModLauncher naming: srg     ModLauncher services:         mixin-0.8.5.jar mixin PLUGINSERVICE         eventbus-6.0.5.jar eventbus PLUGINSERVICE         fmlloader-1.20.1-47.3.33.jar slf4jfixer PLUGINSERVICE         fmlloader-1.20.1-47.3.33.jar object_holder_definalize PLUGINSERVICE         fmlloader-1.20.1-47.3.33.jar runtime_enum_extender PLUGINSERVICE         fmlloader-1.20.1-47.3.33.jar capability_token_subclass PLUGINSERVICE         accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE         fmlloader-1.20.1-47.3.33.jar runtimedistcleaner PLUGINSERVICE         modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE         modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE     FML Language Providers:         [email protected]         [email protected]         javafml@null         lowcodefml@null     Mod List:         unusualfishmod-1.1.8.jar                          |Unusual Fish Mod              |unusualfishmod                |1.1.8               |DONE      |Manifest: NOSIGNATURE         supermartijn642configlib-1.1.8-forge-mc1.20.jar   |SuperMartijn642's Config Libra|supermartijn642configlib      |1.1.8               |DONE      |Manifest: NOSIGNATURE         animal_barn-1.0.1 forge 1.20.1.jar                |animal barn                   |animal_barn                   |1.0.1               |DONE      |Manifest: NOSIGNATURE         player-animation-lib-forge-1.0.2-rc1+1.20.jar     |Player Animator               |playeranimator                |1.0.2-rc1+1.20      |DONE      |Manifest: NOSIGNATURE         naturalist-forge-4.0.3-1.20.1.jar                 |Naturalist                    |naturalist                    |4.0.3               |DONE      |Manifest: NOSIGNATURE         modogs-2.0.0.1-1.20.1.jar                         |Mo'Dogs                       |modogs                        |2.0.0.1-1.20.1      |DONE      |Manifest: NOSIGNATURE         Compat_AlexsMobs-Naturalist.jar                   |Alex's Mobs - Naturalist Compa|alexsmobsnaturalistcompat     |1.2.0               |DONE      |Manifest: NOSIGNATURE         realisticbees-1.20.1-4.1.jar                      |Realistic Bees                |realisticbees                 |4.1                 |DONE      |Manifest: NOSIGNATURE         citadel-2.6.1-1.20.1.jar                          |Citadel                       |citadel                       |2.6.1               |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.4.1.jar                       |MixinExtras                   |mixinextras                   |0.4.1               |DONE      |Manifest: NOSIGNATURE         gamma_creatures_mod-1.1.0_1.20.1.jar              |gamma creatures               |gamma_creatures               |1.1.0               |DONE      |Manifest: NOSIGNATURE         Bookshelf-Forge-1.20.1-20.2.13.jar                |Bookshelf                     |bookshelf                     |20.2.13             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         createdieselgenerators-1.20.1-1.2i.jar            |Create Diesel Generators      |createdieselgenerators        |1.20.1-1.2i         |DONE      |Manifest: NOSIGNATURE         Steam_Rails-1.6.7+forge-mc1.20.1.jar              |Create: Steam 'n' Rails       |railways                      |1.6.7+forge-mc1.20.1|DONE      |Manifest: NOSIGNATURE         [forge]ctov-3.4.11.jar                            |ChoiceTheorem's Overhauled Vil|ctov                          |3.4.11              |DONE      |Manifest: NOSIGNATURE         fossilsorigins-1.0.2-forge-1.20.1.jar             |FossilsOrigins                |fossilsorigins                |1.0.0               |DONE      |Manifest: NOSIGNATURE         explorations-forge-1.20.1-1.6.1.jar               |Explorations+                 |explorations                  |1.20.1-1.6.1        |DONE      |Manifest: NOSIGNATURE         oceans_enhancements-1.0.0-forge-1.20.1.jar        |Ocean's Enhancements          |oceans_enhancements           |1.0.0               |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.7.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.7        |DONE      |Manifest: NOSIGNATURE         supplementaries-1.20-3.1.18.jar                   |Supplementaries               |supplementaries               |1.20-3.1.18         |DONE      |Manifest: NOSIGNATURE         create_ultimate_factory-1.9.0-forge-1.20.1.jar    |Create: Ultimate Factory      |create_ultimate_factory       |1.9.0               |DONE      |Manifest: NOSIGNATURE         StructureCompass-1.20.1-2.1.0.jar                 |Structure Compass Mod         |structurecompass              |2.1.0               |DONE      |Manifest: NOSIGNATURE         supermartijn642corelib-1.1.18-forge-mc1.20.1.jar  |SuperMartijn642's Core Lib    |supermartijn642corelib        |1.1.18              |DONE      |Manifest: NOSIGNATURE         resourcefulconfig-forge-1.20.1-2.1.3.jar          |Resourcefulconfig             |resourcefulconfig             |2.1.3               |DONE      |Manifest: NOSIGNATURE         alexsmobsinteraction-4.3-all.jar                  |Alexs Mobs Interaction        |alexsmobsinteraction          |4.3                 |DONE      |Manifest: NOSIGNATURE         alexsmobs-1.22.9.jar                              |Alex's Mobs                   |alexsmobs                     |1.22.9              |DONE      |Manifest: NOSIGNATURE         CNB-1.20.1-1.5.6.jar                              |Creatures and Beasts          |cnb                           |1.5.6               |DONE      |Manifest: NOSIGNATURE         cluttered-2.1-1.20.1.jar                          |Cluttered                     |luphieclutteredmod            |2.1                 |DONE      |Manifest: NOSIGNATURE         hole_filler_mod-1.2.8_mc-1.20.1_forge.jar         |Hole Filler Mod               |hole_filler_mod               |1.2.8               |DONE      |Manifest: NOSIGNATURE         curios-forge-5.12.1+1.20.1.jar                    |Curios API                    |curios                        |5.12.1+1.20.1       |DONE      |Manifest: NOSIGNATURE         Patchouli-1.20.1-84.1-FORGE.jar                   |Patchouli                     |patchouli                     |1.20.1-84.1-FORGE   |DONE      |Manifest: NOSIGNATURE         createarmoryv0.6.1n.jar                           |CreateArmory                  |createarmory                  |0.5                 |DONE      |Manifest: NOSIGNATURE         blockui-1.20.1-1.0.156-RELEASE.jar                |UI Library Mod                |blockui                       |1.20.1-1.0.156-RELEA|DONE      |Manifest: NOSIGNATURE         collective-1.20.1-7.93.jar                        |Collective                    |collective                    |7.93                |DONE      |Manifest: NOSIGNATURE         realmrpg_seadwellers_2.9.9_forge_1.20.1.jar       |Realm RPG: Sea Dwellers       |seadwellers                   |2.9.9               |DONE      |Manifest: NOSIGNATURE         realistic_horse_genetics-1.20.1-13.5.jar          |Realistic Horse Genetics      |horse_colors                  |1.20.1-13.5         |DONE      |Manifest: NOSIGNATURE         resourcefullib-forge-1.20.1-2.1.29.jar            |Resourceful Lib               |resourcefullib                |2.1.29              |DONE      |Manifest: NOSIGNATURE         sapience-1.20.1-1.0.0.jar                         |Sapience                      |sapience                      |1.20.1-1.0.0        |DONE      |Manifest: NOSIGNATURE         architectury-9.2.14-forge.jar                     |Architectury                  |architectury                  |9.2.14              |DONE      |Manifest: NOSIGNATURE         mcw-furniture-3.3.0-mc1.20.1forge.jar             |Macaw's Furniture             |mcwfurnitures                 |3.3.0               |DONE      |Manifest: NOSIGNATURE         cupboard-1.20.1-2.7.jar                           |Cupboard utilities            |cupboard                      |1.20.1-2.7          |DONE      |Manifest: NOSIGNATURE         Chimes-v2.0.1-1.20.1.jar                          |Chimes                        |chimes                        |2.0.1               |DONE      |Manifest: NOSIGNATURE         refurbished_furniture-forge-1.20.1-1.0.9.jar      |MrCrayfish's Furniture Mod: Re|refurbished_furniture         |1.0.9               |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         framework-forge-1.20.1-0.7.12.jar                 |Framework                     |framework                     |0.7.12              |DONE      |Manifest: 0d:78:5f:44:c0:47:0c:8c:e2:63:a3:04:43:d4:12:7d:b0:7c:35:37:dc:40:b1:c1:98:ec:51:eb:3b:3c:45:99         FallingTree-1.20.1-4.3.4.jar                      |FallingTree                   |fallingtree                   |4.3.4               |DONE      |Manifest: 3c:8e:df:6c:df:a6:2a:9f:af:64:ea:04:9a:cf:65:92:3b:54:93:0e:96:50:b4:52:e1:13:42:18:2b:ae:40:29         DragN_Bettas-1.20.1-1.2.3.jar                     |DragN's Bettas                |bettas                        |1.2.3               |DONE      |Manifest: NOSIGNATURE         exoticbirds-1.20.1-1.0.0.jar                      |Exotic Birds                  |exoticbirds                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         DynamicTrees-1.20.1-1.4.1.jar                     |Dynamic Trees                 |dynamictrees                  |1.20.1-1.4.1        |DONE      |Manifest: NOSIGNATURE         DynamicTreesPlus-1.20.1-1.2.0-BETA3.jar           |Dynamic Trees Plus            |dynamictreesplus              |1.20.1-1.2.0-BETA3  |DONE      |Manifest: NOSIGNATURE         bighorsestable-1.0.1 Forge 1.20.1.jar             |bighorsestable                |bighorsestable                |1.0.1               |DONE      |Manifest: NOSIGNATURE         AgriCraft-forge-1.20.1-4.0.5.jar                  |AgriCraft                     |agricraft                     |4.0.5               |DONE      |Manifest: NOSIGNATURE         rechiseled-1.1.6-forge-mc1.20.jar                 |Rechiseled                    |rechiseled                    |1.1.6               |DONE      |Manifest: NOSIGNATURE         amendments-1.20-1.2.18.jar                        |Amendments                    |amendments                    |1.20-1.2.18         |DONE      |Manifest: NOSIGNATURE         jei-1.20.1-forge-15.20.0.106.jar                  |Just Enough Items             |jei                           |15.20.0.106         |DONE      |Manifest: NOSIGNATURE         lithostitched-forge-1.20.1-1.4.4.jar              |Lithostitched                 |lithostitched                 |1.4                 |DONE      |Manifest: NOSIGNATURE         Pehkui-3.8.2+1.20.1-forge.jar                     |Pehkui                        |pehkui                        |3.8.2+1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         aardvarksweirdzoology-1.10.7 - Small DNA.jar      |Aardvarks Weird Zoology       |aardvarksweirdzoology         |1.10.7              |DONE      |Manifest: NOSIGNATURE         comforts-forge-6.4.0+1.20.1.jar                   |Comforts                      |comforts                      |6.4.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         NaturesCompass-1.20.1-1.11.2-forge.jar            |Nature's Compass              |naturescompass                |1.20.1-1.11.2-forge |DONE      |Manifest: NOSIGNATURE         untamedwilds-1.20.1-4.0.4.jar                     |Untamed Wilds                 |untamedwilds                  |4.0.4               |DONE      |Manifest: NOSIGNATURE         GlitchCore-forge-1.20.1-0.0.1.1.jar               |GlitchCore                    |glitchcore                    |0.0.1.1             |DONE      |Manifest: NOSIGNATURE         BadMobs-1.20.1-19.0.4.jar                         |BadMobs                       |badmobs                       |19.0.4              |DONE      |Manifest: NOSIGNATURE         rechiseledcreate-1.0.2-forge-mc1.20.jar           |Rechiseled: Create            |rechiseledcreate              |1.0.2               |DONE      |Manifest: NOSIGNATURE         RespawningAnimals-v8.2.1-1.20.1-Forge.jar         |Respawning Animals            |respawninganimals             |8.2.1               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         everycomp-1.20-2.7.19.jar                         |Every Compat                  |everycomp                     |1.20-2.7.19         |DONE      |Manifest: NOSIGNATURE         ExplorersCompass-1.20.1-1.3.3-forge.jar           |Explorer's Compass            |explorerscompass              |1.20.1-1.3.3-forge  |DONE      |Manifest: NOSIGNATURE         iceandfire-2.1.13-1.20.1-beta-5.jar               |Ice and Fire                  |iceandfire                    |2.1.13-1.20.1       |DONE      |Manifest: NOSIGNATURE         createhorsepower-1.0.0.jar                        |Create Horse Power            |createhorsepower              |1.0.0               |DONE      |Manifest: NOSIGNATURE         fusion-1.2.4-forge-mc1.20.1.jar                   |Fusion                        |fusion                        |1.2.4               |DONE      |Manifest: NOSIGNATURE         blueprint-1.20.1-7.1.2.jar                        |Blueprint                     |blueprint                     |7.1.2               |DONE      |Manifest: NOSIGNATURE         environmental-1.20.1-4.0.1.jar                    |Environmental                 |environmental                 |4.0.1               |DONE      |Manifest: NOSIGNATURE         Animalistic_mod_1.2.2_1.20.1.jar                  |Animalistic                   |animalistic_a                 |1.2.2               |DONE      |Manifest: NOSIGNATURE         puzzlesaccessapi-forge-8.0.7.jar                  |Puzzles Access Api            |puzzlesaccessapi              |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         forge-1.20.1-47.3.33-universal.jar                |Forge                         |forge                         |47.3.33             |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         tfmg-0.9.3-1.20.1.jar                             |Create: The Factory Must Grow |tfmg                          |0.9.3-1.20.1        |DONE      |Manifest: NOSIGNATURE         server-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: NOSIGNATURE         mo_creatures_reforge-1.0.0-forgepoodle-1.20.1.jar |Mo Creatures Reforge          |mo_creatures_reforge          |1.0.0               |DONE      |Manifest: NOSIGNATURE         petting-2.0.4-forge-1.20.1.jar                    |Petting                       |petting                       |2.0.4               |DONE      |Manifest: NOSIGNATURE         fishermans_haven-2.0301-forge-1.20.1.jar          |Fisherman's Haven             |fishermans_haven              |2.0301              |DONE      |Manifest: NOSIGNATURE         Critters n' Crawlers-2.2.2-mc1.20.1.jar           |Critters n' Crawlers          |cnc                           |2.2.2               |DONE      |Manifest: NOSIGNATURE         ancore-2.0.2-forge-1.20.1.jar                     |AnCore                        |ancore                        |2.0.2               |DONE      |Manifest: NOSIGNATURE         seacreeps-1.2.6-forge-1.20.1.jar                  |SeaCreeps                     |seacreeps                     |1.2.6               |DONE      |Manifest: NOSIGNATURE         pumpeddesertremake-2.0.0-forge-1.20.1.jar         |Pumped Desert Remake          |pumpeddesertremake            |2.0.0               |DONE      |Manifest: NOSIGNATURE         EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar  |EnchantmentDescriptions       |enchdesc                      |17.1.19             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         TerraBlender-forge-1.20.1-3.0.1.7.jar             |TerraBlender                  |terrablender                  |3.0.1.7             |DONE      |Manifest: NOSIGNATURE         BiomesOPlenty-forge-1.20.1-19.0.0.94.jar          |Biomes O' Plenty              |biomesoplenty                 |19.0.0.94           |DONE      |Manifest: NOSIGNATURE         moonlight-1.20-2.13.70-forge.jar                  |Moonlight Library             |moonlight                     |1.20-2.13.70        |DONE      |Manifest: NOSIGNATURE         endermanoverhaul-forge-1.20.1-1.0.4.jar           |Enderman Overhaul             |endermanoverhaul              |1.0.4               |DONE      |Manifest: NOSIGNATURE         babyfat-1.0.0.jar                                 |Baby Fat                      |babyfat                       |1.0.0               |DONE      |Manifest: NOSIGNATURE         mysterious_mountain_lib-1.5.18-1.20.1.jar         |Mysterious Mountain Lib       |mysterious_mountain_lib       |1.5.18-1.20.1       |DONE      |Manifest: NOSIGNATURE         mixinsquared-forge-0.1.1.jar                      |MixinSquared                  |mixinsquared                  |0.1.1               |DONE      |Manifest: NOSIGNATURE         smallhorsestable-1.1.0-forge-1.20.1.jar           |SmallHorseStable              |smallhorsestable              |1.1.0               |DONE      |Manifest: NOSIGNATURE         Jade-1.20.1-Forge-11.12.3.jar                     |Jade                          |jade                          |11.12.3+forge       |DONE      |Manifest: NOSIGNATURE         animal_feeding_trough-1.1.0+1.20.1-forge.jar      |Animal Feeding Trough         |animal_feeding_trough         |1.1.0+1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         unusualprehistory-1.5.0.3.jar                     |Unusual Prehistory            |unusualprehistory             |1.5.0.3             |DONE      |Manifest: NOSIGNATURE         Oh-The-Trees-Youll-Grow-forge-1.20.1-1.3.4.jar    |Oh The Trees You'll Grow      |ohthetreesyoullgrow           |1.20.1-1.3.4        |DONE      |Manifest: NOSIGNATURE         spectrelib-forge-0.13.17+1.20.1.jar               |SpectreLib                    |spectrelib                    |0.13.17+1.20.1      |DONE      |Manifest: NOSIGNATURE         Corgilib-Forge-1.20.1-4.0.3.3.jar                 |CorgiLib                      |corgilib                      |4.0.3.3             |DONE      |Manifest: NOSIGNATURE         GeneticAnimals-0_11_12.jar                        |Genetic Animals               |eanimod                       |0.11.12             |DONE      |Manifest: NOSIGNATURE         domum_ornamentum-1.20.1-1.0.186-RELEASE-universal.|Domum Ornamentum              |domum_ornamentum              |1.20.1-1.0.186-RELEA|DONE      |Manifest: NOSIGNATURE         astikorcarts-1.20.1-1.1.8.jar                     |AstikorCarts Redux            |astikorcarts                  |1.1.8               |DONE      |Manifest: NOSIGNATURE         DynamicTreesAlexsMobs-1.20.1-1.0.0.jar            |Dynamic Trees for Alex's Mobs |dtalexsmobs                   |1.20.1-1.0.0        |DONE      |Manifest: NOSIGNATURE         betterfpsdist-1.20.1-6.0.jar                      |betterfpsdist mod             |betterfpsdist                 |1.20.1-6.0          |DONE      |Manifest: NOSIGNATURE         kffmod-4.11.0.jar                                 |Kotlin For Forge              |kotlinforforge                |4.11.0              |DONE      |Manifest: NOSIGNATURE         truly_custom_horse_tack-1.20.1-1.6.0.jar          |Truly Custom Horse Tack       |truly_custom_horse_tack       |1.6.0               |DONE      |Manifest: NOSIGNATURE         tctcore-1.6-forge-1.20.1.jar                      |tctcore                       |tctcore                       |1.6                 |DONE      |Manifest: NOSIGNATURE         flywheel-forge-1.20.1-0.6.11-13.jar               |Flywheel                      |flywheel                      |0.6.11-13           |DONE      |Manifest: NOSIGNATURE         effortlessbuilding-1.20.1-3.9-all.jar             |Effortless Building           |effortlessbuilding            |3.9                 |DONE      |Manifest: NOSIGNATURE         create-1.20.1-0.5.1.j.jar                         |Create                        |create                        |0.5.1.j             |DONE      |Manifest: NOSIGNATURE         ecologics-forge-1.20.1-2.2.0.jar                  |Ecologics                     |ecologics                     |2.2.0               |DONE      |Manifest: NOSIGNATURE         DynamicTreesEcologics-1.20.1-1.1.0.jar            |Dynamic Trees for Ecologics   |dtecologics                   |1.20.1-1.1.0        |DONE      |Manifest: NOSIGNATURE         autumnity-1.20.1-5.0.2.jar                        |Autumnity                     |autumnity                     |5.0.2               |DONE      |Manifest: NOSIGNATURE         polymorph-forge-0.49.8+1.20.1.jar                 |Polymorph                     |polymorph                     |0.49.8+1.20.1       |DONE      |Manifest: NOSIGNATURE         backpacked-forge-1.20.1-3.0.0-beta.9.jar          |Backpacked                    |backpacked                    |3.0.0-beta.9        |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         regrowth-1.20-46.31.2.jar                         |Regrowth                      |regrowth                      |46.31.2             |DONE      |Manifest: NOSIGNATURE         offlineskins-1.20.1-v1.jar                        |OfflineSkins                  |offlineskins                  |1.20.1-v1           |DONE      |Manifest: 5e:ed:25:99:e4:44:14:c0:dd:89:c1:a9:4c:10:b5:0d:e4:b1:52:50:45:82:13:d8:d0:32:89:67:56:57:01:53         buildinggadgets2-1.0.7.jar                        |Building Gadgets 2            |buildinggadgets2              |1.0.7               |DONE      |Manifest: NOSIGNATURE         structurize-1.20.1-1.0.764-snapshot.jar           |Structurize                   |structurize                   |1.20.1-1.0.764-snaps|DONE      |Manifest: NOSIGNATURE         letsdo-wildernature-forge-1.0.5.jar               |[Let's Do] Wilder Nature      |wildernature                  |1.0.5               |DONE      |Manifest: NOSIGNATURE         Vampirism-1.20.1-1.10.12.jar                      |Vampirism                     |vampirism                     |1.10.12             |DONE      |Manifest: NOSIGNATURE         vampirism_integrations-1.20.1-1.8.0.jar           |Vampirism Integrations        |vampirism_integrations        |1.8.0               |DONE      |Manifest: NOSIGNATURE         Werewolves-1.20.1-2.0.2.3.jar                     |Werewolves                    |werewolves                    |2.0.2.3             |DONE      |Manifest: NOSIGNATURE         palegarden-1.0.7-forge-1.20.1.jar                 |palegarden                    |palegarden                    |1.0.7               |DONE      |Manifest: NOSIGNATURE         simplycats-1.20.1-0.2.3.jar                       |Simply Cats                   |simplycats                    |1.20.1-0.2.3        |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.25-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.25              |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         Aquaculture-1.20.1-2.5.4.jar                      |Aquaculture 2                 |aquaculture                   |2.5.4               |DONE      |Manifest: NOSIGNATURE         spawn-1.0.2-forge.jar                             |Spawn                         |spawn                         |1.20.1-1.0.2        |DONE      |Manifest: NOSIGNATURE         oddorganisms-1.20.1-0.3.1.jar                     |Odd Organisms                 |oddorganisms                  |1.20.1-0.3.1        |DONE      |Manifest: NOSIGNATURE         createaddition-1.20.1-1.2.5.jar                   |Create Crafts & Additions     |createaddition                |1.20.1-1.2.5        |DONE      |Manifest: NOSIGNATURE         fintastic-1.5.jar                                 |Fintastic                     |fintastic                     |1.5                 |DONE      |Manifest: NOSIGNATURE         geckolib-forge-1.20.1-4.7.jar                     |GeckoLib 4                    |geckolib                      |4.7                 |DONE      |Manifest: NOSIGNATURE         swem-1.20.1-1.5.3.jar                             |Star Worm Equestrian Mod      |swem                          |1.5.3               |DONE      |Manifest: NOSIGNATURE         Oh-The-Biomes-Weve-Gone-Forge-1.5.7.jar           |Oh The Biomes We've Gone      |biomeswevegone                |1.5.7               |DONE      |Manifest: NOSIGNATURE         crittersandcompanions-forge-2.2.2.jar             |Critters and Companions       |crittersandcompanions         |2.2.2               |DONE      |Manifest: NOSIGNATURE         creeperoverhaul-3.0.2-forge.jar                   |Creeper Overhaul              |creeperoverhaul               |3.0.2               |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: a7503cef-f0f7-4645-a932-7541f4bab49b     FML: 47.3     Forge: net.minecraftforge:47.3.33  
    • I need help, I just started a modpack on curseforge 1.20.1. Everytime I start the game and right after I press singleplayer. The game will crash afterwards giving me an error saying MouseClicked event handler error. Here is my log of the the crashed report. any help would be appericated!   https://paste.ee/p/u1RvGR4v
    • i just keep removing different mods but i keep getting this strange crash after i updated forge to 47.4.0, it won't stop, someone please help me immediately https://mclo.gs/UbP0oxs log: https://mclo.gs/AnVrP2D
    • here is my log file: https://pastebin.com/keknmPFd
    • Looks like lithostitched and ctov are conflicting
  • Topics

×
×
  • Create New...

Important Information

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