Jump to content

Recommended Posts

Posted (edited)

Okay so I have a custom furnace that smelts 2 items into 1 and I'm currently have a bit of an issue with it.

 

The furnace is sometimes doubling the output when I only want it to output a single item. I always end up with 15 instead of 8. I believe the first one it makes is doing it right but then after that it outputs 2 instead of one.

 

It also doesn't always work, sometimes when it is placed or after the items are taken out and the GUI closed and reopened it will no longer smelt items.

 

Then most of the time if I pull the items it smelted out they just disappear out of the players inventory after you close the GUI.

 

Then the last issue I'm having is when the block is broken the items won't drop on the ground, they just vanish into thin air.

 

All of the source code for my furnace will be listed below(if i missed anything you need please let me know), if anybody could help me out that would be greatly appreciated and you will be mentioned in the credits of my finished mod once it's able to be released.

 

BLOCK CLASS:

Spoiler

import java.util.Random;

import will11690.mechanicraft.Main;
import will11690.mechanicraft.util.Reference;
import will11690.mechanicraft.blocks.BlockBase;
import will11690.mechanicraft.blocks.machines.basicinfuser.TileEntityBasicMetallicInfuser;
import will11690.mechanicraft.init.ModBlocks;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public class BasicMetallicInfuser extends BlockBase
{
	public static final PropertyDirection FACING = BlockHorizontal.FACING;
	public static final PropertyBool BURNING = PropertyBool.create("burning");
	
	public BasicMetallicInfuser(String name) 
	{
		super(name, Material.IRON);
		setCreativeTab(Main.mechanicraftmachinestab);
		setSoundType(SoundType.METAL);
		this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(BURNING, false));
	}
	
	@Override
	public Item getItemDropped(IBlockState state, Random rand, int fortune) 
	{
		return Item.getItemFromBlock(ModBlocks.BASIC_METALLIC_INFUSER);
	}
	
	@Override
	public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
	{
		return new ItemStack(ModBlocks.BASIC_METALLIC_INFUSER);
	}
	
	@Override
	public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) 
	{
		if(!worldIn.isRemote)
		{
			playerIn.openGui(Main.Instance, Reference.GUI_BASIC_METALLIC_INFUSER, worldIn, pos.getX(), pos.getY(), pos.getZ());
		}
		
		return true;
	}
	
	@Override
	public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) 
	{
		if (!worldIn.isRemote) 
        {
            IBlockState north = worldIn.getBlockState(pos.north());
            IBlockState south = worldIn.getBlockState(pos.south());
            IBlockState west = worldIn.getBlockState(pos.west());
            IBlockState east = worldIn.getBlockState(pos.east());
            EnumFacing face = (EnumFacing)state.getValue(FACING);

            if (face == EnumFacing.NORTH && north.isFullBlock() && !south.isFullBlock()) face = EnumFacing.SOUTH;
            else if (face == EnumFacing.SOUTH && south.isFullBlock() && !north.isFullBlock()) face = EnumFacing.NORTH;
            else if (face == EnumFacing.WEST && west.isFullBlock() && !east.isFullBlock()) face = EnumFacing.EAST;
            else if (face == EnumFacing.EAST && east.isFullBlock() && !west.isFullBlock()) face = EnumFacing.WEST;
            worldIn.setBlockState(pos, state.withProperty(FACING, face), 2);
        }
	}
	
	public static void setState(boolean active, World worldIn, BlockPos pos) 
	{
		IBlockState state = worldIn.getBlockState(pos);
		TileEntity tileentity = worldIn.getTileEntity(pos);
		
		if(active) worldIn.setBlockState(pos, ModBlocks.BASIC_METALLIC_INFUSER.getDefaultState().withProperty(FACING, state.getValue(FACING)).withProperty(BURNING, true), 3);
		else worldIn.setBlockState(pos, ModBlocks.BASIC_METALLIC_INFUSER.getDefaultState().withProperty(FACING, state.getValue(FACING)).withProperty(BURNING, false), 3);
		
		if(tileentity != null) 
		{
			tileentity.validate();
			worldIn.setTileEntity(pos, tileentity);
		}
	}
	
	@Override
	public boolean hasTileEntity(IBlockState state) 
	{
		return true;
	}
	
	@Override
	public TileEntity createTileEntity(World world, IBlockState state) 
	{
		return new TileEntityBasicMetallicInfuser();
	}
	
	@Override
	public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) 
	{
		return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
	}
	
	@Override
	public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) 
	{
		worldIn.setBlockState(pos, this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);
	}
	
	@Override
	public EnumBlockRenderType getRenderType(IBlockState state) 
	{
		return EnumBlockRenderType.MODEL;
	}
	
	@Override
	public IBlockState withRotation(IBlockState state, Rotation rot)
	{
		return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
	}
	
	@Override
	public IBlockState withMirror(IBlockState state, Mirror mirrorIn) 
	{
		return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
	}
	
	@Override
	protected BlockStateContainer createBlockState() 
	{
		return new BlockStateContainer(this, new IProperty[] {BURNING,FACING});
	}
	
	@Override
	public IBlockState getStateFromMeta(int meta) 
	{
		EnumFacing facing = EnumFacing.getFront(meta);
		if(facing.getAxis() == EnumFacing.Axis.Y) facing = EnumFacing.NORTH;
		return this.getDefaultState().withProperty(FACING, facing);
	}
	
	@Override
	public int getMetaFromState(IBlockState state) 
	{
		return ((EnumFacing)state.getValue(FACING)).getIndex();
	}	
}

 

 

 

RECIPE CLASS{the recipes in here are for testing purposes}:

Spoiler

package will11690.mechanicraft.blocks.machines.basicinfuser;

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

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

import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import will11690.mechanicraft.init.ModBlocks;

public class BasicMetallicInfuserRecipes {
	
	private static final BasicMetallicInfuserRecipes INSTANCE = new BasicMetallicInfuserRecipes();
	private final Table<ItemStack, ItemStack, ItemStack> smeltingList = HashBasedTable.<ItemStack, ItemStack, ItemStack>create();
	private final Map<ItemStack, Float> experienceList = Maps.<ItemStack, Float>newHashMap();
	
	public static BasicMetallicInfuserRecipes getInstance() {
		
		return INSTANCE;
		
	}
	
	private BasicMetallicInfuserRecipes() {
		
		this.addInfuserRecipe(new ItemStack(ModBlocks.COPPER_BLOCK), new ItemStack(ModBlocks.BLOCK_IRON), new ItemStack(Blocks.ACACIA_FENCE), 5.0F);
		this.addInfuserRecipe(new ItemStack(Blocks.ACACIA_FENCE), new ItemStack(Blocks.ACACIA_FENCE_GATE), new ItemStack(ModBlocks.ENDONIUM_CRYSTAL_BLOCK), 5.0F);
		
	}

	
	public void addInfuserRecipe(ItemStack input1, ItemStack input2, ItemStack result, float experience) {
		
		if(getInfuserResult(input1, input2) != ItemStack.EMPTY) return;
		this.smeltingList.put(input1, input2, result);
		this.experienceList.put(result, Float.valueOf(experience));
		
	}
	
	public ItemStack getInfuserResult(ItemStack input1, ItemStack input2) {
		
		for(Entry<ItemStack, Map<ItemStack, ItemStack>> entry : this.smeltingList.columnMap().entrySet()) {
			
			if(this.compareItemStacks(input1, (ItemStack)entry.getKey())) {
				
				for(Entry<ItemStack, ItemStack> ent : entry.getValue().entrySet()) {
					
					if(this.compareItemStacks(input2, (ItemStack)ent.getKey())) {
						
						return (ItemStack)ent.getValue();
						
					}
					
				}
				
			}
			
		}
		
		return ItemStack.EMPTY;
	}
	
	private boolean compareItemStacks(ItemStack stack1, ItemStack stack2) {
		
		return stack2.getItem() == stack1.getItem() && (stack2.getMetadata() == 32767 || stack2.getMetadata() == stack1.getMetadata());
		
	}
	
	public Table<ItemStack, ItemStack, ItemStack> getDualSmeltingList() {
		
		return this.smeltingList;
		
	}
	
	public float getInfuserExperience(ItemStack stack) {
		
		for (Entry<ItemStack, Float> entry : this.experienceList.entrySet()) {
			
			if(this.compareItemStacks(stack, (ItemStack)entry.getKey())) {
				
				return ((Float)entry.getValue()).floatValue();
				
			}
			
		}
		
		return 0.0F;
	}
}

 

 

 

CONTAINER CLASS:

Spoiler

package will11690.mechanicraft.blocks.machines.basicinfuser;

import will11690.mechanicraft.blocks.machines.basicinfuser.BasicMetallicInfuserRecipes;
import will11690.mechanicraft.blocks.machines.basicinfuser.slots.SlotBasicMetallicInfuserFuel;
import will11690.mechanicraft.blocks.machines.basicinfuser.slots.SlotBasicMetallicInfuserOutput;
import will11690.mechanicraft.blocks.machines.basicinfuser.TileEntityBasicMetallicInfuser;

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

public class ContainerBasicMetallicInfuser extends Container
{
	private final TileEntityBasicMetallicInfuser tileentity;
	private int cookTime, totalCookTime, burnTime, currentBurnTime;
	
	public ContainerBasicMetallicInfuser(InventoryPlayer player, TileEntityBasicMetallicInfuser tileentity) 
	{
		this.tileentity = tileentity;
		IItemHandler handler = tileentity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
		
		this.addSlotToContainer(new SlotItemHandler(handler, 0, 30, 22));
		this.addSlotToContainer(new SlotItemHandler(handler, 1, 58, 22));
		this.addSlotToContainer(new SlotItemHandler(handler, 2, 45, 46));
		this.addSlotToContainer(new SlotItemHandler(handler, 3, 124, 22));
		
		for(int y = 0; y < 3; y++)
		{
			for(int x = 0; x < 9; x++)
			{
				this.addSlotToContainer(new Slot(player, x + y*9 + 9, 8 + x*18, 84 + y*18));
			}
		}
		
		for(int x = 0; x < 9; x++)
		{
			this.addSlotToContainer(new Slot(player, x, 8 + x * 18, 142));
		}
	}
	
	@Override
	public void detectAndSendChanges() 
	{
		super.detectAndSendChanges();
		
		for(int i = 0; i < this.listeners.size(); ++i) 
		{
			IContainerListener listener = (IContainerListener)this.listeners.get(i);
			
			if(this.cookTime != this.tileentity.getField(2)) listener.sendWindowProperty(this, 2, this.tileentity.getField(2));
			if(this.burnTime != this.tileentity.getField(0)) listener.sendWindowProperty(this, 0, this.tileentity.getField(0));
			if(this.currentBurnTime != this.tileentity.getField(1)) listener.sendWindowProperty(this, 1, this.tileentity.getField(1));
			if(this.totalCookTime != this.tileentity.getField(3)) listener.sendWindowProperty(this, 3, this.tileentity.getField(3));
		}
		
		this.cookTime = this.tileentity.getField(2);
		this.burnTime = this.tileentity.getField(0);
		this.currentBurnTime = this.tileentity.getField(1);
		this.totalCookTime = this.tileentity.getField(3);
	}
	
	@Override
	@SideOnly(Side.CLIENT)
	public void updateProgressBar(int id, int data) 
	{
		this.tileentity.setField(id, data);
	}
	
	@Override
	public boolean canInteractWith(EntityPlayer playerIn) 
	{
		return this.tileentity.isUsableByPlayer(playerIn);
	}
	
	@Override
	public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) 
	{
		ItemStack stack = ItemStack.EMPTY;
		Slot slot = (Slot)this.inventorySlots.get(index);
		
		if(slot != null && slot.getHasStack()) 
		{
			ItemStack stack1 = slot.getStack();
			stack = stack1.copy();
			
			if(index == 3) 
			{
				if(!this.mergeItemStack(stack1, 4, 40, true)) return ItemStack.EMPTY;
				slot.onSlotChange(stack1, stack);
			}
			else if(index != 2 && index != 1 && index != 0) 
			{		
				Slot slot1 = (Slot)this.inventorySlots.get(index + 1);
				
				if(!BasicMetallicInfuserRecipes.getInstance().getInfuserResult(stack1, slot1.getStack()).isEmpty())
				{
					if(!this.mergeItemStack(stack1, 0, 2, false)) 
					{
						return ItemStack.EMPTY;
					}
					else if(TileEntityBasicMetallicInfuser.isItemFuel(stack1))
					{
						if(!this.mergeItemStack(stack1, 2, 3, false)) return ItemStack.EMPTY;
					}
					else if(TileEntityBasicMetallicInfuser.isItemFuel(stack1))
					{
						if(!this.mergeItemStack(stack1, 2, 3, false)) return ItemStack.EMPTY;
					}
					else if(TileEntityBasicMetallicInfuser.isItemFuel(stack1))
					{
						if(!this.mergeItemStack(stack1, 2, 3, false)) return ItemStack.EMPTY;
					}
					else if(index >= 4 && index < 31)
					{
						if(!this.mergeItemStack(stack1, 31, 40, false)) return ItemStack.EMPTY;
					}
					else if(index >= 31 && index < 40 && !this.mergeItemStack(stack1, 4, 31, false))
					{
						return ItemStack.EMPTY;
					}
				}
			} 
			else if(!this.mergeItemStack(stack1, 4, 40, false)) 
			{
				return ItemStack.EMPTY;
			}
			if(stack1.isEmpty())
			{
				slot.putStack(ItemStack.EMPTY);
			}
			else
			{
				slot.onSlotChanged();

			}
			if(stack1.getCount() == stack.getCount()) return ItemStack.EMPTY;
			slot.onTake(playerIn, stack1);
		}
		return stack;
	}
}

 

 

 

GUI CLASS:

Spoiler

import will11690.mechanicraft.util.Reference;
import will11690.mechanicraft.blocks.machines.basicinfuser.ContainerBasicMetallicInfuser;
import will11690.mechanicraft.blocks.machines.basicinfuser.TileEntityBasicMetallicInfuser;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;

public class GuiBasicMetallicInfuser extends GuiContainer
{
	private static final ResourceLocation TEXTURES = new ResourceLocation(Reference.MOD_ID + ":textures/gui/basic_metallic_infuser.png");
	private final InventoryPlayer player;
	private final TileEntityBasicMetallicInfuser tileentity;
	
	public GuiBasicMetallicInfuser(InventoryPlayer player, TileEntityBasicMetallicInfuser tileentity) 
	{
		super(new ContainerBasicMetallicInfuser(player, tileentity));
		this.player = player;
		this.tileentity = tileentity;
	}
	
	@Override
	protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) 
	{
		String tileName = this.tileentity.getDisplayName().getUnformattedText();
		this.fontRenderer.drawString(tileName, (this.xSize / 2 - this.fontRenderer.getStringWidth(tileName) / 2) + 0, 4, 4210752);
		this.fontRenderer.drawString(this.player.getDisplayName().getUnformattedText(), 122, this.ySize - 96 + 2, 4210752);
	}
	
	@Override
	protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
	{
		GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
		this.mc.getTextureManager().bindTexture(TEXTURES);
		this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
		
		if(TileEntityBasicMetallicInfuser.isBurning(tileentity))
		{
			int k = this.getBurnLeftScaled(13);
			this.drawTexturedModalRect(this.guiLeft + 47, this.guiTop + 66 + 12 - k, 176, 12 - k, 14, k + 1);
		}
		
		int l = this.getCookProgressScaled(24);
		this.drawTexturedModalRect(this.guiLeft + 84, this.guiTop + 23, 176, 14, l + 1, 16);
	}
	
	private int getBurnLeftScaled(int pixels)
	{
		int i = this.tileentity.getField(1);
		if(i == 0) i = 200;
		return this.tileentity.getField(0) * pixels / i;
	}
	
	private int getCookProgressScaled(int pixels)
	{
		int i = this.tileentity.getField(2);
		int j = this.tileentity.getField(3);
		return j != 0 && i != 0 ? i * pixels / j : 0;
	}
}

 

 

 

TILE ENTITY:

 

package will11690.mechanicraft.blocks.machines.basicinfuser;

import will11690.mechanicraft.blocks.machines.basicinfuser.BasicMetallicInfuser;
import will11690.mechanicraft.blocks.machines.basicinfuser.BasicMetallicInfuserRecipes;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ItemStackHelper;
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.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.ItemStackHandler;

public class TileEntityBasicMetallicInfuser extends TileEntity implements ITickable
{
	private ItemStackHandler handler = new ItemStackHandler(4);
	private String customName;
	private ItemStack smelting = ItemStack.EMPTY;
	
	private int burnTime;
	private int currentBurnTime;
	private int cookTime;
	private int totalCookTime = 200;

	@Override
	public boolean hasCapability(Capability<?> capability, EnumFacing facing) 
	{
		if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) return true;
		else return false;
	}
	
	@Override
	public <T> T getCapability(Capability<T> capability, EnumFacing facing) 
	{
		if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) return (T) this.handler;
		return super.getCapability(capability, facing);
	}
	
	public boolean hasCustomName() 
	{
		return this.customName != null && !this.customName.isEmpty();
	}
	
	public void setCustomName(String customName) 
	{
		this.customName = customName;
	}
	
	@Override
	public ITextComponent getDisplayName() 
	{
		return this.hasCustomName() ? new TextComponentString(this.customName) : new TextComponentTranslation("container.basic_metallic_infuser");
	}
	
	@Override
	public void readFromNBT(NBTTagCompound compound)
	{
		super.readFromNBT(compound);
		this.handler.deserializeNBT(compound.getCompoundTag("Inventory"));
		this.burnTime = compound.getInteger("BurnTime");
		this.cookTime = compound.getInteger("CookTime");
		this.totalCookTime = compound.getInteger("CookTimeTotal");
		this.currentBurnTime = getItemBurnTime((ItemStack)this.handler.getStackInSlot(2));
		
		if(compound.hasKey("CustomName", 8)) this.setCustomName(compound.getString("CustomName"));
	}
	
	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound compound) 
	{
		super.writeToNBT(compound);
		compound.setInteger("BurnTime", (short)this.burnTime);
		compound.setInteger("CookTime", (short)this.cookTime);
		compound.setInteger("CookTimeTotal", (short)this.totalCookTime);
		compound.setTag("Inventory", this.handler.serializeNBT());
		
		if(this.hasCustomName()) compound.setString("CustomName", this.customName);
		return compound;
	}
	
	public boolean isBurning() 
	{
		return this.burnTime > 0;
	}
	
	@SideOnly(Side.CLIENT)
	public static boolean isBurning(TileEntityBasicMetallicInfuser te) 
	{
		return te.getField(0) > 0;
	}
	
	public void update() 
	{	
		if(this.isBurning())
		{
			--this.burnTime;
			BasicMetallicInfuser.setState(true, world, pos);
		}
		
		ItemStack[] inputs = new ItemStack[] {handler.getStackInSlot(0), handler.getStackInSlot(1)};
		ItemStack fuel = this.handler.getStackInSlot(2);
		
		if(this.isBurning() || !fuel.isEmpty() && !this.handler.getStackInSlot(0).isEmpty() || this.handler.getStackInSlot(1).isEmpty())
		{
			if(!this.isBurning() && this.canSmelt())
			{
				this.burnTime = getItemBurnTime(fuel);
				this.currentBurnTime = burnTime;
				
				if(this.isBurning() && !fuel.isEmpty())
				{
					Item item = fuel.getItem();
					fuel.shrink(1);
					
					if(fuel.isEmpty())
					{
						ItemStack item1 = item.getContainerItem(fuel);
						this.handler.setStackInSlot(2, item1);
					}
				}
			}
		}
		
		if(this.isBurning() && this.canSmelt() && cookTime > 0)
		{
			cookTime++;
			if(cookTime == totalCookTime)
			{
				if(handler.getStackInSlot(3).getCount() > 0)
				{
					handler.getStackInSlot(3).grow(1);
				}
				else
				{
					handler.insertItem(3, smelting, false);
				}
				
				smelting = ItemStack.EMPTY;
				cookTime = 0;
				return;
			}
		}
		else
		{
			if(this.canSmelt() && this.isBurning())
			{
				ItemStack output = BasicMetallicInfuserRecipes.getInstance().getInfuserResult(inputs[0], inputs[1]);
				if(!output.isEmpty())
				{
					smelting = output;
					cookTime++;
					inputs[0].shrink(1);
					inputs[1].shrink(1);
					handler.setStackInSlot(0, inputs[0]);
					handler.setStackInSlot(1, inputs[1]);
				}
			}
		}
	}
	
	private boolean canSmelt() 
	{
		if(((ItemStack)this.handler.getStackInSlot(0)).isEmpty() || ((ItemStack)this.handler.getStackInSlot(1)).isEmpty()) return false;
		else 
		{
			ItemStack result = BasicMetallicInfuserRecipes.getInstance().getInfuserResult((ItemStack)this.handler.getStackInSlot(0), (ItemStack)this.handler.getStackInSlot(1));	
			if(result.isEmpty()) return false;
			else
			{
				ItemStack output = (ItemStack)this.handler.getStackInSlot(3);
				if(output.isEmpty()) return true;
				if(!output.isItemEqual(result)) return false;
				int res = output.getCount() + result.getCount();
				return res <= 64 && res <= output.getMaxStackSize();
			}
		}
	}
	
	public static int getItemBurnTime(ItemStack fuel) 
	{
		if(fuel.isEmpty()) return 0;
		else 
		{
			Item item = fuel.getItem();

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

				if (block == Blocks.WOODEN_SLAB) return 150;
				if (block.getDefaultState().getMaterial() == Material.WOOD) return 300;
				if (block == Blocks.COAL_BLOCK) return 16000;
			}

			if (item instanceof ItemTool && "WOOD".equals(((ItemTool)item).getToolMaterialName())) return 200;
			if (item instanceof ItemSword && "WOOD".equals(((ItemSword)item).getToolMaterialName())) return 200;
			if (item instanceof ItemHoe && "WOOD".equals(((ItemHoe)item).getMaterialName())) return 200;
			if (item == Items.STICK) return 100;
			if (item == Items.COAL) return 1600;
			if (item == Items.LAVA_BUCKET) return 20000;
			if (item == Item.getItemFromBlock(Blocks.SAPLING)) return 100;
			if (item == Items.BLAZE_ROD) return 2400;

			return GameRegistry.getFuelValue(fuel);
		}
	}
		
	public static boolean isItemFuel(ItemStack fuel)
	{
		return getItemBurnTime(fuel) > 0;
	}
	
	public boolean isUsableByPlayer(EntityPlayer player) 
	{
		return this.world.getTileEntity(this.pos) != this ? false : player.getDistanceSq((double)this.pos.getX() + 0.5D, (double)this.pos.getY() + 0.5D, (double)this.pos.getZ() + 0.5D) <= 64.0D;
	}

	public int getField(int id) 
	{
		switch(id) 
		{
		case 0:
			return this.burnTime;
		case 1:
			return this.currentBurnTime;
		case 2:
			return this.cookTime;
		case 3:
			return this.totalCookTime;
		default:
			return 0;
		}
	}

	public void setField(int id, int value) 
	{
		switch(id) 
		{
		case 0:
			this.burnTime = value;
			break;
		case 1:
			this.currentBurnTime = value;
			break;
		case 2:
			this.cookTime = value;
			break;
		case 3:
			this.totalCookTime = value;
		}
	}
}

 

Edited by Will11690
Updated tags and put code in spoilers

You can find my mod MechaniCraft at this link:

http://www.minecraftforge.net/forum/index.php/topic,13923.0.html

 

- Will11690

Posted
12 minutes ago, Will11690 said:

All of the source code for my furnace will be listed below

What is the formatting on your code? Why is it all left aligned? It is such a pain to read.

12 minutes ago, Will11690 said:

BLOCK CLASS:

You have so many unnecessary methods in here. All you need are Block#onBlockActivated (to open the GUI), Block#breakBlock (to drop all the contained items), Block# hasTIleEntity, Block#createTileEntity, Block#getStateForPlacement (to apply the FACING property correctly), Block#getStateFromMeta, Block#getMetaFromState, and Block#createBlockState

 

12 minutes ago, Will11690 said:

public void update()

This method can be shortened massively, and I mean massively. Also it really needs to be formatted for me to look at without wanting to find a nice scenic cliff.

 

12 minutes ago, Will11690 said:

CONTAINER CLASS:

 

12 minutes ago, Will11690 said:

GUI CLASS:

You posted your Container class twice.

 

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted
2 hours ago, Animefan8888 said:

What is the formatting on your code? Why is it all left aligned? It is such a pain to read.

You have so many unnecessary methods in here. All you need are Block#onBlockActivated (to open the GUI), Block#breakBlock (to drop all the contained items), Block# hasTIleEntity, Block#createTileEntity, Block#getStateForPlacement (to apply the FACING property correctly), Block#getStateFromMeta, Block#getMetaFromState, and Block#createBlockState

 

This method can be shortened massively, and I mean massively. Also it really needs to be formatted for me to look at without wanting to find a nice scenic cliff.

 

 

You posted your Container class twice.

 

Sorry, my computer did that to me yesterday too with the left aligned thing, I didn't realize it did it again.

I was still half asleep, I will fix it now

You can find my mod MechaniCraft at this link:

http://www.minecraftforge.net/forum/index.php/topic,13923.0.html

 

- Will11690

Posted (edited)
3 hours ago, Will11690 said:

Sorry, my computer did that to me yesterday too with the left aligned thing, I didn't realize it did it again.

I was still half asleep, I will fix it now

Ight I fixed it the formatting and also fixed the double posting. I had to right click and copy in Eclipse instead of control c to copy for some reason lol.

Edited by Will11690

You can find my mod MechaniCraft at this link:

http://www.minecraftforge.net/forum/index.php/topic,13923.0.html

 

- Will11690

Posted
9 hours ago, Will11690 said:

if(this.isBurning() && this.canSmelt() && cookTime > 0)

This line in your update method is causing the problem cookTime is never able to be incremented. 

9 hours ago, Will11690 said:

public boolean isBurning() { return this.burnTime > 0; }

You can combine this method and consuming fuel so you only need to call it once.

9 hours ago, Will11690 said:

BasicMetallicInfuser.setState

There is no point in having this method in your Block class write the code in your TileEntity.

9 hours ago, Will11690 said:

TILE ENTITY:

You also need to override shouldRefresh and return true if the blocks are different, not the blockstates.

 

As well as my aforementioned changes.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted
On 9/10/2018 at 5:37 PM, Animefan8888 said:

This line in your update method is causing the problem cookTime is never able to be incremented. 

You can combine this method and consuming fuel so you only need to call it once.

There is no point in having this method in your Block class write the code in your TileEntity.

You also need to override shouldRefresh and return true if the blocks are different, not the blockstates.

 

As well as my aforementioned changes.

Im not saying fix it for me but could you give me a couple examples? I've tried a few things with adding shouldRefresh and I can't seem to get it working. Also I have tooled around with the broken cook time section and I can get it "SEMI" working by changing this:

 

if(this.isBurning() && this.canSmelt() && cookTime > 0)
        {
            cookTime++;
            if(cookTime == totalCookTime)
            {
                if(handler.getStackInSlot(3).getCount() > 0)
                {

                    handler.getStackInSlot(3).grow(1);
                }
                else
                {
                    handler.insertItem(3, smelting, false);
                }
                
                smelting = ItemStack.EMPTY;
                cookTime = 0;
                return;
            }
        }

 

to this:

 

if(this.isBurning() && this.canSmelt() && cookTime > 0)
        {
            cookTime++;
            if(cookTime == totalCookTime)
            {
                if(handler.getStackInSlot(3).getCount() >= 0)
                {

                    handler.getStackInSlot(3).grow(1);
                }
                else
                {
                    handler.insertItem(3, smelting, false);
                }
                
                smelting = ItemStack.EMPTY;
                cookTime = 0;
                return;
            }
        }

 

but it only works if I put the output Item in the output slot. If I do that though it works 100% correct so long as the output item stays there.

 

I tried to add the breakBlock function in to drop the items but it whines about not having IInventory implemented in the tile entity and I'm not sure of another way to do it.

 

    public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
        
        TileEntityBasicMetallicInfuser tileentity = (TileEntityBasicMetallicInfuser)worldIn.getTileEntity(pos);
        InventoryHelper.dropInventoryItems(worldIn, pos, tileentity);
        super.breakBlock(worldIn, pos, state);
        
    }

You can find my mod MechaniCraft at this link:

http://www.minecraftforge.net/forum/index.php/topic,13923.0.html

 

- Will11690

Posted
4 hours ago, Will11690 said:

I tried to add the breakBlock function in to drop the items but it whines about not having IInventory implemented in the tile entity and I'm not sure of another way to do it.

Huh, I wonder if there is another way this could be done. Let's try looking at what InventoryHelper.dropInventoryItems does. Why not try to replicate it.

4 hours ago, Will11690 said:

I've tried a few things with adding shouldRefresh and I can't seem to get it working.

 

On 9/10/2018 at 2:37 PM, Animefan8888 said:

You also need to override shouldRefresh and return true if the blocks are different, not the blockstates.

 

4 hours ago, Will11690 said:

Also I have tooled around with the broken cook time section and I can get it "SEMI" working by changing this:

 

On 9/10/2018 at 2:37 PM, Animefan8888 said:

You can combine this method and consuming fuel so you only need to call it once.

if inputsAreRecipe

if isBurningOrHasFuel()

cookTime++

If cookTime >= done

output getOutputFromRecipe

removeInputs

insertItem(output)

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

  • 4 weeks later...
  • 2 years later...
Posted
On 10/15/2018 at 4:00 AM, Will11690 said:

I appreciate all the assistance! I finally got it working as intended.

Please share your code.... Having the exact same issues you mentioned but even with those answers I can't figure it out...

Posted
On 9/16/2018 at 11:39 PM, Animefan8888 said:

Huh, I wonder if there is another way this could be done. Let's try looking at what InventoryHelper.dropInventoryItems does. Why not try to replicate it.

 

 

 

if inputsAreRecipe

if isBurningOrHasFuel()

cookTime++

If cookTime >= done

output getOutputFromRecipe

removeInputs

insertItem(output)

 

8 minutes ago, loordgek said:

Leronus what version are you modding ?

 

1.12.2.... I know it's unsupported ;-;

Posted
package mod.mores.objects.blocks.machines;

import mod.mores.init.BlockInit;
import mod.mores.util.Reference;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
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.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.event.ForgeEventFactory;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.ItemStackHandler;

import java.util.ArrayList;

public class TileEntityAlloyFurnace extends TileEntity implements ITickable {
    private ItemStackHandler inventory = new ItemStackHandler(NonNullList.withSize(4, ItemStack.EMPTY));
    private String customName;
    private ItemStack smelting = ItemStack.EMPTY;

    private static final String BURNTIME_KEY = "BurnTime";
    private static final String COOKTIME_KEY = "CookTime";
    private static final String COOKTIMETOTAL_KEY = "CookTimeTotal";

    private static final String INVENTORY_KEY = "inventory";
    private static final String CUSTOMNAME_KEY = "CustomName";

    public static final int INPUT_LEFT = 0;
    public static final int INPUT_RIGHT = 1;
    public static final int INPUT_FUEL = 2;
    public static final int OUTPUT = 3;

    public int burnTime = 0;
    public int currentBurnTime = 0;
    public int cookTime = 0;
    public int totalCookTime = 600;

    public TileEntityAlloyFurnace() {
        Reference.LOGGER.info("TileEntity is successfully bound to a block");
    }

    @Override
    public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
    {
        return (oldState.getBlock() != newState.getBlock());
    }

    @Override
    public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
        // TODO Auto-generated method stub
        if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return true;
        return super.hasCapability(capability, facing);
    }

    @Override
    public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
        // TODO Auto-generated method stub
        if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return (T) this.inventory;
        return super.getCapability(capability, facing);
    }

    public boolean hasCustomName() {

        return customName != null && !customName.isEmpty();
    }

    public void setCustomName(String customname) {
        this.customName = customname;
    }

    @Override
    public ITextComponent getDisplayName() {
        return this.hasCustomName() ? new TextComponentString(this.customName)
                : new TextComponentTranslation("container.alloy_furnace");
    }

    @Override
    public void readFromNBT(NBTTagCompound compound) {

        super.readFromNBT(compound);
        this.inventory.deserializeNBT(compound.getCompoundTag(INVENTORY_KEY));
        burnTime = compound.getInteger(BURNTIME_KEY);
        cookTime = compound.getInteger(COOKTIME_KEY);
        totalCookTime = compound.getInteger(COOKTIMETOTAL_KEY);
        currentBurnTime = getItemBurnTime((ItemStack) inventory.getStackInSlot(1));

        if (compound.hasKey(CUSTOMNAME_KEY, 8))
            setCustomName(compound.getString(CUSTOMNAME_KEY));
    }

    @Override
    public NBTTagCompound writeToNBT(NBTTagCompound compound) {

        super.writeToNBT(compound);
        compound.setInteger(BURNTIME_KEY, (short) burnTime);
        compound.setInteger(COOKTIME_KEY, (short) cookTime);
        compound.setInteger(COOKTIMETOTAL_KEY, (short) totalCookTime);
        compound.setTag(INVENTORY_KEY, this.inventory.serializeNBT());

        if (hasCustomName())
            compound.setString(CUSTOMNAME_KEY, customName);
        return compound;
    }

    public boolean isBurning() {
        return burnTime > 0;
    }

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

    public static void setState(boolean active, World worldIn, BlockPos pos) {
        IBlockState state = worldIn.getBlockState(pos);
        TileEntity tileentity = worldIn.getTileEntity(pos);

        if (active)
            worldIn.setBlockState(pos, BlockInit.ALLOY_FURNACE.getDefaultState()
                    .withProperty(BlockAlloyFurnace.FACING, state.getValue(BlockAlloyFurnace.FACING)).withProperty(BlockAlloyFurnace.BURNING, true), 1 | 2);
        else
            worldIn.setBlockState(pos, BlockInit.ALLOY_FURNACE.getDefaultState()
                    .withProperty(BlockAlloyFurnace.FACING, state.getValue(BlockAlloyFurnace.FACING)).withProperty(BlockAlloyFurnace.BURNING, false), 1 | 2);

        if (tileentity != null) {
            tileentity.validate();
            worldIn.setTileEntity(pos, tileentity);
        }
    }


    @Override
    public void update() {
        boolean wasBurning = isBurning();
        boolean flag1 = false;

        if(this.isBurning())
        {
            --this.burnTime;
            setState(true, world, pos);
        }

        ItemStack[] inputs = new ItemStack[] {inventory.getStackInSlot(INPUT_LEFT), inventory.getStackInSlot(INPUT_RIGHT)};
        ItemStack fuel = this.inventory.getStackInSlot(INPUT_FUEL);

        if(this.isBurning() || !fuel.isEmpty() && !this.inventory.getStackInSlot(INPUT_LEFT).isEmpty() || !this.inventory.getStackInSlot(INPUT_RIGHT).isEmpty())
        {
            if(!this.isBurning() && this.canSmelt())
            {
                this.burnTime = getItemBurnTime(fuel);
                this.currentBurnTime = burnTime;

                if(this.isBurning() && !fuel.isEmpty())
                {
                    Item item = fuel.getItem();
                    fuel.shrink(1);

                    if(fuel.isEmpty())
                    {
                        ItemStack item1 = item.getContainerItem(fuel);
                        this.inventory.setStackInSlot(2, item1);
                    }
                }
            }
        }

        if(this.isBurning() && this.canSmelt() && cookTime > 0)
        {
            cookTime++;
            if(cookTime == totalCookTime)
            {
                if(inventory.getStackInSlot(3).getCount() > 0)
                {
                    inventory.getStackInSlot(3).grow(1);
                }
                else
                {
                    inventory.insertItem(3, smelting, false);
                }

                smelting = ItemStack.EMPTY;
                cookTime = 0;
                return;
            }
        }
        else
        {
            if(this.canSmelt() && this.isBurning())
            {
                ItemStack output = AlloyFurnaceRecipes.getInstance().getAlloyResult(inputs[0], inputs[1]);
                if(!output.isEmpty())
                {
                    smelting = output;
                    cookTime++;
                    inputs[0].shrink(1);
                    inputs[1].shrink(1);
                    inventory.setStackInSlot(0, inputs[0]);
                    inventory.setStackInSlot(1, inputs[1]);
                }
            }
        }
    }

    private boolean canSmelt() {
        if (((ItemStack) inventory.getStackInSlot(INPUT_LEFT)).isEmpty() || ((ItemStack) inventory.getStackInSlot(INPUT_RIGHT)).isEmpty())
            return false;
        else {
            ItemStack result1 = AlloyFurnaceRecipes.getInstance().getAlloyResult((ItemStack) inventory.getStackInSlot(INPUT_LEFT), (ItemStack) inventory.getStackInSlot(INPUT_RIGHT));
            if (result1.isEmpty())
                return false;
            else {
                ItemStack fuel = (ItemStack) inventory.getStackInSlot(INPUT_FUEL);
                ItemStack output = (ItemStack) inventory.getStackInSlot(OUTPUT);
                if(output.isEmpty()) return true;
                if(!output.isItemEqual(result1)) return false;
                int res1 = output.getCount() + result1.getCount();
                int res2 = fuel.getCount() + 1;
                return (res1 <= 64 && res1 <= output.getMaxStackSize())
                        || (res2 <= 64 && res2 <= fuel.getMaxStackSize());
            }
        }
    }

    public static int getItemBurnTime(ItemStack fuel) {
        if (fuel.isEmpty())
            return 0;
        else {
            Item item = fuel.getItem();

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

                if (block == Blocks.WOODEN_SLAB)
                    return 100;
                if (block == Blocks.ACACIA_STAIRS || block == Blocks.OAK_STAIRS || block == Blocks.JUNGLE_STAIRS
                        || block == Blocks.BIRCH_STAIRS || block == Blocks.DARK_OAK_STAIRS
                        || block == Blocks.SPRUCE_STAIRS)
                    return 150;
                if (block.getDefaultState().getMaterial() == Material.WOOD)
                    return 200;
                if (block == Blocks.COAL_BLOCK)
                    return 14400;
            }

            if (item instanceof ItemTool && "WOOD".contentEquals(((ItemTool) item).getToolMaterialName()))
                return 180;
            if (item instanceof ItemSword && "WOOD".contentEquals(((ItemTool) item).getToolMaterialName()))
                return 180;
            if (item instanceof ItemHoe && "WOOD".contentEquals(((ItemTool) item).getToolMaterialName()))
                return 180;
            if (item == Items.STICK)
                return 50;
            if (item == Items.COAL)
                return 1600;
            if (item == Items.LAVA_BUCKET)
                return 20000;
            if (item == Item.getItemFromBlock(Blocks.SAPLING))
                return 70;
            if (item == Items.BLAZE_ROD)
                return 1600;

            return ForgeEventFactory.getItemBurnTime(fuel);
        }
    }

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

    public boolean isUsableByPlayer(EntityPlayer player) {

        return world.getTileEntity(pos) == this && player.getDistanceSq((double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D,
                (double) pos.getZ() + 0.5D) <= 64.0D;
    }

    public boolean isItemValidForSlot(int index, ItemStack stack) {
        if (index == 2 || index == 3)
            return false;
        if (index != 1)
            return true;
        else {
            return isItemFuel(stack);
        }
    }
    public final ArrayList<ItemStack> containerLists() {
        ArrayList<ItemStack> stackList = new ArrayList(inventory.getSlots());
        for (int i = 0; i < inventory.getSlots(); i++) {
            stackList.add(inventory.getStackInSlot(i));
        }
        return stackList;
    }

    public int getField(int id)
    {
        switch(id)
        {
            case 0:
                return this.burnTime;
            case 1:
                return this.currentBurnTime;
            case 2:
                return this.cookTime;
            case 3:
                return this.totalCookTime;
            default:
                return 0;
        }
    }

    public void setField(int id, int value)
    {
        switch(id)
        {
            case 0:
                this.burnTime = value;
                break;
            case 1:
                this.currentBurnTime = value;
                break;
            case 2:
                this.cookTime = value;
                break;
            case 3:
                this.totalCookTime = value;
        }
    }
    /*
    @Override
    public NBTTagCompound getUpdateTag() {
        return writeToNBT(new NBTTagCompound());
    }
     */


    /*
    @Override
    public SPacketUpdateTileEntity getUpdatePacket() {
        return null;
    }

     */

}
package mod.mores.objects.blocks.machines;

import mod.mores.init.BlockInit;
import mod.mores.init.ItemInit;
import mod.mores.modid.Mores;
import mod.mores.objects.BlockBase;
import mod.mores.particle.FlameParticle;
import mod.mores.particle.ParticleCustom;
import mod.mores.util.Reference;
import net.minecraft.block.Block;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.Particle;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemBucket;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidActionResult;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.UniversalBucket;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;

import java.util.Random;

public class BlockAlloyFurnace extends Block {

    public static final PropertyDirection FACING = BlockHorizontal.FACING;
    public static final PropertyBool BURNING = PropertyBool.create("burning");


    public BlockAlloyFurnace(String name, Material material, CreativeTabs creativeTab) {
        super(material);
        setUnlocalizedName(name);
        setRegistryName(name);
        setCreativeTab(creativeTab);

        setSoundType(SoundType.ANVIL);
        setHardness(5.0f);
        setResistance(30.0f);
        setHarvestLevel("pickaxe", 1);
        setLightLevel(0.0f);
        // setLightOpacity(1);
        // setBlockUnbreakable();

        this.setDefaultState(
                this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(BURNING, false));

        BlockInit.BLOCKS.add(this);
        ItemInit.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName()));
    }


    @Override
    public Item getItemDropped(IBlockState state, Random rand, int fortune) {
        return Item.getItemFromBlock(BlockInit.ALLOY_FURNACE);

    }

    @Override
    public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
        return new ItemStack(BlockInit.ALLOY_FURNACE);

    }

    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn,
                                    EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
        if(!worldIn.isRemote)
        {
            playerIn.openGui(Mores.instance, Reference.GUI_ALLOY_FURNACE, worldIn, pos.getX(), pos.getY(), pos.getZ());
        }
        return true;
    }

    @Override
    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
        // TODO Auto-generated method stub

        if (!worldIn.isRemote) {

            IBlockState north = worldIn.getBlockState(pos.north());
            IBlockState south = worldIn.getBlockState(pos.south());
            IBlockState west = worldIn.getBlockState(pos.west());
            IBlockState east = worldIn.getBlockState(pos.east());
            EnumFacing face = (EnumFacing) state.getValue(FACING);

            if (face == EnumFacing.NORTH)
                face = EnumFacing.SOUTH;
            if (face == EnumFacing.SOUTH)
                face = EnumFacing.NORTH;
            if (face == EnumFacing.WEST)
                face = EnumFacing.EAST;
            if (face == EnumFacing.EAST)
                face = EnumFacing.WEST;
            worldIn.setBlockState(pos, state.withProperty(FACING, face), 2);
        }
    }


    @Override
    public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) {
        // TODO Auto-generated method stub
        return state.getValue(BURNING).booleanValue() ? 15 : 0;
    }

    @Override
    public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY,
                                            float hitZ, int meta, EntityLivingBase placer, EnumHand hand) {
        // TODO Auto-generated method stub
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
    }

    @Override
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer,
                                ItemStack stack) {
        // TODO Auto-generated method stub
        worldIn.setBlockState(pos,
                this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);
    }

    @Override
    public IBlockState withRotation(IBlockState state, Rotation rot) {
        // TODO Auto-generated method stub
        return state.withProperty(FACING, rot.rotate((EnumFacing) state.getValue(FACING)));
    }

    @Override
    public IBlockState withMirror(IBlockState state, Mirror mirrorIn) {
        // TODO Auto-generated method stub
        return state.withRotation(mirrorIn.toRotation((EnumFacing) state.getValue(FACING)));
    }

    @Override
    protected BlockStateContainer createBlockState() {
        // TODO Auto-generated method stub
        return new BlockStateContainer(this, new IProperty[] { BURNING, FACING });
    }

    @Override
    public IBlockState getStateFromMeta(int meta) {
        // TODO Auto-generated method stub
        EnumFacing facing = EnumFacing.getFront(meta);
        if (facing.getAxis() == EnumFacing.Axis.Y)
            facing = EnumFacing.NORTH;
        return this.getDefaultState().withProperty(FACING, facing);
    }

    @Override
    public int getMetaFromState(IBlockState state) {
        // TODO Auto-generated method stub
        return ((EnumFacing) state.getValue(FACING)).getIndex();
    }

    @Override
    public boolean hasTileEntity(IBlockState state) {
        // TODO Auto-generated method stub
        return true;
    }

    @Override
    public TileEntityAlloyFurnace createTileEntity(World world, IBlockState state) {
        // TODO Auto-generated method stub
        return new TileEntityAlloyFurnace();
    }

    @Override
    public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
        // TODO Auto-generated method stub
        TileEntity te = worldIn.getTileEntity(pos);
        if (te instanceof TileEntityAlloyFurnace) {
            for (ItemStack stack : ((TileEntityAlloyFurnace) te).containerLists()) {
                spawnAsEntity(worldIn, pos, stack);
            }
        }
        super.breakBlock(worldIn, pos, state);
    }

    @SideOnly(Side.CLIENT)
    @SuppressWarnings("incomplete-switch")
    public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand)
    {
        if (stateIn.getValue(BURNING))
        {
            EnumFacing enumfacing = (EnumFacing)stateIn.getValue(FACING);
            double d0 = (double)pos.getX() + 0.5D;
            double d1 = (double)pos.getY() + rand.nextDouble() * 6.0D / 16.0D;
            double d2 = (double)pos.getZ() + 0.5D;
            double d3 = 0.52D;
            double d4 = rand.nextDouble() * 0.6D - 0.3D;

            if (rand.nextDouble() < 0.1D)
            {
                worldIn.playSound((double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, SoundEvents.BLOCK_FURNACE_FIRE_CRACKLE, SoundCategory.BLOCKS, 1.0F, 1.0F, false);
            }

            switch (enumfacing) {
                case WEST:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 - 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D);
                    Particle newEffectWest = new ParticleCustom(new ParticleCustom.TextureDefinition("flame_fx"), worldIn, d0 - 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D);
                    Minecraft.getMinecraft().effectRenderer.addEffect(newEffectWest);
                    break;
                case EAST:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D);
                    Particle newEffectEast = new ParticleCustom(new ParticleCustom.TextureDefinition("flame_fx"), worldIn, d0 + 0.52D, d1, d2 + d4, 0.0D, 0.0D, 0.0D);
                    Minecraft.getMinecraft().effectRenderer.addEffect(newEffectEast);
                    break;
                case NORTH:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 - 0.52D, 0.0D, 0.0D, 0.0D);
                    Particle newEffectNorth = new ParticleCustom(new ParticleCustom.TextureDefinition("flame_fx"), worldIn, d0 + d4, d1, d2 - 0.52D, 0.0D, 0.0D, 0.0D);
                    Minecraft.getMinecraft().effectRenderer.addEffect(newEffectNorth);
                    break;
                case SOUTH:
                    worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 + 0.52D, 0.0D, 0.0D, 0.0D);
                    Particle newEffectSouth = new ParticleCustom(new ParticleCustom.TextureDefinition("flame_fx"), worldIn, d0 + d4, d1, d2 + 0.52D, 0.0D, 0.0D, 0.0D);
                    Minecraft.getMinecraft().effectRenderer.addEffect(newEffectSouth);
            }
        }
    }
}

 

This is what my code looks like, in case anyone does decide to help :))

The issues I have as of now is that removing the output items freezes all entities and removing an input or fuel will have the Furnace remaining in its burning state :( Have tried everything I could think of, searched every known 1.12.2 post known to man but to no avail *cries in 1.12.2*

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hi. I cant join my minecraft world on singleplayer neither multiplayer. After reaching %100, it crashes. Heres the crash report, would appreciate the help.  Description: Exception in server tick loop java.lang.NullPointerException: Cannot invoke "net.minecraft.server.level.ServerLevel.m_213780_()" because the return value of "net.minecraft.server.MinecraftServer.m_129783_()" is null     at party.lemons.biomemakeover.level.BMWorldEvents.lambda$init$0(BMWorldEvents.java:32) ~[biomemakeover-FORGE-1.20.1-1.11.4.jar%23568!/:?] {re:mixin,re:classloading}     at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732) ~[?:?] {re:mixin}     at dev.architectury.event.EventFactory.invokeMethod(EventFactory.java:53) ~[architectury-9.2.14-forge.jar%23547!/:?] {re:classloading}     at dev.architectury.event.EventFactory$1.handleInvocation(EventFactory.java:62) ~[architectury-9.2.14-forge.jar%23547!/:?] {re:classloading}     at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87) ~[guava-31.1-jre.jar%23109!/:?] {}     at jdk.proxy4.$Proxy229.tick(Unknown Source) ~[?:?] {}     at dev.architectury.event.forge.EventHandlerImplCommon.event(EventHandlerImplCommon.java:75) ~[architectury-9.2.14-forge.jar%23547!/:?] {re:classloading,re:mixin}     at dev.architectury.event.forge.__EventHandlerImplCommon_event_ServerTickEvent.invoke(.dynamic) ~[architectury-9.2.14-forge.jar%23547!/:?] {re:classloading,pl:eventbus:B}     at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2387!/:?] {}     at net.minecraftforge.event.ForgeEventFactory.onPostServerTick(ForgeEventFactory.java:950) ~[forge-1.20.1-47.3.11-universal.jar%23887!/:?] {re:mixin,re:classloading,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:835) ~[client-1.20.1-20230612.114412-srg.jar%23882!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_ServerCoroutineScope,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:APP:deltaboxlib.mixins.json:event.MinecraftServerMixin,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin,pl:mixin:APP:saturn.mixins.json:allocations.server_directory.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraftServer,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftServerClientOnly,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:A}     at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:89) ~[client-1.20.1-20230612.114412-srg.jar%23882!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:mixins.essential.json:server.Mixin_ServerCoroutineScope_IntegratedServer,pl:mixin:APP:mixins.essential.json:server.integrated.Mixin_FixDefaultOpPermissionLevel,pl:mixin:APP:mixins.essential.json:server.integrated.Mixin_IntegratedServerManager,pl:mixin:APP:mixins.essential.json:server.integrated.MixinIntegratedServer,pl:mixin:APP:smoothboot.mixins.json:client.IntegratedServerMixin,pl:mixin:APP:lithostitched.mixins.json:client.IntegratedServerMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[client-1.20.1-20230612.114412-srg.jar%23882!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_ServerCoroutineScope,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:APP:deltaboxlib.mixins.json:event.MinecraftServerMixin,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin,pl:mixin:APP:saturn.mixins.json:allocations.server_directory.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraftServer,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftServerClientOnly,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[client-1.20.1-20230612.114412-srg.jar%23882!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,xf:fml:xaeroworldmap:xaero_wm_minecraftserver,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_ServerCoroutineScope,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:APP:deltaboxlib.mixins.json:event.MinecraftServerMixin,pl:mixin:APP:ichunutil.mixins.json:MinecraftServerAccessorMixin,pl:mixin:APP:saturn.mixins.json:allocations.server_directory.MinecraftServerMixin,pl:mixin:APP:balm.mixins.json:MinecraftServerMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraftServer,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftServerClientOnly,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:MinecraftServerMixin,pl:mixin:APP:kubejs-common.mixins.json:inject_resources.MinecraftServerMixin,pl:mixin:A}     at java.lang.Thread.run(Thread.java:833) ~[?:?] {re:mixin}    
    • https://pastebin.com/L8w1pmC3 - crash log https://drive.google.com/drive/folders/1Dt8hTaetBELrchKD-Ri99mx8eGDgNIOU?usp=drive_link - debug & latest (too big to fit in pastebin) Tried removing modernfix, distant horizons, ftb chunks, and anything that kinda showed up at the end of the debug. Gl, I literally have no idea.
    • ---- Minecraft Crash Report ---- // I bet Cylons wouldn't have this problem. Time: 2/6/25 6:40 PM Description: Rendering overlay java.lang.NullPointerException: Rendering overlay     at cam72cam.immersiverailroading.registry.DefinitionManager.getDefinitions(DefinitionManager.java:368) ~[?:1.16.5-forge-1.10.0] {re:classloading}     at cam72cam.immersiverailroading.items.ItemRollingStock.getItemVariants(ItemRollingStock.java:51) ~[?:1.16.5-forge-1.10.0] {re:classloading}     at cam72cam.mod.render.ItemRender.lambda$register$5(ItemRender.java:125) ~[?:1.2.1] {re:classloading}     at cam72cam.mod.render.ItemRender$$Lambda$11067/1961840810.run(Unknown Source) ~[?:?] {}     at cam72cam.mod.event.ClientEvents$$Lambda$18070/916936815.accept(Unknown Source) ~[?:?] {}     at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] {}     at cam72cam.mod.event.Event.execute(Event.java:24) ~[?:1.2.1] {re:classloading}     at cam72cam.mod.event.ClientEvents.fireReload(ClientEvents.java:59) ~[?:1.2.1] {re:classloading}     at cam72cam.mod.ModCore$Internal$$Lambda$17884/1594513480.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture.uniRun(CompletableFuture.java:705) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:687) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:561) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:690) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) ~[?:1.8.0_51] {}     at net.minecraft.resources.AsyncReloader.func_219557_a(SourceFile:71) ~[?:?] {re:classloading}     at net.minecraft.resources.AsyncReloader$$Lambda$18064/1330012679.run(Unknown Source) ~[?:?] {}     at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(ThreadTaskExecutor.java:189) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?] {re:mixin,re:computing_frames,re:classloading}     at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(ThreadTaskExecutor.java:151) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213160_bf(ThreadTaskExecutor.java:128) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:947) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:mining_helmet.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:ShaderCloseMixin,pl:mixin:APP:konkrete.mixin.json:client.MixinMinecraft,pl:mixin:APP:abnormals_core.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:mining_helmet.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:ShaderCloseMixin,pl:mixin:APP:konkrete.mixin.json:client.MixinMinecraft,pl:mixin:APP:abnormals_core.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.2.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$486/913902572.call(Unknown Source) [forge-1.16.5-36.2.2.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {re:classloading}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {re:classloading} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at cam72cam.immersiverailroading.registry.DefinitionManager.getDefinitions(DefinitionManager.java:368) ~[?:1.16.5-forge-1.10.0] {re:classloading}     at cam72cam.immersiverailroading.items.ItemRollingStock.getItemVariants(ItemRollingStock.java:51) ~[?:1.16.5-forge-1.10.0] {re:classloading}     at cam72cam.mod.render.ItemRender.lambda$register$5(ItemRender.java:125) ~[?:1.2.1] {re:classloading}     at cam72cam.mod.render.ItemRender$$Lambda$11067/1961840810.run(Unknown Source) ~[?:?] {}     at cam72cam.mod.event.ClientEvents$$Lambda$18070/916936815.accept(Unknown Source) ~[?:?] {}     at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] {}     at cam72cam.mod.event.Event.execute(Event.java:24) ~[?:1.2.1] {re:classloading}     at cam72cam.mod.event.ClientEvents.fireReload(ClientEvents.java:59) ~[?:1.2.1] {re:classloading}     at cam72cam.mod.ModCore$Internal$$Lambda$17884/1594513480.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture.uniRun(CompletableFuture.java:705) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:687) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:561) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:690) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) ~[?:1.8.0_51] {}     at net.minecraft.resources.AsyncReloader.func_219557_a(SourceFile:71) ~[?:?] {re:classloading}     at net.minecraft.resources.AsyncReloader$$Lambda$18064/1330012679.run(Unknown Source) ~[?:?] {}     at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(ThreadTaskExecutor.java:189) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?] {re:mixin,re:computing_frames,re:classloading}     at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(ThreadTaskExecutor.java:151) ~[?:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default} -- Overlay render details -- Details:     Overlay name: net.minecraft.client.gui.ResourceLoadProgressGui Stacktrace:     at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:807) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:flywheel.mixins.json:StoreProjectionMatrixMixin,pl:mixin:APP:fruittrees.mixins.json:MixinGameRenderer,pl:mixin:A}     at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:mining_helmet.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:ShaderCloseMixin,pl:mixin:APP:konkrete.mixin.json:client.MixinMinecraft,pl:mixin:APP:abnormals_core.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:mining_helmet.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:ShaderCloseMixin,pl:mixin:APP:konkrete.mixin.json:client.MixinMinecraft,pl:mixin:APP:abnormals_core.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.2.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$486/913902572.call(Unknown Source) [forge-1.16.5-36.2.2.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {re:classloading}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {re:classloading} -- System Details -- Details:     Minecraft Version: 1.16.5     Minecraft Version ID: 1.16.5     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: 10151887400 bytes (9681 MB) / 12817793024 bytes (12224 MB) up to 15032385536 bytes (14336 MB)     CPUs: 6     JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx14G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     ModLauncher: 8.0.9+86+master.3cf110c     ModLauncher launch target: fmlclient     ModLauncher naming: srg     ModLauncher services:          /mixin-0.8.2.jar mixin PLUGINSERVICE          /eventbus-4.0.0.jar eventbus PLUGINSERVICE          /forge-1.16.5-36.2.2.jar object_holder_definalize PLUGINSERVICE          /forge-1.16.5-36.2.2.jar runtime_enum_extender PLUGINSERVICE          /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE          /forge-1.16.5-36.2.2.jar capability_inject_definalize PLUGINSERVICE          /forge-1.16.5-36.2.2.jar runtimedistcleaner PLUGINSERVICE          /mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE          /OptiFine_1.16.5_HD_U_G8.jar OptiFine TRANSFORMATIONSERVICE          /forge-1.16.5-36.2.2.jar fml TRANSFORMATIONSERVICE      FML: 36.2     Forge: net.minecraftforge:36.2.2     FML Language Providers:          [email protected]         minecraft@1         [email protected]     Mod List:          create-stuff-additions1.16.5_v1.1.6.jar           |Create Stuff Additions        |create_stuff_additions        |1.1.6               |CREATE_REG|Manifest: NOSIGNATURE         BetterDungeons-1.16.4-1.2.1.jar                   |YUNG's Better Dungeons        |betterdungeons                |1.16.4-1.2.1        |CREATE_REG|Manifest: NOSIGNATURE         supermartijn642configlib-1.1.8-forge-mc1.16.jar   |SuperMartijn642's Config Libra|supermartijn642configlib      |1.1.8               |CREATE_REG|Manifest: NOSIGNATURE         CreateSlimeCraft1165.jar                          |Create slime Craft            |create_slime_craft            |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         refinedpipes-0.5.jar                              |Refined Pipes                 |refinedpipes                  |0.5                 |CREATE_REG|Manifest: NOSIGNATURE         mcw-windows-1.0.3-mc1.16.5.jar                    |Macaw's Windows               |mcwwindows                    |1.0.3               |CREATE_REG|Manifest: NOSIGNATURE         SilentMechanisms-1.16.3-1.0.1+77.jar              |Silent's Mechanisms           |silents_mechanisms            |1.0.1+77            |CREATE_REG|Manifest: NOSIGNATURE         strawgolem-1.16-1.9.jar                           |Straw Golem                   |strawgolem                    |1.16-1.9            |CREATE_REG|Manifest: NOSIGNATURE         modnametooltip_1.16.2-1.15.0.jar                  |Mod Name Tooltip              |modnametooltip                |1.15.0              |CREATE_REG|Manifest: NOSIGNATURE         essentials-1.16.5-2.11.1.jar                      |Essentials                    |essentials                    |1.16.5-2.11.1       |CREATE_REG|Manifest: NOSIGNATURE         BetterCaves-Forge-1.16.4-1.1.2.jar                |YUNG's Better Caves           |bettercaves                   |1.16.4-1.1.2        |CREATE_REG|Manifest: NOSIGNATURE         Horror_elements_mod_1.5.5_1.16.5.jar              |Horror Element Mod            |horror_element_mod            |1.5.5               |CREATE_REG|Manifest: NOSIGNATURE         namepain-1.4.0 forge-1.16.x.jar                   |Name Pain                     |namepain                      |1.4.0               |CREATE_REG|Manifest: NOSIGNATURE         farmersdelightintegrations-1.16.5-1.2.jar         |Farmer's Delight Compats      |farmersdelightintegrations    |1.16.5-1.2          |CREATE_REG|Manifest: NOSIGNATURE         YungsApi-1.16.4-Forge-13.jar                      |YUNG's API                    |yungsapi                      |1.16.4-Forge-13     |CREATE_REG|Manifest: NOSIGNATURE         mcw-stairs-1.0.1-1.16.5forge.jar                  |Macaw's Stairs and Balconies  |mcwstairs                     |1.0.1               |CREATE_REG|Manifest: NOSIGNATURE         Wither-Skeleton-Tweaks-1.16.4-5.3.0.jar           |Wither Skeleton Tweaks        |wstweaks                      |5.3.0               |CREATE_REG|Manifest: NOSIGNATURE         lootbeams-1.16.5-release-july1722.jar             |LootBeams                     |lootbeams                     |1.16.5              |CREATE_REG|Manifest: NOSIGNATURE         guardvillagers-1.16.5.1.2.6.jar                   |Guard Villagers               |guardvillagers                |1.2.6               |CREATE_REG|Manifest: NOSIGNATURE         randompatches-2.4.4-forge.jar                     |RandomPatches                 |randompatches                 |2.4.4-forge         |CREATE_REG|Manifest: 92:f6:29:d4:09:89:f5:f5:98:5e:20:34:31:d0:7b:58:22:06:bd:a5:d1:6a:92:6e:ac:3d:8d:18:c5:b2:5b:d7         create_compressed_0.9.1_forge_1.16.5.jar          |Create Compressed             |create_compressed             |0.9.1               |CREATE_REG|Manifest: NOSIGNATURE         Morpheus-1.16.5-4.2.70.jar                        |Morpheus                      |morpheus                      |4.2.70              |CREATE_REG|Manifest: NOSIGNATURE         Hwyla-forge-1.10.11-B78_1.16.2.jar                |Waila                         |waila                         |1.10.11-B78_1.16.2  |CREATE_REG|Manifest: NOSIGNATURE         SnowRealMagic-1.16.4-2.5.7.jar                    |Snow! Real Magic!             |snowrealmagic                 |2.5.7               |CREATE_REG|Manifest: NOSIGNATURE         immersive-armors-1.5.1+1.16.5-forge.jar           |Immersive Armors              |immersive_armors              |1.5.1+1.16.5        |CREATE_REG|Manifest: NOSIGNATURE         refinedstorage-1.9.15.jar                         |Refined Storage               |refinedstorage                |1.9.15              |CREATE_REG|Manifest: NOSIGNATURE         structure_gel-1.16.5-1.7.8.jar                    |Structure Gel API             |structure_gel                 |1.7.8               |CREATE_REG|Manifest: NOSIGNATURE         industrial-foregoing-1.16.5-3.2.14.5-13.jar       |Industrial Foregoing          |industrialforegoing           |3.2.14.5            |CREATE_REG|Manifest: NOSIGNATURE         CreateDrinks-1.0.1-1.16.5.jar                     |Create: Drinks                |create_drinks                 |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         BiomesOPlenty-1.16.5-13.1.0.477-universal.jar     |Biomes O' Plenty              |biomesoplenty                 |1.16.5-13.1.0.477   |CREATE_REG|Manifest: NOSIGNATURE         ironfurnaces-1.16.5-2.7.7.jar                     |Iron Furnaces                 |ironfurnaces                  |2.7.7               |CREATE_REG|Manifest: NOSIGNATURE         mcw-trapdoors-1.0.2-mc1.16.5.jar                  |Macaw's Trapdoors             |mcwtrpdoors                   |1.0.2               |CREATE_REG|Manifest: NOSIGNATURE         silent-gear-1.16.5-2.6.30.jar                     |Silent Gear                   |silentgear                    |2.6.30              |CREATE_REG|Manifest: NOSIGNATURE         supermartijn642corelib-1.1.18-forge-mc1.16.jar    |SuperMartijn642's Core Lib    |supermartijn642corelib        |1.1.18              |CREATE_REG|Manifest: NOSIGNATURE         YungsBridges-Forge-1.16.4-1.0.1.jar               |YUNG's Bridges                |yungsbridges                  |1.16.4-1.0.1        |CREATE_REG|Manifest: NOSIGNATURE         MysticalAdaptations-1.16.5-1.2.1.jar              |Mystical Adaptations          |mysticaladaptations           |1.16.5-1.2.1        |CREATE_REG|Manifest: NOSIGNATURE         curios-forge-1.16.5-4.1.0.0.jar                   |Curios API                    |curios                        |1.16.5-4.1.0.0      |CREATE_REG|Manifest: NOSIGNATURE         YungsExtras-Forge-1.16.4-1.0.jar                  |YUNG's Extras                 |yungsextras                   |Forge-1.16.4-1.0    |CREATE_REG|Manifest: NOSIGNATURE         NaturesAura-34.2.jar                              |Nature's Aura                 |naturesaura                   |34.2                |CREATE_REG|Manifest: NOSIGNATURE         cfm-7.0.0pre22-1.16.3.jar                         |MrCrayfish's Furniture Mod    |cfm                           |7.0.0-pre22         |CREATE_REG|Manifest: NOSIGNATURE         mcw-furniture-2.0.1-mc1.16.5.jar                  |Macaw's Furniture             |mcwfurnitures                 |2.0.1               |CREATE_REG|Manifest: NOSIGNATURE         cloth-config-4.11.26-forge.jar                    |Cloth Config v4 API           |cloth-config                  |4.11.26             |CREATE_REG|Manifest: NOSIGNATURE         the_bumblezone-1.16.5-2.4.11-forge.jar            |The Bumblezone                |the_bumblezone                |1.16.5-2.4.11-forge |CREATE_REG|Manifest: NOSIGNATURE         FallingTree-1.16.5-2.11.5.jar                     |FallingTree                   |fallingtree                   |2.11.5              |CREATE_REG|Manifest: 3c:8e:df:6c:df:a6:2a:9f:af:64:ea:04:9a:cf:65:92:3b:54:93:0e:96:50:b4:52:e1:13:42:18:2b:ae:40:29         FastLeafDecay-v25.jar                             |FastLeafDecay                 |fastleafdecay                 |v25                 |CREATE_REG|Manifest: NOSIGNATURE         BetterMineshafts-Forge-1.16.4-2.0.4.jar           |YUNG's Better Mineshafts      |bettermineshafts              |1.16.4-2.0.4        |CREATE_REG|Manifest: NOSIGNATURE         mcw-lights-1.1.0-mc1.16.5forge.jar                |Macaw's Lights and Lamps      |mcwlights                     |1.1.0               |CREATE_REG|Manifest: NOSIGNATURE         torchslabmod-1.16.4_v1.6.19.jar                   |Torch Slab Mod                |torchslabmod                  |1.6.18              |CREATE_REG|Manifest: NOSIGNATURE         mining_helmet-1.16.5-2.0.1.jar                    |Mining Helmet                 |mining_helmet                 |2.0.1               |CREATE_REG|Manifest: NOSIGNATURE         bountifulbaubles-1.16.5-0.1.0-forge.jar           |Bountiful Baubles             |bountifulbaubles              |1.16.5-0.1.0        |CREATE_REG|Manifest: NOSIGNATURE         jei-1.16.5-7.7.1.118.jar                          |Just Enough Items             |jei                           |7.7.1.118           |CREATE_REG|Manifest: NOSIGNATURE         goblintraders-1.6.0-1.16.3.jar                    |Goblin Traders                |goblintraders                 |1.6.0               |CREATE_REG|Manifest: NOSIGNATURE         Mekanism-1.16.5-10.0.21.448.jar                   |Mekanism                      |mekanism                      |10.0.21             |CREATE_REG|Manifest: NOSIGNATURE         caelus-forge-1.16.5-2.1.3.2.jar                   |Caelus API                    |caelus                        |1.16.5-2.1.3.2      |CREATE_REG|Manifest: NOSIGNATURE         NaturesCompass-1.16.5-1.9.1-forge.jar             |Nature's Compass              |naturescompass                |1.16.5-1.9.1-forge  |CREATE_REG|Manifest: NOSIGNATURE         scattered_weapons-1.16.5.jar                      |scattered weapons             |scattered_weapons             |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         snowundertrees-1.16.5-v1.1.4.jar                  |Snow Under Trees              |snowundertrees                |v1.1.4              |CREATE_REG|Manifest: NOSIGNATURE         JEITweaker-1.16.5-1.0.1.34.jar                    |JEI Tweaker                   |jeitweaker                    |1.0.1.34            |CREATE_REG|Manifest: NOSIGNATURE         CraftTweaker-1.16.5-7.1.0.390.jar                 |CraftTweaker                  |crafttweaker                  |7.1.0.390           |CREATE_REG|Manifest: NOSIGNATURE         ImmersivePetroleum-1.16.5-3.4.0-20.jar            |Immersive Petroleum           |immersivepetroleum            |3.4.0-20            |CREATE_REG|Manifest: NOSIGNATURE         forge-1.16.5-36.2.2-universal.jar                 |Forge                         |forge                         |36.2.2              |CREATE_REG|Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90         mcw-paths-1.0.5-1.16.5forge.jar                   |Macaw's Paths and Pavings     |mcwpaths                      |1.0.5               |CREATE_REG|Manifest: NOSIGNATURE         ironchest-1.16.5-11.2.13.jar                      |Iron Chests                   |ironchest                     |1.16.5-11.2.13      |CREATE_REG|Manifest: NOSIGNATURE         forge-1.16.5-36.2.2-client.jar                    |Minecraft                     |minecraft                     |1.16.5              |CREATE_REG|Manifest: NOSIGNATURE         smoothchunk1.16.5-2.0.jar                         |Smoothchunk mod               |smoothchunk                   |2.0                 |CREATE_REG|Manifest: NOSIGNATURE         MouseTweaks-2.14-mc1.16.2.jar                     |Mouse Tweaks                  |mousetweaks                   |2.14                |CREATE_REG|Manifest: NOSIGNATURE         useful_railroads-1.16.5-1.4.6.43.jar              |Useful Railroads              |usefulrailroads               |1.4.6.43            |CREATE_REG|Manifest: f4:a6:0b:ee:cb:8a:1a:ea:9f:9d:45:91:8f:8b:b3:ae:26:f3:bf:05:86:1d:90:9e:f6:32:2a:1a:ed:1d:ce:b0         morevanillalib-1.16.4-1.4.0.jar                   |MoreVanillaLib                |morevanillalib                |1.4.0               |CREATE_REG|Manifest: NOSIGNATURE         CreateTweaker-1.0.0.28.jar                        |CreateTweaker                 |createtweaker                 |1.0.0.28            |CREATE_REG|Manifest: NOSIGNATURE         mmlib-1.1.1-1.16.5.jar                            |Mysterious Mountain Lib       |mmlib                         |1.1.1-1.16.5        |CREATE_REG|Manifest: NOSIGNATURE         flywheel-1.16-0.2.5.jar                           |Flywheel                      |flywheel                      |1.16-0.2.5          |CREATE_REG|Manifest: NOSIGNATURE         steampowered-1.16.5-1.2.8.jar                     |Create: Steam Powered         |steampowered                  |1.16.5-1.2.8        |CREATE_REG|Manifest: NOSIGNATURE         polymorph-forge-1.16.5-0.25.jar                   |Polymorph                     |polymorph                     |1.16.5-0.25         |CREATE_REG|Manifest: NOSIGNATURE         AutoRegLib-1.6-49.jar                             |AutoRegLib                    |autoreglib                    |1.6-49              |CREATE_REG|Manifest: NOSIGNATURE         structurize-1.16.5-1.0.454-ALPHA.jar              |Structurize                   |structurize                   |1.16.5-1.0.454-ALPHA|CREATE_REG|Manifest: NOSIGNATURE         create-supercharged1.16.5_v1.7.3.jar              |Create: SuperCharged          |createsupercharged            |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         PickleTweaks-1.16.4-5.2.3.jar                     |Pickle Tweaks                 |pickletweaks                  |5.2.3               |CREATE_REG|Manifest: NOSIGNATURE         appleskin-forge-mc1.16.x-2.1.0.jar                |AppleSkin                     |appleskin                     |mc1.16.4-2.1.0      |CREATE_REG|Manifest: NOSIGNATURE         lootr-1.16.5-0.2.19.51.jar                        |Lootr                         |lootr                         |0.2.19.51           |CREATE_REG|Manifest: NOSIGNATURE         Aquaculture-1.16.5-2.1.20.jar                     |Aquaculture 2                 |aquaculture                   |1.16.5-2.1.20       |CREATE_REG|Manifest: NOSIGNATURE         SkyVillage_1.0.0_1.16.5.jar                       |Sky Villages                  |skyvillages                   |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         NetherPortalFix_1.16.3-7.2.1.jar                  |NetherPortalFix               |netherportalfix               |7.2.1               |CREATE_REG|Manifest: NOSIGNATURE         connectivity-2.4-1.16.5.jar                       |Connectivity Mod              |connectivity                  |2.4-1.16.5          |CREATE_REG|Manifest: NOSIGNATURE         InsaneLib-1.1.2-mc1.16.5.jar                      |InsaneLib                     |insanelib                     |1.1.2-mc1.16.5      |CREATE_REG|Manifest: NOSIGNATURE         create_recycle_0.9.0_forge_1.16.5.jar             |Create Recycle                |create_crush_everything       |0.9.0               |CREATE_REG|Manifest: NOSIGNATURE         Placebo-1.16.4-4.5.0.jar                          |Placebo                       |placebo                       |4.5.0               |CREATE_REG|Manifest: NOSIGNATURE         citadel-1.7.3-1.16.5.jar                          |Citadel                       |citadel                       |1.7.3               |CREATE_REG|Manifest: NOSIGNATURE         alexsmobs-1.11.1.jar                              |Alex's Mobs                   |alexsmobs                     |1.11.1              |CREATE_REG|Manifest: NOSIGNATURE         moreminecarts-1.3.20.jar                          |More Minecarts                |moreminecarts                 |1.3.20              |CREATE_REG|Manifest: NOSIGNATURE         Bookshelf-Forge-1.16.5-10.4.33.jar                |Bookshelf                     |bookshelf                     |10.4.33             |CREATE_REG|Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         BotanyPots-1.16.5-7.1.41.jar                      |BotanyPots                    |botanypots                    |7.1.41              |CREATE_REG|Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         BotanyTrees-1.16.5-3.0.12.jar                     |BotanyTrees                   |botanytrees                   |3.0.12              |CREATE_REG|Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         u_team_core-forge-1.16.5-3.2.1.342.jar            |U Team Core                   |uteamcore                     |3.2.1.342           |CREATE_REG|Manifest: f4:a6:0b:ee:cb:8a:1a:ea:9f:9d:45:91:8f:8b:b3:ae:26:f3:bf:05:86:1d:90:9e:f6:32:2a:1a:ed:1d:ce:b0         relics-1.16.5-0.3.4.4.jar                         |Relics                        |relics                        |0.3.4.4             |CREATE_REG|Manifest: NOSIGNATURE         CreateArmorAndWeaponsv2.jar                       |Create Tools and Armor        |create_tools_and_armor        |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         Waddles-1.16.5-0.8.13.jar                         |Waddles                       |waddles                       |1.16.5-0.8.13       |CREATE_REG|Manifest: NOSIGNATURE         ProgressiveBosses-3.3.2-mc1.16.5.jar              |Progressive Bosses            |progressivebosses             |3.3.2               |CREATE_REG|Manifest: NOSIGNATURE         mcw-doors-1.0.3-mc1.16.5.jar                      |Macaw's Doors                 |mcwdoors                      |1.0.3               |CREATE_REG|Manifest: NOSIGNATURE         MekanismGenerators-1.16.5-10.0.21.448.jar         |Mekanism: Generators          |mekanismgenerators            |10.0.21             |CREATE_REG|Manifest: NOSIGNATURE         carryon-1.16.5-1.15.6.24.jar                      |Carry On                      |carryon                       |1.15.6.24           |CREATE_REG|Manifest: NOSIGNATURE         [1.16.X-1.0.10] Dragon Mounts Legacy.jar          |Dragon Mounts: Legacy         |dragonmounts                  |1.0.10              |CREATE_REG|Manifest: NOSIGNATURE         twilightforest-1.16.5-4.0.870-universal.jar       |The Twilight Forest           |twilightforest                |NONE                |CREATE_REG|Manifest: NOSIGNATURE         konkrete_forge_1.6.1_MC_1.16.2-1.16.5.jar         |Konkrete                      |konkrete                      |1.6.1               |CREATE_REG|Manifest: NOSIGNATURE         createcafe-1.16.5-2.4.jar                         |Create Cafe                   |createcafe                    |1.16.5-2.4          |CREATE_REG|Manifest: NOSIGNATURE         chipped-1.16.5-1.2.1-forge.jar                    |Chipped                       |chipped                       |1.16.5-1.2.1-forge  |CREATE_REG|Manifest: NOSIGNATURE         createplus-1.16.4_v0.3.2.1.jar                    |Create Plus                   |createplus                    |1.16.4_v0.3.2.1     |CREATE_REG|Manifest: NOSIGNATURE         mcw-bridges-1.0.6-mc1.16.5.jar                    |Macaw's Bridges               |mcwbridges                    |1.0.6               |CREATE_REG|Manifest: NOSIGNATURE         FarmersDelight-1.16.5-0.6.0.jar                   |Farmer's Delight              |farmersdelight                |1.16.5-0.6.0        |CREATE_REG|Manifest: NOSIGNATURE         corn_delight-1.0.3-1.16.5.jar                     |Corn Delight                  |corn_delight                  |1.0.3-1.16.5        |CREATE_REG|Manifest: NOSIGNATURE         culturaldelights-1.16.5-0.9.2.jar                 |Cultural Delights             |culturaldelights              |0.9.2               |CREATE_REG|Manifest: NOSIGNATURE         honeyexpansion-1.0.1.jar                          |Honey Expansion               |honeyexpansion                |1.0.1               |CREATE_REG|Manifest: NOSIGNATURE         farmersrespite-1.16.5-1.1.jar                     |Farmer's Respite              |farmersrespite                |1.16.5-1.1          |CREATE_REG|Manifest: NOSIGNATURE         largemeals-1.16.5-2.2.jar                         |Large Meals                   |largemeals                    |1.16.5-2.2          |CREATE_REG|Manifest: NOSIGNATURE         ends_delight-1.16.5-1.8.jar                       |End's Delight                 |ends_delight                  |1.16.5-1.8          |CREATE_REG|Manifest: NOSIGNATURE         customizableelytra-1.16.4-1.6.1.jar               |Customizable Elytra           |customizableelytra            |1.16.4-1.6.1        |CREATE_REG|Manifest: NOSIGNATURE         AmbientSounds_v3.1.9_mc1.16.5.jar                 |Ambient Sounds                |ambientsounds                 |3.0.3               |CREATE_REG|Manifest: NOSIGNATURE         mcw-fences-1.1.2-mc1.16.5forge.jar                |Macaw's Fences and Walls      |mcwfences                     |1.1.2               |CREATE_REG|Manifest: NOSIGNATURE         mining_dimension-1.16.5-1.0.5.jar                 |Mining World                  |mining_dimension              |1.16.5-1.0.5        |CREATE_REG|Manifest: NOSIGNATURE         simplefarming-1.16.5-1.3.8.jar                    |Simple Farming                |simplefarming                 |1.16.5-1.3.8        |CREATE_REG|Manifest: NOSIGNATURE         born_in_chaos_1.16_1.3.jar                        |Born in Chaos                 |born_in_chaos_v1              |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         dungeons_enhanced-1.16.5-1.9.2.jar                |Dungeons Enhanced             |dungeons_enhanced             |1.9.2               |CREATE_REG|Manifest: NOSIGNATURE         simplybackpacks-1.16.3-1.4.13.jar                 |Simply Backpacks              |simplybackpacks               |1.16.3-1.4.13       |CREATE_REG|Manifest: NOSIGNATURE         Bountiful-1.16.4-3.3.1.jar                        |Bountiful                     |bountiful                     |1.16.4-3.3.1        |CREATE_REG|Manifest: NOSIGNATURE         Patchouli-1.16.4-53.1.jar                         |Patchouli                     |patchouli                     |1.16.4-53.1         |CREATE_REG|Manifest: NOSIGNATURE         collective-1.16.5-2.58.jar                        |Collective                    |collective                    |2.58                |CREATE_REG|Manifest: NOSIGNATURE         balancedflight-mc1.16.5_v1.3.0.jar                |Balanced Flight               |balancedflight                |mc1.16.5_v1.3.0     |CREATE_REG|Manifest: NOSIGNATURE         OreExcavation-1.8.157.jar                         |Ore Excavation                |oreexcavation                 |1.8.157             |CREATE_REG|Manifest: e7:68:1c:0d:b9:7e:cf:f8:f3:40:9c:84:c5:39:d7:a4:59:78:b0:6b:c3:fd:b7:4f:69:18:a3:88:e3:76:8c:3f         elevatorid-1.16.5-1.7.13.jar                      |Elevator Mod                  |elevatorid                    |1.16.5-1.7.13       |CREATE_REG|Manifest: NOSIGNATURE         BetterStrongholds-1.16.4-1.2.1.jar                |YUNG's Better Strongholds     |betterstrongholds             |1.16.4-1.2.1        |CREATE_REG|Manifest: NOSIGNATURE         MekanismTools-1.16.5-10.0.21.448.jar              |Mekanism: Tools               |mekanismtools                 |10.0.21             |CREATE_REG|Manifest: NOSIGNATURE         TwilightDelight-1.16.5-1.1.3.jar                  |Twilight Delight              |twilightdelight               |1.1.3               |CREATE_REG|Manifest: NOSIGNATURE         SpartanWeaponry-1.16.5-2.2.2.jar                  |Spartan Weaponry              |spartanweaponry               |2.2.2               |CREATE_REG|Manifest: NOSIGNATURE         architectury-1.20.29-forge.jar                    |Architectury                  |architectury                  |1.20.29             |CREATE_REG|Manifest: NOSIGNATURE         ftb-library-forge-1605.3.1-build.58.jar           |FTB Library                   |ftblibrary                    |1605.3.1-build.58   |CREATE_REG|Manifest: NOSIGNATURE         ImmersiveRailroading-1.16.5-forge-1.10.0.jar      |Immersive Railroading         |immersiverailroading          |1.16.5-forge-1.10.0 |CREATE_REG|Manifest: NOSIGNATURE         UniversalModCore-1.16.5-forge-1.2.1.jar           |Universal Mod Core            |universalmodcore              |1.2.1               |CREATE_REG|Manifest: NOSIGNATURE         TrackAPI-1.16.4-forge-1.2.1.jar                   |TrackAPI                      |trackapi                      |1.2                 |CREATE_REG|Manifest: NOSIGNATURE         curiouselytra-forge-1.16.5-4.0.2.5.jar            |Curious Elytra                |curiouselytra                 |1.16.5-4.0.2.5      |CREATE_REG|Manifest: NOSIGNATURE         AI-Improvements-1.16.2-0.3.0.jar                  |AI-Improvements               |aiimprovements                |0.3.0               |CREATE_REG|Manifest: NOSIGNATURE         light-overlay-5.8.1.jar                           |Light Overlay                 |lightoverlay                  |5.8.1               |CREATE_REG|Manifest: NOSIGNATURE         inventorysorter-1.16.1-18.1.0.jar                 |Simple Inventory Sorter       |inventorysorter               |18.1.0              |CREATE_REG|Manifest: NOSIGNATURE         Cucumber-1.16.4-4.1.10.jar                        |Cucumber Library              |cucumber                      |4.1.10              |CREATE_REG|Manifest: NOSIGNATURE         ae2wtlib-0.3.3-1.16.5.jar                         |AE2 Wireless Terminals        |ae2wtlib                      |0.3.3-1.16.5        |CREATE_REG|Manifest: NOSIGNATURE         TrashSlot_1.16.3-12.2.1.jar                       |TrashSlot                     |trashslot                     |12.2.1              |CREATE_REG|Manifest: NOSIGNATURE         simpledelights-1.2.jar                            |Simple Delights               |simpledelights                |1.2                 |CREATE_REG|Manifest: NOSIGNATURE         metalbarrels-1.16.2-3.3b.jar                      |Metal Barrels                 |metalbarrels                  |1.16.2-3.3b         |CREATE_REG|Manifest: NOSIGNATURE         the-conjurer-1.16.4-1.0.13.jar                    |The Conjurer                  |conjurer_illager              |1.0.13              |CREATE_REG|Manifest: NOSIGNATURE         abnormals_core-1.16.5-3.2.0.jar                   |Abnormals Core                |abnormals_core                |3.2.0               |CREATE_REG|Manifest: NOSIGNATURE         upgrade_aquatic-1.16.5-3.1.0.jar                  |Upgrade Aquatic               |upgrade_aquatic               |3.1.0               |CREATE_REG|Manifest: NOSIGNATURE         endergetic-1.16.4-3.0.0.jar                       |The Endergetic Expansion      |endergetic                    |3.0.0               |CREATE_REG|Manifest: NOSIGNATURE         savageandravage-1.16.5-3.1.0.jar                  |Savage & Ravage               |savageandravage               |3.1.0               |CREATE_REG|Manifest: NOSIGNATURE         autumnity-1.16.5-2.1.1.jar                        |Autumnity                     |autumnity                     |2.1.1               |CREATE_REG|Manifest: NOSIGNATURE         nethers_delight-2.1.jar                           |Nethers Delight               |nethers_delight               |2.1                 |CREATE_REG|Manifest: NOSIGNATURE         buzzier_bees-1.16.5-3.0.1.jar                     |Buzzier Bees                  |buzzier_bees                  |3.0.1               |CREATE_REG|Manifest: NOSIGNATURE         ae2extras-1.3.1-1.16.5.jar                        |AE2 Extras                    |ae2extras                     |1.3.1-1.16.5        |CREATE_REG|Manifest: NOSIGNATURE         extraboats-1.16.5-2.1.0.jar                       |Extra Boats                   |extraboats                    |2.1.0               |CREATE_REG|Manifest: NOSIGNATURE         create-mc1.16.5_v0.3.2g.jar                       |Create                        |create                        |v0.3.2g             |ERROR     |Manifest: NOSIGNATURE         createdeco-1.1.2-1.16.5.jar                       |Create Deco                   |createdeco                    |1.1.2-1.16.5        |CREATE_REG|Manifest: NOSIGNATURE         createautomated-1.16.5-1.4.1a.jar                 |Create Automated              |createautomated               |1.16.5-1.4.1a       |CREATE_REG|Manifest: NOSIGNATURE         Waystones_1.16.5-7.6.2.jar                        |Waystones                     |waystones                     |7.6.2               |CREATE_REG|Manifest: NOSIGNATURE         Clumps-6.0.0.28.jar                               |Clumps                        |clumps                        |6.0.0.28            |CREATE_REG|Manifest: NOSIGNATURE         journeymap-1.16.5-5.7.3.jar                       |Journeymap                    |journeymap                    |5.7.3               |CREATE_REG|Manifest: NOSIGNATURE         comforts-forge-1.16.5-4.0.1.2.jar                 |Comforts                      |comforts                      |1.16.5-4.0.1.1      |CREATE_REG|Manifest: NOSIGNATURE         appliedenergistics2-8.4.7.jar                     |Applied Energistics 2         |appliedenergistics2           |8.4.7               |CREATE_REG|Manifest: 95:58:cc:83:9d:a8:fa:4f:e9:f3:54:90:66:61:c8:ae:9c:08:88:11:52:52:df:2d:28:5f:05:d8:28:57:0f:98         AEInfinityBooster-1.16.5-1.0.0+12.jar             |AEInfinityBooster             |aeinfinitybooster             |1.16.5-1.0.0+12     |CREATE_REG|Manifest: NOSIGNATURE         ae2ao-8.1.1-1.16.jar                              |AE2AO                         |ae2ao                         |8.1.1               |CREATE_REG|Manifest: NOSIGNATURE         FruitTrees-1.16.5-2.4.3.jar                       |Fruit Trees                   |fruittrees                    |2.4.3               |CREATE_REG|Manifest: NOSIGNATURE         Kiwi-1.16.5-3.5.2.jar                             |Kiwi                          |kiwi                          |3.5.2               |CREATE_REG|Manifest: NOSIGNATURE         Artifacts-1.16.5-2.10.5.jar                       |Artifacts                     |artifacts                     |1.16.5-2.10.5       |CREATE_REG|Manifest: NOSIGNATURE         VanillaTweaks-1.16.5-1.5.40.jar                   |VanillaTweaks                 |vanillatweaks                 |1.16.5-1.5.40       |CREATE_REG|Manifest: NOSIGNATURE         DungeonCrawl-1.16.5-2.3.2.jar                     |Dungeon Crawl                 |dungeoncrawl                  |2.3.2               |CREATE_REG|Manifest: NOSIGNATURE         create-confectionery1.16.5_v1.0.2.jar             |Create Confectionery          |create_confectionery          |1.0.2               |CREATE_REG|Manifest: NOSIGNATURE         Farmers_Extra_Foods_1.2.jar                       |Farmer's Extra Foods          |farmers_extra_foods           |1.0.0               |CREATE_REG|Manifest: NOSIGNATURE         creategears-1.16.5-1.3.3.jar                      |Create Gears                  |creategears                   |1.16.5-1.3.3        |CREATE_REG|Manifest: NOSIGNATURE         creategearaddon-v2.0.1.jar                        |Create gear addon             |creategearaddon               |v2.0.1              |CREATE_REG|Manifest: NOSIGNATURE         spartantwilight-1.16.5-2.3.3.jar                  |Spartan Weaponry: Twilight For|spartantwilight               |1.16.5-2.3.3        |CREATE_REG|Manifest: NOSIGNATURE         ImmersivePosts-1.16.5-4.3.0-1.jar                 |Immersive Posts               |immersiveposts                |4.3.0-1             |CREATE_REG|Manifest: d5:aa:49:67:b7:dd:64:8a:a4:7d:3e:57:12:6b:f9:3f:e8:5e:6b:24:d9:f9:c5:fb:c5:e7:a0:cf:98:64:dc:d0         ImmersiveEngineering-1.16.5-5.1.0-148.jar         |Immersive Engineering         |immersiveengineering          |1.16.5-5.1.0-148    |CREATE_REG|Manifest: NOSIGNATURE         ImmersiveIndustry-1.16.5-0.1.8f.jar               |Immersive Industry            |immersiveindustry             |1.16.5-0.1.8f       |CREATE_REG|Manifest: NOSIGNATURE         MysticalAgriculture-1.16.5-4.2.1.jar              |Mystical Agriculture          |mysticalagriculture           |4.2.1               |CREATE_REG|Manifest: NOSIGNATURE         MysticalAgradditions-1.16.5-4.2.0.jar             |Mystical Agradditions         |mysticalagradditions          |4.2.0               |CREATE_REG|Manifest: NOSIGNATURE         CraftingTweaks_1.16.5-12.2.1.jar                  |Crafting Tweaks               |craftingtweaks                |12.2.1              |CREATE_REG|Manifest: NOSIGNATURE         EnchantmentDescriptions-1.16.5-7.1.27.jar         |EnchantmentDescriptions       |enchdesc                      |7.1.27              |CREATE_REG|Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         swingthroughgrass-1.16.4-1.5.3.jar                |SwingThroughGrass             |swingthroughgrass             |1.16.4-1.5.3        |CREATE_REG|Manifest: NOSIGNATURE         nohostilesaroundcampfire_1.16.5-3.6.jar           |No Hostiles Around Campfire   |nohostilesaroundcampfire      |3.6                 |CREATE_REG|Manifest: NOSIGNATURE         titanium-1.16.5-3.2.8.4-10.jar                    |Titanium                      |titanium                      |3.2.8.4             |CREATE_REG|Manifest: NOSIGNATURE         Alex's Delight 1.1.3 - Forge 1.16.5.jar           |Alex's Delight                |amfd                          |1.1.3               |CREATE_REG|Manifest: NOSIGNATURE         silent-lib-1.16.3-4.9.6.jar                       |Silent Lib                    |silentlib                     |4.9.6               |CREATE_REG|Manifest: NOSIGNATURE         CreativeCore_v2.2.1_mc1.16.5.jar                  |CreativeCore                  |creativecore                  |2.0.0               |CREATE_REG|Manifest: NOSIGNATURE         Create Deco Casing 2.0.0 1.16.5.jar               |Create Deco Casing            |create_deco_casing            |2.0.0               |CREATE_REG|Manifest: NOSIGNATURE         atmospheric-1.16.5-3.1.0.jar                      |Atmospheric                   |atmospheric                   |3.1.0               |CREATE_REG|Manifest: NOSIGNATURE         easy_villagers-1.16.5-1.0.13.jar                  |Easy Villagers                |easy_villagers                |1.16.5-1.0.13       |CREATE_REG|Manifest: NOSIGNATURE         SpartanShields-1.16.5-2.1.2.jar                   |Spartan Shields               |spartanshields                |2.1.2               |CREATE_REG|Manifest: NOSIGNATURE         Quark-r2.4-316.jar                                |Quark                         |quark                         |r2.4-316            |CREATE_REG|Manifest: NOSIGNATURE         JAOPCA-1.16.5-3.4.0.12.jar                        |JAOPCA                        |jaopca                        |3.4.0.12            |CREATE_REG|Manifest: NOSIGNATURE         StorageDrawers-1.16.3-8.3.0.jar                   |Storage Drawers               |storagedrawers                |8.3.0               |CREATE_REG|Manifest: NOSIGNATURE         FluxNetworks-1.16.5-6.2.1.14.jar                  |Flux Networks                 |fluxnetworks                  |6.2.1.14            |CREATE_REG|Manifest: NOSIGNATURE         vanillahammers-1.16.4-2.2.0.jar                   |Vanilla Hammers               |vanillahammers                |2.2.0               |CREATE_REG|Manifest: NOSIGNATURE         moredragoneggs-2.5.jar                            |More Dragon Eggs              |moredragoneggs                |2.5                 |CREATE_REG|Manifest: NOSIGNATURE         refinedstorageaddons-0.7.3.jar                    |Refined Storage Addons        |refinedstorageaddons          |0.7.3               |CREATE_REG|Manifest: NOSIGNATURE         SolarGeneration-1.16.5-2.4.0.jar                  |Solar Generation              |solargeneration               |2.4.0               |CREATE_REG|Manifest: NOSIGNATURE         expandability-2.0.1-forge.jar                     |ExpandAbility                 |expandability                 |2.0.1               |CREATE_REG|Manifest: NOSIGNATURE         valhelsia_core-16.0.9.jar                         |Valhelsia Core                |valhelsia_core                |16.0.9              |CREATE_REG|Manifest: NOSIGNATURE         valhelsia_structures-1.16.5-0.1.4.jar             |Valhelsia Structures          |valhelsia_structures          |1.16.5-0.1.4        |CREATE_REG|Manifest: NOSIGNATURE         createaddition-1.16.5-20220129a.jar               |Create Crafts & Additions     |createaddition                |1.16.5-20220129a    |CREATE_REG|Manifest: NOSIGNATURE     Crash Report UUID: 26056c56-92d4-49a8-a98b-38c12b61b176     Launched Version: forge-36.2.2     Backend library: LWJGL version 3.2.2 build 10     Backend API: NVIDIA GeForce GTX 1650 SUPER/PCIe/SSE2 GL version 4.6.0 NVIDIA 572.16, NVIDIA Corporation     GL Caps: Using framebuffer using OpenGL 3.0     Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'     Type: Client (map_client.txt)     Graphics mode: fancy     Resource Packs:      Current Language: English (US)     CPU: 6x AMD Ryzen 5 3500 6-Core Processor      OptiFine Version: OptiFine_1.16.5_HD_U_G8     OptiFine Build: 20210515-161946     Render Distance Chunks: 12     Mipmaps: 4     Anisotropic Filtering: 1     Antialiasing: 0     Multitexture: false     Shaders: null     OpenGlVersion: 4.6.0 NVIDIA 572.16     OpenGlRenderer: NVIDIA GeForce GTX 1650 SUPER/PCIe/SSE2     OpenGlVendor: NVIDIA Corporation     CpuCount: 6
    • I have no idea why it sent twice im really sorry
    • Was launching forge for the first time and it crashed: Processor failed, invalid outputs: /home/frenchy/.local/share/PrismLauncher/libraries/net/minecraft/client/1.20.1-20230612.114412/client-1.20.1-20230612.114412-slim.jar Expected: de86b035d2da0f78940796bb95c39a932ed84834 Actual: a8fb49bc364562847d6e7e6775e3a1b3f6b2bb05 /home/frenchy/.local/share/PrismLauncher/libraries/net/minecraft/client/1.20.1-20230612.114412/client-1.20.1-20230612.114412-extra.jar Expected: 8c5a95cbce940cfdb304376ae9fea47968d02587 Actual: cf941ba69e11f5a9de15d0c319d61854c456a116 No idea why I think it's because I'm on linux or something  
  • Topics

×
×
  • Create New...

Important Information

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