Jump to content

[1.7.10] Custom "Machine" Not letting me move items in inventory.


coppyhop

Recommended Posts

Hello. I am currently making a mod for Minecraft, and have run into some problems. Whenevery I open my custom "Machine" the Metal Smelter, I can't move any Items at all. I can't test If the thing works because It won't let me move anything in the inventory at all. I click, and it snaps back.

 

Tile Entity:

package com.coppyhop.FutureCraft.tile;

import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFurnace;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;

public class TileMetalSmelterEntity extends TileEntity implements ISidedInventory
{
    private static final int[] slotsTop = new int[] {0};
    private static final int[] slotsBottom = new int[] {2, 1};
    private static final int[] slotsSides = new int[] {1};
    /** The ItemStacks that hold the items currently being used in the furnace */
    private ItemStack[] furnaceItemStacks = new ItemStack[3];
    /** The number of ticks that the furnace will keep burning */
    public int furnaceBurnTime;
    /** The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for */
    public int currentItemBurnTime;
    /** The number of ticks that the current item has been cooking for */
    public int furnaceCookTime;
    private String field_145958_o;
    private static final String __OBFID = "CL_00000357";

    /**
     * Returns the number of slots in the inventory.
     */
    public int getSizeInventory()
    {
        return this.furnaceItemStacks.length;
    }

    /**
     * Returns the stack in slot i
     */
    public ItemStack getStackInSlot(int p_70301_1_)
    {
        return this.furnaceItemStacks[p_70301_1_];
    }

    /**
     * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a
     * new stack.
     */
    public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_)
    {
        if (this.furnaceItemStacks[p_70298_1_] != null)
        {
            ItemStack itemstack;

            if (this.furnaceItemStacks[p_70298_1_].stackSize <= p_70298_2_)
            {
                itemstack = this.furnaceItemStacks[p_70298_1_];
                this.furnaceItemStacks[p_70298_1_] = null;
                return itemstack;
            }
            else
            {
                itemstack = this.furnaceItemStacks[p_70298_1_].splitStack(p_70298_2_);

                if (this.furnaceItemStacks[p_70298_1_].stackSize == 0)
                {
                    this.furnaceItemStacks[p_70298_1_] = null;
                }

                return itemstack;
            }
        }
        else
        {
            return null;
        }
    }

    /**
     * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -
     * like when you close a workbench GUI.
     */
    public ItemStack getStackInSlotOnClosing(int p_70304_1_)
    {
        if (this.furnaceItemStacks[p_70304_1_] != null)
        {
            ItemStack itemstack = this.furnaceItemStacks[p_70304_1_];
            this.furnaceItemStacks[p_70304_1_] = null;
            return itemstack;
        }
        else
        {
            return null;
        }
    }

    /**
     * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
     */
    public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_)
    {
        this.furnaceItemStacks[p_70299_1_] = p_70299_2_;

        if (p_70299_2_ != null && p_70299_2_.stackSize > this.getInventoryStackLimit())
        {
            p_70299_2_.stackSize = this.getInventoryStackLimit();
        }
    }

    /**
     * Returns the name of the inventory
     */
    public String getInventoryName()
    {
        return this.hasCustomInventoryName() ? this.field_145958_o : "container.furnace";
    }

    /**
     * Returns if the inventory is named
     */
    public boolean hasCustomInventoryName()
    {
        return this.field_145958_o != null && this.field_145958_o.length() > 0;
    }

    public void func_145951_a(String p_145951_1_)
    {
        this.field_145958_o = p_145951_1_;
    }

    public void readFromNBT(NBTTagCompound p_145839_1_)
    {
        super.readFromNBT(p_145839_1_);
        NBTTagList nbttaglist = p_145839_1_.getTagList("Items", 10);
        this.furnaceItemStacks = new ItemStack[this.getSizeInventory()];

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
            byte b0 = nbttagcompound1.getByte("Slot");

            if (b0 >= 0 && b0 < this.furnaceItemStacks.length)
            {
                this.furnaceItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
            }
        }

        this.furnaceBurnTime = p_145839_1_.getShort("BurnTime");
        this.furnaceCookTime = p_145839_1_.getShort("CookTime");
        this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks[1]);

        if (p_145839_1_.hasKey("CustomName", )
        {
            this.field_145958_o = p_145839_1_.getString("CustomName");
        }
    }

    public void writeToNBT(NBTTagCompound p_145841_1_)
    {
        super.writeToNBT(p_145841_1_);
        p_145841_1_.setShort("BurnTime", (short)this.furnaceBurnTime);
        p_145841_1_.setShort("CookTime", (short)this.furnaceCookTime);
        NBTTagList nbttaglist = new NBTTagList();

        for (int i = 0; i < this.furnaceItemStacks.length; ++i)
        {
            if (this.furnaceItemStacks[i] != null)
            {
                NBTTagCompound nbttagcompound1 = new NBTTagCompound();
                nbttagcompound1.setByte("Slot", (byte)i);
                this.furnaceItemStacks[i].writeToNBT(nbttagcompound1);
                nbttaglist.appendTag(nbttagcompound1);
            }
        }

        p_145841_1_.setTag("Items", nbttaglist);

        if (this.hasCustomInventoryName())
        {
            p_145841_1_.setString("CustomName", this.field_145958_o);
        }
    }

    /**
     * Returns the maximum stack size for a inventory slot.
     */
    public int getInventoryStackLimit()
    {
        return 64;
    }

    /**
     * Returns an integer between 0 and the passed value representing how close the current item is to being completely
     * cooked
     */
    @SideOnly(Side.CLIENT)
    public int getCookProgressScaled(int p_145953_1_)
    {
        return this.furnaceCookTime * p_145953_1_ / 200;
    }

    /**
     * Returns an integer between 0 and the passed value representing how much burn time is left on the current fuel
     * item, where 0 means that the item is exhausted and the passed value means that the item is fresh
     */
    @SideOnly(Side.CLIENT)
    public int getBurnTimeRemainingScaled(int p_145955_1_)
    {
        if (this.currentItemBurnTime == 0)
        {
            this.currentItemBurnTime = 200;
        }

        return this.furnaceBurnTime * p_145955_1_ / this.currentItemBurnTime;
    }

    /**
     * Furnace isBurning
     */
    public boolean isBurning()
    {
        return this.furnaceBurnTime > 0;
    }

    public void updateEntity()
    {
        boolean flag = this.furnaceBurnTime > 0;
        boolean flag1 = false;

        if (this.furnaceBurnTime > 0)
        {
            --this.furnaceBurnTime;
        }

        if (!this.worldObj.isRemote)
        {
            if (this.furnaceBurnTime != 0 || this.furnaceItemStacks[1] != null && this.furnaceItemStacks[0] != null)
            {
                if (this.furnaceBurnTime == 0 && this.canSmelt())
                {
                    this.currentItemBurnTime = this.furnaceBurnTime = getItemBurnTime(this.furnaceItemStacks[1]);

                    if (this.furnaceBurnTime > 0)
                    {
                        flag1 = true;

                        if (this.furnaceItemStacks[1] != null)
                        {
                            --this.furnaceItemStacks[1].stackSize;

                            if (this.furnaceItemStacks[1].stackSize == 0)
                            {
                                this.furnaceItemStacks[1] = furnaceItemStacks[1].getItem().getContainerItem(furnaceItemStacks[1]);
                            }
                        }
                    }
                }

                if (this.isBurning() && this.canSmelt())
                {
                    ++this.furnaceCookTime;

                    if (this.furnaceCookTime == 200)
                    {
                        this.furnaceCookTime = 0;
                        this.smeltItem();
                        flag1 = true;
                    }
                }
                else
                {
                    this.furnaceCookTime = 0;
                }
            }

            if (flag != this.furnaceBurnTime > 0)
            {
                flag1 = true;
                BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
            }
        }

        if (flag1)
        {
            this.markDirty();
        }
    }

    /**
     * Returns true if the furnace can smelt an item, i.e. has a source item, destination stack isn't full, etc.
     */
    private boolean canSmelt()
    {
        if (this.furnaceItemStacks[0] == null)
        {
            return false;
        }
        else
        {
            ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]);
            if (itemstack == null) return false;
            if (this.furnaceItemStacks[2] == null) return true;
            if (!this.furnaceItemStacks[2].isItemEqual(itemstack)) return false;
            int result = furnaceItemStacks[2].stackSize + itemstack.stackSize;
            return result <= getInventoryStackLimit() && result <= this.furnaceItemStacks[2].getMaxStackSize(); //Forge BugFix: Make it respect stack sizes properly.
        }
    }

    /**
     * Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack
     */
    public void smeltItem()
    {
        if (this.canSmelt())
        {
            ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]);

            if (this.furnaceItemStacks[2] == null)
            {
                this.furnaceItemStacks[2] = itemstack.copy();
            }
            else if (this.furnaceItemStacks[2].getItem() == itemstack.getItem())
            {
                this.furnaceItemStacks[2].stackSize += itemstack.stackSize; // Forge BugFix: Results may have multiple items
            }

            --this.furnaceItemStacks[0].stackSize;

            if (this.furnaceItemStacks[0].stackSize <= 0)
            {
                this.furnaceItemStacks[0] = null;
            }
        }
    }

    /**
     * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't
     * fuel
     */
    public static int getItemBurnTime(ItemStack p_145952_0_)
    {
        if (p_145952_0_ == null)
        {
            return 0;
        }
        else
        {
            Item item = p_145952_0_.getItem();

            if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air)
            {
                Block block = Block.getBlockFromItem(item);

                if (block == Blocks.wooden_slab)
                {
                    return 150;
                }

                if (block.getMaterial() == Material.wood)
                {
                    return 300;
                }

                if (block == Blocks.coal_block)
                {
                    return 16000;
                }
            }

            if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200;
            if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200;
            if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200;
            if (item == Items.stick) return 100;
            if (item == Items.coal) return 1600;
            if (item == Items.lava_bucket) return 20000;
            if (item == Item.getItemFromBlock(Blocks.sapling)) return 100;
            if (item == Items.blaze_rod) return 2400;
            return GameRegistry.getFuelValue(p_145952_0_);
        }
    }

    public static boolean isItemFuel(ItemStack p_145954_0_)
    {
        /**
         * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't
         * fuel
         */
        return getItemBurnTime(p_145954_0_) > 0;
    }

    /**
     * Do not make give this method the name canInteractWith because it clashes with Container
     */
    public boolean isUseableByPlayer(EntityPlayer p_70300_1_)
    {
        return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : p_70300_1_.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
    }

    public void openInventory() {}

    public void closeInventory() {}

    /**
     * Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot.
     */
    public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_)
    {
        return p_94041_1_ == 2 ? false : (p_94041_1_ == 1 ? isItemFuel(p_94041_2_) : true);
    }

    /**
     * Returns an array containing the indices of the slots that can be accessed by automation on the given side of this
     * block.
     */
    public int[] getAccessibleSlotsFromSide(int p_94128_1_)
    {
        return p_94128_1_ == 0 ? slotsBottom : (p_94128_1_ == 1 ? slotsTop : slotsSides);
    }

    /**
     * Returns true if automation can insert the given item in the given slot from the given side. Args: Slot, item,
     * side
     */
    public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_)
    {
        return this.isItemValidForSlot(p_102007_1_, p_102007_2_);
    }

    /**
     * Returns true if automation can extract the given item in the given slot from the given side. Args: Slot, item,
     * side
     */
    public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_)
    {
        return p_102008_3_ != 0 || p_102008_1_ != 1 || p_102008_2_.getItem() == Items.bucket;
    }
}

Tile:

package com.coppyhop.FutureCraft.tile;



import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

import java.util.Random;

import com.coppyhop.FutureCraft.FutureCraft;
import com.coppyhop.FutureCraft.GUIs;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;

public class TileMetalSmelter extends BlockContainer{

private final Random field_149933_a = new Random();
    private final boolean field_149932_b;
    private static boolean field_149934_M;
    @SideOnly(Side.CLIENT)
    private IIcon field_149935_N;
    @SideOnly(Side.CLIENT)
    private IIcon field_149936_O;
    private static final String __OBFID = "CL_00000248";

    public TileMetalSmelter(boolean p_i45407_1_)
    {
        super(Material.rock);
        this.field_149932_b = p_i45407_1_;
    }

    public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
    {
        return Item.getItemFromBlock(FutureCraft.metalSmelter);
    }

    /**
     * Called whenever the block is added into the world. Args: world, x, y, z
     */
    public void onBlockAdded(World p_149726_1_, int p_149726_2_, int p_149726_3_, int p_149726_4_)
    {
        super.onBlockAdded(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_);
        this.func_149930_e(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_);
    }

    private void func_149930_e(World p_149930_1_, int p_149930_2_, int p_149930_3_, int p_149930_4_)
    {
        if (!p_149930_1_.isRemote)
        {
            Block block = p_149930_1_.getBlock(p_149930_2_, p_149930_3_, p_149930_4_ - 1);
            Block block1 = p_149930_1_.getBlock(p_149930_2_, p_149930_3_, p_149930_4_ + 1);
            Block block2 = p_149930_1_.getBlock(p_149930_2_ - 1, p_149930_3_, p_149930_4_);
            Block block3 = p_149930_1_.getBlock(p_149930_2_ + 1, p_149930_3_, p_149930_4_);
            byte b0 = 3;

            if (block.func_149730_j() && !block1.func_149730_j())
            {
                b0 = 3;
            }

            if (block1.func_149730_j() && !block.func_149730_j())
            {
                b0 = 2;
            }

            if (block2.func_149730_j() && !block3.func_149730_j())
            {
                b0 = 5;
            }

            if (block3.func_149730_j() && !block2.func_149730_j())
            {
                b0 = 4;
            }

            p_149930_1_.setBlockMetadataWithNotify(p_149930_2_, p_149930_3_, p_149930_4_, b0, 2);
        }
    }

    /**
     * Gets the block's texture. Args: side, meta
     */
    @SideOnly(Side.CLIENT)
    public IIcon getIcon(int p_149691_1_, int p_149691_2_)
    {
        return p_149691_1_ == 1 ? this.field_149935_N : (p_149691_1_ == 0 ? this.field_149935_N : (p_149691_1_ != p_149691_2_ ? this.blockIcon : this.field_149936_O));
    }

    @SideOnly(Side.CLIENT)
    public void registerBlockIcons(IIconRegister p_149651_1_)
    {
        this.blockIcon = p_149651_1_.registerIcon("furnace_side");
        this.field_149936_O = p_149651_1_.registerIcon(this.field_149932_b ? "FutureCraft:tileMetalSmelterOn" : "FutureCraft:tileMetalSmelterOff");
        this.field_149935_N = p_149651_1_.registerIcon("furnace_top");
    }

    /**
     * Called upon block activation (right click on the block.)
     */
    @Override
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float a, float b, float c)
    {
    	 TileMetalSmelterEntity gold = (TileMetalSmelterEntity)world.getTileEntity(x, y, z);

    player.openGui(FutureCraft.instance, GUIs.SMELTER.ordinal(), world, x, y, z);

    	 return true;
    }



    /**
     * Update which block the furnace is using depending on whether or not it is burning
     */
    public static void updateFurnaceBlockState(boolean p_149931_0_, World p_149931_1_, int p_149931_2_, int p_149931_3_, int p_149931_4_)
    {
        int l = p_149931_1_.getBlockMetadata(p_149931_2_, p_149931_3_, p_149931_4_);
        TileEntity tileentity = p_149931_1_.getTileEntity(p_149931_2_, p_149931_3_, p_149931_4_);
        field_149934_M = true;

        if (p_149931_0_)
        {
            p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, FutureCraft.metalSmelterON);
        }
        else
        {
            p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, FutureCraft.metalSmelter);
        }

        field_149934_M = false;
        p_149931_1_.setBlockMetadataWithNotify(p_149931_2_, p_149931_3_, p_149931_4_, l, 2);

        if (tileentity != null)
        {
            tileentity.validate();
            p_149931_1_.setTileEntity(p_149931_2_, p_149931_3_, p_149931_4_, tileentity);
        }
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_)
    {
        return new TileMetalSmelterEntity();
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World p_149689_1_, int p_149689_2_, int p_149689_3_, int p_149689_4_, EntityLivingBase p_149689_5_, ItemStack p_149689_6_)
    {
        int l = MathHelper.floor_double((double)(p_149689_5_.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

        if (l == 0)
        {
            p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 2, 2);
        }

        if (l == 1)
        {
            p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 5, 2);
        }

        if (l == 2)
        {
            p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 3, 2);
        }

        if (l == 3)
        {
            p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 4, 2);
        }

        if (p_149689_6_.hasDisplayName())
        {
            ((TileMetalSmelterEntity)p_149689_1_.getTileEntity(p_149689_2_, p_149689_3_, p_149689_4_)).func_145951_a(p_149689_6_.getDisplayName());
        }
    }

    public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
    {
        if (!field_149934_M)
        {
            TileMetalSmelterEntity TileMetalSmelterEntity = (TileMetalSmelterEntity)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);

            if (TileMetalSmelterEntity != null)
            {
                for (int i1 = 0; i1 < TileMetalSmelterEntity.getSizeInventory(); ++i1)
                {
                    ItemStack itemstack = TileMetalSmelterEntity.getStackInSlot(i1);

                    if (itemstack != null)
                    {
                        float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
                        float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
                        float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;

                        while (itemstack.stackSize > 0)
                        {
                            int j1 = this.field_149933_a.nextInt(21) + 10;

                            if (j1 > itemstack.stackSize)
                            {
                                j1 = itemstack.stackSize;
                            }

                            itemstack.stackSize -= j1;
                            EntityItem entityitem = new EntityItem(p_149749_1_, (double)((float)p_149749_2_ + f), (double)((float)p_149749_3_ + f1), (double)((float)p_149749_4_ + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));

                            if (itemstack.hasTagCompound())
                            {
                                entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                            }

                            float f3 = 0.05F;
                            entityitem.motionX = (double)((float)this.field_149933_a.nextGaussian() * f3);
                            entityitem.motionY = (double)((float)this.field_149933_a.nextGaussian() * f3 + 0.2F);
                            entityitem.motionZ = (double)((float)this.field_149933_a.nextGaussian() * f3);
                            p_149749_1_.spawnEntityInWorld(entityitem);
                        }
                    }
                }

                p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
            }
        }

        super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
    }

    /**
     * A randomly called display update to be able to add particles or other items for display
     */
    @SideOnly(Side.CLIENT)
    public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_)
    {
        if (this.field_149932_b)
        {
            int l = p_149734_1_.getBlockMetadata(p_149734_2_, p_149734_3_, p_149734_4_);
            float f = (float)p_149734_2_ + 0.5F;
            float f1 = (float)p_149734_3_ + 0.0F + p_149734_5_.nextFloat() * 6.0F / 16.0F;
            float f2 = (float)p_149734_4_ + 0.5F;
            float f3 = 0.52F;
            float f4 = p_149734_5_.nextFloat() * 0.6F - 0.3F;

            if (l == 4)
            {
                p_149734_1_.spawnParticle("smoke", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
                p_149734_1_.spawnParticle("flame", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
            }
            else if (l == 5)
            {
                p_149734_1_.spawnParticle("smoke", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
                p_149734_1_.spawnParticle("flame", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
            }
            else if (l == 2)
            {
                p_149734_1_.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
                p_149734_1_.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
            }
            else if (l == 3)
            {
                p_149734_1_.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
                p_149734_1_.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
            }
        }
    }

    /**
     * If this returns true, then comparators facing away from this block will use the value from
     * getComparatorInputOverride instead of the actual redstone signal strength.
     */
    public boolean hasComparatorInputOverride()
    {
        return true;
    }

    /**
     * If hasComparatorInputOverride returns true, the return value from this is used instead of the redstone signal
     * strength when this block inputs to a comparator.
     */
    public int getComparatorInputOverride(World p_149736_1_, int p_149736_2_, int p_149736_3_, int p_149736_4_, int p_149736_5_)
    {
        return Container.calcRedstoneFromInventory((IInventory)p_149736_1_.getTileEntity(p_149736_2_, p_149736_3_, p_149736_4_));
    }

    /**
     * Gets an item for the block being called on. Args: world, x, y, z
     */
    @SideOnly(Side.CLIENT)
    public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_)
    {
        return Item.getItemFromBlock(FutureCraft.metalSmelter);
    }
}

Container:

package com.coppyhop.FutureCraft;


import com.coppyhop.FutureCraft.tile.TileMetalSmelterEntity;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.inventory.SlotFurnace;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.tileentity.TileEntityFurnace;

public class ContainerSmelter extends Container
{
    private TileMetalSmelterEntity tileFurnace;
    private int lastCookTime;
    private int lastBurnTime;
    private int lastItemBurnTime;
    private static final String __OBFID = "CL_00001748";

    public ContainerSmelter(InventoryPlayer p_i1812_1_, TileMetalSmelterEntity p_i1091_2_)
    {
        this.tileFurnace = p_i1091_2_;
        this.addSlotToContainer(new Slot(p_i1091_2_, 0, 56, 17));
        this.addSlotToContainer(new Slot(p_i1091_2_, 1, 56, 53));
        this.addSlotToContainer(new SlotFurnace(p_i1812_1_.player, p_i1091_2_, 2, 116, 35));
        int i;

        for (i = 0; i < 3; ++i)
        {
            for (int j = 0; j < 9; ++j)
            {
                this.addSlotToContainer(new Slot(p_i1812_1_, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
            }
        }

        for (i = 0; i < 9; ++i)
        {
            this.addSlotToContainer(new Slot(p_i1812_1_, i, 8 + i * 18, 142));
        }
    }

    public void addCraftingToCrafters(ICrafting p_75132_1_)
    {
        super.addCraftingToCrafters(p_75132_1_);
        p_75132_1_.sendProgressBarUpdate(this, 0, this.tileFurnace.furnaceCookTime);
        p_75132_1_.sendProgressBarUpdate(this, 1, this.tileFurnace.furnaceBurnTime);
        p_75132_1_.sendProgressBarUpdate(this, 2, this.tileFurnace.currentItemBurnTime);
    }

    /**
     * Looks for changes made in the container, sends them to every listener.
     */
    public void detectAndSendChanges()
    {
        super.detectAndSendChanges();

        for (int i = 0; i < this.crafters.size(); ++i)
        {
            ICrafting icrafting = (ICrafting)this.crafters.get(i);

            if (this.lastCookTime != this.tileFurnace.furnaceCookTime)
            {
                icrafting.sendProgressBarUpdate(this, 0, this.tileFurnace.furnaceCookTime);
            }

            if (this.lastBurnTime != this.tileFurnace.furnaceBurnTime)
            {
                icrafting.sendProgressBarUpdate(this, 1, this.tileFurnace.furnaceBurnTime);
            }

            if (this.lastItemBurnTime != this.tileFurnace.currentItemBurnTime)
            {
                icrafting.sendProgressBarUpdate(this, 2, this.tileFurnace.currentItemBurnTime);
            }
        }

        this.lastCookTime = this.tileFurnace.furnaceCookTime;
        this.lastBurnTime = this.tileFurnace.furnaceBurnTime;
        this.lastItemBurnTime = this.tileFurnace.currentItemBurnTime;
    }

    @SideOnly(Side.CLIENT)
    public void updateProgressBar(int p_75137_1_, int p_75137_2_)
    {
        if (p_75137_1_ == 0)
        {
            this.tileFurnace.furnaceCookTime = p_75137_2_;
        }

        if (p_75137_1_ == 1)
        {
            this.tileFurnace.furnaceBurnTime = p_75137_2_;
        }

        if (p_75137_1_ == 2)
        {
            this.tileFurnace.currentItemBurnTime = p_75137_2_;
        }
    }

    public boolean canInteractWith(EntityPlayer p_75145_1_)
    {
        return this.tileFurnace.isUseableByPlayer(p_75145_1_);
    }

    /**
     * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
     */
    public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_)
    {
        ItemStack itemstack = null;
        Slot slot = (Slot)this.inventorySlots.get(p_82846_2_);

        if (slot != null && slot.getHasStack())
        {
            ItemStack itemstack1 = slot.getStack();
            itemstack = itemstack1.copy();

            if (p_82846_2_ == 2)
            {
                if (!this.mergeItemStack(itemstack1, 3, 39, true))
                {
                    return null;
                }

                slot.onSlotChange(itemstack1, itemstack);
            }
            else if (p_82846_2_ != 1 && p_82846_2_ != 0)
            {
                if (FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null)
                {
                    if (!this.mergeItemStack(itemstack1, 0, 1, false))
                    {
                        return null;
                    }
                }
                else if (TileEntityFurnace.isItemFuel(itemstack1))
                {
                    if (!this.mergeItemStack(itemstack1, 1, 2, false))
                    {
                        return null;
                    }
                }
                else if (p_82846_2_ >= 3 && p_82846_2_ < 30)
                {
                    if (!this.mergeItemStack(itemstack1, 30, 39, false))
                    {
                        return null;
                    }
                }
                else if (p_82846_2_ >= 30 && p_82846_2_ < 39 && !this.mergeItemStack(itemstack1, 3, 30, false))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(itemstack1, 3, 39, false))
            {
                return null;
            }

            if (itemstack1.stackSize == 0)
            {
                slot.putStack((ItemStack)null);
            }
            else
            {
                slot.onSlotChanged();
            }

            if (itemstack1.stackSize == itemstack.stackSize)
            {
                return null;
            }

            slot.onPickupFromSlot(p_82846_1_, itemstack1);
        }

        return itemstack;
    }
}

Gui:

package com.coppyhop.FutureCraft;


import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;

import net.minecraft.util.ResourceLocation;

import org.lwjgl.opengl.GL11;

import com.coppyhop.FutureCraft.tile.TileMetalSmelterEntity;

@SideOnly(Side.CLIENT)
public class GuiSmelter extends GuiContainer
{
    private static final ResourceLocation furnaceGuiTextures = new ResourceLocation("FutureCraft:textures/gui/smeltergui.png");
    private TileMetalSmelterEntity tileFurnace;
    private static final String __OBFID = "CL_00000758";

    public GuiSmelter(InventoryPlayer p_i1091_1_, TileMetalSmelterEntity p_i1091_2_)
    {
        super(new ContainerSmelter(p_i1091_1_, p_i1091_2_));
        this.tileFurnace = p_i1091_2_;
    }

    /**
     * Draw the foreground layer for the GuiContainer (everything in front of the items)
     */
    protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_)
    {
        String s = this.tileFurnace.hasCustomInventoryName() ? this.tileFurnace.getInventoryName() : I18n.format(this.tileFurnace.getInventoryName(), new Object[0]);
        this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 4210752);
        this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752);
    }

    protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_)
    {
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.getTextureManager().bindTexture(furnaceGuiTextures);
        int k = (this.width - this.xSize) / 2;
        int l = (this.height - this.ySize) / 2;
        this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);

        if (this.tileFurnace.isBurning())
        {
            int i1 = this.tileFurnace.getBurnTimeRemainingScaled(13);
            this.drawTexturedModalRect(k + 56, l + 36 + 12 - i1, 176, 12 - i1, 14, i1 + 1);
            i1 = this.tileFurnace.getCookProgressScaled(24);
            this.drawTexturedModalRect(k + 79, l + 34, 176, 14, i1 + 1, 16);
        }
    }
}

Gui Handler (I don't know If I need this)

package com.coppyhop.FutureCraft;

import com.coppyhop.FutureCraft.tile.TileMetalSmelterEntity;

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

public class FCGH implements IGuiHandler {
private int x, y, z;  
private World world;
private InventoryPlayer inv;
@Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        return null;
    }

    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        this.x = x;
        this.y = y;
        this.z = z;
        this.world = world;
        inv = player.inventory;
        TileMetalSmelterEntity gold = (TileMetalSmelterEntity)world.getTileEntity(x, y, z);
    	if(ID == GUIs.SMELTER.ordinal()) return new GuiSmelter(inv, gold);
        else return null;
    }

}

NOTE: I copied largely from the Vanilla Furnace Code (Yes I know that it still uses furnace recipes, it for testing)

Link to comment
Share on other sites

You're opening on Client and Server.

 

Open on Server-only.

-Mitchellbrine

 

Minecraft can do ANYTHING, it's coded in Java and you got the full power of Java behind you when you code. So nothing is impossible.

It may be freaking fucking hard though, but still possible ;)

 

If you create a topic on Modder Support, live by this motto:

I don't want your charity, I want your information
Link to comment
Share on other sites

Opening on client won't let you move your inventory around. It's just plain buggy.

 

Opening on the server fixes it.

-Mitchellbrine

 

Minecraft can do ANYTHING, it's coded in Java and you got the full power of Java behind you when you code. So nothing is impossible.

It may be freaking fucking hard though, but still possible ;)

 

If you create a topic on Modder Support, live by this motto:

I don't want your charity, I want your information
Link to comment
Share on other sites

*sigh* *facepalm*

 

if (!world.isRemote)

 

^^^ That makes it server-only.

-Mitchellbrine

 

Minecraft can do ANYTHING, it's coded in Java and you got the full power of Java behind you when you code. So nothing is impossible.

It may be freaking fucking hard though, but still possible ;)

 

If you create a topic on Modder Support, live by this motto:

I don't want your charity, I want your information
Link to comment
Share on other sites

Join the conversation

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

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • [01:30:06] [main/INFO]: ModLauncher running: args [--username, AkadieL, --version, forge-47.2.0, --gameDir, C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized, --assetsDir, C:\Users\Administrator\curseforge\minecraft\Install\assets, --assetIndex, 5, --uuid, b68ea54ae6484a0e8acb115f88c9aea5, --accessToken, ????????, --clientId, 28d704-b58c91-549ecf-a85a34-9fb39c, --xuid, 2533275030291833, --userType, msa, --versionType, release, --width, 1024, --height, 768, --launchTarget, forgeclient, --fml.forgeVersion, 47.2.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [01:30:06] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.8 by Eclipse Adoptium; OS Windows 10 arch amd64 version 10.0 [01:30:07] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [01:30:07] [main/INFO]: Trying GL version 4.6 [01:30:07] [main/INFO]: Requested GL version 4.6 got version 4.6 [01:30:07] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Administrator/curseforge/minecraft/Install/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT [01:30:07] [pool-2-thread-1/INFO]: GL info: NVIDIA GeForce RTX 3060/PCIe/SSE2 GL version 4.6.0 NVIDIA 560.94, NVIDIA Corporation [01:30:08] [main/INFO]: Found mod file AdvancementPlaques-1.20.1-forge-1.5.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file AI-Improvements-1.20-0.5.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file AirHop-v8.0.2-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file alexscaves-1.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file alexsmobs-1.22.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file AmbientSounds_FORGE_v6.0.2_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file AnvilNeverTooExpensive-1.20.1-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file appleskin-forge-mc1.20.1-2.5.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Aquaculture-1.20.1-2.5.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file aquaculture_delight_1.0.0_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file aquamirae-6.API15.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file astemirlib-1.20.1-1.25.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file AxesAreWeapons-1.7.3-forge-1.20.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file balm-forge-1.20.1-7.3.6-all.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file bellsandwhistles-0.4.3-1.20.x.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file BetterAdvancements-1.20.1-0.3.2.161.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file betterarcheology-1.1.9-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file BetterCompatibilityChecker-forge-4.0.8+mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file BetterPingDisplay-1.20.1-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file BetterTridents-v8.0.1-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file biomespawnpoint-1.20.1-2.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file blockui-1.20.1-1.0.156-RELEASE.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file blue_skies-1.20.1-1.3.31.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Bookshelf-Forge-1.20.1-20.2.13.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file caelus-forge-3.2.0+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file canary-mc1.20.1-0.3.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file catalogue-forge-1.20.1-1.8.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Chimes-v2.0.1-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Choup's Drakvyrn Mod for 1.20.1 (v2.4.0).jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Chunk-Pregenerator-1.20-4.4.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file chunkloaders-1.2.8a-forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file citadel-2.5.3-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file clickadv-1.20.1-3.8.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file cloth-config-11.1.118-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Clumps-forge-1.20.1-12.0.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file collective-1.20.1-7.64.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file comforts-forge-6.3.5+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Controlling-forge-1.20.1-12.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file cookingforblockheads-forge-1.20.1-16.0.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file CorgiLib-forge-1.20.1-4.0.1.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file corn_delight-1.0.4-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file coroutil-forge-1.20.1-1.3.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file cosmeticarmorreworked-1.20.1-v1a.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file CrabbersDelight-1.20.1-1.1.5.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file CraftTweaker-forge-1.20.1-14.0.40.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file create-1.20.1-0.5.1.f.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file createaddition-1.20.1-1.2.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file CreativeCore_FORGE_v2.11.30_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file creeperoverhaul-3.0.2-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file ctov-forge-3.4.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file cuisinedelight-1.1.14.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file cupboard-1.20.1-2.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file curios-forge-5.9.1+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file customcameraview-forge-1.20.1-1.0.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file DamageVignette-2.0.2-forge+mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file deathbackup-1.20.1-3.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file deeperdarker-forge-1.20.1-1.2.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file dimensionviewer-1.20-1.4.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Disenchanting-forge-1.20.1-2.2.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file DoggyTalentsNext-1.20.1-1.18.18.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file domum_ornamentum-1.20.1-1.0.186-RELEASE-universal.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file doubledoors-1.20.1-5.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file dummmmmmy-1.20-1.8.17b.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file DungeonsArise-1.20.x-2.1.58-release.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file DungeonsAriseSevenSeas-1.20.x-1.0.2-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file EasierSleeping-1.20.1-2.1.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file easy-villagers-forge-1.20.1-1.1.23.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file easy_mob_farm_1.20.1-7.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file easy_npc-forge-1.20.1-5.6.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file easynetheritev1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file EasyShulkerBoxes-v8.0.1-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file elytraslot-forge-6.4.0+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file embeddium-0.3.31+mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file embeddiumplus-1.20.1-v1.2.13.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file EnchantingInfuser-v8.0.3-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file EnchantmentDescriptions-Forge-1.20.1-17.0.16.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file endersdelight-1.20.1-1.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Enhanced_Celestials-forge-1.20.1-5.0.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file entityculling-forge-1.6.6-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file EquipmentCompare-1.20.1-forge-1.3.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file ExplorersCompass-1.20.1-1.3.3-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Fallingleaves-1.20.1-2.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file FallingTree-1.20.1-4.3.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file fancymenu_forge_3.2.3_MC_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Fantastic Remastered Structures 1.20+1.20.6-0.5 For+fab.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file FarmersDelight-1.20.1-1.2.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file farmingforblockheads-forge-1.20.1-14.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file farsight-1.20.1-3.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file FastFurnace-1.20.1-8.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file FastLeafDecay-32.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file fastpaintings-1.20-1.2.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file ferritecore-6.0.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file fish_of_thieves-mc1.20.1-v3.0.7-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file fixexperiencebug-1.20-46.2.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file framework-forge-1.20.1-0.7.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file FriendlyFire-Forge-1.20.1-18.0.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file FriendlyGriefing-1.20-1.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file friendsandfoes-forge-mc1.20.1-2.0.10.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file geckolib-forge-1.20.1-4.4.7.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file GeckoLibOculusCompat-Forge-1.0.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file goblintraders-forge-1.20.1-1.9.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file guccivuitton-1.20.1-0.2.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file handcrafted-forge-1.20.1-3.0.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file highlight-forge-1.20-2.0.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Highlighter-1.20.1-forge-1.1.9.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file hitindication-1.20.1-1.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Iceberg-1.20.1-forge-1.1.21.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file IllagerInvasion-v8.0.5-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Incendium_1.20.x_v5.3.5.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file inventoryessentials-forge-1.20.1-8.2.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file inventoryhud.forge.1.20.1-3.4.26.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file inventorysorter-1.20.1-23.0.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file ItemPhysicLite_FORGE_v1.6.4_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Jade-1.20.1-forge-11.7.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file jei-1.20.1-forge-15.3.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file JustEnoughResources-1.20.1-1.4.0.247.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file konkrete_forge_1.8.0_MC_1.20-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file lradd-1.20.1-0.2.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file lucky-block-forge-1.20.1-13.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file lukis-grand-capitals-1.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file MaxEnchantX-1.20.X-1.3-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file mcw-bridges-3.0.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file mcw-doors-1.1.1forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file mcw-lights-1.1.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file melody_forge_1.0.3_MC_1.20.1-1.20.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file modnametooltip-1.20.1-1.20.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file moonlight-1.20-2.12.2-forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file MouseTweaks-forge-mc1.20-2.25.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file mysterious_mountain_lib-1.4.7-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file nethersdelight-1.20.1-4.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file obscure_api-15.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file oceansdelight-1.0.2-1.20.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file oculus-mc1.20.1-1.6.15a.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file okzoomer-forge-1.20-3.0.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Placebo-1.20.1-8.6.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file puzzledungeon-forge-1.20.1-1.2.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file PuzzlesLib-v8.1.20-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file PuzzlesLib-v8.1.24-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Quark-4.0-436.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file RegionsUnexploredForge-0.5.3.1+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file resourcefulconfig-forge-1.20.1-2.1.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file resourcefullib-forge-1.20.1-2.1.25.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file sliceanddice-forge-3.2.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file supermartijn642configlib-1.1.8-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file supermartijn642corelib-1.1.17-forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file tact-1.0.9+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file tacz-1.20.1-1.0.3-all.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file TerraBlender-forge-1.20.1-3.0.1.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Terralith_1.20_v2.5.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file The_Undergarden-1.20.1-0.8.14.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file tlc_forge-1.0.3-R-1.20.X.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file torchmaster-20.1.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file ToughAsNails-1.20.1-9.0.0.96.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file travelersbackpack-forge-1.20.1-9.1.15.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file TravelersTitles-1.20-Forge-4.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file undergarden_delight_1.0.0_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file UniversalEnchants-v8.0.0-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file waystones-forge-1.20-14.1.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file WitherSkeletonTweaks-1.20.1-9.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file worldedit-mod-7.2.15.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file wso16-forge-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Xaeros_Minimap_24.2.0_Forge_1.20.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file xaeros_waystones_compability-1.0.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file XaerosWorldMap_1.37.8_Forge_1.20.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsApi-1.20-Forge-4.0.5.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterDesertTemples-1.20-Forge-3.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterDungeons-1.20-Forge-4.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterJungleTemples-1.20-Forge-2.0.5.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterMineshafts-1.20-Forge-4.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterNetherFortresses-1.20-Forge-2.0.6.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterOceanMonuments-1.20-Forge-3.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterStrongholds-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBetterWitchHuts-1.20-Forge-3.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsBridges-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file YungsExtras-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/INFO]: Found mod file Zeta-1.0-13.jar of type MOD with provider {mods folder locator at C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods} [01:30:08] [main/WARN]: Mod file C:\Users\Administrator\curseforge\minecraft\Install\libraries\net\minecraftforge\fmlcore\1.20.1-47.2.0\fmlcore-1.20.1-47.2.0.jar is missing mods.toml file [01:30:08] [main/WARN]: Mod file C:\Users\Administrator\curseforge\minecraft\Install\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.2.0\javafmllanguage-1.20.1-47.2.0.jar is missing mods.toml file [01:30:08] [main/WARN]: Mod file C:\Users\Administrator\curseforge\minecraft\Install\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.2.0\lowcodelanguage-1.20.1-47.2.0.jar is missing mods.toml file [01:30:08] [main/WARN]: Mod file C:\Users\Administrator\curseforge\minecraft\Install\libraries\net\minecraftforge\mclanguage\1.20.1-47.2.0\mclanguage-1.20.1-47.2.0.jar is missing mods.toml file [01:30:08] [main/INFO]: Found mod file fmlcore-1.20.1-47.2.0.jar of type LIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@78c1a023 [01:30:08] [main/INFO]: Found mod file javafmllanguage-1.20.1-47.2.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@78c1a023 [01:30:08] [main/INFO]: Found mod file lowcodelanguage-1.20.1-47.2.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@78c1a023 [01:30:08] [main/INFO]: Found mod file mclanguage-1.20.1-47.2.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@78c1a023 [01:30:08] [main/INFO]: Found mod file client-1.20.1-20230612.114412-srg.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@78c1a023 [01:30:08] [main/INFO]: Found mod file forge-1.20.1-47.2.0-universal.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@78c1a023 [01:30:08] [main/WARN]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [01:30:08] [main/WARN]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [01:30:08] [main/WARN]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [01:30:08] [main/WARN]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized\mods\resourcefullib-forge-1.20.1-2.1.25.jar [01:30:08] [main/INFO]: Found 23 dependencies adding them to mods collection [01:30:08] [main/INFO]: Found mod file jctools-core-4.0.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file MixinExtras-0.3.6.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file mixinextras-forge-0.3.6.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file kuma-api-forge-20.1.8+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file puzzlesapi-forge-8.1.4.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file MinecraftForgeAPI-1.20.1-1.0.0.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file luaj-core-3.0.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file mixinsquared-forge-0.1.2-beta.6.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file yabn-1.0.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file Registrate-MC1.20-1.3.11.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file spectrelib-forge-0.13.15+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file animated-gif-lib-for-java-animated-gif-lib-1.7.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file mclib-20.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file l2library-2.4.14-slim.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file puzzlesaccessapi-forge-8.0.7.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file l2serial-1.2.0.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file flywheel-forge-1.20.1-0.6.10-7.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file bytecodecs-1.0.2.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file luaj-jse-3.0.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file commons-math3-3.6.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file MixinSquared-0.1.2-beta.6.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file jcpp-1.4.14.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:08] [main/INFO]: Found mod file japng-0.5.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@150ede8b [01:30:09] [main/ERROR]: Missing or unsupported mandatory dependencies:     Mod ID: 'structure_gel', Requested by: 'blue_skies', Expected range: '[2.13.0,]', Actual version: '[MISSING]'     Mod ID: 'kotlinforforge', Requested by: 'sliceanddice', Expected range: '[4.3.0,)', Actual version: '[MISSING]'     Mod ID: 'searchables', Requested by: 'controlling', Expected range: '[1.0,)', Actual version: '[MISSING]' [01:30:11] [main/INFO]: Compatibility level set to JAVA_17 [01:30:11] [main/ERROR]: Mixin config geckoanimfix.forge.mixins.json does not specify "minVersion" property [01:30:11] [main/ERROR]: Mixin config okzoomer.mixins.json does not specify "minVersion" property [01:30:11] [main/INFO]: Launching target 'forgeclient' with arguments [--version, forge-47.2.0, --gameDir, C:\Users\Administrator\curseforge\minecraft\Instances\Alex's Caves Optimized, --assetsDir, C:\Users\Administrator\curseforge\minecraft\Install\assets, --uuid, b68ea54ae6484a0e8acb115f88c9aea5, --username, AkadieL, --assetIndex, 5, --accessToken, ????????, --clientId, 28d704-b58c91-549ecf-a85a34-9fb39c, --xuid, 2533275030291833, --userType, msa, --versionType, release, --width, 1024, --height, 768] [01:30:11] [main/INFO]: Loaded configuration file for Embeddium: 44 options available, 0 override(s) found [01:30:11] [main/INFO]: Searching for graphics cards... [01:30:11] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=NVIDIA, name=NVIDIA GeForce RTX 3060, version=DriverVersion=32.0.15.6094] [01:30:11] [main/WARN]: Embeddium has applied one or more workarounds to prevent crashes or other issues on your system: [NVIDIA_THREADED_OPTIMIZATIONS] [01:30:11] [main/WARN]: This is not necessarily an issue, but it may result in certain features or optimizations being disabled. You can sometimes fix these issues by upgrading your graphics driver. [01:30:11] [main/WARN]: Reference map 'handcrafted-forge-1.20.1-forge-refmap.json' for handcrafted.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'yungsextras.refmap.json' for yungsextras.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'yungsextras.refmap.json' for yungsextras_forge.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'cuisinedelight.refmap.json' for cuisinedelight.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'AxesAreWeapons-forge-refmap.json' for axesareweapons.forge.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map '${refmap_target}refmap.json' for corgilib.forge.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'fastpaintings-forge-refmap.json' for fastpaintings-forge.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'guccivuitton.refmap.json' for guccivuitton.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/INFO]: Loaded configuration file for Canary: 116 options available, 0 override(s) found [01:30:11] [main/INFO]: Loading 2 mods:     - forge 47.2.0     - minecraft 1.20.1 [01:30:11] [main/WARN]: Reference map 'Aquamirae.refmap.json' for aquamirae.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'cookingforblockheads.refmap.json' for cookingforblockheads.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'LesRaisinsAddon_1201.refmap.json' for lradd.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:11] [main/WARN]: Reference map 'coroutil.refmap.json' for coroutil.mixins.json could not be read. If this is a development environment you can ignore this message [01:30:12] [main/WARN]: Error loading class: dev/latvian/mods/kubejs/recipe/RecipesEventJS (java.lang.ClassNotFoundException: dev.latvian.mods.kubejs.recipe.RecipesEventJS) [01:30:12] [main/WARN]: @Mixin target dev.latvian.mods.kubejs.recipe.RecipesEventJS was not found sliceanddice.mixins.json:RecipeEventJSMixin [01:30:12] [main/WARN]: Error loading class: dev/emi/emi/screen/EmiScreenManager (java.lang.ClassNotFoundException: dev.emi.emi.screen.EmiScreenManager) [01:30:12] [main/WARN]: Error loading class: me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl (java.lang.ClassNotFoundException: me.shedaniel.rei.impl.client.gui.ScreenOverlayImpl) [01:30:12] [main/WARN]: Error loading class: noobanidus/mods/lootr/config/ConfigManager (java.lang.ClassNotFoundException: noobanidus.mods.lootr.config.ConfigManager) [01:30:12] [main/ERROR]: Could not find embeddium mod, there is likely a dependency error. Skipping mixin application. [01:30:12] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.3.6). [01:30:13] [pool-4-thread-1/WARN]: This is the stupidest thing I've ever made in Minecraft modding history...           Even if I check the log list, I don't know what the problem is. especially. [01:30:09] [Main/ERROR]: No mandatory dependency or not supported: Mode ID: 'structure_gel', requester: 'blue_skys', expected range: '[2.13.0,], actual version: '[missing]' Mode ID: 'kotlinforge', Requestor: 'slice and die', Expected range: '[4.3.0,]', Actual version: '[missing]' Mode ID: 'Searchable', Requestor: 'In Control', Expected Range: '[1.0,]', Actual Version: '[Omitted]'   I've been looking for things I need in this area, but Minecraft is still annoying.
    • i'm trying to modify the attack damage in minecraft modded weapons i can only modify the attack damage in non-modded weapons it's in 1.8.9
    • As the title says, I'm trying to install Forge on Linux. Whenever I load up the installer, and let it run, I end up getting an error that says: "Processor failed, invalid outputs:" Then, it shows the .jar file I used for the installer, and some codes that don't make any sense to my pea-sized brain. All I can tell however, is that they're different and they aren't supposed to be. (Mostly because it tells me.) I don't know how to fix this, and I've encountered this for every file I've tried so far.
  • Topics

×
×
  • Create New...

Important Information

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