Jump to content

[1.12.2] GuiContainer not opening onBlockActivated


GenElectrovise

Recommended Posts

Spoiler
Spoiler

Registering my GuiHandler



public static void initRegistries() {
	NetworkRegistry.INSTANCE.registerGuiHandler(Main.instance, new GuiHandler());
    }

 

AltarBase (Altar Block)


package com.magiksmostevile.blocks;

import java.util.Random;

import com.magiksmostevile.EvileLog;
import com.magiksmostevile.Main;
import com.magiksmostevile.EvileLog.EnumLogLevel;
import com.magiksmostevile.guis.GuiAltar;
import com.magiksmostevile.init.EvileBlocks;
import com.magiksmostevile.tileentity.TileEntityAltar;

import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
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.tileentity.TileEntityEnchantmentTable;
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.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class AltarBase extends BlockBase implements ITileEntityProvider {
	public static AxisAlignedBB ALTAR_AABB = new AxisAlignedBB(0D, 0D, 0D, 1D, 1D, 1D);

	private World world;

	public AltarBase(String name, Material material) {
		super(name, material);
		EvileLog.logText(true, EnumLogLevel.INFO, "Constructing ALTAR");
		setHardness(5);
		setSoundType(SoundType.CLOTH);
	}

	@Override
	public boolean isOpaqueCube(IBlockState state) {
		return false;
	}

	@Override
	public boolean isFullCube(IBlockState state) {
		return false;
	}

	@Override
	public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
		return ALTAR_AABB;
	}

	// ======================================================================================================================
	// TILE ENTITY

	@Override
	public TileEntity createNewTileEntity(World worldIn, int meta) {
		EvileLog.logText(true, EnumLogLevel.INFO, "creating tile entity for ALTAR");
		return new TileEntityAltar();
	}

	@Override
	public boolean hasTileEntity(IBlockState state) {
		return true;
	}

	@Override
	public Item getItemDropped(IBlockState state, Random rand, int fortune) {
		return Item.getItemFromBlock(EvileBlocks.ALTAR);
	}

	@Override
	public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
		return new ItemStack(EvileBlocks.ALTAR);
	}

	@Override
	public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
		try {
			playerIn.sendMessage(new TextComponentString("Altar activated! +++++++++++++++++++++++++++"));
			if (!worldIn.isRemote) {
				playerIn.openGui(Main.instance, Main.GUI_ALTAR, worldIn, pos.getX(), pos.getY(), pos.getZ());
			}
		} catch (Exception e) {
			EvileLog.logText(true, EnumLogLevel.ERROR, "An error has occurred opening the GUI for Altar at : " + pos + " : This is not an intended feature! :/");
			e.printStackTrace();
		}

		return true;
	}

	private void openAltarGui(World worldIn, BlockPos pos, EntityPlayer playerIn) {
		playerIn.sendMessage(new TextComponentString("Opening altar gui, ID: " + Main.GUI_ALTAR));
		playerIn.openGui(Main.instance, Main.GUI_ALTAR, worldIn, pos.getX(), pos.getY(), pos.getZ());
	}

	@Override
	public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
		EvileLog.logText(true, EnumLogLevel.WARN, "Altar placed! Evile-ness incoming!");
	}

	public static void setState() {
		// TODO Check whether method needs population
	}

	@Override
	public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) {
		return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand);
	}

	@Override
	public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
		super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
	}

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

	@Override
	public EnumBlockRenderType getRenderType(IBlockState state) {
		return EnumBlockRenderType.MODEL;
	}

	@Override
	public IBlockState withRotation(IBlockState state, Rotation rot) {
		return super.withRotation(state, rot);
	}

	@Override
	public IBlockState withMirror(IBlockState state, Mirror mirrorIn) {
		return super.withMirror(state, mirrorIn);
	}

	@Override
	protected BlockStateContainer createBlockState() {
		return super.createBlockState();
	}

	@Override
	public IBlockState getStateFromMeta(int meta) {
		return super.getStateFromMeta(meta);
	}

	@Override
	public int getMetaFromState(IBlockState state) {
		return super.getMetaFromState(state);
	}

	// https://www.youtube.com/watch?v=JMdDf0PCxIE&list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR&index=19&t=451s
}

 

Spoiler

TileEntityAltar


package com.magiksmostevile.tileentity;

import java.util.Iterator;

import com.google.common.collect.ImmutableMap;
import com.magiksmostevile.EvileLog;
import com.magiksmostevile.EvileLog.EnumLogLevel;
import com.magiksmostevile.Main;
import com.magiksmostevile.init.EvileItems;
import com.magiksmostevile.tileentity.container.ContainerAltar;

import net.minecraft.block.Block;
import net.minecraft.block.BlockCrops;
import net.minecraft.block.BlockPotato;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ContainerEnchantment;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList;
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.IBlockAccess;
import net.minecraft.world.IInteractionObject;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class TileEntityAltar extends TileEntity implements ITickable, IInventory, IInteractionObject {

	private NonNullList<ItemStack> inventory = NonNullList.<ItemStack>withSize(4, ItemStack.EMPTY);
	private String customName;
	private World world;
	private int currentRitual;

	public TileEntityAltar() {
		super();
		EvileLog.logText(true, EnumLogLevel.INFO, "Constructing altar tile entity");
	}

	public int getCurrentRitual() {
		return this.currentRitual;
	}

	public void setAltarRitual(World worldIn, BlockPos pos, int ritualToSet) {
		TileEntityAltar tileentity = (TileEntityAltar) worldIn.getTileEntity(pos);
		tileentity.currentRitual = ritualToSet;
	}

	public String getName() {
		return this.hasCustomName() ? this.customName : "container.altar";
	}

	public boolean hasCustomName() {
		return this.customName != null && !this.customName.isEmpty();
	}

	private void setCustomName(String customNameIn) {
		this.customName = customNameIn;
	}

	public ITextComponent getDisplayName() {
		return this.hasCustomName() ? new TextComponentString(this.getName()) : new TextComponentTranslation(this.getName());
	}

	@Override
	public void readFromNBT(NBTTagCompound compound) {
		super.readFromNBT(compound);
		this.inventory = NonNullList.<ItemStack>withSize(this.getSizeInventory(), ItemStack.EMPTY);
		ItemStackHelper.loadAllItems(compound, this.inventory);
		this.currentRitual = compound.getInteger("CurrentRitual");

		if (compound.hasKey("CustomName", 8))
			this.setCustomName(compound.getString("CustomName"));
	}

	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound compound) {
		super.writeToNBT(compound);
		compound.setInteger("CurrentRitual", (short) this.currentRitual);

		if (this.hasCustomName())
			compound.setString("CustomName", this.customName);
		return compound;
	}

	@Override
	public void onLoad() { // HELPFUL POST FOR GETTING WORLD>>>
		// https://www.minecraftforge.net/forum/topic/41640-world-and-position-empty-in-tile-entity/
		this.world = this.getWorld();
	}

	@Override
	public void update() {

	}

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

	@Override
	public boolean isEmpty() {
		for (ItemStack stack : this.inventory) {
			if (stack.isEmpty())
				return false;
		}
		return true;
	}

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

	@Override
	public ItemStack decrStackSize(int index, int count) {
		return ItemStackHelper.getAndSplit(this.inventory, index, count);
	}

	@Override
	public ItemStack removeStackFromSlot(int index) {
		return ItemStackHelper.getAndRemove(this.inventory, index);
	}

	@Override
	public void setInventorySlotContents(int index, ItemStack stack) {
		ItemStack itemstack = (ItemStack) this.inventory.get(index);
		boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack);
		this.inventory.set(index, stack);

		if (stack.getCount() > this.getInventoryStackLimit()) {
			stack.setCount(this.getInventoryStackLimit());
		}
		if (index == 0 && index + 1 == 1 && !flag) {
			ItemStack stack1 = (ItemStack) this.inventory.get(index + 1);
			this.markDirty();

		}
	}

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

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

	@Override
	public void openInventory(EntityPlayer player) {
		EvileLog.logText(true, EnumLogLevel.INFO, "Opening ALTAR_GUI");
		System.out.println("TileEntityAltar Opening ALTAR_GUI");
		player.openGui(Main.instance, Main.GUI_ALTAR, world, this.getPos().getX(), this.getPos().getY(), this.getPos().getZ());

	}

	@Override
	public void closeInventory(EntityPlayer player) {
		// TODO Auto-generated method stub

	}

	@Override
	public boolean isItemValidForSlot(int index, ItemStack stack) { // TODO Decide on slot allocation!!!!!!!
		if (index == 1) {
			return false;
		} else if (index != 2) {
			return true;
		} else {
			return true;
		}
	}

	public String getGuiID() {
		return "magiksmostevile:gui_altar";
	}

	@Override
	public int getField(int id) { // https://www.youtube.com/watch?v=PcZ4JgTqCU8&list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR&index=19
		// TODO Decide slot allocation + see link! 12:22
		return 0;
	}

	@Override
	public void setField(int id, int value) {
		// TODO Auto-generated method stub

	}

	@Override
	public int getFieldCount() {
		return 4;
	}

	@Override
	public void clear() {
		this.inventory.clear();
	}

	@Override
	public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) {
		System.out.println("creating container for Altar GUI");
        return new ContainerAltar(playerInventory, this);
	}
	
	public String getGuiId() {
		return "magiksmostevile:gui_altar";
	}

}

 

Spoiler

ContainerAltar


package com.magiksmostevile.tileentity.container;

import com.magiksmostevile.tileentity.TileEntityAltar;

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;

public class ContainerAltar extends Container { // https://www.youtube.com/watch?v=rARVLYm9TBs&list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR&index=22&t=366s

	private final TileEntityAltar tileentity;

	public ContainerAltar(InventoryPlayer player, TileEntityAltar tileentity) {
		this.tileentity = tileentity;

		System.out.println("Constructing ContainerAltar");

		this.addSlotToContainer(new Slot(tileentity, 0, 305, 185));
		this.addSlotToContainer(new Slot(tileentity, 1, 327, 185));
		this.addSlotToContainer(new Slot(tileentity, 2, 305, 208));
		this.addSlotToContainer(new Slot(tileentity, 3, 327, 208));

		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 addListener(IContainerListener listener) {
		super.addListener(listener);
		listener.sendAllWindowProperties(this, this.tileentity);
	}

	@Override
	public void detectAndSendChanges() {
		// TODO Auto-generated method stub
		super.detectAndSendChanges();
	}

	@Override
	public boolean canInteractWith(EntityPlayer playerIn) {
		return this.tileentity.isUsableByPlayer(playerIn);
	}

	@Override
	public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
		return super.transferStackInSlot(playerIn, index);
	}

}

 

Spoiler

GuiAltar


package com.magiksmostevile.guis;

import com.magiksmostevile.Main;
import com.magiksmostevile.tileentity.TileEntityAltar;
import com.magiksmostevile.tileentity.container.ContainerAltar;

import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.util.ResourceLocation;

public class GuiAltar extends GuiContainer {

	private static final ResourceLocation TEXTURES = new ResourceLocation(Main.MODID, "textures/gui/altar/gui_altar.png");
	private final InventoryPlayer player;
	private final TileEntityAltar tileentity;

	public GuiAltar(InventoryPlayer player, TileEntityAltar tileentity) {
		super(new ContainerAltar(player, tileentity));
		this.player = player;
		this.tileentity = tileentity;
		System.out.println("path to textures" + TEXTURES.getResourcePath());
		System.out.println("path to textures" + TEXTURES.getResourceDomain());
	}

	@Override
	protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
		System.out.println("Drawing gui bg");
		GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
		this.mc.getTextureManager().bindTexture(TEXTURES);
		this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
	}

	@Override
	protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
		System.out.println("Drawing gui fg");
		String tileName = this.tileentity.getDisplayName().getUnformattedText();
		this.fontRenderer.drawString(tileName, (this.xSize / 2 - this.fontRenderer.getStringWidth(tileName) / 2) + 3, 115, 4210752);
		this.fontRenderer.drawString(this.player.getDisplayName().getUnformattedText(), 295, this.ySize - 96 + 2, 4210752);
	}

}

// https://www.minecraftforge.net/forum/topic/38014-19-solved-gui-doesnt-open-on-right-click/

 

Spoiler

GuiHandler


package com.magiksmostevile.handler;

import com.magiksmostevile.guis.GuiAltar;
import com.magiksmostevile.tileentity.TileEntityAltar;
import com.magiksmostevile.tileentity.container.ContainerAltar;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;

public class GuiHandler implements IGuiHandler {

	/*
	@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		if (ID == Main.GUI_ALTAR)
			return new ContainerAltar(player.inventory, (TileEntityAltar) world.getTileEntity(new BlockPos(x, y, z)));
		return null;
	}

	@Override
	public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		if (ID == Main.GUI_ALTAR)
			return new GuiAltar(player.inventory, (TileEntityAltar) world.getTileEntity(new BlockPos(x, y, z)));
		return null;
	}
	*/

	@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {

		BlockPos xyz = new BlockPos(x, y, z);
		TileEntity tileEntity = world.getTileEntity(xyz);
		if(tileEntity instanceof TileEntityAltar) {
			TileEntityAltar tileEntityAltar = (TileEntityAltar)tileEntity;
			return new ContainerAltar(player.inventory, tileEntityAltar);
		}
		return null;
	}

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

		BlockPos xyz = new BlockPos(x, y, z);
		TileEntity tileEntity = world.getTileEntity(xyz);
		if(tileEntity instanceof TileEntityAltar) {
			TileEntityAltar tileEntityAltar = (TileEntityAltar)tileEntity;
			return new GuiAltar(player.inventory, tileEntityAltar);
		}
		return null;
	}
	
}

 

Spoiler

Main


package com.magiksmostevile;

import com.magiksmostevile.entity.EntityVampireBat;
import com.magiksmostevile.entity.render.RenderVampireBat;
import com.magiksmostevile.handler.RegistryHandler;
import com.magiksmostevile.init.EntityInit;
import com.magiksmostevile.proxy.CommonProxy;

import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.relauncher.Side;

@Mod(modid = Main.MODID, name = Main.NAME, version = Main.VERSION)

public class Main {
	public static final String MODID = "magiksmostevile";
	public static final String VERSION = "1.0";
	public static final String NAME = "MagiksMostEvile";
	public static final String ACCEPTED_VERSIONS = "{1.12.2}";
	public static final String CLIENT_PROXY_CLASS = "com.magiksmostevile.proxy.ClientProxy";
	public static final String COMMON_PROXY_CLASS = "com.magiksmostevile.proxy.CommonProxy";

	public static final int ENTITY_VAMPIRE_BAT = 6750;

	public static final int GUI_ALTAR = 1;

	public static Item amethyst;
	public static Block amethystOre;

	@Mod.Instance("main")
	public static Main instance;

	@SidedProxy(clientSide = CLIENT_PROXY_CLASS, serverSide = COMMON_PROXY_CLASS)
	public static CommonProxy proxy;

	@Mod.EventHandler
	public void preInit(FMLPreInitializationEvent event) {
		if (event.getSide() == Side.CLIENT) {
			System.out.println("preInit: Client");
			RenderingRegistry.registerEntityRenderingHandler(EntityVampireBat.class, RenderVampireBat::new);
			RegistryHandler.otherRegistries();
		}

	}

	@EventHandler
	public void init(FMLInitializationEvent event) {

	}

	@EventHandler
	public void load(FMLInitializationEvent event) {

	}

	@Mod.EventHandler
	public void postInit(FMLPostInitializationEvent event) {

	}

}

 

Hello all! I'm trying to open a gui when I right click on a block (Altar), but although my logging code says the opening code is running, the gui doesn't appear. I don't know what the problem is, but I think it's just not opening (rather than just not rendering) as the game doesn't make me press Esc before I can move again. 

The GUI textures are located in magiksmostevile:textures/gui/altar/altar_gui.png and the texture is attached. As in the image, it should have four basic slots in the four areas to the right, and when I can actually see the gui I will add a scrolling menu on the left.

I have used the following resources to help:

Primarily: https://www.youtube.com/playlist?list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR -- specifically the 5/6 tutorials on the Sintering Furnace

Also: https://www.youtube.com/watch?v=MHgS0GTNqq0&t=229s just for another potential way to open a gui

And: http://jabelarminecraft.blogspot.com/p/minecraft-modding-containers.html

As well as the minecraft source for the Enchantment Table, Furnace, Anvil, Villagers, Chest and this forum post.

 

So after all that, I still don't know the problem. I know there's gotta be something I'm missing, so any help from anyone who knows how to open a gui would be much appreciated!

 

Ps Sorry for the data-dump of code, but I figured it would be better to provide people with hopefully everything they need, rather than having to add more later.

 

 

gui_altar.png

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

5 hours ago, GenElectrovise said:

implements ITileEntityProvider

Dont use this. 

5 hours ago, GenElectrovise said:

BlockBase

BlockBase serves no purpose. You probably have something like "registerModels" in here. You could easily switch this to Block and be capable of extending any Block class.

5 hours ago, GenElectrovise said:

createNewTileEntity

You're using the wrong create method. Use the one with an IBlockState parameter.

 

5 hours ago, GenElectrovise said:

openAltarGui

Remove this method it is useless.

5 hours ago, GenElectrovise said:

implements ITickable, IInventory

Do not implement IInventory. Instead use the IItemHandler Capability. It's way easier to use and is the compatible option to use with other mods. No mods expect your TE to use IInventory anymore and stuff like pipes/machines/etc. Do not support it.

5 hours ago, GenElectrovise said:

this.world = this.getWorld();

This is literally the same as

this.world = this.world;

It serves no purpose. The load method is called after the TileEntity has been added to the world and has had its world field initialized. You dont need this function unless you have important stuff to do when the TileEntity is first created and placed or when the chunk gets loaded.

5 hours ago, GenElectrovise said:

IInteractionObject

There is no point to this if you dont use it anywhere.

 

Fix all this and your code will be better and easier to understand. Your error should also go away.

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.

Link to comment
Share on other sites

Ok shall make those changes, @Animefan8888. Will post results once done! (will likely be in a few hours) Thanks for the response!

 

Also, for @loordgek, any particular reason for

14 hours ago, loordgek said:

dont watch Harry Talks

 

I see that some of his choices aren't the best, but anything else specific?

Edited by GenElectrovise
Added clarification

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

6 hours ago, GenElectrovise said:

I see that some of his choices aren't the best, but anything else specific?

His code (and coding practice) is such garbage it needs to be taken out back, shot, set on fire, and buried, never to be seen again. As in, almost everything he does is wrong in some way. And sure "it works for him" but everyone who watches his crap shows up here with the same garbage code, we've enshrined several of the problems created by him in the Common Issues thread.

 

Problematic Code #4, #5, #14

Code Style #1, #2, #3, #4

Edited by Draco18s
  • Haha 1

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

 

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

 

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

Link to comment
Share on other sites

Question: How does the container (ContainerAltar) work when using IItemHandler ? Is it still necessary, because I'm getting a lot of errors from when I previously tried to add slots.

this.addSlotToContainer(new Slot(tileentity, 0, 305, 185));

Soooooo I'm guessing that's a IInventory thing. Does this have an equivalent with IItemHandler and Capabilities ? Do I even still need the container?

 

The Altar will have an inventory (of 4 slots), so therefore it needs to persist the data, right? So that means that TileEntityAltar should implement ICapabilitySerializable<T extends NBTBase> ? The 

 

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

2 hours ago, Draco18s said:

His code (and coding practice) is such garbage it needs to be taken out back, shot, set on fire, and buried, never to be seen again. As in, almost everything he does is wrong in some way. And sure "it works for him" but everyone who watches his crap shows up here with the same garbage code, we've enshrined several of the problems created by him in the Common Issues thread.

 

Problematic Code #4, #5, #14

Code Style #1, #2, #3, #4

Right. Ok. That's the explanation I needed.

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

4 minutes ago, GenElectrovise said:

Question: How does the container (ContainerAltar) work when using IItemHandler ? Is it still necessary, because I'm getting a lot of errors from when I previously tried to add slots.


this.addSlotToContainer(new Slot(tileentity, 0, 305, 185));

Soooooo I'm guessing that's a IInventory thing. Does this have an equivalent with IItemHandler and Capabilities ?

SlotItemHandler.

 

You can select a class name and either "search for all references" or "open type hierarchy" to get an idea of what alternatives exist or how something's used.

 

4 minutes ago, GenElectrovise said:

Do I even still need the container?

Yes

 

4 minutes ago, GenElectrovise said:

The Altar will have an inventory (of 4 slots), so therefore it needs to persist the data, right? So that means that TileEntityAltar should implement ICapabilitySerializable<T extends NBTBase> ? The 

No, TileEntity already implements that.

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

 

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

 

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

Link to comment
Share on other sites

Spoiler

[20:06:25] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.event.AttachCapabilitiesEvent@5c44a1bf:
java.lang.StackOverflowError: null
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_201]
    at java.io.FilePermission.init(FilePermission.java:203) ~[?:1.8.0_201]
    at java.io.FilePermission.<init>(FilePermission.java:277) ~[?:1.8.0_201]
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888) ~[?:1.8.0_201]
    at java.io.File.exists(File.java:814) ~[?:1.8.0_201]
    at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:434) ~[?:1.8.0_201]
    at java.io.File.getCanonicalPath(File.java:618) ~[?:1.8.0_201]
    at java.io.FilePermission$1.run(FilePermission.java:215) ~[?:1.8.0_201]
    at java.io.FilePermission$1.run(FilePermission.java:203) ~[?:1.8.0_201]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_201]
    at java.io.FilePermission.init(FilePermission.java:203) ~[?:1.8.0_201]
    at java.io.FilePermission.<init>(FilePermission.java:277) ~[?:1.8.0_201]
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888) ~[?:1.8.0_201]
    at java.io.File.exists(File.java:814) ~[?:1.8.0_201]
    at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1334) ~[?:1.8.0_201]
    at sun.misc.URLClassPath.getResource(URLClassPath.java:249) ~[?:1.8.0_201]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[?:1.8.0_201]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_201]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_201]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_201]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_201]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[?:1.8.0_201]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_201]
    at org.apache.logging.log4j.core.impl.MutableLogEvent.getThrownProxy(MutableLogEvent.java:338) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:61) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:38) ~[log4j-core-2.8.1.jar:2.8.1]
    at net.minecraftforge.server.terminalconsole.HighlightErrorConverter.format(HighlightErrorConverter.java:100) ~[forgeSrc-1.12.2-14.23.5.2768.jar:?]
    at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:38) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.layout.PatternLayout$PatternSelectorSerializer.toSerializable(PatternLayout.java:455) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.layout.PatternLayout$PatternSelectorSerializer.toSerializable(PatternLayout.java:444) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:208) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:57) ~[log4j-core-2.8.1.jar:2.8.1]
    at net.minecraftforge.server.terminalconsole.TerminalConsoleAppender.append(TerminalConsoleAppender.java:320) ~[forgeSrc-1.12.2-14.23.5.2768.jar:?]
    at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:448) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:433) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:403) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146) ~[log4j-core-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2091) ~[log4j-api-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2011) ~[log4j-api-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1884) ~[log4j-api-2.8.1.jar:2.8.1]
    at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:854) ~[log4j-api-2.8.1.jar:2.8.1]
    at net.minecraftforge.fml.common.eventhandler.EventBus.handleException(EventBus.java:203) ~[EventBus.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:187) ~[EventBus.class:?]
    at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:668) ~[ForgeEventFactory.class:?]
    at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:632) ~[ForgeEventFactory.class:?]
    at net.minecraft.tileentity.TileEntity.<init>(TileEntity.java:508) ~[TileEntity.class:?]
    at com.magiksmostevile.tileentity.TileEntityAltar.<init>(TileEntityAltar.java:42) ~[TileEntityAltar.class:?]
    at com.magiksmostevile.handler.RegistryHandler.registerGuiRelations(RegistryHandler.java:41) ~[RegistryHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_8_RegistryHandler_registerGuiRelations_AttachCapabilitiesEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
    at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:668) ~[ForgeEventFactory.class:?]
    at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:632) ~[ForgeEventFactory.class:?]
    at net.minecraft.tileentity.TileEntity.<init>(TileEntity.java:508) ~[TileEntity.class:?]
    at com.magiksmostevile.tileentity.TileEntityAltar.<init>(TileEntityAltar.java:42) ~[TileEntityAltar.class:?]
    at com.magiksmostevile.handler.RegistryHandler.registerGuiRelations(RegistryHandler.java:41) ~[RegistryHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_8_RegistryHandler_registerGuiRelations_AttachCapabilitiesEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
    at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:668) ~[ForgeEventFactory.class:?]
    at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:632) ~[ForgeEventFactory.class:?]
    at net.minecraft.tileentity.TileEntity.<init>(TileEntity.java:508) ~[TileEntity.class:?]
    at com.magiksmostevile.tileentity.TileEntityAltar.<init>(TileEntityAltar.java:42) ~[TileEntityAltar.class:?]
    at com.magiksmostevile.handler.RegistryHandler.registerGuiRelations(RegistryHandler.java:41) ~[RegistryHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_8_RegistryHandler_registerGuiRelations_AttachCapabilitiesEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Ok, so now I'm getting a loop when the game tries to register the tile entity and its capabilities, which is resulting in a StackOverFlowException. (The loop occurs between the area marked with + in the stacktrace). I think it's because when I try to register the capabilities, I do this:

@SubscribeEvent
	public static void registerGuiRelations(AttachCapabilitiesEvent<TileEntity> event) {
		event.addCapability(new ResourceLocation(Main.MODID + ":capabilites_altar"), new TileEntityAltar());
	}

I create a new TileEntityAltar which then calls its superconstructor which goes to line 508 in the TileEntity constructor:

private net.minecraftforge.common.capabilities.CapabilityDispatcher capabilities;
    public TileEntity()
    {
        capabilities = net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(this);
    }

Which causes forge to do.... something:

@Nullable
    public static CapabilityDispatcher gatherCapabilities(TileEntity tileEntity)
    {
        return gatherCapabilities(new AttachCapabilitiesEvent<TileEntity>(TileEntity.class, tileEntity), null);
    }

 

 

So how should I be registering the capabilities? -- it's pretty evident I'm doing this wrong!

 

 

Also, my updated code from @Animefan8888's post:

 

TileEntityAltar, ContainerAltar, registering capabilities, registering TileEntities

Spoiler

package com.magiksmostevile.tileentity;

import com.magiksmostevile.EvileLog;
import com.magiksmostevile.EvileLog.EnumLogLevel;

import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTBase;
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.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.common.capabilities.CapabilityInject;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemStackHandler;

public class TileEntityAltar extends TileEntity implements ITickable, IItemHandler {

	public static Capability<IItemHandler> ITEM_HANDLER_CAPABILITY = CapabilityItemHandler.ITEM_HANDLER_CAPABILITY;

	private final IItemHandler inventory = new ItemStackHandler(4) {
		@Override
		protected void onContentsChanged(int slot) {
			super.onContentsChanged(slot);
			markDirty();
		}
	};

	private String customName;

	public TileEntityAltar() {
		super();
		System.out.println("Capability ITEM_HANDLER for Altar : " + this.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null));
		EvileLog.logText(true, EnumLogLevel.INFO, "Constructing altar tile entity");
	}

	@Override
	public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
		System.out.println("Checking ITEM_HANDLER_CAPABILIITY");
		if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
			return true;
		}
		System.out.println("Does not have ITEM_HANDLER_CAPABILIITY");
		return super.hasCapability(capability, facing);
	}

	@Override
	public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
		System.out.println("Getting ITEM_HANDLER_CAPABILIITY");
		if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
			return (T) inventory;
		}
		System.out.println("Cannot get ITEM_HANDLER_CAPABILIITY");
		return super.getCapability(capability, facing);
	}

	public String getName() {
		return this.hasCustomName() ? this.customName : "container.altar";
	}

	public boolean hasCustomName() {
		return this.customName != null && !this.customName.isEmpty();
	}

	private void setCustomName(String customNameIn) {
		this.customName = customNameIn;
	}

	public ITextComponent getDisplayName() {
		return this.hasCustomName() ? new TextComponentString(this.getName()) : new TextComponentTranslation(this.getName());
	}

	@Override
	public void readFromNBT(NBTTagCompound compound) {

	}

	@Override
	public NBTTagCompound writeToNBT(NBTTagCompound compound) {
		return compound;
	}

	@Override
	public void onLoad() {

	}

	@Override
	public void update() {

	}

	@Override
	public ItemStack getStackInSlot(int slot) {
		return (ItemStack) this.inventory.getStackInSlot(slot);
	}

	public String getGuiID() {
		return "magiksmostevile:gui_altar";
	}

	@Override
	public int getSlots() {
		return 4;
	}

	@Override
	public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
		return null;
	}

	@Override
	public ItemStack extractItem(int slot, int amount, boolean simulate) {
		return null;
	}

	@Override
	public int getSlotLimit(int slot) {
		return 64;
	}

}

 

Spoiler

package com.magiksmostevile.tileentity.container;

import com.magiksmostevile.tileentity.TileEntityAltar;

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.items.SlotItemHandler;

public class ContainerAltar extends Container { // https://www.youtube.com/watch?v=rARVLYm9TBs&list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR&index=22&t=366s

	private final TileEntityAltar tileentity;

	public ContainerAltar(InventoryPlayer player, TileEntityAltar tileentity) {

		this.tileentity = tileentity;

		System.out.println("Constructing ContainerAltar");

		this.addSlotToContainer(new SlotItemHandler(tileentity, 0, 305, 185));
		this.addSlotToContainer(new SlotItemHandler(tileentity, 1, 327, 185));
		this.addSlotToContainer(new SlotItemHandler(tileentity, 2, 305, 208));
		this.addSlotToContainer(new SlotItemHandler(tileentity, 3, 327, 208));

		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();
	}

	@Override
	public boolean canInteractWith(EntityPlayer playerIn) {
		return this.tileentity.getDistanceSq(playerIn.getPosition().getX(), playerIn.getPosition().getY(), playerIn.getPosition().getZ()) < 3;
	}

	@Override
	public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
		return super.transferStackInSlot(playerIn, index);
	}

}

 

Spoiler



	@SubscribeEvent
	public static void registerGuiRelations(AttachCapabilitiesEvent<TileEntity> event) {
		event.addCapability(new ResourceLocation(Main.MODID + ":capabilites_altar"), new TileEntityAltar());
	}

 

Spoiler

		GameRegistry.registerTileEntity(TileEntityAltar.class, new ResourceLocation(Main.MODID, "tile_entity_altar"));

 

Those are the main changes, but I haven't included minor ones like removing my own useless methods.

Thanks!

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

16 minutes ago, GenElectrovise said:

registerGuiRelations(AttachCapabilitiesEvent<TileEntity>

You dont need to use this when it's your TileEntity. Also you wouldn't use new TileEntityAltar here there is a field in the event parameter.

17 minutes ago, GenElectrovise said:

net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(this)

You dont ever have to do this unless you are adding a new object type that has Capabilities.

18 minutes ago, GenElectrovise said:

implements ITickable, IItemHandler

Get rid of IItemHandler here you only need the field in your class.

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.

Link to comment
Share on other sites

Hi again! Sorry for the belated response! I have done the things mentioned above, however, I also noticed that I was only opening the GUI on the server ( !world.isRemote )

Spoiler

@Override
	public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
		try {
			playerIn.sendMessage(new TextComponentString("Altar activated! +++++++++++++++++++++++++++"));
			if (worldIn.isRemote) {
				playerIn.sendMessage(new TextComponentString("World is not remote"));
				playerIn.openGui(Main.instance, Main.GUI_ALTAR, worldIn, pos.getX(), pos.getY(), pos.getZ());
			}
		} catch (Exception e) {
			EvileLog.logText(true, EnumLogLevel.ERROR, "An error has occurred opening the GUI for Altar at : " + pos + " : This is not an intended feature! :/");
			EvileLog.logText(true, EnumLogLevel.ERROR, e.getMessage() == null ? "No message to print!" : e.getMessage());
			e.printStackTrace();
		}

		return true;
	}

 

and as GUIs don't exist as a GUI on the server -- only the GuiContainer I changed that to openGui if world.isRemote (therefore on the client) and now I get a helpful stacktrace!

Spoiler


[17:55:22] [main/INFO] [minecraft/GuiNewChat]: [CHAT] Altar activated! +++++++++++++++++++++++++++
[17:55:22] [main/INFO] [minecraft/GuiNewChat]: [CHAT] World is not remote


[17:55:22] [main/INFO] [STDOUT]: [com.magiksmostevile.EvileLog:logText:23]: EVILE EXCEPTION! THAT'S AN ERROR! : An error has occurred opening the GUI for Altar at : BlockPos{x=238, y=64, z=250} : This is not an intended feature! :/
[17:55:22] [main/INFO] [STDOUT]: [com.magiksmostevile.EvileLog:logText:23]: EVILE EXCEPTION! THAT'S AN ERROR! : No message to print!


[17:55:22] [main/INFO] [STDERR]: [com.magiksmostevile.blocks.AltarBase:onBlockActivated:109]: java.lang.NullPointerException
at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:276)
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:111)
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2809)
at com.magiksmostevile.blocks.AltarBase.onBlockActivated(AltarBase.java:104)
at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClickBlock(PlayerControllerMP.java:455)
at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1693)
at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2380)
at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2146)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1934)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1187)
at net.minecraft.client.Minecraft.run(Minecraft.java:441)
at net.minecraft.client.main.Main.main(Main.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:25)


[17:55:22] [main/INFO] [minecraft/GuiNewChat]: [CHAT] Altar activated! +++++++++++++++++++++++++++

Even if it should still be !world.isRemote which might seem logical as the client should be getting its prompts from the server, this should still be useful (right?) as it's exposed an error which was unknown and failing silently before.

 

======

 

Oh also

On 10/27/2019 at 8:49 PM, Animefan8888 said:

net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(this)

wasn't me calling it specifically, it was being called from TileEntity.java when I construct my TileEntityAltar and called its super constructor.

 

Again sorry for taking so long and thanks for all the assistance so far!

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

Also for easier reviewing for future I'm going to make a github repo for this. Also means I'll have a backup! 

How to ask a good coding question: https://stackoverflow.com/help/how-to-ask

Give logs, code, desired effects, and actual effects. Be thorough or we can't help you. Don't post code without putting it in a code block (the <> button on the post - select "C-type Language"): syntax highlighting makes everything easier, and it keeps the post tidy.

 

My own mod, Magiks Most Evile: GitHub (https://github.com/GenElectrovise/MagiksMostEvile) Wiki (https://magiksmostevile.fandom.com/wiki/Magiks_Most_Evile_Wiki)

Edit your own signature at https://www.minecraftforge.net/forum/settings/signature/

Link to comment
Share on other sites

55 minutes ago, GenElectrovise said:

however, I also noticed that I was only opening the GUI on the server ( !world.isRemote )

This is the correct way to do this. You tell the server hey open this gui from this mod. The server says ok it creates the server side Container and then sends a packet to the Player(client) and then the client opens the gui and container on that side.

 

55 minutes ago, GenElectrovise said:

wasn't me calling it specifically, it was being called from TileEntity.java when I construct my TileEntityAltar and called its super constructor.

My bad, but you've solved this by getting rid of the AttachCapabilityEvent right?

 

50 minutes ago, GenElectrovise said:

Also for easier reviewing for future I'm going to make a github repo for this. Also means I'll have a backup! 

Nice 

 

55 minutes ago, GenElectrovise said:

and failing silently before.

It might not have been also I failed to notice this on my first glance through your code, but...

 

On 10/26/2019 at 2:02 AM, GenElectrovise said:

@Mod.Instance("main") public static Main instance;

The string in the Instance annotation needs to be your modid.

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.

Link to comment
Share on other sites

Join the conversation

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

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Now it says me "Incompatible Server"  I run Forge 40.2.0 with 38 mods at the same version as the aternos server. https://mclo.gs/oLpLRxH
    • Unfortunatly you can´t allocate more ram on aternos servers
    • I resolved all the conflicts that weren't letting me enter the game, thank you very much. But now another error has appeared, when I enter a world it immediately crashes, here is the log: https://paste.ee/p/AOGUx.
    • every mod is up to date, i need help, here's the log     [19:50:14] [main/INFO]: ModLauncher running: args [--username, HH_Zere, --version, forge-47.2.0, --gameDir, C:\Users\------\curseforge\minecraft\Instances\Single Player (1), --assetsDir, C:\Users\------\curseforge\minecraft\Install\assets, --assetIndex, 5, --uuid, ba5d8ed702394fa9a945f5e5bc8731d2, --accessToken, ????????, --clientId, Yzk2MmQ2NjQtOGZhOS00YjRlLTllMDQtYmUxMmM1NmY3Mzcy, --xuid, 2535439086822918, --userType, msa, --versionType, release, --width, 1920, --height, 1080, --quickPlayPath, C:\Users\------\curseforge\minecraft\Install\quickPlay\java\1709232612667.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.2.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [19:50:14] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.8 by Microsoft; OS Windows 11 arch amd64 version 10.0 [19:50:16] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [19:50:16] [main/INFO]: Trying GL version 4.6 [19:50:16] [main/INFO]: Requested GL version 4.6 got version 4.6 [19:50:16] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Daniel/curseforge/minecraft/Install/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT [19:50:16] [pool-2-thread-1/INFO]: GL info: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 551.61, NVIDIA Corporation [19:50:17] [main/INFO]: Found mod file [1.20.1] SecurityCraft v1.9.8.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file [Forge]ctov-3.4.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file additional_lights-1.20.1-2.1.7.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file AI-Improvements-1.20-0.5.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file AmbientSounds_FORGE_v5.3.9_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file appleskin-forge-mc1.20.1-2.5.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file architectury-9.2.14-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file AttributeFix-Forge-1.20.1-21.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file balm-forge-1.20.1-7.2.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file bellsandwhistles-0.4.3-1.20.x.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Better Falling-forge-1.3.0-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file BetterThirdPerson-Forge-1.20-1.9.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file BiomesOPlenty-1.20.1-18.0.0.592.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Bookshelf-Forge-1.20.1-20.1.9.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file BotanyPots-Forge-1.20.1-13.0.24.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file BotanyPotsOrePlanting-Forge-7.9.0+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file BotanyPotsTiers-Forge-1.20.1-6.0.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file BotanyTrees-Forge-1.20.1-9.0.11.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file botarium-forge-1.20.1-2.3.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file cannibal-1.0.5-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file castle_in_the_sky-1.20.1-0.6.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Chimes-v2.0.1-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file cleanswing-1.20-1.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file cloth-config-11.1.118-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Clumps-forge-1.20.1-12.0.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Cognition-v2.0.3-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file collective-1.20.1-7.36.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file CraftableTotemOfUndying-1.20.1-3.2.1-[FORGE].jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create-1.20.1-0.5.1.f.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create-new-age-forge-1.20.1-1.1.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create_jetpack-forge-4.2.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create_mechanical_spawner-1.20.1-0.0.14.e-22.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create_misc_and_things_ 1.20.1_4.0A.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create_netherless-1.20.1-1.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create_recycle_1.0.2_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file create_sabers-1.20.1-1.3.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file createaddition-1.20.1-1.2.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file createbigcannons-forge-1.20.1-0.5.3.b.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file createdeco-2.0.1-1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file createoreexcavation-1.20-1.4.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file CreativeCore_FORGE_v2.11.24_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Croptopia-1.20.1-FORGE-3.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file curios-forge-5.7.0+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file cyanide-forge-1.20.1-4.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file DarkUtilities-Forge-1.20.1-17.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file design_decor-0.3-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file DiagonalFences-v8.1.3-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file DiagonalWalls-v8.0.2-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file DiagonalWindows-v8.1.3-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file doubledoors-1.20.1-5.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file DripSounds-1.19.4-0.3.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Durability101-forge-1.20-0.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file dynamiccrosshair-7.4.4+1.20-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file effortlessbuilding-1.20.1-3.7-all.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file embeddium-0.3.7+mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file EnchantingInfuser-v8.0.2-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file endermanoverhaul-forge-1.20.1-1.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file entityculling-forge-1.6.2-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file EpheroLib-1.20.1-FORGE-1.2.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file extendedgears-2.1.0-1.20.1-0.5.1.c-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file fancymenu_forge_3.1.1_MC_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file fantasyfurniture-1.20.1-9.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file ferritecore-6.0.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file fixexperiencebug-1.20-46.2.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file FlowerPatch-forge-1.20.1-3.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file FlowerSeeds2-1.20.1-1.1.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file FramedBlocks-9.2.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file fusion-1.1.1-forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file geckolib-forge-1.20.1-4.4.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file giacomos_exp-1.20.1-1.4.6.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file GoldenCrops-1.20.1-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file handcrafted-forge-1.20.1-3.0.6.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file iceandfire-2.1.13-1.20.1-beta-4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file immersive_weathering-1.20.1-2.0.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file infinity_cave-0.4-1.20.1-FORGE.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file interiors-0.5.2+mc1.20.1-FORGE.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file inventorio-1.20-forge-1.9.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file invhud.forge.1.20.1-3.4.18.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file ironchest-1.20.1-14.4.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file ironfurnaces-1.20.1-4.1.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file itemcollectors-1.1.9-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file jei-1.20.1-forge-15.3.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file jumpoverfences-forge-1.20.1-1.3.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file keepmysoiltilled-1.20.1-2.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Kiwi-1.20.1-forge-11.5.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file konkrete_forge_1.8.0_MC_1.20-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file kotlinforforge-4.10.0-all.jar of type LIBRARY with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file lazulib-1.20.1-1.2.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file lithostitched-forge-1.20.1-1.1.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file macawsbridgesbop-1.20-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file macawsroofsbop-1.20-1.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-bridges-2.1.1-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-doors-1.1.0forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-fences-1.1.1-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-furniture-3.2.2-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-paintings-1.0.5-1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-paths-1.0.4forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-roofs-2.3.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-trapdoors-1.1.2-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcw-windows-2.2.1-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mcwfencesbop-1.20-1.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file melody_forge_1.0.3_MC_1.20.1-1.20.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file mining-dimension-forge-1.20.1-1.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file MOAdecor LIGHTS 1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file moonlight-1.20-2.10.10-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file MouseTweaks-forge-mc1.20-2.25.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file nct-1.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file nocube's_create_compact_exp_1.0.3_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file nyfsspiders-forge-1.20.1-2.1.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file oculus-mc1.20.1-1.6.15a.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file PassableFoliage-1.20.1-forge-8.2.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file physics-mod-pro-v167d-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file PigPen-Forge-1.20.1-15.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file pipez-forge-1.20.1-1.2.6.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file player-animation-lib-forge-1.0.2-rc1+1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file polymorph-forge-0.49.2+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file preciseblockplacing-2.0.2+1.19-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file puffish_skills-0.11.3-1.20-forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file PuzzlesLib-v8.1.17-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file rangedwirelessredstone-1.20-4.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file realmrpg_dragon_wyrms_1.0.1_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file realmrpg_fallen_adventurers_1.0.3_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file rechiseled-1.1.5c-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file rechiseledcreate-1.0.2-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file resourcefulconfig-forge-1.20.1-2.1.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file resourcefullib-forge-1.20.1-2.1.23.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Runelic-Forge-1.20.1-18.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file ShoulderSurfing-Forge-1.20.1-2.9.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file shw-forge-1.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file simplylight-1.20.1-1.4.6-build.50.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file sky_lands-0.1.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file SkyVillages-1.0.3-1.19.2-1.20.x-forge-release.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file smoothboot(reloaded)-mc1.20.1-0.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file sophisticatedbackpacks-1.20.1-3.20.1.1012.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file sophisticatedcore-1.20.1-0.6.3.553.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file sound-physics-remastered-forge-1.20.1-1.3.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Steam_Rails-1.5.3+forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file storagedrawers-1.20.1-12.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file supermartijn642configlib-1.1.8-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file supermartijn642corelib-1.1.17-forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file supplementaries-1.20-2.8.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file TerraBlender-forge-1.20.1-3.0.1.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file TheCropReapingMod-1.20.1-2.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file toolleveling-forge-1.20.1-2.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file torchmaster-20.1.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file totw_modded-1.0.2-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file trashcans-1.0.18b-forge-mc1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file treeharvester-1.20.1-8.7.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file vc_gliders-forge-1.1.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file villagesandpillages-forge-mc1.20.1-1.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file VisualWorkbench-v8.0.0-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file waterframes-1.20.1-1.3.1e.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file watermedia-2.0.28.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file WI-Zoom-1.5-MC1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file Xaeros_Minimap_23.9.7_Forge_1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file XaerosWorldMap_1.37.8_Forge_1.20.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsApi-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterDesertTemples-1.20-Forge-3.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterDungeons-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterEndIsland-1.20-Forge-2.0.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterJungleTemples-1.20-Forge-2.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterMineshafts-1.20-Forge-4.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterNetherFortresses-1.20-Forge-2.0.5.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterOceanMonuments-1.20-Forge-3.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterStrongholds-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBetterWitchHuts-1.20-Forge-3.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsBridges-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsExtras-1.20-Forge-4.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/INFO]: Found mod file YungsMenuTweaks-1.20.1-Forge-1.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods} [19:50:17] [main/WARN]: Mod file C:\Users\Daniel\curseforge\minecraft\Install\libraries\net\minecraftforge\fmlcore\1.20.1-47.2.0\fmlcore-1.20.1-47.2.0.jar is missing mods.toml file [19:50:17] [main/WARN]: Mod file C:\Users\Daniel\curseforge\minecraft\Install\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.2.0\javafmllanguage-1.20.1-47.2.0.jar is missing mods.toml file [19:50:17] [main/WARN]: Mod file C:\Users\Daniel\curseforge\minecraft\Install\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.2.0\lowcodelanguage-1.20.1-47.2.0.jar is missing mods.toml file [19:50:17] [main/WARN]: Mod file C:\Users\Daniel\curseforge\minecraft\Install\libraries\net\minecraftforge\mclanguage\1.20.1-47.2.0\mclanguage-1.20.1-47.2.0.jar is missing mods.toml file [19:50:17] [main/INFO]: Found mod file fmlcore-1.20.1-47.2.0.jar of type LIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@70e889e9 [19:50:17] [main/INFO]: Found mod file javafmllanguage-1.20.1-47.2.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@70e889e9 [19:50:17] [main/INFO]: Found mod file lowcodelanguage-1.20.1-47.2.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@70e889e9 [19:50:17] [main/INFO]: Found mod file mclanguage-1.20.1-47.2.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@70e889e9 [19:50:17] [main/INFO]: Found mod file client-1.20.1-20230612.114412-srg.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@70e889e9 [19:50:17] [main/INFO]: Found mod file forge-1.20.1-47.2.0-universal.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@70e889e9 [19:50:17] [main/WARN]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [19:50:17] [main/WARN]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [19:50:17] [main/WARN]: Attempted to select a dependency jar for JarJar which was passed in as source: playeranimator. Using Mod File: C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1)\mods\player-animation-lib-forge-1.0.2-rc1+1.20.jar [19:50:17] [main/INFO]: Found 24 dependencies adding them to mods collection [19:50:17] [main/INFO]: Found mod file caffeine-3.1.8.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file commonality-1.20.1-7.0.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file mixinsquared-forge-0.1.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file Registrate-MC1.20-1.3.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file PalladiumCore-forge-1.20-2.0.0.0-forge.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file spectrelib-forge-0.13.14+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file mclib-20.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file kffmod-4.10.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file flywheel-forge-1.20.1-0.6.10-7.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file bytecodecs-1.0.2.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file ritchiesprojectilelib-1.0.0-369e88d+1.20.1-forge.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file jcpp-1.4.14.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file MixinSquared-0.1.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file mixinextras-forge-0.2.0-beta.8.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file yabn-1.0.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file apexcore-1.20.1-10.0.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file flightlib-forge-2.1.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file yaclx-1.12+1.20.2-forge.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file kfflang-4.10.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file puzzlesaccessapi-forge-8.0.7.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file MixinExtras-0.3.2.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file kfflib-4.10.0.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file diagonalblocks-forge-8.0.4.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/INFO]: Found mod file japng-0.5.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@5df778c3 [19:50:17] [main/ERROR]: Missing or unsupported mandatory dependencies:     Mod ID: 'watermedia', Requested by: 'waterframes', Expected range: '[1.3,1.4]', Actual version: '2.0.28'     Mod ID: 'citadel', Requested by: 'iceandfire', Expected range: '[2.4.1,2.5.99]', Actual version: '[MISSING]' [19:50:20] [main/INFO]: Compatibility level set to JAVA_17 [19:50:21] [main/ERROR]: Mixin config vc_gliders-common.mixins.json does not specify "minVersion" property [19:50:21] [main/ERROR]: Mixin config vc_gliders.mixins.json does not specify "minVersion" property [19:50:21] [main/ERROR]: Mixin config palladiumcore-common.mixins.json does not specify "minVersion" property [19:50:21] [main/ERROR]: Mixin config palladiumcore.mixins.json does not specify "minVersion" property [19:50:21] [main/ERROR]: Mixin config cannibal.mixin.json does not specify "minVersion" property [19:50:21] [main/INFO]: Successfully loaded Mixin Connector [com.sonicether.soundphysics.MixinConnector] [19:50:21] [main/INFO]: Successfully loaded Mixin Connector [de.maxhenkel.miningdimension.mixin.MixinConnector] [19:50:21] [main/INFO]: Launching target 'forgeclient' with arguments [--version, forge-47.2.0, --gameDir, C:\Users\Daniel\curseforge\minecraft\Instances\Single Player (1), --assetsDir, C:\Users\Daniel\curseforge\minecraft\Install\assets, --uuid, ba5d8ed702394fa9a945f5e5bc8731d2, --username, HH_Zere, --assetIndex, 5, --accessToken, ????????, --clientId, Yzk2MmQ2NjQtOGZhOS00YjRlLTllMDQtYmUxMmM1NmY3Mzcy, --xuid, 2535439086822918, --userType, msa, --versionType, release, --width, 1920, --height, 1080, --quickPlayPath, C:\Users\Daniel\curseforge\minecraft\Install\quickPlay\java\1709232612667.json] [19:50:21] [main/WARN]: Reference map 'createdeco-common-refmap.json' for createdeco-common.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'createdeco-forge-refmap.json' for createdeco.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/INFO]: Loaded configuration file for Embeddium: 44 options available, 0 override(s) found [19:50:21] [main/INFO]: Searching for graphics cards... [19:50:21] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=NVIDIA, name=NVIDIA GeForce RTX 2080 Ti, version=DriverVersion=31.0.15.5161] [19:50:21] [main/WARN]: Sodium has applied one or more workarounds to prevent crashes or other issues on your system: [NVIDIA_THREADED_OPTIMIZATIONS] [19:50:21] [main/WARN]: This is not necessarily an issue, but it may result in certain features or optimizations being disabled. You can sometimes fix these issues by upgrading your graphics driver. [19:50:21] [main/WARN]: Reference map 'handcrafted-forge-1.20.1-forge-refmap.json' for handcrafted.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'yungsextras.refmap.json' for yungsextras.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'yungsextras.refmap.json' for yungsextras_forge.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'EpheroLib-refmap.json' for epherolib.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'tfmg.refmap.json' for design_decor.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'vc_gliders-forge-refmap.json' for vc_gliders.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/INFO]: Loading 2 mods:     - forge 47.2.0     - minecraft 1.20.1 [19:50:21] [main/WARN]: Reference map 'ritchiesprojectilelib-forge-refmap.json' for ritchiesprojectilelib-forge.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'create_mechanical_spawner.refmap.json' for create_mechanical_spawner.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:21] [main/WARN]: Reference map 'apexcore.refmap.json' for apexcore.mixins.json could not be read. If this is a development environment you can ignore this message [19:50:22] [main/WARN]: Error loading class: net/raphimc/immediatelyfast/feature/map_atlas_generation/MapAtlasTexture (java.lang.ClassNotFoundException: net.raphimc.immediatelyfast.feature.map_atlas_generation.MapAtlasTexture) [19:50:22] [main/WARN]: Error loading class: net/optifine/shaders/Shaders (java.lang.ClassNotFoundException: net.optifine.shaders.Shaders) [19:50:22] [main/WARN]: Error loading class: net/optifine/shaders/ShadersCompatibility (java.lang.ClassNotFoundException: net.optifine.shaders.ShadersCompatibility) [19:50:22] [main/WARN]: Error loading class: net/optifine/shaders/Programs (java.lang.ClassNotFoundException: net.optifine.shaders.Programs) [19:50:22] [main/WARN]: Error loading class: org/valkyrienskies/core/impl/game/ships/ShipObjectClient (java.lang.ClassNotFoundException: org.valkyrienskies.core.impl.game.ships.ShipObjectClient) [19:50:22] [main/WARN]: Error loading class: net/optifine/util/BlockUtils (java.lang.ClassNotFoundException: net.optifine.util.BlockUtils) [19:50:22] [main/WARN]: Error loading class: ca/spottedleaf/starlight/common/light/StarLightEngine (java.lang.ClassNotFoundException: ca.spottedleaf.starlight.common.light.StarLightEngine) [19:50:22] [main/WARN]: Error loading class: link/infra/indium/renderer/render/TerrainRenderContext (java.lang.ClassNotFoundException: link.infra.indium.renderer.render.TerrainRenderContext) [19:50:22] [main/WARN]: Error loading class: net/optifine/shaders/ShadersRender (java.lang.ClassNotFoundException: net.optifine.shaders.ShadersRender) [19:50:22] [main/WARN]: @Mixin target net.optifine.shaders.ShadersRender was not found shouldersurfing.mixins.json:MixinShadersRender [19:50:22] [main/WARN]: Error loading class: me/cominixo/betterf3/modules/TargetModule (java.lang.ClassNotFoundException: me.cominixo.betterf3.modules.TargetModule) [19:50:22] [main/WARN]: @Mixin target me.cominixo.betterf3.modules.TargetModule was not found securitycraft.mixins.json:f3.BetterF3TargetModuleMixin [19:50:22] [main/WARN]: Error loading class: de/maxhenkel/voicechat/plugins/impl/audiochannel/EntityAudioChannelImpl (java.lang.ClassNotFoundException: de.maxhenkel.voicechat.plugins.impl.audiochannel.EntityAudioChannelImpl) [19:50:22] [main/WARN]: @Mixin target de.maxhenkel.voicechat.plugins.impl.audiochannel.EntityAudioChannelImpl was not found railways-common.mixins.json:compat.voicechat.EntityAudioChannelImplMixin [19:50:22] [main/WARN]: Error loading class: de/maxhenkel/voicechat/voice/server/Server (java.lang.ClassNotFoundException: de.maxhenkel.voicechat.voice.server.Server) [19:50:22] [main/WARN]: @Mixin target de.maxhenkel.voicechat.voice.server.Server was not found railways-common.mixins.json:compat.voicechat.ServerMixin [19:50:22] [main/WARN]: Error loading class: de/maxhenkel/voicechat/voice/server/ServerWorldUtils (java.lang.ClassNotFoundException: de.maxhenkel.voicechat.voice.server.ServerWorldUtils) [19:50:22] [main/WARN]: @Mixin target de.maxhenkel.voicechat.voice.server.ServerWorldUtils was not found railways-common.mixins.json:compat.voicechat.ServerWorldUtilsMixin [19:50:22] [main/WARN]: Error loading class: de/maxhenkel/voicechat/integration/freecam/FreecamUtil (java.lang.ClassNotFoundException: de.maxhenkel.voicechat.integration.freecam.FreecamUtil) [19:50:22] [main/WARN]: @Mixin target de.maxhenkel.voicechat.integration.freecam.FreecamUtil was not found railways-common.mixins.json:compat.voicechat.FreecamUtilMixin [19:50:22] [main/ERROR]: Could not find embeddium mod, there is likely a dependency error. Skipping mixin application. [19:50:23] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.3.2). [19:50:23] [main/INFO]: Smooth Boot (Reloaded) config initialized [19:50:26] [pool-4-thread-1/WARN]: @Redirect conflict. Skipping securitycraft.mixins.json:camera.ServerPlayerMixin->@Redirect::securitycraft$tick(Lnet/minecraft/server/level/ServerPlayer;DDDFF)V with priority 1100, already redirected by railways-common.mixins.json:conductor_possession.ServerPlayerMixin->@Redirect::snr$securitycraft$tick(Lnet/minecraft/server/level/ServerPlayer;DDDFF)V with priority 1200
  • Topics

×
×
  • Create New...

Important Information

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