Jump to content

[SOLVED(Finally)][1.4.7]Gui not opening due to 'Not being a Network Mod'


Vemahk20

Recommended Posts

Ok, so i have my tile entity, gui handler, container, slot, etc for my custom compressor type thing but whenever i right click on it in game the console 'yells' at me for not being a network mod. Any help would be good on fixing 'not being a network mod', I have no idea what it means by that or how to fix it.

 

-- Vemahk20

Link to comment
Share on other sites

Can you post your code please? That would make it much easier for us to help you with your problem.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Having recently had a similar issue:

 

All I can say is that GUIs are a right pain in the ass and there are about four things that can happen that'll cause the error.

I'll try and find my particular issue when I get home, as it was a little more obscure.

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.

Link to comment
Share on other sites

Can you post your code please? That would make it much easier for us to help you with your problem.

 

Right... Code...

 

GUI Compressor

@SideOnly(Side.CLIENT)
public class GuiCompressor extends GuiContainer
{
    private TileEntityCompressor compressorInventory;

    public GuiCompressor(InventoryPlayer par1InventoryPlayer, TileEntityCompressor par2TileEntityCompressor)
    {
        super(new ContainerCompressor(par1InventoryPlayer, par2TileEntityCompressor));
        this.compressorInventory = par2TileEntityCompressor;
    }

    /**
     * Draw the foreground layer for the GuiContainer (everything in front of the items)
     */
    protected void drawGuiContainerForegroundLayer(int par1, int par2)
    {
        this.fontRenderer.drawString("Compressor", 60, 6, 4210752);
        this.fontRenderer.drawString("Inventory", 8, this.ySize - 96 + 2, 4210752);
    }

    /**
     * Draw the background layer for the GuiContainer (everything behind the items)
     */
    protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
    {
        int var4 = this.mc.renderEngine.getTexture("/gui/furnace.png");
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.renderEngine.bindTexture(var4);
        int var5 = (this.width - this.xSize) / 2;
        int var6 = (this.height - this.ySize) / 2;
        this.drawTexturedModalRect(var5, var6, 0, 0, this.xSize, this.ySize);
        int var7;

        if (this.compressorInventory.isBurning())
        {
            var7 = this.compressorInventory.getBurnTimeRemainingScaled(12);
            this.drawTexturedModalRect(var5 + 56, var6 + 36 + 12 - var7, 176, 12 - var7, 14, var7 + 2);
        }

        var7 = this.compressorInventory.getCookProgressScaled(24);
        this.drawTexturedModalRect(var5 + 79, var6 + 34, 176, 14, var7 + 1, 16);
    }
}

GUI Handler

package IndustrialBreakout.Gui;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;
import IndustrialBreakout.TileEntity.*;
import IndustrialBreakout.Containers.*;

public class IBGuiHandler implements IGuiHandler {
        //returns an instance of the Container you made earlier
        @Override
        public Object getServerGuiElement(int id, EntityPlayer player, World world,
                        int x, int y, int z) {
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
                if(tileEntity instanceof TileEntityCompressor){
                        return new ContainerCompressor(player.inventory, (TileEntityCompressor) tileEntity);
                }
                return null;
        }

        //returns an instance of the Gui you made earlier
        @Override
        public Object getClientGuiElement(int id, EntityPlayer player, World world,
                        int x, int y, int z) {
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
                if(tileEntity instanceof TileEntityCompressor){
                        return new GuiCompressor(player.inventory, (TileEntityCompressor) tileEntity);
                }
                return null;

        }
}

COntainter

package IndustrialBreakout.Containers;

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.item.ItemStack;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import IndustrialBreakout.TileEntity.*;
import IndustrialBreakout.Machines.recipes.CompressorRecipes;
import IndustrialBreakout.Slot.*;
import IndustrialBreakout.*;

public class ContainerCompressor extends Container
{
    private TileEntityCompressor compressor;
    private int lastCookTime = 0;
    private int lastBurnTime = 0;
    private int lastItemBurnTime = 0;

    public ContainerCompressor(InventoryPlayer par1InventoryPlayer, TileEntityCompressor par2TileEntityCompressor)
    {
        this.compressor = par2TileEntityCompressor;
        this.addSlotToContainer(new Slot(par2TileEntityCompressor, 0, 56, 17));
        this.addSlotToContainer(new Slot(par2TileEntityCompressor, 1, 56, 53));
        this.addSlotToContainer(new SlotCompressor(par1InventoryPlayer.player, par2TileEntityCompressor, 2, 116, 35));
        int var3;

        for (var3 = 0; var3 < 3; ++var3)
        {
            for (int var4 = 0; var4 < 9; ++var4)
            {
                this.addSlotToContainer(new Slot(par1InventoryPlayer, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));
            }
        }

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

    public void addCraftingToCrafters(ICrafting par1ICrafting)
    {
        super.addCraftingToCrafters(par1ICrafting);
        par1ICrafting.sendProgressBarUpdate(this, 0, this.compressor.compressorCookTime);
        par1ICrafting.sendProgressBarUpdate(this, 1, this.compressor.compressorBurnTime);
        par1ICrafting.sendProgressBarUpdate(this, 2, this.compressor.currentItemBurnTime);
    }

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

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

            if (this.lastCookTime != this.compressor.compressorCookTime)
            {
                var2.sendProgressBarUpdate(this, 0, this.compressor.compressorCookTime);
            }

            if (this.lastBurnTime != this.compressor.compressorBurnTime)
            {
                var2.sendProgressBarUpdate(this, 1, this.compressor.compressorBurnTime);
            }

            if (this.lastItemBurnTime != this.compressor.currentItemBurnTime)
            {
                var2.sendProgressBarUpdate(this, 2, this.compressor.currentItemBurnTime);
            }
        }

        this.lastCookTime = this.compressor.compressorCookTime;
        this.lastBurnTime = this.compressor.compressorBurnTime;
        this.lastItemBurnTime = this.compressor.currentItemBurnTime;
    }

    @SideOnly(Side.CLIENT)
    public void updateProgressBar(int par1, int par2)
    {
        if (par1 == 0)
        {
            this.compressor.compressorCookTime = par2;
        }

        if (par1 == 1)
        {
            this.compressor.compressorBurnTime = par2;
        }

        if (par1 == 2)
        {
            this.compressor.currentItemBurnTime = par2;
        }
    }

    public boolean canInteractWith(EntityPlayer par1EntityPlayer)
    {
        return this.compressor.isUseableByPlayer(par1EntityPlayer);
    }

    /**
     * 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 par1EntityPlayer, int par2)
    {
        ItemStack var3 = null;
        Slot var4 = (Slot)this.inventorySlots.get(par2);

        if (var4 != null && var4.getHasStack())
        {
            ItemStack var5 = var4.getStack();
            var3 = var5.copy();

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

                var4.onSlotChange(var5, var3);
            }
            else if (par2 != 1 && par2 != 0)
            {
                if (CompressorRecipes.smelting().getSmeltingResult(var5) != null)
                {
                    if (!this.mergeItemStack(var5, 0, 1, false))
                    {
                        return null;
                    }
                }
                else if (TileEntityCompressor.isItemFuel(var5))
                {
                    if (!this.mergeItemStack(var5, 1, 2, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 3 && par2 < 30)
                {
                    if (!this.mergeItemStack(var5, 30, 39, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(var5, 3, 30, false))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(var5, 3, 39, false))
            {
                return null;
            }

            if (var5.stackSize == 0)
            {
                var4.putStack((ItemStack)null);
            }
            else
            {
                var4.onSlotChanged();
            }

            if (var5.stackSize == var3.stackSize)
            {
                return null;
            }

            var4.onPickupFromSlot(par1EntityPlayer, var5);
        }

        return var3;
    }
}

Compressor

package IndustrialBreakout.Machines;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import IndustrialBreakout.*;
import IndustrialBreakout.TileEntity.*;

public class BlockIBMachineCompressor extends BlockContainer
{
    /**
     * Is the random generator used by compressor to drop the inventory contents in random directions.
     */
    private Random compressorRand = new Random();

    /** True if this is an active compressor, false if idle */
    private final boolean isActive;

    /**
     * This flag is used to prevent the compressor inventory to be dropped upon block removal, is used internally when the
     * compressor block changes from idle to active and vice-versa.
     */
    private static boolean keepCompressorInventory = false;

    public BlockIBMachineCompressor(int par1, boolean par2)
    {
        super(par1, Material.rock);
        this.isActive = par2;
        this.blockIndexInTexture = 45;
    }

    /**
     * Returns the ID of the items to drop on destruction.
     */
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return Block.stoneOvenIdle.blockID;
    }

    /**
     * Called whenever the block is added into the world. Args: world, x, y, z
     */
    public void onBlockAdded(World par1World, int par2, int par3, int par4)
    {
        super.onBlockAdded(par1World, par2, par3, par4);
        this.setDefaultDirection(par1World, par2, par3, par4);
    }

    /**
     * set a blocks direction
     */
    private void setDefaultDirection(World par1World, int par2, int par3, int par4)
    {
        if (!par1World.isRemote)
        {
            int var5 = par1World.getBlockId(par2, par3, par4 - 1);
            int var6 = par1World.getBlockId(par2, par3, par4 + 1);
            int var7 = par1World.getBlockId(par2 - 1, par3, par4);
            int var8 = par1World.getBlockId(par2 + 1, par3, par4);
            byte var9 = 3;

            if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6])
            {
                var9 = 3;
            }

            if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5])
            {
                var9 = 2;
            }

            if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8])
            {
                var9 = 5;
            }

            if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7])
            {
                var9 = 4;
            }

            par1World.setBlockMetadataWithNotify(par2, par3, par4, var9);
        }
    }

    @SideOnly(Side.CLIENT)

    /**
     * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side
     */
    public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
    {
        if (par5 == 1)
        {
            return this.blockIndexInTexture + 17;
        }
        else if (par5 == 0)
        {
            return this.blockIndexInTexture + 17;
        }
        else
        {
            int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4);
            return par5 != var6 ? this.blockIndexInTexture : (this.isActive ? this.blockIndexInTexture + 16 : this.blockIndexInTexture - 1);
        }
    }

    @SideOnly(Side.CLIENT)

    /**
     * A randomly called display update to be able to add particles or other items for display
     */
    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
        if (this.isActive)
        {
            int var6 = par1World.getBlockMetadata(par2, par3, par4);
            float var7 = (float)par2 + 0.5F;
            float var8 = (float)par3 + 0.0F + par5Random.nextFloat() * 6.0F / 16.0F;
            float var9 = (float)par4 + 0.5F;
            float var10 = 0.52F;
            float var11 = par5Random.nextFloat() * 0.6F - 0.3F;

            if (var6 == 4)
            {
                par1World.spawnParticle("smoke", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D);
            }
            else if (var6 == 5)
            {
                par1World.spawnParticle("smoke", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D);
            }
            else if (var6 == 2)
            {
                par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D);
            }
            else if (var6 == 3)
            {
                par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D);
                par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D);
            }
        }
    }

    /**
     * Returns the block texture based on the side being looked at.  Args: side
     */
    public int getBlockTextureFromSide(int par1)
    {
        return par1 == 1 ? this.blockIndexInTexture + 17 : (par1 == 0 ? this.blockIndexInTexture + 17 : (par1 == 3 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture));
    }

    /**
     * Called upon block activation (right click on the block.)
     */
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
    {
        if (world.isRemote)
        {
            return true;
        }
        else
        {
            player.openGui(mod_IndustrialBreakout.instance, 0, world, x, y, z);
        }
        return true;
    }

    /**
     * Update which block ID the compressor is using depending on whether or not it is burning
     */
    public static void updateCompressorBlockState(boolean par0, World par1World, int par2, int par3, int par4)
    {
        int var5 = par1World.getBlockMetadata(par2, par3, par4);
        TileEntity var6 = par1World.getBlockTileEntity(par2, par3, par4);
        keepCompressorInventory = true;

        if (par0)
        {
            par1World.setBlockWithNotify(par2, par3, par4, Block.stoneOvenActive.blockID);
        }
        else
        {
            par1World.setBlockWithNotify(par2, par3, par4, Block.stoneOvenIdle.blockID);
        }

        keepCompressorInventory = false;
        par1World.setBlockMetadataWithNotify(par2, par3, par4, var5);

        if (var6 != null)
        {
            var6.validate();
            par1World.setBlockTileEntity(par2, par3, par4, var6);
        }
    }

    /**
     * Returns a new instance of a block's tile entity class. Called on placing the block.
     */
    public TileEntity createNewTileEntity(World par1World)
    {
        return new IndustrialBreakout.TileEntity.TileEntityCompressor();
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving)
    {
        int var6 = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

        if (var6 == 0)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 2);
        }

        if (var6 == 1)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 5);
        }

        if (var6 == 2)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 3);
        }

        if (var6 == 3)
        {
            par1World.setBlockMetadataWithNotify(par2, par3, par4, 4);
        }
    }

    /**
     * ejects contained items into the world, and notifies neighbours of an update, as appropriate
     */
    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
    {
        if (!keepCompressorInventory)
        {
            TileEntityCompressor var7 = (TileEntityCompressor)par1World.getBlockTileEntity(par2, par3, par4);

            if (var7 != null)
            {
                for (int var8 = 0; var8 < var7.getSizeInventory(); ++var8)
                {
                    ItemStack var9 = var7.getStackInSlot(var8);

                    if (var9 != null)
                    {
                        float var10 = this.compressorRand.nextFloat() * 0.8F + 0.1F;
                        float var11 = this.compressorRand.nextFloat() * 0.8F + 0.1F;
                        float var12 = this.compressorRand.nextFloat() * 0.8F + 0.1F;

                        while (var9.stackSize > 0)
                        {
                            int var13 = this.compressorRand.nextInt(21) + 10;

                            if (var13 > var9.stackSize)
                            {
                                var13 = var9.stackSize;
                            }

                            var9.stackSize -= var13;
                            EntityItem var14 = new EntityItem(par1World, (double)((float)par2 + var10), (double)((float)par3 + var11), (double)((float)par4 + var12), new ItemStack(var9.itemID, var13, var9.getItemDamage()));

                            if (var9.hasTagCompound())
                            {
                                var14.func_92014_d().setTagCompound((NBTTagCompound)var9.getTagCompound().copy());
                            }

                            float var15 = 0.05F;
                            var14.motionX = (double)((float)this.compressorRand.nextGaussian() * var15);
                            var14.motionY = (double)((float)this.compressorRand.nextGaussian() * var15 + 0.2F);
                            var14.motionZ = (double)((float)this.compressorRand.nextGaussian() * var15);
                            par1World.spawnEntityInWorld(var14);
                        }
                    }
                }
            }
        }

        super.breakBlock(par1World, par2, par3, par4, par5, par6);
    }
}

SlotCompressor

package IndustrialBreakout.Slot;

import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.AchievementList;
import net.minecraft.util.MathHelper;
import cpw.mods.fml.common.registry.GameRegistry;
import IndustrialBreakout.*;

public class SlotCompressor extends Slot
{
    /** The player that is using the GUI where this slot resides. */
    private EntityPlayer thePlayer;
    private int field_75228_b;

    public SlotCompressor(EntityPlayer par1EntityPlayer, IInventory par2IInventory, int par3, int par4, int par5)
    {
        super(par2IInventory, par3, par4, par5);
        this.thePlayer = par1EntityPlayer;
    }

    /**
     * Check if the stack is a valid item for this slot. Always true beside for the armor slots.
     */
    public boolean isItemValid(ItemStack par1ItemStack)
    {
        return false;
    }

    /**
     * Decrease the size of the stack in slot (first int arg) by the amount of the second int arg. Returns the new
     * stack.
     */
    public ItemStack decrStackSize(int par1)
    {
        if (this.getHasStack())
        {
            this.field_75228_b += Math.min(par1, this.getStack().stackSize);
        }

        return super.decrStackSize(par1);
    }

    public void onPickupFromSlot(EntityPlayer par1EntityPlayer, ItemStack par2ItemStack)
    {
        this.onCrafting(par2ItemStack);
        super.onPickupFromSlot(par1EntityPlayer, par2ItemStack);
    }

    /**
     * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood. Typically increases an
     * internal count then calls onCrafting(item).
     */
    protected void onCrafting(ItemStack par1ItemStack, int par2)
    {
        this.field_75228_b += par2;
        this.onCrafting(par1ItemStack);
    }

    /**
     * the itemStack passed in is the output - ie, iron ingots, and pickaxes, not ore and wood.
     */
    protected void onCrafting(ItemStack par1ItemStack)
    {
        par1ItemStack.onCrafting(this.thePlayer.worldObj, this.thePlayer, this.field_75228_b);

        this.field_75228_b = 0;

        GameRegistry.onItemSmelted(thePlayer, par1ItemStack);
    }
}

TileEntityCompressor

package IndustrialBreakout.TileEntity;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
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.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import IndustrialBreakout.*;
import IndustrialBreakout.Machines.*;
import IndustrialBreakout.Machines.recipes.CompressorRecipes;

public class TileEntityCompressor extends TileEntity implements IInventory, ISidedInventory
{
    /**
     * The ItemStacks that hold the items currently being used in the compressor
     */
    private ItemStack[] compressorItemStacks = new ItemStack[3];

    /** The number of ticks that the compressor will keep burning */
    public int compressorBurnTime = 0;

    /**
     * The number of ticks that a fresh copy of the currently-burning item would keep the compressor burning for
     */
    public int currentItemBurnTime = 0;

    /** The number of ticks that the current item has been cooking for */
    public int compressorCookTime = 0;

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

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

    /**
     * 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 par1, int par2)
    {
        if (this.compressorItemStacks[par1] != null)
        {
            ItemStack var3;

            if (this.compressorItemStacks[par1].stackSize <= par2)
            {
                var3 = this.compressorItemStacks[par1];
                this.compressorItemStacks[par1] = null;
                return var3;
            }
            else
            {
                var3 = this.compressorItemStacks[par1].splitStack(par2);

                if (this.compressorItemStacks[par1].stackSize == 0)
                {
                    this.compressorItemStacks[par1] = null;
                }

                return var3;
            }
        }
        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 par1)
    {
        if (this.compressorItemStacks[par1] != null)
        {
            ItemStack var2 = this.compressorItemStacks[par1];
            this.compressorItemStacks[par1] = null;
            return var2;
        }
        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 par1, ItemStack par2ItemStack)
    {
        this.compressorItemStacks[par1] = par2ItemStack;

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

    /**
     * Returns the name of the inventory.
     */
    public String getInvName()
    {
        return "container.compressor";
    }

    
    public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        NBTTagList var2 = par1NBTTagCompound.getTagList("Items");
        this.compressorItemStacks = new ItemStack[this.getSizeInventory()];

        for (int var3 = 0; var3 < var2.tagCount(); ++var3)
        {
            NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
            byte var5 = var4.getByte("Slot");

            if (var5 >= 0 && var5 < this.compressorItemStacks.length)
            {
                this.compressorItemStacks[var5] = ItemStack.loadItemStackFromNBT(var4);
            }
        }

        this.compressorBurnTime = par1NBTTagCompound.getShort("BurnTime");
        this.compressorCookTime = par1NBTTagCompound.getShort("CookTime");
        this.currentItemBurnTime = getItemBurnTime(this.compressorItemStacks[1]);
    }
    
    
    public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setShort("BurnTime", (short)this.compressorBurnTime);
        par1NBTTagCompound.setShort("CookTime", (short)this.compressorCookTime);
        NBTTagList var2 = new NBTTagList();

        for (int var3 = 0; var3 < this.compressorItemStacks.length; ++var3)
        {
            if (this.compressorItemStacks[var3] != null)
            {
                NBTTagCompound var4 = new NBTTagCompound();
                var4.setByte("Slot", (byte)var3);
                this.compressorItemStacks[var3].writeToNBT(var4);
                var2.appendTag(var4);
            }
        }

        par1NBTTagCompound.setTag("Items", var2);
    }

    /**
     * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't
     * this more of a set than a get?*
     */
    public int getInventoryStackLimit()
    {
        return 64;
    }

    @SideOnly(Side.CLIENT)

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

    @SideOnly(Side.CLIENT)

    /**
     * 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
     */
    public int getBurnTimeRemainingScaled(int par1)
    {
        if (this.currentItemBurnTime == 0)
        {
            this.currentItemBurnTime = 200;
        }

        return this.compressorBurnTime * par1 / this.currentItemBurnTime;
    }

    /**
     * Returns true if the compressor is currently burning
     */
    public boolean isBurning()
    {
        return this.compressorBurnTime > 0;
    }

    /**
     * Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count
     * ticks and creates a new spawn inside its implementation.
     */
    public void updateEntity()
    {
        boolean var1 = this.compressorBurnTime > 0;
        boolean var2 = false;

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

        if (!this.worldObj.isRemote)
        {
            if (this.compressorBurnTime == 0 && this.canSmelt())
            {
                this.currentItemBurnTime = this.compressorBurnTime = getItemBurnTime(this.compressorItemStacks[1]);

                if (this.compressorBurnTime > 0)
                {
                    var2 = true;

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

                        if (this.compressorItemStacks[1].stackSize == 0)
                        {
                            this.compressorItemStacks[1] = this.compressorItemStacks[1].getItem().getContainerItemStack(compressorItemStacks[1]);
                        }
                    }
                }
            }

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

                if (this.compressorCookTime == 200)
                {
                    this.compressorCookTime = 0;
                    this.smeltItem();
                    var2 = true;
                }
            }
            else
            {
                this.compressorCookTime = 0;
            }

            if (var1 != this.compressorBurnTime > 0)
            {
                var2 = true;
                BlockIBMachineCompressor.updateCompressorBlockState(this.compressorBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
            }
        }

        if (var2)
        {
            this.onInventoryChanged();
        }
    }

    /**
     * Returns true if the compressor can smelt an item, i.e. has a source item, destination stack isn't full, etc.
     */
    private boolean canSmelt()
    {
        if (this.compressorItemStacks[0] == null)
        {
            return false;
        }
        else
        {
            ItemStack var1 = CompressorRecipes.smelting().getSmeltingResult(this.compressorItemStacks[0]);
            if (var1 == null) return false;
            if (this.compressorItemStacks[2] == null) return true;
            if (!this.compressorItemStacks[2].isItemEqual(var1)) return false;
            int result = compressorItemStacks[2].stackSize + var1.stackSize;
            return (result <= getInventoryStackLimit() && result <= var1.getMaxStackSize());
        }
    }

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

            if (this.compressorItemStacks[2] == null)
            {
                this.compressorItemStacks[2] = var1.copy();
            }
            else if (this.compressorItemStacks[2].isItemEqual(var1))
            {
                compressorItemStacks[2].stackSize += var1.stackSize;
            }

            --this.compressorItemStacks[0].stackSize;

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

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

            if (par0ItemStack.getItem() instanceof ItemBlock && Block.blocksList[var1] != null)
            {
                Block var3 = Block.blocksList[var1];

                if (var3 == Block.woodSingleSlab)
                {
                    return 150;
                }

                if (var3.blockMaterial == Material.wood)
                {
                    return 300;
                }
            }

            if (var2 instanceof ItemTool && ((ItemTool) var2).getToolMaterialName().equals("WOOD")) return 200;
            if (var2 instanceof ItemSword && ((ItemSword) var2).func_77825_f().equals("WOOD")) return 200;
            if (var2 instanceof ItemHoe && ((ItemHoe) var2).func_77842_f().equals("WOOD")) return 200;
            if (var1 == Item.stick.itemID) return 100;
            if (var1 == Item.coal.itemID) return 1600;
            if (var1 == Item.bucketLava.itemID) return 20000;
            if (var1 == Block.sapling.blockID) return 100;
            if (var1 == Item.blazeRod.itemID) return 2400;
            return GameRegistry.getFuelValue(par0ItemStack);
        }
    }

    /**
     * Return true if item is a fuel source (getItemBurnTime() > 0).
     */
    public static boolean isItemFuel(ItemStack par0ItemStack)
    {
        return getItemBurnTime(par0ItemStack) > 0;
    }

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

    public void openChest() {}

    public void closeChest() {}

    @Override
    public int getStartInventorySide(ForgeDirection side)
    {
        if (side == ForgeDirection.DOWN) return 1;
        if (side == ForgeDirection.UP) return 0;
        return 2;
    }

    @Override
    public int getSizeInventorySide(ForgeDirection side)
    {
        return 1;
    }
}

Main Mod File

package IndustrialBreakout;

import IndustrialBreakout.Gui.IBGuiHandler;
import IndustrialBreakout.Machines.BlockIBMachineCompressor;
import IndustrialBreakout.blocks.BlockIB;
import IndustrialBreakout.items.ItemIB;
import IndustrialBreakout.items.ItemIBAxe;
import IndustrialBreakout.items.ItemIBHoe;
import IndustrialBreakout.items.ItemIBPickaxe;
import IndustrialBreakout.items.ItemIBShovel;
import IndustrialBreakout.items.ItemIBSword;
import IndustrialBreakout.proxy.CommonProxy;
import IndustrialBreakout.world.WorldGeneratorIB;
import IndustrialBreakout.TileEntity.*;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.EnumHelper;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import IndustrialBreakout.reference.*;

@Mod(modid = "industrialBreakout", name="Industrial Breakout", version="0.1 Beta")
@NetworkMod(clientSideRequired=true)
public class mod_IndustrialBreakout {

	public static WorldGeneratorIB worldGen = new WorldGeneratorIB();

        @Instance("mod_IndustrialBreakout")
        public static mod_IndustrialBreakout instance;
        
        @SidedProxy(clientSide="IndustrialBreakout.proxy.ClientProxy", serverSide="IndustrialBreakout.proxy.CommonProxy")
        public static CommonProxy proxy;
        
        @PreInit
        public void preInit(FMLPreInitializationEvent event) {
                // Stub Method
        }
        
        @Init
        public void load(FMLInitializationEvent event) {
                proxy.registerRenderers();
                NetworkRegistry.instance().registerGuiHandler(this, new IBGuiHandler());
                GameRegistry.registerWorldGenerator(worldGen);
                fml();
                craft();
                smelt();
                name();
                register();
        }
        
        public void fml(){
        	MinecraftForge.setBlockHarvestLevel(oreTitanium, "pickaxe", 2);
        	MinecraftForge.setBlockHarvestLevel(oreChargedCoal, "pickaxe", 2);
        	MinecraftForge.setBlockHarvestLevel(compressedCobble, "pickaxe", 1);
        	MinecraftForge.setBlockHarvestLevel(compressedStone, "pickaxe", 1);
        	MinecraftForge.setBlockHarvestLevel(oreTin, "pickaxe", 2);
        	MinecraftForge.setBlockHarvestLevel(oreCopper, "pickaxe", 1);
        }
        
        public void craft(){
        	GameRegistry.addRecipe(new ItemStack(compressedCobble, 1), new Object[] {"###", "###", "###", '#', Block.cobblestone});
        	GameRegistry.addRecipe(new ItemStack(compressedStone, 1), new Object[] {"###", "###", "###", '#', Block.stone});
        	GameRegistry.addRecipe(new ItemStack(ingotBronze, 4), new Object[] {"##", "#$", '#', ingotCopper, '$', ingotTin});
        }
        
        public void smelt(){
        	GameRegistry.addSmelting(oreTitanium.blockID, new ItemStack(ingotTitanium, 1), 1.0F);
        	GameRegistry.addSmelting(oreTin.blockID, new ItemStack(ingotTin, 1), 1.0F);
        	GameRegistry.addSmelting(oreCopper.blockID, new ItemStack(ingotCopper, 1), 1.0F);
        	GameRegistry.addSmelting(compressedCobble.blockID, new ItemStack(compressedStone, 1), 0.0F);
        }
        
        public void name(){
        	//Blocks
        	LanguageRegistry.addName(compressedCobble, "Compressed Cobblestosne");
        	LanguageRegistry.addName(compressedStone, "Compressed Stone");
        	LanguageRegistry.addName(oreTitanium, "Titanium Ore");
        	LanguageRegistry.addName(oreChargedCoal, "Charged Coal Ore");
        	LanguageRegistry.addName(oreTin, "Tin Ore");
        	LanguageRegistry.addName(oreCopper, "Copper Ore");
        	LanguageRegistry.addName(blockCopper, "Copper Block");
        	LanguageRegistry.addName(blockTin, "Tin Block");
        	LanguageRegistry.addName(machineCompressorIdle, "Idle Compressor");
        	LanguageRegistry.addName(machineCompressorActive, "Active Compressor");
        	
        	//Items
        	LanguageRegistry.addName(ingotTitanium, "Titanium Ingot");
        	LanguageRegistry.addName(chargedCoal, "Charged Coal");
        	LanguageRegistry.addName(pickaxeTitanium, "Titanium Pickaxe");
        	LanguageRegistry.addName(adminPickaxe, "Pickaxe of the Admin");
        	LanguageRegistry.addName(ingotTin, "Tin Ingot");
        	LanguageRegistry.addName(ingotCopper, "Copper Ingot");
        	LanguageRegistry.addName(ingotBronze, "Bronze Ingot");
        	LanguageRegistry.addName(pickaxeBronze, "Bronze Pickaxe");
        	LanguageRegistry.addName(axeBronze, "Bronze Axe");
        	LanguageRegistry.addName(swordBronze, "Bronze Sword");
        	LanguageRegistry.addName(shovelBronze, "Bronze Shovel");
        	LanguageRegistry.addName(hoeBronze, "Bronze Hoe");
        }
        
	public void register(){
        	//Blocks
        	GameRegistry.registerBlock(compressedCobble, "Compressed Cobble");
        	GameRegistry.registerBlock(compressedStone, "Compressed Stone");
        	GameRegistry.registerBlock(oreTitanium, "Titanium Ore");
        	GameRegistry.registerBlock(oreChargedCoal, "Charged Coal Ore");
        	GameRegistry.registerBlock(oreTin, "Tin Ore");
        	GameRegistry.registerBlock(oreCopper, "Copper Ore");
        	GameRegistry.registerBlock(blockCopper, "Copper Block");
        	GameRegistry.registerBlock(blockTin, "Tin Block");
        	GameRegistry.registerBlock(machineCompressorIdle, "Idle Compressor");
        	GameRegistry.registerBlock(machineCompressorActive, "Active Compressor");
        	
        	//Items
        	GameRegistry.registerItem(ingotTitanium, "Titanium Ingot");
        	GameRegistry.registerItem(chargedCoal, "Charged Coal");
        	GameRegistry.registerItem(pickaxeTitanium, "Titanium Pickaxe");
        	GameRegistry.registerItem(adminPickaxe, "Pickaxe of the Admin");
        	GameRegistry.registerItem(ingotTin, "Tin Ingot");
        	GameRegistry.registerItem(ingotCopper, "Copper Ingot");
        	GameRegistry.registerItem(ingotBronze, "Bronze Ingot");
        	GameRegistry.registerItem(pickaxeBronze, "Bronze Pickaxe");
        	GameRegistry.registerItem(axeBronze, "Bronze Axe");
        	GameRegistry.registerItem(swordBronze, "Bronze Sword");
        	GameRegistry.registerItem(shovelBronze, "Bronze Shovel");
        	GameRegistry.registerItem(hoeBronze, "Bronze Hoe");
        	
        	//Tile Entities
        	GameRegistry.registerTileEntity(TileEntityCompressor.class, "Compressor");
        }

        //Tool Materials
        public static EnumToolMaterial Titanium = EnumHelper.addToolMaterial("titanium", 2, 2000, 7.0F, 3, 16);
        public static EnumToolMaterial Bronze = EnumHelper.addToolMaterial("bronze", 2, 512, 6.0F, 3, 10);
        
        //Armor Materials
        
        //Items
        public static final Item ingotTitanium = (new ItemIB(200, 0)).setItemName("ingotTitanium").setCreativeTab(CreativeTabs.tabMaterials);
        public static final Item chargedCoal = (new ItemIB(201, 1)).setItemName("chargedCoal").setCreativeTab(CreativeTabs.tabMaterials);
        public static final Item pickaxeTitanium = (new ItemIBPickaxe(202, 2, Titanium)).setItemName("pickaxeTitanium");
        public static final Item adminPickaxe = (new ItemIBPickaxe(203, 3, EnumHelper.addToolMaterial("adminPick", 4, -1, 100.0F, 20, 100))).setItemName("adminPickaxe");
        public static final Item ingotTin = (new ItemIB(204, 4)).setItemName("ingotTin").setCreativeTab(CreativeTabs.tabMaterials);
        public static final Item ingotCopper = (new ItemIB(205, 5)).setItemName("ingotCopper").setCreativeTab(CreativeTabs.tabMaterials);
        public static final Item ingotBronze = (new ItemIB(206, 6)).setItemName("ingotBronze").setCreativeTab(CreativeTabs.tabMaterials);
        public static final Item pickaxeBronze = (new ItemIBPickaxe(207, 7, Bronze)).setItemName("pickaxeBronze");
        public static final Item axeBronze = (new ItemIBAxe(208, 8, Bronze)).setItemName("axeBronze");
        public static final Item swordBronze = (new ItemIBSword(209, 9, Bronze)).setItemName("swordBronze");
        public static final Item shovelBronze = (new ItemIBShovel(210, 10, Bronze)).setItemName("shovelBronze");
        public static final Item hoeBronze = (new ItemIBHoe(211, 11, Bronze)).setItemName("hoeBronze");        
        
        //Blocks
        public static final Block compressedCobble = new BlockIB(200, 0, Material.rock).setHardness(4.0F).setResistance(6.0F).setBlockName("compressedCobble").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block compressedStone = new BlockIB(201, 1, Material.rock).setHardness(4.0F).setResistance(6.0F).setBlockName("compressedStone").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block oreTitanium = new BlockIB(202, 2, Material.iron).setHardness(5.0F).setResistance(7.0F).setBlockName("oreTitanium").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block oreChargedCoal = new BlockIB(203, 3, Material.iron).setHardness(5.0F).setResistance(7.0F).setBlockName("oreChargedCoal").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block oreTin = new BlockIB(204, 4, Material.iron).setHardness(6.0F).setResistance(10.0F).setBlockName("oreTin").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block oreCopper = new BlockIB(205, 5, Material.iron).setHardness(6.0F).setResistance(9.0F).setBlockName("oreCopper").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block blockCopper = new BlockIB(208, 6, Material.iron).setHardness(7.0F).setResistance(10.0F).setBlockName("blockCopper").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block blockTin = new BlockIB(209, 7, Material.iron).setHardness(8.0F).setResistance(11.0F).setBlockName("blockTin").setCreativeTab(CreativeTabs.tabBlock);
        		
        
        //Machines
        public static final Block machineCompressorIdle = (new BlockIBMachineCompressor(210, false)).setHardness(10.0F).setResistance(7.0F).setBlockName("machineCompressorIdle").setCreativeTab(CreativeTabs.tabBlock);
        public static final Block machineCompressorActive = (new BlockIBMachineCompressor(211, true)).setHardness(10.0F).setResistance(7.0F).setBlockName("machineCompressorActive").setCreativeTab(CreativeTabs.tabBlock).setLightValue(1.0F);
        //public static final Block machineExtractorIdle = (new BlockIBMachine(208, false, 2)).setHardness(11.0F).setResistance(7.0F).setBlockName("machineExtractorIdle").setCreativeTab(CreativeTabs.tabBlock);
        //public static final Block machineExtractorActive = (new BlockIBMachine(209, true, 3)).setHardness(11.0F).setResistance(7.0F).setBlockName("machineExtractorActive").setCreativeTab(CreativeTabs.tabBlock).setLightValue(1.0F);
        
        //Special Items
        
        //Armor
        //public static final Item helmetBronze = (new ItemIBArmor(212, 12, 4)).setBlockName("helmetBronze")
        //public static final Item chestplateBronze = (new ItemIBArmor(213, 13, 3)).setBlockName("chestplateBronze")
        //public static final Item leggingsBronze = (new ItemIBArmor(214, 14, 2)).setBlockName("leggingsBronze")
        //public static final Item bootsBronze = (new ItemIBArmor(215, 15, 1)).setBlockName("bootsBronze")
}

 

--Vemahk20

Link to comment
Share on other sites

@NetworkMod(clientSideRequired=true)

 

This is insufficient for using GUIs.  You need to specify packet handlers for client and server as well, even if they don't do anything (because your mod is just adding chest-like objects).

 

If your GUI uses any kind of buttons or other functionality, you will need to pass data back and forth.

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.

Link to comment
Share on other sites

Yeah, you have to pass in your modid to your instance. But you also have to change your @NetworkMod annotation to:

 

clientSideRequired = true, serverSideRequired = false, clientPacketHandlerSpec = @SidedPacketHandler(channels = UCReferences.CHANNEL_NAME, packetHandler = ClientPacketHandler.class), serverPacketHandlerSpec = @SidedPacketHandler(channels = UCReferences.CHANNEL_NAME, packetHandler = ServerPacketHandler.class))

 

 

And in the ClientPacketHandler class:

 

package com.larsg310.uc.core.handlers;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;

public class ClientPacketHandler implements IPacketHandler
{
    @Override
    public void onPacketData(INetworkManager manager, Packet250CustomPayload payload, Player player)
    {
        DataInputStream data = new DataInputStream(new ByteArrayInputStream(payload.data));
    }
}

 

 

And in your ServerPacketHandler class:

 

package com.larsg310.uc.core.handlers;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;

public class ServerPacketHandler implements IPacketHandler
{
    @Override
    public void onPacketData(INetworkManager manager, Packet250CustomPayload payload, Player player)
    {
        DataInputStream data = new DataInputStream(new ByteArrayInputStream(payload.data));
        EntityPlayer sender = (EntityPlayer) player;
    }
}

 

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Yeah, you have to pass in your modid to your instance. But you also have to change your @NetworkMod annotation to:

 

clientSideRequired = true, serverSideRequired = false, clientPacketHandlerSpec = @SidedPacketHandler(channels = UCReferences.CHANNEL_NAME, packetHandler = ClientPacketHandler.class), serverPacketHandlerSpec = @SidedPacketHandler(channels = UCReferences.CHANNEL_NAME, packetHandler = ServerPacketHandler.class))

 

 

And in the ClientPacketHandler class:

 

package com.larsg310.uc.core.handlers;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;

public class ClientPacketHandler implements IPacketHandler
{
    @Override
    public void onPacketData(INetworkManager manager, Packet250CustomPayload payload, Player player)
    {
        DataInputStream data = new DataInputStream(new ByteArrayInputStream(payload.data));
    }
}

 

 

And in your ServerPacketHandler class:

 

package com.larsg310.uc.core.handlers;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;

public class ServerPacketHandler implements IPacketHandler
{
    @Override
    public void onPacketData(INetworkManager manager, Packet250CustomPayload payload, Player player)
    {
        DataInputStream data = new DataInputStream(new ByteArrayInputStream(payload.data));
        EntityPlayer sender = (EntityPlayer) player;
    }
}

 

 

I have no idea what you meant by the channel name... Uuhhgg... :)

In the sample of the @Mod thing... What's a channel? xD

Link to comment
Share on other sites

The channels and Packet handlers are NOT needed to use Guis.

So I just needed to make my Instance my modid?

        @Instance("industrialBreakout")

        public static mod_IndustrialBreakout instance;

 

^^^???

 

EDIT: OMG IT WORKS, THANK YOU SOOOO MUCH!!!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I have an issue where after I exit the world the capability data does not save when I reload the world. It will save the initial data such as village name but if I modify any data during gameplay theres a 5% chance the data saves when I exit then reload the world. I read the docs and was told that chunks need to be marked dirty but the docs does not say how to mark the chunk dirty... Heres the provider: public class ChunkCapProvider implements ICapabilityProvider, INBTSerializable<CompoundTag> { private final Capability<ChunkCapability> capability = CapabilityManager.get(new CapabilityToken<ChunkCapability>() { }); private ChunkCapability instance = null; private final LazyOptional<ChunkCapability> lazy = LazyOptional.of(this::createChunk); private ChunkCapability createChunk(){ if(this.instance == null){ this.instance = new ChunkCapability(); } return this.instance; } public void invalidate(){ lazy.invalidate(); } @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction direction) { if(cap == capability) return lazy.cast(); return LazyOptional.empty(); } @Override public CompoundTag serializeNBT() { CompoundTag nbt = new CompoundTag(); createChunk().serializeNBT(nbt); return nbt; } @Override public void deserializeNBT(CompoundTag tag) { createChunk().deserializeNBT(tag); } }   Heres the capability class: public class ChunkCapability { public static final ResourceLocation ID = new ResourceLocation(Main.MODID, "owner"); public static final String VILLAGE_NAME = "village_name"; public static final String SAVED_ROLES = "saved_roles"; public static final String SAVED_POINTS = "saved_points"; public static final String BAD_CHUNK = "BAD_VILLAGE_CHUNK"; public static Capability<IChunk> CHUNK_CAPABILITY = null; private String villageName = "BAD_VILLAGE_CHUNK"; private String savedRoles = ""; private String savedPoints = ""; public ChunkCapability(){ this.getClass(); } public CompoundTag serializeNBT(CompoundTag nbt) { nbt.putString(SAVED_ROLES, this.savedRoles); nbt.putString(SAVED_POINTS, this.savedPoints); nbt.putString(VILLAGE_NAME, this.villageName); return nbt; } public void deserializeNBT(CompoundTag tag) { this.setVillageName(tag.getString(VILLAGE_NAME)); this.setSavedRoles(tag.getString(SAVED_ROLES)); this.setSavedPoints(tag.getString(SAVED_POINTS)); } public String getVillageName() { return this.villageName; } public void setVillageName(String str) { this.villageName = str; } public void setSavedRoles(String str) { this.savedRoles = str; } public void setRole(String name, String role){ if(!this.hasRole(name)) { this.savedRoles += (name + ":" + role + ","); this.savedPoints += (name + ":" + 10 + ","); return; } String roleName = this.getRole(name); String firstStr = this.savedRoles.substring(0, this.savedRoles.indexOf(name + ":") + name.length() + 1); String lastStr = this.savedRoles.substring(this.savedRoles.indexOf(name + ":") + ((name.length() + 1) + roleName.length())); this.savedRoles = firstStr + role + lastStr; } public String getRole(String name){ if(this.savedRoles.isEmpty() || !this.savedRoles.contains(name)) { this.setRole(name, Roles.Role.FOREIGNER.getName()); } String fStr = this.savedRoles.substring(this.savedRoles.indexOf(name + ":"), this.savedRoles.indexOf(',')); return fStr.substring(fStr.indexOf(':') + 1); } public boolean hasRole(String name) { if(this.savedRoles.isEmpty()) return false; return this.savedRoles.contains(name); } public String getSavedRoles() { return this.savedRoles; } public String getSavedPoints() { return this.savedPoints; } public void setSavedPoints(String name) { this.savedPoints = name; } public int getPoints(String name) { if(this.savedPoints.isEmpty() || !this.savedRoles.contains(name)) this.setPoints(name, 10); String fStr = this.savedPoints.substring(this.savedPoints.indexOf(name + ':')); return Integer.parseInt(fStr.substring(fStr.indexOf(':') + 1, fStr.indexOf(','))); } public void setPoints(String name, int rV) { if(!this.hasPoints(name)){ this.savedPoints += (name + ":" + rV + ","); return; } String oldPoints = String.valueOf(this.getPoints(name)); String points = String.valueOf(rV); String firstStr = this.savedPoints.substring(0, this.savedPoints.indexOf(name + ":") + name.length() + 1); String lastStr = this.savedPoints.substring(this.savedPoints.indexOf(name + ":") + ((name.length() + 1) + oldPoints.length())); Minecraft.getInstance().player.displayClientMessage(Component.nullToEmpty("Saved String: " + (firstStr + points + lastStr)), false); this.savedPoints = (firstStr + points + lastStr); } public boolean hasPoints(String name) { if(this.savedPoints.isEmpty()) return false; return this.savedPoints.contains(name); } }   Heres where I attach/register: @Mod.EventBusSubscriber(modid = Main.MODID) public class CapabilityEvents { @SubscribeEvent public static void attachCapability(AttachCapabilitiesEvent<LevelChunk> event){ if(!event.getObject().getCapability(ChunkCapProvider.capability).isPresent()){ event.addCapability(new ResourceLocation(Main.MODID, "properties"), new ChunkCapProvider()); } } }  
    • Id use this ServerLevel#findNearestMapFeature  
    • Trying to play with the mods: Tinkers Construct, Buildcraft and the Blood Magic addon Blood Arsenal; the game crashes. I noticed that when trying to use only two of the three in any combination the game opens without problems, but when trying to put all three together the error occurs. Is there any configuration I can modify or any other way to solve the problem?   ---- Minecraft Crash Report ---- // Hi. I'm Minecraft, and I'm a crashaholic. Time: 5/22/24 8:48 PM Description: There was a severe problem during mod loading that has caused the game to fail cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: tconstruct/library/weaponry/AmmoWeapon     at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)     at cpw.mods.fml.common.Loader.loadMods(Loader.java:544)     at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:208)     at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:480)     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)     at net.minecraft.client.main.Main.main(SourceFile:148)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.lang.reflect.Method.invoke(Unknown Source)     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) Caused by: java.lang.NoClassDefFoundError: tconstruct/library/weaponry/AmmoWeapon     at java.lang.Class.forName0(Native Method)     at java.lang.Class.forName(Unknown Source)     at cpw.mods.fml.common.ProxyInjector.inject(ProxyInjector.java:42)     at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:512)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.lang.reflect.Method.invoke(Unknown Source)     at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)     at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)     at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)     at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)     at com.google.common.eventbus.EventBus.post(EventBus.java:275)     at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)     at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.lang.reflect.Method.invoke(Unknown Source)     at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)     at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)     at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)     at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)     at com.google.common.eventbus.EventBus.post(EventBus.java:275)     at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)     at cpw.mods.fml.common.Loader.loadMods(Loader.java:513)     ... 10 more Caused by: java.lang.ClassNotFoundException: tconstruct.library.weaponry.AmmoWeapon     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)     at java.lang.ClassLoader.loadClass(Unknown Source)     at java.lang.ClassLoader.loadClass(Unknown Source)     ... 36 more Caused by: java.lang.NoClassDefFoundError: tconstruct/library/weaponry/AmmoItem     at java.lang.ClassLoader.defineClass1(Native Method)     at java.lang.ClassLoader.defineClass(Unknown Source)     at java.security.SecureClassLoader.defineClass(Unknown Source)     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)     ... 38 more Caused by: java.lang.ClassNotFoundException: tconstruct.library.weaponry.AmmoItem     at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)     at java.lang.ClassLoader.loadClass(Unknown Source)     at java.lang.ClassLoader.loadClass(Unknown Source)     ... 42 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.7.10     Operating System: Windows 10 (x86) version 10.0     Java Version: 1.8.0_411, Oracle Corporation     Java VM Version: Java HotSpot(TM) Client VM (mixed mode, sharing), Oracle Corporation     Memory: 271923192 bytes (259 MB) / 402653184 bytes (384 MB) up to 536870912 bytes (512 MB)     JVM Flags: 9 total; -Xmx512M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -XX:+IgnoreUnrecognizedVMOptions -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump     AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used     IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0     FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 14 mods loaded, 14 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     UC    mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)      UC    FML{7.10.99.99} [Forge Mod Loader] (forge-1.7.10-10.13.4.1614-1.7.10.jar)      UC    Forge{10.13.4.1614} [Minecraft Forge] (forge-1.7.10-10.13.4.1614-1.7.10.jar)      UC    AWWayofTime{v1.3.3} [Blood Magic: Alchemical Wizardry] (BloodMagic-1.7.10-1.3.3-17.jar)      UC    Mantle{1.7.10-0.3.2.jenkins191} [Mantle] (Mantle-1.7.10-0.3.2b.jar)      UE    TConstruct{1.7.10-1.8.8.build991} [Tinkers' Construct] (TConstruct-1.7.10-1.8.8.build991.jar)      UC    BloodArsenal{1.2-5} [Blood Arsenal] (BloodArsenal-1.7.10-1.2-5.jar)      UC    BuildCraft|Core{7.1.25} [BuildCraft] (buildcraft-7.1.25.jar)      UC    BuildCraft|Builders{7.1.25} [BC Builders] (buildcraft-7.1.25.jar)      UC    BuildCraft|Robotics{7.1.25} [BC Robotics] (buildcraft-7.1.25.jar)      UC    BuildCraft|Silicon{7.1.25} [BC Silicon] (buildcraft-7.1.25.jar)      UC    BuildCraft|Energy{7.1.25} [BC Energy] (buildcraft-7.1.25.jar)      UC    BuildCraft|Transport{7.1.25} [BC Transport] (buildcraft-7.1.25.jar)      UC    BuildCraft|Factory{7.1.25} [BC Factory] (buildcraft-7.1.25.jar)      GL info: ' Vendor: 'Intel' Version: '4.4.0 - Build 21.20.16.4541' Renderer: 'Intel(R) HD Graphics 610'     Mantle Environment: Environment healthy.     TConstruct Environment: Environment healthy.
    • fixed this problem but now i have a new one  java.lang.RuntimeException: java.lang.NoSuchFieldException: processor  Help 
    • ---- Minecraft Crash Report ---- WARNING: coremods are present:   IELoadingPlugin (ImmersiveEngineering-core-0.12-98.jar)   FTBUltimineASM (ftb-ultimine-1202.3.5.jar)   ForgelinPlugin (Forgelin-1.8.4.jar)   MovingWorldCore (movingworld-1.12-6.353-full.jar)   MekanismCoremod (Mekanism-1.12.2-9.8.3.390.jar)   OpenModsCorePlugin (OpenModsLib-1.12.2-0.12.2.jar)   AppleCore (AppleCore-mc1.12.2-3.4.0.jar)   Ar_CorePlugin (additionalresources-1.9.4-0.2.0.28+47cd0bd_signed.jar)   CTMCorePlugin (CTM-MC1.12.2-1.0.2.31.jar)   EnderCorePlugin (EnderCore-1.12.2-0.5.78-core.jar)   TransformerLoader (OpenComputers-MC1.12.2-1.8.5+179e1c3.jar)   Inventory Tweaks Coremod (InventoryTweaks-1.63.jar)   SecretRoomsMod-Core (secretroomsmod-1.12.2-5.6.4.jar)   LoadingPlugin (ResourceLoader-MC1.12.1-1.5.3.jar)   MalisisCorePlugin (malisiscore-1.12.2-6.5.1.jar) Contact their authors BEFORE contacting forge // Daisy, daisy... Time: 5/22/24 9:18 PM Description: Initializing game java.lang.RuntimeException: Invalid id 4096 - maximum id range exceeded.     at net.minecraftforge.registries.ForgeRegistry.add(ForgeRegistry.java:295)     at net.minecraftforge.registries.ForgeRegistry.add(ForgeRegistry.java:281)     at net.minecraftforge.registries.ForgeRegistry.register(ForgeRegistry.java:113)     at com.blakebr0.cucumber.registry.ModRegistry.registerBlocks(ModRegistry.java:230)     at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_209_ModRegistry_registerBlocks_Register.invoke(.dynamic)     at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)     at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)     at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)     at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:845)     at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:630)     at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)     at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:467)     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378)     at net.minecraft.client.main.Main.main(SourceFile:123)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Client thread Stacktrace:     at net.minecraftforge.registries.ForgeRegistry.add(ForgeRegistry.java:295)     at net.minecraftforge.registries.ForgeRegistry.add(ForgeRegistry.java:281)     at net.minecraftforge.registries.ForgeRegistry.register(ForgeRegistry.java:113)     at com.blakebr0.cucumber.registry.ModRegistry.registerBlocks(ModRegistry.java:230)     at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_209_ModRegistry_registerBlocks_Register.invoke(.dynamic)     at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)     at net.minecraftforge.fml.common.eventhandler.EventBus$1.invoke(EventBus.java:144)     at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)     at net.minecraftforge.registries.GameData.fireRegistryEvents(GameData.java:845)     at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:630)     at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:252)     at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:467) -- Initialization -- Details: Stacktrace:     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:378)     at net.minecraft.client.main.Main.main(SourceFile:123)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) -- System Details -- Details:     Minecraft Version: 1.12.2     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 912918880 bytes (870 MB) / 4423417856 bytes (4218 MB) up to 6084886528 bytes (5803 MB)     JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx6528m -Xms256m     IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0     FML: MCP 9.42 Powered by Forge 14.23.5.2859 129 mods loaded, 129 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     | State | ID                                           | Version                  | Source                                                | Signature                                |     |:----- |:-------------------------------------------- |:------------------------ |:----------------------------------------------------- |:---------------------------------------- |     | LCH   | minecraft                                    | 1.12.2                   | minecraft.jar                                         | None                                     |     | LCH   | mcp                                          | 9.42                     | minecraft.jar                                         | None                                     |     | LCH   | FML                                          | 8.0.99.99                | forge-1.12.2-14.23.5.2859.jar                         | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCH   | forge                                        | 14.23.5.2859             | forge-1.12.2-14.23.5.2859.jar                         | e3c3d50c7c986df74c645c0ac54639741c90a557 |     | LCH   | additionalresources                          | 0.1.1                    | additionalresources-1.9.4-0.2.0.28+47cd0bd_signed.jar | None                                     |     | LCH   | com.elytradev.movingworld.common.asm.coremod |                          | minecraft.jar                                         | None                                     |     | LCH   | openmodscore                                 | 0.12.2                   | minecraft.jar                                         | None                                     |     | LCH   | opencomputers|core                           | 1.8.5                    | minecraft.jar                                         | None                                     |     | LCH   | srm-hooks                                    | 1.12.2-1.0.0             | minecraft.jar                                         | None                                     |     | LCH   | achievementbooks                             | V1.0b-MC1.12.2           | achievementbooks-V1.0b-MC1.12.2.jar                   | None                                     |     | LCH   | infinitylib                                  | 1.12.2-1.12.1            | infinitylib-1.12.1.jar                                | None                                     |     | LCH   | agricraft                                    | 2.12.0-1.12.2-b2         | agricraft-2.12.0-1.12.2-b2.jar                        | None                                     |     | LCH   | aoa3                                         | 3.3.6                    | AoA3-3.3.6.jar                                        | 8bddeac148843f40e0b9f69201be2f4b3071700d |     | LCH   | applecore                                    | 3.4.0                    | AppleCore-mc1.12.2-3.4.0.jar                          | None                                     |     | LCH   | jei                                          | 4.16.1.301               | jei_1.12.2-4.16.1.301.jar                             | None                                     |     | LCH   | appleskin                                    | 1.0.14                   | AppleSkin-mc1.12-1.0.14.jar                           | None                                     |     | LCH   | ctm                                          | MC1.12.2-1.0.2.31        | CTM-MC1.12.2-1.0.2.31.jar                             | None                                     |     | LCH   | appliedenergistics2                          | rv6-stable-7             | appliedenergistics2-rv6-stable-7.jar                  | dfa4d3ac143316c6f32aa1a1beda1e34d42132e5 |     | LCH   | audiodeath                                   | 0.7.0_1.9-87aeca7        | audiodeath-1.9-0.7.0.50+87aeca7.jar                   | None                                     |     | LCH   | codechickenlib                               | 3.2.3.358                | CodeChickenLib-1.12.2-3.2.3.358-universal.jar         | f1850c39b2516232a2108a7bd84d1cb5df93b261 |     | LCH   | avaritia                                     | 3.3.0                    | Avaritia-1.12.2-3.3.0.37-universal.jar                | None                                     |     | LCH   | bno                                          | 1.12.2-1.0.4.0           | BasicNetherOres-1.12.2-1.0.5.0.jar                    | None                                     |     | LCH   | baubles                                      | 1.5.2                    | Baubles-1.12-1.5.2.jar                                | None                                     |     | LCH   | bdlib                                        | 1.14.4.1                 | bdlib-1.14.4.1-mc1.12.2.jar                           | None                                     |     | LCH   | betteradvancements                           | 0.1.0.77                 | BetterAdvancements-1.12.2-0.1.0.77.jar                | None                                     |     | LCH   | bibliocraft                                  | 2.4.6                    | BiblioCraft[v2.4.6][MC1.12.2].jar                     | None                                     |     | LCH   | bluepower                                    | 0.3.152                  | BluePower-1.12.2-0.3.152-universal.jar                | None                                     |     | LCH   | thaumcraft                                   | 6.1.BETA26               | Thaumcraft-1.12.2-6.1.BETA26.jar                      | None                                     |     | LCH   | botania                                      | r1.10-364                | Botania r1.10-364.4.jar                               | None                                     |     | LCH   | redstoneflux                                 | 2.1.1                    | RedstoneFlux-1.12-2.1.1.1-universal.jar               | None                                     |     | LCH   | brandonscore                                 | 2.4.20                   | BrandonsCore-1.12.2-2.4.20.162-universal.jar          | None                                     |     | LCH   | chameleon                                    | 1.12-4.1.3               | Chameleon-1.12-4.1.3.jar                              | None                                     |     | LCH   | chancecubes                                  | 1.12.2-5.0.2.385         | ChanceCubes-1.12.2-5.0.2.385.jar                      | None                                     |     | LCH   | chickenchunks                                | 2.4.2.74                 | ChickenChunks-1.12.2-2.4.2.74-universal.jar           | f1850c39b2516232a2108a7bd84d1cb5df93b261 |     | LCH   | chisel                                       | MC1.12.2-1.0.2.45        | Chisel-MC1.12.2-1.0.2.45.jar                          | None                                     |     | LCH   | cofhcore                                     | 4.6.6                    | CoFHCore-1.12.2-4.6.6.1-universal.jar                 | None                                     |     | LCH   | cofhworld                                    | 1.4.0                    | CoFHWorld-1.12.2-1.4.0.1-universal.jar                | None                                     |     | LCH   | collective                                   | 3.0                      | collective-1.12.2-3.0.jar                             | None                                     |     | LCH   | cookingforblockheads                         | 6.5.0                    | CookingForBlockheads_1.12.2-6.5.0.jar                 | None                                     |     | LCH   | cucumber                                     | 1.1.3                    | Cucumber-1.12.2-1.1.3.jar                             | None                                     |     | LCH   | custommainmenu                               | 2.0.9.1                  | CustomMainMenu-MC1.12.2-2.0.9.1.jar                   | None                                     |     | LCH   | customnpcs                                   | 1.12                     | CustomNPCs_1.12.2-(05Jul20).jar                       | None                                     |     | LCH   | cyclopscore                                  | 1.6.7                    | CyclopsCore-1.12.2-1.6.7.jar                          | bd0353b3e8a2810d60dd584e256e364bc3bedd44 |     | LCH   | movingworld                                  | 1.12-6.353               | movingworld-1.12-6.353-full.jar                       | None                                     |     | LCH   | davincisvessels                              | @DVESSELSVER@            | davincisvessels-1.12-6.340-full.jar                   | None                                     |     | LCH   | ptrmodellib                                  | 1.0.5                    | PTRLib-1.0.5.jar                                      | None                                     |     | LCH   | props                                        | 2.6.3.7                  | Decocraft-2.6.3.7_1.12.2.jar                          | None                                     |     | LCH   | thermalfoundation                            | 2.6.7                    | ThermalFoundation-1.12.2-2.6.7.1-universal.jar        | None                                     |     | LCH   | draconicevolution                            | 2.3.28                   | Draconic-Evolution-1.12.2-2.3.28.354-universal.jar    | None                                     |     | LCH   | lootablebodies                               | 2.4.0                    | DrCyanosLootableBodies_1.12-2.4.0.jar                 | None                                     |     | LCH   | elevatorid                                   | 1.3.14                   | ElevatorMod-1.12.2-1.3.14.jar                         | None                                     |     | LCH   | endercore                                    | 1.12.2-0.5.78            | EnderCore-1.12.2-0.5.78.jar                           | None                                     |     | LCH   | thermalexpansion                             | 5.5.7                    | ThermalExpansion-1.12.2-5.5.7.1-universal.jar         | None                                     |     | LCH   | enderio                                      | 5.3.72                   | EnderIO-base-1.12.2-5.3.72.jar                        | None                                     |     | LCH   | enderiointegrationtic                        | 5.3.72                   | EnderIO-integration-tic-1.12.2-5.3.72.jar             | None                                     |     | LCH   | enderiobase                                  | 5.3.72                   | EnderIO-base-1.12.2-5.3.72.jar                        | None                                     |     | LCH   | mantle                                       | 1.12-1.3.3.55            | Mantle-1.12-1.3.3.55.jar                              | None                                     |     | LCH   | twilightforest                               | 3.11.1021                | twilightforest-1.12.2-3.11.1021-universal.jar         | None                                     |     | LCH   | tconstruct                                   | 1.12.2-2.13.0.183        | TConstruct-1.12.2-2.13.0.183.jar                      | None                                     |     | LCH   | enderiointegrationticlate                    | 5.3.72                   | EnderIO-integration-tic-1.12.2-5.3.72.jar             | None                                     |     | LCH   | enderstorage                                 | 2.4.6.137                | EnderStorage-1.12.2-2.4.6.137-universal.jar           | f1850c39b2516232a2108a7bd84d1cb5df93b261 |     | LCH   | evilcraft                                    | 0.10.78                  | EvilCraft-1.12.2-0.10.78.jar                          | bd0353b3e8a2810d60dd584e256e364bc3bedd44 |     | LCH   | natura                                       | 1.12.2-4.3.2.69          | natura-1.12.2-4.3.2.69.jar                            | None                                     |     | LCH   | forestry                                     | 5.8.2.387                | forestry_1.12.2-5.8.2.387.jar                         | None                                     |     | LCH   | evilcraftcompat                              | 1.0.0                    | EvilCraft-1.12.2-0.10.78.jar                          | None                                     |     | LCH   | waila                                        | 1.8.26                   | Hwyla-1.8.26-B41_1.12.2.jar                           | None                                     |     | LCH   | extracells                                   | 2.6.7                    | ExtraCells-1.12.2-2.6.7.jar                           | None                                     |     | LCH   | extrautils2                                  | 1.0                      | extrautils2-1.12-1.9.9.jar                            | None                                     |     | LCH   | opencomputers                                | 1.8.5                    | OpenComputers-MC1.12.2-1.8.5+179e1c3.jar              | None                                     |     | LCH   | zerocore                                     | 1.12.2-0.1.2.9           | zerocore-1.12.2-0.1.2.9.jar                           | None                                     |     | LCH   | bigreactors                                  | 1.12.2-0.4.5.68          | ExtremeReactors-1.12.2-0.4.5.68.jar                   | None                                     |     | LCH   | fastleafdecay                                | v14                      | FastLeafDecay-v14.jar                                 | None                                     |     | LCH   | fluxnetworks                                 | 4.1.0                    | FluxNetworks-1.12.2-4.1.1.34.jar                      | None                                     |     | LCH   | forgelin                                     | 1.8.4                    | Forgelin-1.8.4.jar                                    | None                                     |     | LCH   | ftbultimine                                  | 1202.3.5                 | ftb-ultimine-1202.3.5.jar                             | None                                     |     | LCH   | ichunutil                                    | 7.2.2                    | iChunUtil-1.12.2-7.2.2.jar                            | 4db5c2bd1b556f252a5b8b54b256d381b2a0a6b8 |     | LCH   | gravitygun                                   | 7.1.0                    | GravityGun-1.12.2-7.1.0.jar                           | 4db5c2bd1b556f252a5b8b54b256d381b2a0a6b8 |     | LCH   | headcrumbs                                   | 2.0.4                    | Headcrumbs-1.12.2-2.0.5.17.jar                        | None                                     |     | LCH   | mekanism                                     | 1.12.2-9.8.3.390         | Mekanism-1.12.2-9.8.3.390.jar                         | None                                     |     | LCH   | teslacorelib                                 | 1.0.18                   | tesla-core-lib-1.12.2-1.0.18.jar                      | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCH   | industrialforegoing                          | 1.12.2-1.12.2            | industrialforegoing-1.12.2-1.12.13-237.jar            | None                                     |     | LCH   | inventorypets                                | 2.0.15                   | inventorypets-1.12-2.0.15.jar                         | None                                     |     | LCH   | inventorytweaks                              | 1.63+release.109.220f184 | InventoryTweaks-1.63.jar                              | 55d2cd4f5f0961410bf7b91ef6c6bf00a766dcbe |     | LCH   | ironchest                                    | 1.12.2-7.0.67.844        | ironchest-1.12.2-7.0.72.847.jar                       | None                                     |     | LCH   | jeibees                                      | 0.9.0.5                  | jeibees-0.9.0.5-mc1.12.2.jar                          | None                                     |     | LCH   | jeiintegration                               | 1.6.0                    | jeiintegration_1.12.2-1.6.0.jar                       | None                                     |     | LCH   | malisiscore                                  | 1.12.2-6.5.1-SNAPSHOT    | malisiscore-1.12.2-6.5.1.jar                          | None                                     |     | LCH   | malisisdoors                                 | 1.12.2-7.3.0             | malisisdoors-1.12.2-7.3.0.jar                         | None                                     |     | LCH   | mysticalagriculture                          | 1.7.5                    | MysticalAgriculture-1.12.2-1.7.5.jar                  | None                                     |     | LCH   | matc                                         | 1.0.1-hotfix             | matc-1.0.1-hotfix.jar                                 | None                                     |     | LCH   | mca                                          | 6.1.0                    | MCA-1.12.2-6.1.0-universal.jar                        | None                                     |     | LCH   | mcjtylib_ng                                  | 3.5.4                    | mcjtylib-1.12-3.5.4.jar                               | None                                     |     | LCH   | mekanismgenerators                           | 1.12.2-9.8.3.390         | MekanismGenerators-1.12.2-9.8.3.390.jar               | None                                     |     | LCH   | mekanismtools                                | 1.12.2-9.8.3.390         | MekanismTools-1.12.2-9.8.3.390.jar                    | None                                     |     | LCH   | mob_grinding_utils                           | 0.3.13                   | MobGrindingUtils-0.3.13.jar                           | None                                     |     | LCH   | numina                                       | 1.0                      | Numina-1.12.2-1.1.049.jar                             | None                                     |     | LCH   | refinedstorage                               | 1.6.16                   | refinedstorage-1.6.16.jar                             | 57893d5b90a7336e8c63fe1c1e1ce472c3d59578 |     | LCH   | powersuits                                   | 1.1.048                  | ModularPowersuits-1.12.2-1.1.048.jar                  | None                                     |     | LCH   | morph                                        | 7.2.0                    | Morph-1.12.2-7.2.1.jar                                | 4db5c2bd1b556f252a5b8b54b256d381b2a0a6b8 |     | LCH   | mousetweaks                                  | 2.10                     | MouseTweaks-2.10-mc1.12.2.jar                         | None                                     |     | LCH   | mysticalagradditions                         | 1.3.2                    | MysticalAgradditions-1.12.2-1.3.2.jar                 | None                                     |     | LCH   | openmods                                     | 0.12.2                   | OpenModsLib-1.12.2-0.12.2.jar                         | d2a9a8e8440196e26a268d1f3ddc01b2e9c572a5 |     | LCH   | openblocks                                   | 1.8.1                    | OpenBlocks-1.12.2-1.8.1.jar                           | d2a9a8e8440196e26a268d1f3ddc01b2e9c572a5 |     | LCH   | harvestcraft                                 | 1.12.2zb                 | Pam's HarvestCraft 1.12.2zg.jar                       | None                                     |     | LCH   | patchouli                                    | 1.0-23.6                 | Patchouli-1.0-23.6.jar                                | None                                     |     | LCH   | portalgun                                    | 7.1.0                    | PortalGun-1.12.2-7.1.0.jar                            | 4db5c2bd1b556f252a5b8b54b256d381b2a0a6b8 |     | LCH   | projecte                                     | 1.12.2-PE1.4.1           | ProjectE-1.12.2-PE1.4.1.jar                           | None                                     |     | LCH   | projectex                                    | 1.2.0.40                 | ProjectEX-1.2.0.40.jar                                | None                                     |     | LCH   | radixcore                                    | 1.12.x-2.2.1             | RadixCore-1.12.x-2.2.1-universal.jar                  | None                                     |     | LCH   | redstonearsenal                              | 2.6.6                    | RedstoneArsenal-1.12.2-2.6.6.1-universal.jar          | None                                     |     | LCH   | xreliquary                                   | 1.12.2-1.3.4.796         | Reliquary-1.12.2-1.3.4.796.jar                        | None                                     |     | LCH   | resourceloader                               | 1.5.3                    | ResourceLoader-MC1.12.1-1.5.3.jar                     | d72e0dd57935b3e9476212aea0c0df352dd76291 |     | LCH   | rftools                                      | 7.73                     | rftools-1.12-7.73.jar                                 | None                                     |     | LCH   | rftoolspower                                 | 1.2.0                    | rftoolspower-1.12-1.2.0.jar                           | None                                     |     | LCH   | secretroomsmod                               | 5.6.4                    | secretroomsmod-1.12.2-5.6.4.jar                       | None                                     |     | LCH   | thermaldynamics                              | 2.5.6                    | ThermalDynamics-1.12.2-2.5.6.1-universal.jar          | None                                     |     | LCH   | immersiveengineering                         | 0.12-98                  | ImmersiveEngineering-0.12-98.jar                      | None                                     |     | LCH   | simplyjetpacks                               | 1.12.2-2.2.20.0          | SimplyJetpacks2-1.12.2-2.2.20.0.jar                   | None                                     |     | LCH   | starterkit                                   | 2.4                      | starterkit_1.12.2-2.4.jar                             | None                                     |     | LCH   | storagedrawers                               | 5.5.0                    | StorageDrawers-1.12.2-5.5.0.jar                       | None                                     |     | LCH   | thaumicjei                                   | 1.6.0                    | ThaumicJEI-1.12.2-1.6.0-27.jar                        | None                                     |     | LCH   | thermalinnovation                            | 0.3.6                    | ThermalInnovation-1.12.2-0.3.6.1-universal.jar        | None                                     |     | LCH   | tcomplement                                  | 1.12.2-0.4.3             | TinkersComplement-1.12.2-0.4.3.jar                    | None                                     |     | LCH   | tinkersjei                                   | 1.2                      | tinkersjei-1.2.jar                                    | None                                     |     | LCH   | tinkertoolleveling                           | 1.12.2-1.1.0.DEV.b23e769 | TinkerToolLeveling-1.12.2-1.1.0.jar                   | None                                     |     | LCH   | vampire                                      | 0.0.2B                   | vampire-0.0.2B.jar                                    | None                                     |     | LCH   | wawla                                        | 2.6.275                  | Wawla-1.12.2-2.6.275.jar                              | d476d1b22b218a10d845928d1665d45fce301b27 |     | LCH   | matteroverdrive                              | 0.7.0.0                  | MatterOverdrive-1.12.2-0.7.1.0-universal.jar          | None                                     |     | LCH   | teslacorelib_registries                      | 1.0.18                   | tesla-core-lib-1.12.2-1.0.18.jar                      | None                                     |     Loaded coremods (and transformers):  IELoadingPlugin (ImmersiveEngineering-core-0.12-98.jar)   blusunrize.immersiveengineering.common.asm.IEClassTransformer FTBUltimineASM (ftb-ultimine-1202.3.5.jar)    ForgelinPlugin (Forgelin-1.8.4.jar)    MovingWorldCore (movingworld-1.12-6.353-full.jar)    MekanismCoremod (Mekanism-1.12.2-9.8.3.390.jar)   mekanism.coremod.KeybindingMigrationHelper OpenModsCorePlugin (OpenModsLib-1.12.2-0.12.2.jar)   openmods.core.OpenModsClassTransformer AppleCore (AppleCore-mc1.12.2-3.4.0.jar)   squeek.applecore.asm.TransformerModuleHandler Ar_CorePlugin (additionalresources-1.9.4-0.2.0.28+47cd0bd_signed.jar)    CTMCorePlugin (CTM-MC1.12.2-1.0.2.31.jar)   team.chisel.ctm.client.asm.CTMTransformer EnderCorePlugin (EnderCore-1.12.2-0.5.78-core.jar)   com.enderio.core.common.transform.EnderCoreTransformer   com.enderio.core.common.transform.SimpleMixinPatcher TransformerLoader (OpenComputers-MC1.12.2-1.8.5+179e1c3.jar)   li.cil.oc.common.asm.ClassTransformer Inventory Tweaks Coremod (InventoryTweaks-1.63.jar)   invtweaks.forge.asm.ContainerTransformer SecretRoomsMod-Core (secretroomsmod-1.12.2-5.6.4.jar)   com.wynprice.secretroomsmod.core.SecretRoomsTransformer LoadingPlugin (ResourceLoader-MC1.12.1-1.5.3.jar)   lumien.resourceloader.asm.ClassTransformer MalisisCorePlugin (malisiscore-1.12.2-6.5.1.jar)        GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 552.22' Renderer: 'NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2'     OpenModsLib class transformers: [llama_null_fix:FINISHED],[horse_base_null_fix:FINISHED],[pre_world_render_hook:FINISHED],[player_render_hook:FINISHED],[horse_null_fix:FINISHED]     AE2 Version: stable rv6-stable-7 for Forge 14.23.5.2768     Ender IO: No known problems detected.        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!     !!!You are looking at the diagnostics information, not at the crash.       !!!     !!!Scroll up until you see the line with '---- Minecraft Crash Report ----'!!!     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!     Pulsar/tconstruct loaded Pulses:          - TinkerCommons (Enabled/Forced)         - TinkerWorld (Enabled/Not Forced)         - TinkerTools (Enabled/Not Forced)         - TinkerHarvestTools (Enabled/Forced)         - TinkerMeleeWeapons (Enabled/Forced)         - TinkerRangedWeapons (Enabled/Forced)         - TinkerModifiers (Enabled/Forced)         - TinkerSmeltery (Enabled/Not Forced)         - TinkerGadgets (Enabled/Not Forced)         - TinkerOredict (Enabled/Forced)         - TinkerIntegration (Enabled/Forced)         - TinkerFluids (Enabled/Forced)         - TinkerMaterials (Enabled/Forced)         - TinkerModelRegister (Enabled/Forced)         - chiselIntegration (Enabled/Not Forced)         - wailaIntegration (Enabled/Not Forced)     Pulsar/natura loaded Pulses:          - NaturaCommons (Enabled/Forced)         - NaturaOverworld (Enabled/Not Forced)         - NaturaNether (Enabled/Not Forced)         - NaturaDecorative (Enabled/Not Forced)         - NaturaTools (Enabled/Not Forced)         - NaturaEntities (Enabled/Not Forced)         - NaturaOredict (Enabled/Forced)         - NaturaWorld (Enabled/Not Forced)     Pulsar/tcomplement loaded Pulses:          - ModuleCommons (Enabled/Forced)         - ModuleMelter (Enabled/Not Forced)         - ModuleArmor (Enabled/Not Forced)         - ModuleSteelworks (Enabled/Not Forced)         - ChiselPlugin (Enabled/Not Forced)         - ToolLevelingPlugin (Enabled/Not Forced)         - Oredict (Enabled/Forced)     List of loaded APIs:          * AgriCraftAPI (1.0) from agricraft-2.12.0-1.12.2-b2.jar         * AppleCoreAPI (3.4.0) from AppleCore-mc1.12.2-3.4.0.jar         * appliedenergistics2|API (rv6) from appliedenergistics2-rv6-stable-7.jar         * Baubles|API (1.4.0.2) from Baubles-1.12-1.5.2.jar         * betteradvancements|API (0.1.0.77) from BetterAdvancements-1.12.2-0.1.0.77.jar         * BetterWithModsAPI (Beta 0.6) from AppleSkin-mc1.12-1.0.14.jar         * bigreactors|API (4.0.1) from ExtremeReactors-1.12.2-0.4.5.68.jar         * bluepowerAPI (1.0) from BluePower-1.12.2-0.3.152-universal.jar         * BotaniaAPI (93) from Botania r1.10-364.4.jar         * Chisel-API (0.0.1) from Chisel-MC1.12.2-1.0.2.45.jar         * ChiselAPI|Carving (0.0.1) from Chisel-MC1.12.2-1.0.2.45.jar         * cofhapi (2.5.0) from CoFHCore-1.12.2-4.6.6.1-universal.jar         * Core (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Blocks (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Constants (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Entities (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Entities|Data (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Entities|Data|Role (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Events (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Gui (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Handlers (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * Core|Handlers|Data (0.1) from CustomNPCs_1.12.2-(05Jul20).jar         * CSLib|API (1.0.1) from PTRLib-1.0.5.jar         * ctm-api (0.1.0) from CTM-MC1.12.2-1.0.2.31.jar         * ctm-api-events (0.1.0) from CTM-MC1.12.2-1.0.2.31.jar         * ctm-api-models (0.1.0) from CTM-MC1.12.2-1.0.2.31.jar         * ctm-api-textures (0.1.0) from CTM-MC1.12.2-1.0.2.31.jar         * ctm-api-utils (0.1.0) from CTM-MC1.12.2-1.0.2.31.jar         * DraconicEvolution|API (1.3) from Draconic-Evolution-1.12.2-2.3.28.354-universal.jar         * enderioapi (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|addon (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|capacitor (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|conduits (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|farm (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|redstone (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|teleport (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|tools (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * enderioapi|upgrades (4.0.0) from EnderIO-base-1.12.2-5.3.72.jar         * ForestryAPI|apiculture (5.0.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|arboriculture (4.3.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|book (5.8.1) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|circuits (3.1.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|climate (5.0.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|core (5.7.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|farming (5.8.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|food (1.1.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|fuels (3.0.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|genetics (5.7.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|gui (5.8.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|hives (4.1.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|lepidopterology (1.4.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|mail (3.1.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|modules (5.7.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|multiblock (3.0.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|recipes (5.4.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|storage (5.0.0) from forestry_1.12.2-5.8.2.387.jar         * ForestryAPI|world (2.1.0) from forestry_1.12.2-5.8.2.387.jar         * iChunUtil API (1.2.0) from iChunUtil-1.12.2-7.2.2.jar         * ImmersiveEngineering|API (1.0) from ImmersiveEngineering-0.12-98.jar         * ImmersiveEngineering|ImmersiveFluxAPI (1.0) from ImmersiveEngineering-0.12-98.jar         * industrialforegoingapi (5) from industrialforegoing-1.12.2-1.12.13-237.jar         * JustEnoughItemsAPI (4.13.0) from jei_1.12.2-4.16.1.301.jar         * MatterOverdrive|API (0.4.1) from MatterOverdrive-1.12.2-0.7.1.0-universal.jar         * MekanismAPI|core (9.8.1) from Mekanism-1.12.2-9.8.3.390.jar         * MekanismAPI|energy (9.8.1) from Mekanism-1.12.2-9.8.3.390.jar         * MekanismAPI|gas (9.8.1) from Mekanism-1.12.2-9.8.3.390.jar         * MekanismAPI|infuse (9.8.1) from Mekanism-1.12.2-9.8.3.390.jar         * MekanismAPI|laser (9.8.1) from Mekanism-1.12.2-9.8.3.390.jar         * MekanismAPI|transmitter (9.8.1) from Mekanism-1.12.2-9.8.3.390.jar         * MekanismAPI|util (9.0.0) from Mekanism-1.12.2-9.8.3.390.jar         * MouseTweaks|API (1.0) from MouseTweaks-2.10-mc1.12.2.jar         * openblocks|api (1.2) from OpenBlocks-1.12.2-1.8.1.jar         * opencomputersapi|component (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|core (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|driver (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|driver|item (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|event (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|filesystem (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|internal (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|machine (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|manual (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|network (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * opencomputersapi|prefab (7.0.0-alpha) from OpenComputers-MC1.12.2-1.8.5+179e1c3.jar         * PatchouliAPI (6) from Patchouli-1.0-23.6.jar         * projecteapi (1.12.2-1.2.0) from ProjectE-1.12.2-PE1.4.1.jar         * redstonefluxapi (2.1.1) from RedstoneFlux-1.12-2.1.1.1-universal.jar         * StorageDrawersAPI (2.1.0) from StorageDrawers-1.12.2-5.5.0.jar         * StorageDrawersAPI|event (2.1.0) from StorageDrawers-1.12.2-5.5.0.jar         * StorageDrawersAPI|registry (2.1.0) from StorageDrawers-1.12.2-5.5.0.jar         * StorageDrawersAPI|render (2.1.0) from StorageDrawers-1.12.2-5.5.0.jar         * StorageDrawersAPI|storage (2.1.0) from StorageDrawers-1.12.2-5.5.0.jar         * StorageDrawersAPI|storage-attribute (2.1.0) from StorageDrawers-1.12.2-5.5.0.jar         * Thaumcraft|API (6.0.2) from Thaumcraft-1.12.2-6.1.BETA26.jar         * WailaAPI (1.3) from Hwyla-1.8.26-B41_1.12.2.jar         * zerocore|API|multiblock (1.10.2-0.0.2) from zerocore-1.12.2-0.1.2.9.jar         * zerocore|API|multiblock|rectangular (1.10.2-0.0.2) from zerocore-1.12.2-0.1.2.9.jar         * zerocore|API|multiblock|tier (1.10.2-0.0.2) from zerocore-1.12.2-0.1.2.9.jar         * zerocore|API|multiblock|validation (1.10.2-0.0.2) from zerocore-1.12.2-0.1.2.9.jar     Patchouli open book context: n/a     Launched Version: forge-14.23.5.2859     LWJGL: 2.9.4     OpenGL: NVIDIA GeForce GTX 1070 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 552.22, NVIDIA Corporation     GL Caps: Using GL 1.3 multitexturing. Using GL 1.3 texture combiners. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Shaders are available because OpenGL 2.1 is supported. VBOs are available because OpenGL 1.5 is supported.     Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'fml,forge'     Type: Client (map_client.txt)     Resource Packs:      Current Language: English (US)     Profiler Position: N/A (disabled)     CPU: 12x Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
  • Topics

×
×
  • Create New...

Important Information

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