Jump to content

Recommended Posts

Posted

Hello everyone, i'm new in minecraft modding and i write mod where i need custom player inventory. Because of this i follow next tutorial https://github.com/coolAlias/Forge_Tutorials/blob/master/CustomPlayerInventory.java(thanks alot this guy for make this tutorial) and updating it to match my minecraft version and forge version(forge-1.10.2-12.18.1.2011-mdk). Of course everything can't be easy and i got this error when i press my custom key...

[spoiler=Error log]

[09:03:04] [server thread/INFO]: Saving and pausing game...
[09:03:04] [server thread/INFO]: Saving chunks for level 'New World'/Overworld
[09:03:04] [server thread/INFO]: Saving chunks for level 'New World'/Nether
[09:03:04] [server thread/INFO]: Saving chunks for level 'New World'/The End
[09:03:06] [server thread/INFO] [sTDOUT]: [fdsatrew.network.handlers.PlayerInventoryPacketHandler$1:run:21]: Received gui packet with id 0 from Player297
[09:03:06] [server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to fdsatrew.capability.api.IPlayerCapability
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_102]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_102]
at net.minecraft.util.Util.runTask(Util.java:26) [util.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156) [integratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]
Caused by: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to fdsatrew.capability.api.IPlayerCapability
at fdsatrew.GuiHandler.getServerGuiElement(GuiHandler.java:20) ~[GuiHandler.class:?]
at net.minecraftforge.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:251) ~[NetworkRegistry.class:?]
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:87) ~[FMLNetworkHandler.class:?]
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2723) ~[EntityPlayer.class:?]
at fdsatrew.network.handlers.PlayerInventoryPacketHandler$1.run(PlayerInventoryPacketHandler.java:22) ~[PlayerInventoryPacketHandler$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_102]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_102]
at net.minecraft.util.Util.runTask(Util.java:25) ~[util.class:?]
... 5 more

 

 

Here is my code:

[spoiler=Main mod init & attach capability event]

    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
    	MinecraftForge.EVENT_BUS.register(this);
        proxy.preInit(event);
        NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
        network = NetworkRegistry.INSTANCE.newSimpleChannel("fdsatrew");
    	network.registerMessage(PlayerInventoryPacketHandler.class, PlayerInventoryPacket.class, 0, Side.SERVER);
    }

    @SubscribeEvent
public void AttachCapability(AttachCapabilitiesEvent.Entity e)
{
	if(!e.getEntity().hasCapability(PlayerProvider.PLAYER_CAPABILITY, null) && e.getEntity() instanceof EntityPlayer)
		e.addCapability(Capabilities.PLAYER_CAPABILITY_ID, new PlayerProvider());
}

 

[spoiler=Client & Server Proxy]

public class CommonProxy {
    public void preInit(FMLPreInitializationEvent e) {
        Blocks.init();
        Items.init();
        Capabilities.init();
    }

    public void init(FMLInitializationEvent e) {

    }

    public void postInit(FMLPostInitializationEvent e) {

    }
}

public class ClientProxy extends CommonProxy {

@Override
    public void preInit(FMLPreInitializationEvent e) {
        super.preInit(e);
        Render.init();
    	MinecraftForge.EVENT_BUS.register(new KeyHandler());
    }
}
public class ServerProxy extends CommonProxy {

}

 

[spoiler=Key Handler]

public class KeyHandler {

public static KeyBinding openInventoryKey = new KeyBinding("fdsatrew.key.inventory", Keyboard.KEY_H, "key.categories.fdsatrew");

public KeyHandler()
{
	ClientRegistry.registerKeyBinding(openInventoryKey);
}	

    @SubscribeEvent
    public void onKey(KeyInputEvent evt) {
        if (openInventoryKey.isPressed()) {
            Main.network.sendToServer(new PlayerInventoryPacket(Main.GUI_CUSTOM_INV));
        }
    }
}

 

[spoiler=Gui Handler]

public class GuiHandler implements IGuiHandler {

private static int guiIndex = 0;
public static final int guiCustomInv = guiIndex++;

@Override
public Object getServerGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z)
{
	if(player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)) {
		IPlayerCapability playerCapability = player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null);
		if (guiId == guiCustomInv) {
			returnpackage fdsatrew;

import fdsatrew.capability.PlayerProvider;
import fdsatrew.capability.api.IPlayerCapability;
import fdsatrew.player.gui.GuiCustomPlayerInventory;
import fdsatrew.player.inventory.ContainerCustomPlayer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;

public class GuiHandler implements IGuiHandler {

@Override
public Object getServerGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)) {
		IPlayerCapability playerCapability = player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null);
		if (guiId == Main.GUI_CUSTOM_INV) {
			return new ContainerCustomPlayer(player, player.inventory, playerCapability.inventory);
		} else {
			return null;
		}
	}
	return null;
}

@Override
public Object getClientGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)) {
		IPlayerCapability playerCapability = player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null);
		if (guiId == Main.GUI_CUSTOM_INV) {
			return new GuiCustomPlayerInventory(player, player.inventory, playerCapability.inventory);
		} else {
			return null;
		}
	}
	return null;
}
}

 

[spoiler=Capability register?]

public class Capabilities {

public static ResourceLocation PLAYER_CAPABILITY_ID = new ResourceLocation(Main.MODID, "IPlayerCapability");

public static void init() {
	CapabilityManager.INSTANCE.register(IPlayerCapability.class, PlayerCapability.PlayerStorage.playerStorage, PlayerCapability.class);
}
}

 

[spoiler=Capability code itself]

public class PlayerCapability implements IPlayerCapability {

public static class PlayerStorage implements IStorage<IPlayerCapability> {

	public static final PlayerStorage playerStorage = new PlayerStorage();
    
	@Override
    public NBTBase writeNBT(Capability<IPlayerCapability> capability, IPlayerCapability instance, EnumFacing side) {
		NBTTagCompound nbt = new NBTTagCompound();
	    NBTTagList list = new NBTTagList();
	    for (int i = 0; i < inventory.getSizeInventory(); ++i) {
	        if (inventory.getStackInSlot(i) != null) {
	            NBTTagCompound stackTag = new NBTTagCompound();
	            stackTag.setByte("Slot", (byte) i);
	            inventory.getStackInSlot(i).writeToNBT(stackTag);
	            list.appendTag(stackTag);
	        }
	    }
	    nbt.setTag("Items", list);
		return nbt;
    }

    @Override
    public void readNBT(Capability<IPlayerCapability> capability, IPlayerCapability instance, EnumFacing side, NBTBase nbt) {
    	NBTTagCompound compound = (NBTTagCompound)nbt;
    	NBTTagList list = compound.getTagList("Items", 10);
	    for (int i = 0; i < list.tagCount(); ++i) {
	        NBTTagCompound stackTag = list.getCompoundTagAt(i);
	        int slot = stackTag.getByte("Slot") & 255;
	        inventory.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(stackTag));
	    }
    }
 }
}
public class PlayerProvider implements ICapabilityProvider, INBTSerializable {

@CapabilityInject(IPlayerCapability.class)
public static final Capability<IPlayerCapability> PLAYER_CAPABILITY = null;

private IPlayerCapability playerCapability = PLAYER_CAPABILITY.getDefaultInstance();

@Override
public NBTBase serializeNBT() {
	return PLAYER_CAPABILITY.getStorage().writeNBT(PLAYER_CAPABILITY, playerCapability, null);
}

@Override
public void deserializeNBT(NBTBase nbt) {
	PLAYER_CAPABILITY.getStorage().readNBT(PLAYER_CAPABILITY, playerCapability, null, nbt);
}

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
	return PLAYER_CAPABILITY != null && capability == PLAYER_CAPABILITY;
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
        if (PLAYER_CAPABILITY != null && capability == PLAYER_CAPABILITY) return (T)PLAYER_CAPABILITY;
        return null;
}
}
public interface IPlayerCapability {

static InventoryCustomPlayer inventory = new InventoryCustomPlayer();

}

 

[spoiler=Packet & handler]

public class PlayerInventoryPacket implements IMessage {
    
public int id;

    public PlayerInventoryPacket() { }

    public PlayerInventoryPacket(int id) {
        this.id = id;
    }

    @Override
    public void fromBytes(ByteBuf buf) {
    	id = ByteBufUtils.readVarInt(buf, 1);
    }

    @Override
    public void toBytes(ByteBuf buf) {
        ByteBufUtils.writeVarInt(buf, id, 1);
    }
}
public class PlayerInventoryPacketHandler implements IMessageHandler<PlayerInventoryPacket, IMessage> {

        @Override
        public IMessage onMessage(final PlayerInventoryPacket message, final MessageContext ctx) {
            IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj; // or Minecraft.getMinecraft() on the client
            mainThread.addScheduledTask(new Runnable() {
                @Override
                public void run() {
                    EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                    System.out.println(String.format("Received gui packet with id %s from %s", message.id, player.getName()));
                    player.openGui(Main.instance, message.id, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
                }
            });
            return null; // no response in this case
        }
}

 

If you could help me with this issue, that would be nice and appreciated.

P.S. I want make multiplayer mod as you can see.

Posted

PlayerCapability cannot be cast to IPlayerCapabilty....

IPlayerCapability is your own class

I remove cast to my class and got same error:

[spoiler=Error]

09:42:26] [server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to fdsatrew.capability.api.IPlayerCapability
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_102]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_102]
at net.minecraft.util.Util.runTask(Util.java:26) [util.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156) [integratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]
Caused by: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to fdsatrew.capability.api.IPlayerCapability
at fdsatrew.GuiHandler.getServerGuiElement(GuiHandler.java:17) ~[GuiHandler.class:?]
at net.minecraftforge.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:251) ~[NetworkRegistry.class:?]
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:87) ~[FMLNetworkHandler.class:?]
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2723) ~[EntityPlayer.class:?]
at fdsatrew.network.handlers.PlayerInventoryPacketHandler$1.run(PlayerInventoryPacketHandler.java:27) ~[PlayerInventoryPacketHandler$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_102]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_102]
at net.minecraft.util.Util.runTask(Util.java:25) ~[util.class:?]
... 5 more

 

[spoiler=Gui Handler]

package fdsatrew;

import fdsatrew.capability.PlayerProvider;
import fdsatrew.player.gui.GuiCustomPlayerInventory;
import fdsatrew.player.inventory.ContainerCustomPlayer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;

public class GuiHandler implements IGuiHandler {

@Override
public Object getServerGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)) {
		if (guiId == Main.GUI_CUSTOM_INV) {
			return new ContainerCustomPlayer(player, player.inventory,
					player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null).inventory);
		} else {
			return null;
		}
	}
	return null;
}

@Override
public Object getClientGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)) {
		if (guiId == Main.GUI_CUSTOM_INV) {
			return new GuiCustomPlayerInventory(player, player.inventory,
					player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null).inventory);
		} else {
			return null;
		}
	}
	return null;
}
}

 

Posted

In your Container and GUi you require IPlayerCapability and it will auto cast to that to try and give it that.

What you mean? I use my capability now just for saving/loading slots in my inventory

[spoiler=Container]

public class ContainerCustomPlayer extends Container
{
/** Avoid magic numbers! This will greatly reduce the chance of you making errors in 'transferStackInSlot' method */
private static final int ARMOR_START = InventoryCustomPlayer.INV_SIZE, ARMOR_END = ARMOR_START+3,
		INV_START = ARMOR_END+1, INV_END = INV_START+26, HOTBAR_START = INV_END+1,
		HOTBAR_END = HOTBAR_START+8;

public ContainerCustomPlayer(EntityPlayer player, InventoryPlayer inventoryPlayer, InventoryCustomPlayer inventoryCustom)
{
	int i;

	// Add CUSTOM slots - we'll just add two for now, both of the same type.
	// Make a new Slot class for each different item type you want to add
	this.addSlotToContainer(new SlotCustom(inventoryCustom, 0, 80, );
	this.addSlotToContainer(new SlotCustom(inventoryCustom, 1, 80, 26));

	// Add ARMOR slots; note you need to make a public version of SlotArmor
	// just copy and paste the vanilla code into a new class and change what you need
	this.addSlotToContainer(new SlotArmor(player, inventoryPlayer, inventoryPlayer.getSizeInventory() - 1, 8, 8, EntityEquipmentSlot.HEAD));
	this.addSlotToContainer(new SlotArmor(player, inventoryPlayer, inventoryPlayer.getSizeInventory() - 2, 8, 26, EntityEquipmentSlot.CHEST));
	this.addSlotToContainer(new SlotArmor(player, inventoryPlayer, inventoryPlayer.getSizeInventory() - 3, 8, 44, EntityEquipmentSlot.LEGS));
	this.addSlotToContainer(new SlotArmor(player, inventoryPlayer, inventoryPlayer.getSizeInventory() - 4, 8, 62, EntityEquipmentSlot.FEET));
	// Add vanilla PLAYER INVENTORY - just copied/pasted from vanilla classes
	for (i = 0; i < 3; ++i)
	{
		for (int j = 0; j < 9; ++j)
		{
			this.addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
		}
	}

	// Add ACTION BAR - just copied/pasted from vanilla classes
	for (i = 0; i < 9; ++i)
	{
		this.addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142));
	}
}

/**
 * This should always return true, since custom inventory can be accessed from anywhere
 */
@Override
public boolean canInteractWith(EntityPlayer player)
{
	return true;
}

int convertEntityEquipmentSlot(EntityEquipmentSlot es) {
	switch(es) {
	case HEAD:
		return 3;
	case CHEST:
		return 2;
	case LEGS:
		return 1;
	case FEET:
		return 0;
	default:
		return 0;
	}
}
/**
 * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.
 * Basically the same as every other container I make, since I define the same constant indices for all of them 
 */
public ItemStack transferStackInSlot(EntityPlayer player, int par2)
{
	ItemStack itemstack = null;
	Slot slot = (Slot) this.inventorySlots.get(par2);

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

		// Either armor slot or custom item slot was clicked
		if (par2 < INV_START)
		{
			// try to place in player inventory / action bar
			if (!this.mergeItemStack(itemstack1, INV_START, HOTBAR_END + 1, true))
			{
				return null;
			}

			slot.onSlotChange(itemstack1, itemstack);
		}
		// Item is in inventory / hotbar, try to place either in custom or armor slots
		else
		{
			// if item is our custom item
			if (itemstack1.getItem() instanceof BaseItem)
			{
				if (!this.mergeItemStack(itemstack1, 0, InventoryCustomPlayer.INV_SIZE, false))
				{
					return null;
				}
			}
			// if item is armor
			else if (itemstack1.getItem() instanceof ItemArmor)
			{
				int type = convertEntityEquipmentSlot(((ItemArmor) itemstack1.getItem()).armorType);
				if (!this.mergeItemStack(itemstack1, ARMOR_START + type, ARMOR_START + type + 1, false))
				{
					return null;
				}
			}
			// item in player's inventory, but not in action bar
			else if (par2 >= INV_START && par2 < HOTBAR_START)
			{
				// place in action bar
				if (!this.mergeItemStack(itemstack1, HOTBAR_START, HOTBAR_START + 1, false))
				{
					return null;
				}
			}
			// item in action bar - place in player inventory
			else if (par2 >= HOTBAR_START && par2 < HOTBAR_END + 1)
			{
				if (!this.mergeItemStack(itemstack1, INV_START, INV_END + 1, false))
				{
					return null;
				}
			}
		}

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

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

		slot.onPickupFromSlot(player, itemstack1);
	}

	return itemstack;
}
}

 

[spoiler=Gui]

public class GuiCustomPlayerInventory extends GuiContainer
{
/** x size of the inventory window in pixels. Defined as float, passed as int */
private float xSize_lo;

/** y size of the inventory window in pixels. Defined as float, passed as int. */
private float ySize_lo;

/** Normally I use '(ModInfo.MOD_ID, "textures/...")', but it can be done this way as well */
private static final ResourceLocation iconLocation = new ResourceLocation("tutorial:textures/gui/custom_inventory.png");

/** Could use IInventory type to be more generic, but this way will save an import... */
private final InventoryCustomPlayer inventory;
    /** The old x position of the mouse pointer */
    private float oldMouseX;
    /** The old y position of the mouse pointer */
    private float oldMouseY;
    public GuiCustomPlayerInventory(EntityPlayer player, InventoryPlayer inventoryPlayer, InventoryCustomPlayer inventoryCustom)
{
	super(new ContainerCustomPlayer(player, inventoryPlayer, inventoryCustom));
	this.inventory = inventoryCustom;
	// if you need the player for something later on, store it in a local variable here as well
}

    /**
     * Draw the foreground layer for the GuiContainer (everything in front of the items)
     */
    protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
    {
        this.fontRendererObj.drawString(I18n.format("container.crafting", new Object[0]), 97, 8, 4210752);
    }

    /**
     * Draws the screen and all the components in it.
     */
    public void drawScreen(int mouseX, int mouseY, float partialTicks)
    {
        super.drawScreen(mouseX, mouseY, partialTicks);
        this.oldMouseX = (float)mouseX;
        this.oldMouseY = (float)mouseY;
    }

    /**
     * Draws the background layer of this container (behind the items).
     */
    protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY)
    {
        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.getTextureManager().bindTexture(INVENTORY_BACKGROUND);
        int i = this.guiLeft;
        int j = this.guiTop;
        this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize);
        drawEntityOnScreen(i + 51, j + 75, 30, (float)(i + 51) - this.oldMouseX, (float)(j + 75 - 50) - this.oldMouseY, this.mc.thePlayer);
    }

    /**
     * Draws an entity on the screen looking toward the cursor.
     */
    public static void drawEntityOnScreen(int posX, int posY, int scale, float mouseX, float mouseY, EntityLivingBase ent)
    {
        GlStateManager.enableColorMaterial();
        GlStateManager.pushMatrix();
        GlStateManager.translate((float)posX, (float)posY, 50.0F);
        GlStateManager.scale((float)(-scale), (float)scale, (float)scale);
        GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
        float f = ent.renderYawOffset;
        float f1 = ent.rotationYaw;
        float f2 = ent.rotationPitch;
        float f3 = ent.prevRotationYawHead;
        float f4 = ent.rotationYawHead;
        GlStateManager.rotate(135.0F, 0.0F, 1.0F, 0.0F);
        RenderHelper.enableStandardItemLighting();
        GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F);
        GlStateManager.rotate(-((float)Math.atan((double)(mouseY / 40.0F))) * 20.0F, 1.0F, 0.0F, 0.0F);
        ent.renderYawOffset = (float)Math.atan((double)(mouseX / 40.0F)) * 20.0F;
        ent.rotationYaw = (float)Math.atan((double)(mouseX / 40.0F)) * 40.0F;
        ent.rotationPitch = -((float)Math.atan((double)(mouseY / 40.0F))) * 20.0F;
        ent.rotationYawHead = ent.rotationYaw;
        ent.prevRotationYawHead = ent.rotationYaw;
        GlStateManager.translate(0.0F, 0.0F, 0.0F);
        RenderManager rendermanager = Minecraft.getMinecraft().getRenderManager();
        rendermanager.setPlayerViewY(180.0F);
        rendermanager.setRenderShadow(false);
        rendermanager.doRenderEntity(ent, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F, false);
        rendermanager.setRenderShadow(true);
        ent.renderYawOffset = f;
        ent.rotationYaw = f1;
        ent.rotationPitch = f2;
        ent.prevRotationYawHead = f3;
        ent.rotationYawHead = f4;
        GlStateManager.popMatrix();
        RenderHelper.disableStandardItemLighting();
        GlStateManager.disableRescaleNormal();
        GlStateManager.setActiveTexture(OpenGlHelper.lightmapTexUnit);
        GlStateManager.disableTexture2D();
        GlStateManager.setActiveTexture(OpenGlHelper.defaultTexUnit);
    }
}

 

[spoiler=Inventory]


public class InventoryCustomPlayer implements IInventory
{
/** The name your custom inventory will display in the GUI, possibly just "Inventory" */
private final String name = "Custom Inventory";

/** The key used to store and retrieve the inventory from NBT */
private final String tagName = "CustomInvTag";

/** Define the inventory size here for easy reference */
// This is also the place to define which slot is which if you have different types,
// for example SLOT_SHIELD = 0, SLOT_AMULET = 1;
public static final int INV_SIZE = 2;

/** Inventory's size must be same as number of slots you add to the Container class */
private ItemStack[] inventory = new ItemStack[iNV_SIZE];

public InventoryCustomPlayer()
{
	// don't need anything here!
}

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

@Override
public ItemStack getStackInSlot(int slot)
{
	return inventory[slot];
}

@Override
public ItemStack decrStackSize(int slot, int amount)
{
	ItemStack stack = getStackInSlot(slot);
	if (stack != null)
	{
		if (stack.stackSize > amount)
		{
			stack = stack.splitStack(amount);
			this.markDirty();
		}
		else
		{
			setInventorySlotContents(slot, null);
		}
	}
	return stack;
}

@Override
public void setInventorySlotContents(int slot, ItemStack itemstack)
{
	if(slot < 0 || slot >= getSizeInventory()) return;
	this.inventory[slot] = itemstack;

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

	this.markDirty();
}

/**
 * Our custom slots are similar to armor - only one item per slot
 */
@Override
public int getInventoryStackLimit()
{
	return 1;
}

@Override
public boolean isUseableByPlayer(EntityPlayer entityplayer)
{
	return true;
}

/**
 * This method doesn't seem to do what it claims to do, as
 * items can still be left-clicked and placed in the inventory
 * even when this returns false
 */
@Override
public boolean isItemValidForSlot(int slot, ItemStack itemstack)
{
	// If you have different kinds of slots, then check them here:
	// if (slot == SLOT_SHIELD && itemstack.getItem() instanceof ItemShield) return true;

	// For now, only ItemUseMana items can be stored in these slots
	return itemstack.getItem() instanceof BaseItem;
}

@Override
public String getName() {
	// TODO Auto-generated method stub
	return name;
}

@Override
public boolean hasCustomName() {
	// TODO Auto-generated method stub
	return name.length() > 0;	
}

@Override
public ITextComponent getDisplayName() {
        return (ITextComponent)(this.hasCustomName() ? new TextComponentString(this.getName()) : new TextComponentTranslation(this.getName(), new Object[0]));
}

@Override
public ItemStack removeStackFromSlot(int index)
    {
        if (inventory[index] != null)
        {
            ItemStack itemstack = inventory[index];
            inventory[index] = null;
            return itemstack;
        }
        else
        {
            return null;
        }
    }

@Override
public void markDirty() {
	for (int i = 0; i < getSizeInventory(); ++i)
	{
		if (getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0) {
			inventory[i] = null;
		}
	}
}

@Override
public void openInventory(EntityPlayer player) {}

@Override
public void closeInventory(EntityPlayer player) {}


@Override
public int getField(int id) {
	return 0;
}

@Override
public void setField(int id, int value) {}

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

@Override
public void clear() {
        for (int i = 0; i < getSizeInventory(); ++i)
        {
        	inventory[i] = null;
        }
}
}

 

P.S. Alot of code here are placeholder until i solve my error

Posted

What is PlayerProvider?

You can see PlayerProvider code at first post under "Capability code itself". I don't know how to name it correct because i see alot of threads here and in other forums when i learn capability system...

Posted

In your GuiHandler do an instanceof check to see if the Capability you are getting is IPlayerCapability one.

[11:15:45] [server thread/INFO] [sTDOUT]: [fdsatrew.GuiHandler:getServerGuiElement:18]: IPlayerCapability false

	@Override
public Object getServerGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null) instanceof IPlayerCapability) {
		System.out.println("IPlayerCapability true");
	} else {
		System.out.println("IPlayerCapability false");
	}
	if (player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)) {
		if (guiId == Main.GUI_CUSTOM_INV) {
			return new ContainerCustomPlayer(player, player.inventory,
					player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null).inventory);
		} else {
			return null;
		}
	}
	return null;
}

I think we found error, but how attach capability correct?

Posted

Mainly

player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)

So you don't have to do stupid isntanceof checks or null checks.  If it does not have the capability, don't try to get it.

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

 

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

 

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

Posted

Mainly

player.hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)

So you don't have to do stupid isntanceof checks or null checks.  If it does not have the capability, don't try to get it.

Ok. I change my code to next, but error keep same because nothing globally changes...

 

public class GuiHandler implements IGuiHandler {

@Override
public Object getServerGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (guiId == Main.GUI_CUSTOM_INV) {
		return new ContainerCustomPlayer(player, player.inventory,
				player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null).inventory);
	} else {
		return null;
	}
}

@Override
public Object getClientGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
	if (guiId == Main.GUI_CUSTOM_INV) {
		return new GuiCustomPlayerInventory(player, player.inventory,
				player.getCapability(PlayerProvider.PLAYER_CAPABILITY, null).inventory);
	} else {
		return null;
	}
}
}

 

Maybe error in my events? Docs says i need PlayerClone event too, but it's for saving capability data after player respawn...

	@SubscribeEvent
public void AttachCapability(AttachCapabilitiesEvent.Entity e) {
	if (!e.getEntity().hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)
			&& e.getEntity() instanceof EntityPlayer) {
		e.addCapability(Capabilities.PLAYER_CAPABILITY_ID, new PlayerProvider());
	}
}

Here is the documentation on Capabilities provided by forge.

http://mcforge.readthedocs.io/en/latest/datastorage/capabilities/

I read this docs and i don't see any errors in my code.

Update:

I add debug message to my attachcapability event and it's works...

	@SubscribeEvent
public void AttachCapability(AttachCapabilitiesEvent.Entity e) {
	if (!e.getEntity().hasCapability(PlayerProvider.PLAYER_CAPABILITY, null)
			&& e.getEntity() instanceof EntityPlayer) {
		e.addCapability(Capabilities.PLAYER_CAPABILITY_ID, new PlayerProvider());
		System.out.println("Attach Capability");
	}
}

[21:38:46] [Client thread/INFO] [sTDOUT]: [fdsatrew.Main:AttachCapability:66]: Attach Capability

Posted

Does this ever get called?

public static void init() {
	CapabilityManager.INSTANCE.register(IPlayerCapability.class, PlayerCapability.PlayerStorage.playerStorage, PlayerCapability.class);
}

I didn't see anything like this in your code.

private static class Factory implements Callable<IExampleCapability> {

  @Override
  public IExampleCapability call() throws Exception {
    return new Implementation();
  }
}

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

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

Forge and vanilla BlockState generator.

Posted

Does this ever get called?

public static void init() {
	CapabilityManager.INSTANCE.register(IPlayerCapability.class, PlayerCapability.PlayerStorage.playerStorage, PlayerCapability.class);
}

I didn't see anything like this in your code.

private static class Factory implements Callable<IExampleCapability> {

  @Override
  public IExampleCapability call() throws Exception {
    return new Implementation();
  }
}

It's called in CommonProxy because if remove this method body game crash with NPE. If i try to follow docs with creating and passing this class as argument to my capability registration i got compile error "The method register(Class<T>, Capability.IStorage<T>, Class<? extends T>) in the type CapabilityManager is not applicable for the arguments (Class<IPlayerCapability>, PlayerCapability.PlayerStorage, Class<PlayerFactory>)"

import java.util.concurrent.Callable;

import fdsatrew.capability.api.IPlayerCapability;

class PlayerFactory implements Callable<IPlayerCapability> {

@Override
public IPlayerCapability call() throws Exception {
	return new PlayerCapability();
}
}

If i change my "PlayerFactory" class body to

import java.util.concurrent.Callable;

import fdsatrew.capability.api.IPlayerCapability;

public class PlayerFactory implements Callable<IPlayerCapability>, IPlayerCapability {

@Override
public IPlayerCapability call() throws Exception {
	return new PlayerCapability();
}
}

Compile error are gone, but if i press my custom key same error appear

[spoiler=Error]

[17:12:27] [server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to fdsatrew.capability.api.IPlayerCapability
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_102]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_102]
at net.minecraft.util.Util.runTask(Util.java:26) [util.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:742) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:687) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156) [integratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:536) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]
Caused by: java.lang.ClassCastException: net.minecraftforge.common.capabilities.Capability cannot be cast to fdsatrew.capability.api.IPlayerCapability
at fdsatrew.GuiHandler.getServerGuiElement(GuiHandler.java:16) ~[GuiHandler.class:?]
at net.minecraftforge.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:251) ~[NetworkRegistry.class:?]
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:87) ~[FMLNetworkHandler.class:?]
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2723) ~[EntityPlayer.class:?]
at fdsatrew.network.handlers.PlayerInventoryPacketHandler$1.run(PlayerInventoryPacketHandler.java:27) ~[PlayerInventoryPacketHandler$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_102]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_102]
at net.minecraft.util.Util.runTask(Util.java:25) ~[util.class:?]
... 5 more

 

Posted

Forge itself has several capability examples, look at the usages of

CapabilityManager.register

in your IDE. There's also a test mod here.

 

I have some examples here: API, implementation

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted

Forge itself has several capability examples, look at the usages of

CapabilityManager.register

in your IDE. There's also a test mod here.

 

I have some examples here: API, implementation

Thanks you alot. Now my capability work without cast exception.

Solution: use implementation link as example.

Join the conversation

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

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • [02:17:17] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow [02:17:17] [main/INFO]: Trying GL version 4.6 [02:17:17] [main/INFO]: Requested GL version 4.6 got version 4.6 [02:17:17] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Sami/curseforge/minecraft/Install/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT [02:17:17] [pool-2-thread-1/INFO]: GL info: NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2 GL version 4.6.0 NVIDIA 566.36, NVIDIA Corporation [02:17:17] [main/INFO]: Found mod file [1.20.1-forge]-Epic-Knights-9.21.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file [1.20.1-forge]-Epic-Knights-Ice-and-Fire-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file [1.20.1-forge]-Epic-Knights-Ores-and-Alloys-1.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file [1.20.x-forge]-Epic-Knights-Addon-1.22.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file [1.20.x-forge]-Epic-Knights-Antique-Legacy-1.8.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file [1.20.x-forge]-Epic-Knights-Slavic-Armory-1.5.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file alexsmobs-1.22.9.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file almanac-1.20.x-forge-1.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file AmbientSounds_FORGE_v6.1.4_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file amendments-1.20-1.2.14.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17: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\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file architectury-9.2.14-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file astikorcarts-1.20.1-1.1.8.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file bettercombat-forge-1.8.6+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file biomemakeover-FORGE-1.20.1-1.11.4.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17: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\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file blockui-1.20.1-1.0.156-RELEASE.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Bookshelf-Forge-1.20.1-20.2.13.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Bountiful-6.0.4+1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file carryon-forge-1.20.1-2.1.2.7.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file citadel-2.6.1-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file cloth-config-11.1.136-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Clumps-forge-1.20.1-12.0.0.4.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file comforts-forge-6.4.0+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Controlling-forge-1.20.1-12.0.2.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Corgilib-Forge-1.20.1-4.0.3.3.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file CreativeCore_FORGE_v2.12.30_mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file cristellib-1.1.6-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file cupboard-1.20.1-2.7.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file curios-forge-5.11.1+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file curiosbackslot-4.0.6-nc.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file decorative_blocks-forge-1.20.1-4.1.3.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file domum_ornamentum-1.20.1-1.0.186-RELEASE-universal.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file dragonseeker-1.2.0-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file dungeons_enhanced-1.20.1-5.3.0.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file embeddium-0.3.31+mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file entityculling-forge-1.7.2-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Explorify v1.6.2 f10-48.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Fallingleaves-1.20.1-2.1.0.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file FarmersDelight-1.20.1-1.2.6.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file ferritecore-6.0.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file framework-forge-1.20.1-0.7.12.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file geckolib-forge-1.20.1-4.7.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Geophilic v3.2 f15-61.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file GlitchCore-forge-1.20.1-0.0.1.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file goblintraders-forge-1.20.1-1.9.3.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file gravestone-forge-1.20.1-1.0.24.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file guardvillagers-1.20.1-1.6.10.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17: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\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file iceandfire-2.1.13-1.20.1-beta-5.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file immersive_weathering-1.20.1-2.0.3-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Jade-1.20.1-Forge-11.12.2.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file jei-1.20.1-forge-15.12.2.51.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file JustEnoughResources-1.20.1-1.4.0.247.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Kambrik-6.1.1+1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Kobolds-2.12.0.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file kotlinforforge-4.11.0-all.jar of type LIBRARY with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file kubejs-forge-2001.6.5-build.16.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file LeavesBeGone-v8.0.0-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file leawind_third_person-v2.2.0-mc1.20-1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letmedespawn-1.20.x-forge-1.4.4.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letsdo-API-forge-1.2.15-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letsdo-bakery-forge-1.1.15.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letsdo-brewery-forge-1.1.9.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letsdo-candlelight-forge-1.2.13.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letsdo-meadow-forge-1.3.19.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file letsdo-vinery-forge-1.4.37.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file libraryferret-forge-1.20.1-4.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file map_atlases-1.20-6.0.12.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-bridges-3.0.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-doors-1.1.1forge-mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-fences-1.1.2-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-furniture-3.3.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-lights-1.1.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17: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\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-paths-1.0.5-1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-roofs-2.3.1-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-trapdoors-1.1.4-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mcw-windows-2.3.0-mc1.20.1forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file medieval_boomsticks-1.01.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file modernfix-forge-5.20.0+mc1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file moonlight-1.20-2.13.51-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file MouseTweaks-forge-mc1.20.1-2.25.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file mowziesmobs-1.6.5.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file NaturesCompass-1.20.1-1.11.2-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file oculus-mc1.20.1-1.8.0.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Oh-The-Trees-Youll-Grow-forge-1.20.1-1.3.4.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Patchouli-1.20.1-84-FORGE.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Placebo-1.20.1-8.6.2.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17: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\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file polymorph-forge-0.49.8+1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file PuzzlesLib-v8.1.25-1.20.1-Forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file realmrpg_seadwellers_2.9.9_forge_1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file realmrpg_skeletons-1.1.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file recruits-1.20.1-1.12.3.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file resourcefullib-forge-1.20.1-2.1.29.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file rhino-forge-2001.2.3-build.6.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file right-click-harvest-3.2.3+1.20.1-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file rubidium-extra-0.5.4.4+mc1.20.1-build.131.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Searchables-forge-1.20.1-1.0.3.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file SereneSeasons-forge-1.20.1-9.1.0.0.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file SimplyDesirePaths-1.0.0-forge-1.20.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file smallships-forge-1.20.1-2.0.0-b1.4.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file snowundertrees-1.20.1-1.4.6.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file spark-1.10.53-forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file structure_gel-1.20.1-2.16.2.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file structurize-1.20.1-1.0.742-RELEASE.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file supplementaries-1.20-3.1.11.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file TerraBlender-forge-1.20.1-3.0.1.7.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Terralith_1.20.x_v2.5.4.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file Towns-and-Towers-1.12-Fabric+Forge.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file weaponmaster_ydm-forge-1.20.1-4.2.3.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/INFO]: Found mod file zmedievalmusic-1.20.1-2.1.jar of type MOD with provider {mods folder locator at C:\Users\Sami\curseforge\minecraft\Instances\bals 2\mods} [02:17:17] [main/WARN]: Mod file C:\Users\Sami\curseforge\minecraft\Install\libraries\net\minecraftforge\fmlcore\1.20.1-47.3.12\fmlcore-1.20.1-47.3.12.jar is missing mods.toml file [02:17:17] [main/WARN]: Mod file C:\Users\Sami\curseforge\minecraft\Install\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.3.12\javafmllanguage-1.20.1-47.3.12.jar is missing mods.toml file [02:17:17] [main/WARN]: Mod file C:\Users\Sami\curseforge\minecraft\Install\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.3.12\lowcodelanguage-1.20.1-47.3.12.jar is missing mods.toml file [02:17:17] [main/WARN]: Mod file C:\Users\Sami\curseforge\minecraft\Install\libraries\net\minecraftforge\mclanguage\1.20.1-47.3.12\mclanguage-1.20.1-47.3.12.jar is missing mods.toml file [02:17:17] [main/INFO]: Found mod file fmlcore-1.20.1-47.3.12.jar of type LIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@33cbfa57 [02:17:17] [main/INFO]: Found mod file javafmllanguage-1.20.1-47.3.12.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@33cbfa57 [02:17:17] [main/INFO]: Found mod file lowcodelanguage-1.20.1-47.3.12.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@33cbfa57 [02:17:17] [main/INFO]: Found mod file mclanguage-1.20.1-47.3.12.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@33cbfa57 [02:17: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@33cbfa57 [02:17:17] [main/INFO]: Found mod file forge-1.20.1-47.3.12-universal.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.MinecraftLocator@33cbfa57 [02:17:18] [main/WARN]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File: [02:17:18] [main/INFO]: Found 16 dependencies adding them to mods collection [02:17:18] [main/INFO]: Found mod file mixinextras-forge-0.4.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file mixinsquared-forge-0.1.2-beta.5.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file jankson-1.2.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file yabn-1.0.3.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file kfflang-4.11.0.jar of type LANGPROVIDER with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file spectrelib-forge-0.13.17+1.20.1.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file taniwha-forge-1.20.0-5.4.4.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file MixinSquared-0.1.2-beta.5.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file mclib-20.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file puzzlesaccessapi-forge-8.0.7.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file kfflib-4.11.0.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file kffmod-4.11.0.jar of type MOD with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file bytecodecs-1.0.2.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file NanoLiveConfig-1.2.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file MixinExtras-0.4.1.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:18] [main/INFO]: Found mod file jcpp-1.4.14.jar of type GAMELIBRARY with provider net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator@475646d4 [02:17:20] [main/INFO]: Compatibility level set to JAVA_17 [02:17:20] [main/INFO]: Launching target 'forgeclient' with arguments [--version, forge-47.3.12, --gameDir, C:\Users\Sami\curseforge\minecraft\Instances\bals 2, --assetsDir, C:\Users\Sami\curseforge\minecraft\Install\assets, --uuid, be779ab0d8dd4d16a1f1aa5b21c9f2f3, --username, Kaiserwaffe, --assetIndex, 5, --accessToken, ????????, --clientId, ODk4Y2EyYTAtMTA2OC00MmYwLThiOGItMGU1MzRlMDdjZjQ2, --xuid, 2535449048843979, --userType, msa, --versionType, release, --width, 854, --height, 480, --quickPlayPath, C:\Users\Sami\curseforge\minecraft\Install\quickPlay\java\1737271034449.json] [02:17:20] [main/INFO]: Loaded configuration file for ModernFix 5.20.0+mc1.20.1: 86 options available, 0 override(s) found [02:17:20] [main/INFO]: Applying Nashorn fix [02:17:20] [main/INFO]: Applied Forge config corruption patch [02:17:20] [main/INFO]: Loaded configuration file for Embeddium: 167 options available, 3 override(s) found [02:17:20] [main/INFO]: Searching for graphics cards... [02:17:20] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=NVIDIA, name=NVIDIA GeForce RTX 2070 SUPER, version=DriverVersion=32.0.15.6636] [02:17:20] [main/WARN]: Embeddium has applied one or more workarounds to prevent crashes or other issues on your system: [NVIDIA_THREADED_OPTIMIZATIONS] [02:17:20] [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. [02:17:20] [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 [02:17:20] [main/WARN]: Reference map 'smallships-forge-refmap.json' for smallships.mixins.json could not be read. If this is a development environment you can ignore this message [02:17:20] [main/WARN]: Reference map 'CuriosBackSlot.refmap.json' for curiosbackslot.mixins.json could not be read. If this is a development environment you can ignore this message [02:17:20] [main/WARN]: Reference map 'mixins.epic_knights_ice_and_fire.refmap.json' for mixins.epic_knights_ice_and_fire.json could not be read. If this is a development environment you can ignore this message [02:17:20] [main/INFO]: Loaded configuration file for Sodium Extra: 35 options available, 0 override(s) found [02:17:20] [main/INFO]: Loading 121 mods:     - alexsmobs 1.22.9     - almanac 1.0.2     - ambientsounds 6.1.4     - amendments 1.20-1.2.14     - antiquelegacy 1.8     - appleskin 2.5.1+mc1.20.1     - architectury 9.2.14     - astikorcarts 1.1.8     - bakery 1.1.15     - bettercombat 1.8.6+1.20.1     - biomemakeover 1.20.1-1.11.4         \-- taniwha 1.20.0-5.4.4     - biomesoplenty 18.0.0.592     - blockui 1.20.1-1.0.156-RELEASE     - bookshelf 20.2.13     - bountiful 6.0.4+1.20.1     - brewery 1.1.9     - candlelight 1.2.13     - carryon 2.1.2.7     - citadel 2.6.1     - cloth_config 11.1.136     - clumps 12.0.0.4     - comforts 6.4.0+1.20.1     - controlling 12.0.2     - corgilib 4.0.3.3     - creativecore 2.12.30     - cristellib 1.1.6     - cupboard 1.20.1-2.7     - curios 5.11.1+1.20.1     - curiosbackslot 4.0.6-nc     - decorative_blocks 4.1.3     - doapi 1.2.15         \-- terraform 7.0.1     - domum_ornamentum 1.20.1-1.0.186-RELEASE     - dragonseeker 1.2.0-1.20.1     - dungeons_enhanced 5.3.0     - embeddium 0.3.31+mc1.20.1         \-- rubidium 0.7.1     - embeddium_extra 0.5.4.4+mc1.20.1-build.131     - enchdesc 17.1.19     - entityculling 1.7.2     - epic_knights_ice_and_fire 1.0     - epic_knights_ores_and_alloys 1.1     - explorify 1.6.2     - fallingleaves 2.1.0     - farmersdelight 1.20.1-1.2.6     - ferritecore 6.0.1     - forge 47.3.12     - framework 0.7.12     - geckolib 4.7     - geophilic 3.2     - glitchcore 0.0.1.1     - goblintraders 1.9.3     - gravestone 1.20.1-1.0.24     - guardvillagers 1.20.1-1.6.10     - handcrafted 3.0.6     - iceandfire 2.1.13-1.20.1     - immersive_weathering 1.20.1-2.0.3     - jade 11.12.2+forge     - jei 15.12.2.51     - jeresources 1.4.0.247     - kambrik 6.1.1+1.20.1     - kobolds 2.12.0     - kotlinforforge 4.11.0     - kubejs 2001.6.5-build.16     - leavesbegone 8.0.0     - leawind_third_person 2.2.0     - letmedespawn 1.4.4     - libraryferret 4.0.0     - magistuarmory 9.21     - magistuarmoryaddon 1.22     - map_atlases 1.20-6.0.12         \-- mixinextras 0.4.1     - mcwbridges 3.0.0     - mcwdoors 1.1.1     - mcwfences 1.1.2     - mcwfurnitures 3.3.0     - mcwlights 1.1.0     - mcwpaintings 1.0.5     - mcwpaths 1.0.5     - mcwroofs 2.3.1     - mcwtrpdoors 1.1.4     - mcwwindows 2.3.0     - meadow 1.3.19         \-- mixinsquared 0.1.2-beta.5     - medieval_boomsticks 1.01     - medievalmusic 1.20.1-2.1     - minecraft 1.20.1     - modernfix 5.20.0+mc1.20.1     - moonlight 1.20-2.13.51     - mousetweaks 2.25.1     - mowziesmobs 1.6.4     - naturescompass 1.20.1-1.11.2-forge     - oculus 1.8.0     - ohthetreesyoullgrow 1.20.1-1.3.4     - patchouli 1.20.1-84-FORGE     - paths 1.0.0     - placebo 8.6.2     - playeranimator 1.0.2-rc1+1.20     - polymorph 0.49.8+1.20.1         \-- spectrelib 0.13.17+1.20.1     - puzzleslib 8.1.25         \-- puzzlesaccessapi 8.0.7     - realmrpg_skeletons 1.1.0     - recruits 1.12.3     - resourcefullib 2.1.29     - rhino 2001.2.3-build.6     - rightclickharvest 3.2.3+1.20.1-forge     - seadwellers 2.9.9     - searchables 1.0.3     - sereneseasons 9.1.0.0     - slavicarmory 1.5     - smallships 2.0.0-b1.4     - snowundertrees 1.4.6     - spark 1.10.53     - structure_gel 2.16.2     - structurize 1.20.1-1.0.742-RELEASE     - supplementaries 1.20-3.1.11     - t_and_t 0.0NONE     - terrablender 3.0.1.7     - terralith 2.5.4     - vinery 1.4.37     - weaponmaster_ydm 4.2.3 [02:17:20] [main/WARN]: Reference map 'cristellib-forge-refmap.json' for cristellib.mixins.json could not be read. If this is a development environment you can ignore this message [02:17:20] [main/INFO]: Patching IForgeItemStack#getEnchantmentLevel [02:17:20] [main/INFO]: Patching IForgeItemStack#getEnchantmentLevel [02:17:21] [main/WARN]: Error loading class: net/raphimc/immediatelyfast/feature/map_atlas_generation/MapAtlasTexture (java.lang.ClassNotFoundException: net.raphimc.immediatelyfast.feature.map_atlas_generation.MapAtlasTexture) [02:17:21] [main/WARN]: Error loading class: mekanism/client/render/entity/RenderFlame (java.lang.ClassNotFoundException: mekanism.client.render.entity.RenderFlame) [02:17:21] [main/WARN]: Error loading class: mekanism/client/render/armor/MekaSuitArmor (java.lang.ClassNotFoundException: mekanism.client.render.armor.MekaSuitArmor) [02:17:21] [main/WARN]: Error loading class: mezz/modnametooltip/TooltipEventHandler (java.lang.ClassNotFoundException: mezz.modnametooltip.TooltipEventHandler) [02:17:21] [main/WARN]: Error loading class: me/shedaniel/rei/impl/client/ClientHelperImpl (java.lang.ClassNotFoundException: me.shedaniel.rei.impl.client.ClientHelperImpl) [02:17:21] [main/WARN]: Error loading class: twilightforest/TFMagicMapData$TFMapDecoration (java.lang.ClassNotFoundException: twilightforest.TFMagicMapData$TFMapDecoration) [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.world.sky.WorldRendererMixin' as rule 'mixin.features.render.world.sky' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.world.sky.ClientWorldMixin' as rule 'mixin.features.render.world.sky' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.world.sky.BackgroundRendererMixin' as rule 'mixin.features.render.world.sky' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.gui.font.GlyphRendererMixin' as rule 'mixin.features.render.gui.font' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.gui.font.FontSetMixin' as rule 'mixin.features.render.gui.font' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.entity.shadows.EntityRenderDispatcherMixin' as rule 'mixin.features.render.entity' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.entity.remove_streams.ModelPartMixin' as rule 'mixin.features.render.entity' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.entity.remove_streams.HierarchicalModelMixin' as rule 'mixin.features.render.entity' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.entity.fast_render.ModelPartMixin' as rule 'mixin.features.render.entity' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.entity.fast_render.CuboidMixin' as rule 'mixin.features.render.entity' (added by mods [oculus]) disables it and children [02:17:22] [main/WARN]: Force-disabling mixin 'features.render.entity.cull.EntityRendererMixin' as rule 'mixin.features.render.entity' (added by mods [oculus]) disables it and children [02:17:22] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.1). [02:17:22] [main/INFO]: Patching IForgeItemStack#getEnchantmentLevel [02:17:22] [main/INFO]: Patching IForgeItemStack#getEnchantmentLevel [02:17:22] [main/WARN]: Static binding violation: PRIVATE @Overwrite method m_216202_ in modernfix-forge.mixins.json:perf.tag_id_caching.TagOrElementLocationMixin cannot reduce visibiliy of PUBLIC target method, visibility will be upgraded. [02:17:23] [pool-4-thread-1/INFO]: ModernFix reached bootstrap stage (9.268 s after launch) [02:17:23] [pool-4-thread-1/WARN]: @Final field delegatesByName:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [02:17:23] [pool-4-thread-1/WARN]: @Final field delegatesByValue:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [02:17:24] [pool-4-thread-1/INFO]: Vanilla bootstrap took 968 milliseconds [02:17:24] [pool-4-thread-1/INFO]: Patching IForgeItemStack#getEnchantmentLevel [02:17:24] [pool-4-thread-1/INFO]: Patching IForgeItemStack#getEnchantmentLevel
    • Hello, Can anyone provide some pointers on generating TallFlowerBlocks using Datagen? I have only been successful generating a two-block tall plant with the bottom block as both, the top block as both, or without any texture applied. It seems that I cannot figure out a method to call that would properly generate the (or any) blockstate profile for a TallFlowerBlock. Thank you.
    • instead of deleting the whole mod, just delete the config files related to it, i dont know which in specific but it work for me and kept the waypoints
    • I am having this issue as well. It crashes immediately after hitting play from the launcher. I am able to play vanilla minecraft and also optifine, both 1.21.4 and before. How do I view the crash report? I am on Ubuntu 20.04. I checked my ~/.minecraft folder and the crash isn't there. On the launcher I see "An unexpected issue occurred and the game has crashed. We're sorry for the inconvenience. Crash dump sent! Exit Code: 1" I am trying to play version 1.21.4-54.0.17, which I downloaded from the forge website.
    • Ive recently made an ATM 8 server with some family. It was running fine for the first few hours but it seems to crash every 10 minutes now. Ive no idea on how to properly read the crash report so i was hoping someone here could help me out.   https://pastebin.com/KeWyDZd1    
  • Topics

×
×
  • Create New...

Important Information

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