Jump to content

Recommended Posts

Posted

I'm having problem with my TileEntity. When the progress > power_needed it is supposed to remove one item from each input slot and put items in output, also incrementing essence_stored and setting its type. It works fine, but when i update one of the item slots, it resets and if i reload the world, the progress, essence, and everything else also resets.

 

What am i supposed to do to fix this?

Please help, i'm trying to fix this 5 days and still no idea how to do this.

 

Tile Entity code:

package com.villfuk02.essence.tileentities;

import org.xml.sax.InputSource;

import com.villfuk02.essence.Essence;
import com.villfuk02.essence.gui.ContainerManualMill;
import com.villfuk02.essence.init.ModItems;

import jline.internal.Log;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ITickable;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class TileEntityManualMill extends TileEntity implements IInventory, ITickable {

public static final int fuel_slots = 0;
public static final int input_slots = 4;
public static final int output_slots = 1;
public static final int total_slots = input_slots + output_slots + fuel_slots;

public static final int first_fuel_slot = 0;
public static final int first_input_slot = first_fuel_slot + fuel_slots;
public static final int first_output_slot = first_input_slot + input_slots;

private static int recipe_count = 3;

public boolean powered = false;

private ItemStack[] itemStacks = new ItemStack[total_slots];
private String customName;
private static ItemStack[] inputs = {new ItemStack(Items.FEATHER),new ItemStack(Items.STRING),new ItemStack(Items.GLOWSTONE_DUST),new ItemStack(Items.PAPER),new ItemStack(Blocks.LEAVES),new ItemStack(Blocks.TALLGRASS),new ItemStack(Items.WHEAT),new ItemStack(Items.MELON),new ItemStack(Blocks.LEAVES2),new ItemStack(Blocks.TALLGRASS),new ItemStack(Items.WHEAT),new ItemStack(Items.MELON)};
private static ItemStack[] outputs = {new ItemStack(ModItems.essence_dust, 1, 0),new ItemStack(ModItems.essence_dust, 1, 1),new ItemStack(ModItems.essence_dust, 1, 1)};
private static Essence[] essence_outputs ={new Essence(40, 0),new Essence(40, 1),new Essence(40, 1)};

private int speed;
private int average_speed = 0;
private int cache_speed = -1;
private int speed_decrement = 3;
private int power_needed = 8000;	
private int progress;
private int rotation;
private int rotation_stage;

private int max_essence = 1000;
private int essence_stored = 0;
private int essence_type = -1;



public int getAvgSpeed(){
	return average_speed;
}

public int getSpeed(){
	return speed;
}	

public boolean getPowered(){
	return powered;
}

public int getEssence(){
	return essence_stored;
}

public int getEssenceType(){
	return essence_type;
}

public double fractionEssence(){
	double fraction = 39.0 *((double)essence_stored / (double)max_essence);
	if (fraction > 0.0)
		fraction++;
	return MathHelper.clamp_double(fraction, 0.0, 40.0);
}

public double fractionProgress(){
	double fraction = ((double)progress / (double)power_needed);
	return MathHelper.clamp_double(fraction, 0.0, 1.0);
}

public double fractionSpeed(){
	double fraction = ((double)average_speed / (double)(30 * speed_decrement));
	return MathHelper.clamp_double(fraction, 0.0, 1.0);
}

public int getRotationStage() {
	return rotation_stage;
}



@Override
public void update(){
	if (essence_stored == 0){
		essence_type = -1;
	}
	if(powered){
		speed += 80;
	}else if(speed > 0){
		speed -= 1 + (int)((double)speed / (double)speed_decrement);
	}
	if (speed < 0)
		speed = 0;
	if (progress >= power_needed){
		finishRecipe();
		progress = 0;
	}
	average_speed = (average_speed * 39 + speed) / 40;
	if(validRecipe()){
		if(average_speed > 0){
			rotation += average_speed;
			progress += average_speed;
		}			
		if (progress <0)
			progress = 0;

		rotation_stage = ((int)((double)rotation / 37.5)) % 4;

		if (rotation > 149)
			rotation -= 150;			

	}else {
		progress = 0;
	}

	if (essence_stored == 0){
		essence_type = -1;
	}

	powered = false;		
	this.markDirty();
}


private boolean validRecipe(){
	ItemStack result = null;
	boolean validi = false;
	boolean valide = false;
	result = getOutput(this.itemStacks[0],this.itemStacks[1],this.itemStacks[2],this.itemStacks[3]);
	if (result != null) {
		ItemStack outputStack = this.itemStacks[4];
		if (outputStack == null){
			validi = true;				
		}else if (outputStack.getItem() == result.getItem() && outputStack.getMetadata() == result.getMetadata() && ItemStack.areItemStackTagsEqual(outputStack, result)){
			int combinedSize = outputStack.stackSize + result.stackSize;
			if (combinedSize <= 64 && combinedSize <= outputStack.getMaxStackSize()){
				validi = true;
			}
		}
	}
	if (validi){
		Essence essence = getEssenceOutput(this.itemStacks[0],this.itemStacks[1],this.itemStacks[2],this.itemStacks[3]);
		if (essence != null){
			if(essence_type == -1){
				valide = true;
			}else if(essence.getType() == essence_type){
				int combined_amount = essence.getAmount() + essence_stored;
				if (combined_amount <= max_essence){
					valide = true;
				}
			}
		}
	}
	if (!valide){
		validi = false;
	}
	this.markDirty();
	return validi;
}

public void finishRecipe(){
	ItemStack out = getOutput(this.itemStacks[0],this.itemStacks[1],this.itemStacks[2],this.itemStacks[3]);

	if (this.getStackInSlot(4) == null){
		this.setInventorySlotContents(4, out);
	}else{
		this.setInventorySlotContents(4, new ItemStack(this.itemStacks[4].getItem(), this.itemStacks[4].stackSize + out.stackSize, this.itemStacks[4].getMetadata()));
	}

	for(int i = 0; i < 4; i++){
		ItemStack stack = this.itemStacks[i];
		stack.stackSize--;
		if (stack.stackSize <= 0){
			stack = null;
		}
		this.setInventorySlotContents(i, stack);
	}

	essence_stored += getEssenceOutput(this.itemStacks[0],this.itemStacks[1],this.itemStacks[2],this.itemStacks[3]).getAmount();
	essence_type = getEssenceOutput(this.itemStacks[0],this.itemStacks[1],this.itemStacks[2],this.itemStacks[3]).getType();
	this.markDirty();
}

public static ItemStack getOutput(ItemStack in1, ItemStack in2, ItemStack in3, ItemStack in4){
	ItemStack result = null;
	ItemStack[] in = {in1, in2, in3, in4};
	if (in1 == null || in2 == null || in3 == null || in4 == null){
		return null;
	}else{
		for(int x = 0; x < recipe_count; x++){
			for (int a = 0; a < 4; a++){
				if (in[a].getItem() == inputs[4*x].getItem()){
					for (int b = 0; b < 4; b++){
						if (in[b].getItem() == inputs[4*x + 1].getItem()){
							for (int c = 0; c < 4; c++){
								if (in[c].getItem() == inputs[4*x + 2].getItem()){
									for (int d = 0; d < 4; d++){
										if (in[d].getItem() == inputs[4*x + 3].getItem()){
											result = outputs[x];
										}				

									}
								}				

							}
						}				

					}
				}				

			}
		}
		if (in1.getItem() == ModItems.essence_dust && in2.getItem() == ModItems.essence_dust && in3.getItem() == ModItems.essence_dust && in4.getItem() == ModItems.essence_dust){
			int data = in1.getMetadata();
			if (in2.getMetadata() == data && in3.getMetadata() == data && in4.getMetadata() == data)
				result = new ItemStack(ModItems.essence_dust, 3, data);
		}
	}

	return result;

}

public static Essence getEssenceOutput(ItemStack in1, ItemStack in2, ItemStack in3, ItemStack in4){
	Essence result = null;
	ItemStack[] in = {in1, in2, in3, in4};
	if (in1 == null || in2 == null || in3 == null || in4 == null){
		return null;
	}else{
		for(int x = 0; x < recipe_count; x++){
			for (int a = 0; a < 4; a++){
				if (in[a].getItem() == inputs[4*x].getItem()){
					for (int b = 0; b < 4; b++){
						if (in[b].getItem() == inputs[4*x + 1].getItem()){
							for (int c = 0; c < 4; c++){
								if (in[c].getItem() == inputs[4*x + 2].getItem()){
									for (int d = 0; d < 4; d++){
										if (in[d].getItem() == inputs[4*x + 3].getItem()){
											result = essence_outputs[x];
										}				

									}
								}				

							}
						}				

					}
				}				

			}
		}
		if (in1.getItem() == ModItems.essence_dust && in2.getItem() == ModItems.essence_dust && in3.getItem() == ModItems.essence_dust && in4.getItem() == ModItems.essence_dust){
			int data = in1.getMetadata();
			if (in2.getMetadata() == data && in3.getMetadata() == data && in4.getMetadata() == data)
				result = new Essence(20, data);
		}
	}

	return result;

}


public String getCustomName(){
	return this.customName;
}

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

public ItemStack[] getStacks(){
	return this.itemStacks;
}


@Override
public String getName() {
	return this.hasCustomName() ? this.customName : "Manual Essence Mill";
}

@Override
public boolean hasCustomName() {
	return this.customName != null && !this.customName.equals("");
}

@Override
public int getSizeInventory() {
	return 5;
}

@Override
public ItemStack getStackInSlot(int index) {
	if(index < 0 || index >= this.getSizeInventory()){
		return null;
	}
	return this.itemStacks[index];
}

@Override
public ItemStack decrStackSize(int index, int count) {
		if(this.getStackInSlot(index)!= null){
			ItemStack itemStack;

			if (this.getStackInSlot(index).stackSize <= count) {
				itemStack = this.getStackInSlot(index);
				this.setInventorySlotContents(index, null);
				this.markDirty();
				return itemStack;
			}else{
				itemStack = this.getStackInSlot(index).splitStack(count);

				if(this.getStackInSlot(index).stackSize <= 0){
					this.setInventorySlotContents(index, null);
				}else{
					this.setInventorySlotContents(index, this.getStackInSlot(index));
				}
				this.markDirty();
				return itemStack;
			}
		} else {
			return null;
		}
}

@Override
public ItemStack removeStackFromSlot(int index) {
	ItemStack stack = this.getStackInSlot(index);
	this.setInventorySlotContents(index, null);
	return stack;
}

@Override
public void setInventorySlotContents(int index, ItemStack stack) {
	if (index < 0 || index >= this.getSizeInventory())

		return;
	if (stack != null && stack.stackSize > this.getInventoryStackLimit())
		stack.stackSize = this.getInventoryStackLimit();

	if (stack != null && stack.stackSize == 0)
		stack = null;

	this.itemStacks[index] = stack;
	this.markDirty();

}

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

@Override
public boolean isUseableByPlayer(EntityPlayer player) {
	return this.worldObj.getTileEntity(this.getPos()) == this && player.getDistanceSq(this.pos.add(0.5, 0.5, 0.5)) <= 64;
}

@Override
public void openInventory(EntityPlayer player) {
}

@Override
public void closeInventory(EntityPlayer player) {
}

@Override
public boolean isItemValidForSlot(int index, ItemStack stack) {
	return true;	
}

@Override
public int getField(int id) {
	int value = 0;
	if (id == 0)
		value = progress;
	if (id == 1)
		value = speed;
	if (id == 2)
		value = rotation;
	if (id == 3)
		value = essence_stored;
	if (id == 4)
		value = essence_type;
	return value;
}

@Override
public void setField(int id, int value) {
	if (id == 0)
		progress = value;
	if (id == 1)
		speed = value;
	if (id == 2)
		rotation = value;
	if (id == 3)
		essence_stored = value;
	if (id == 4)
		essence_type = value;		
}

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

@Override
public void clear() {
	for(int i = 0; i < this.getSizeInventory(); i++){
		this.setInventorySlotContents(i, null);
	}
}



@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbt){
	super.writeToNBT(nbt);

	NBTTagList list = new NBTTagList();
	for (int i = 0; i < this.getSizeInventory(); i++){
		if (this.itemStacks[i] != null){
			NBTTagCompound stackTag = new NBTTagCompound();
			stackTag.setByte("Slot", ((byte)i));
			this.itemStacks[i].writeToNBT(stackTag);
			list.appendTag(stackTag);
		}
	}
	nbt.setTag("Items", list);
	nbt.setInteger("progress", progress);
	nbt.setInteger("speed", speed);
	nbt.setInteger("rotation", rotation);
	nbt.setInteger("essence_stored", essence_stored);
	nbt.setInteger("essence_type", essence_type);

	if (this.hasCustomName()){
		nbt.setString("CustomName",this.getCustomName());
	}
	return nbt;
}

@Override
public void readFromNBT(NBTTagCompound nbt){
	super.readFromNBT(nbt);

	NBTTagList list = nbt.getTagList("Items", 10);
	for(int i = 0; i < list.tagCount(); ++i){
		NBTTagCompound stackTag = list.getCompoundTagAt(i);
		int slot = stackTag.getByte("Slot") & 255;
		this.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(stackTag));

	}

	progress = nbt.getInteger("progress");
	speed = nbt.getInteger("speed");
	rotation = nbt.getInteger("rotation");
	essence_stored = nbt.getInteger("essence_stored");
	essence_type = nbt.getInteger("essence_type");

	if(nbt.hasKey(customName, ){
		this.setCustomName(nbt.getString("CustomName"));

	}
}




}

 

 

HELP

 

Thanks for any response

Posted

Use

IItemHandler

in combination with

Capabilities

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

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

 

1.12 -> 1.13 primer by williewillus.

 

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

 

http://www.howoldisminecraft1710.today/

Posted

You also need to override following methods to make synchronisation automatic between server and client:

@Override
public SPacketUpdateTileEntity getUpdatePacket()
{
	BlockPos blockPos=getPos();
	return new SPacketUpdateTileEntity(blockPos,0,getUpdateTag());
}

@Override
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{
	NBTTagCompound nbtTagCompound=pkt.getNbtCompound();
	super.readFromNBT(nbtTagCompound);
	readFromNBT(nbtTagCompound);
}

@Override
public NBTTagCompound getUpdateTag()
{
	NBTTagCompound supertag=super.getUpdateTag();
	writeToNBT(supertag);
	return supertag;
}

@Override
public void handleUpdateTag(NBTTagCompound tag)
{
	super.handleUpdateTag(tag);
	readFromNBT(tag);
}

 

 

Posted

I looked at the link, but i dont proprly understand it, can you please say it little bit less complicated?

 

Or even better: give me a code for simple custom chest using it, and i will learn from it.

 

THX

Posted

I looked at the link, but i dont proprly understand it, can you please say it little bit less complicated?

 

Or even better: give me a code for simple custom chest using it, and i will learn from it.

 

THX

In your TE override getCapability(Capability, EnumFacing) and hasCapability(Capability, EnumFacing). return an instance of IItemHandlerModifiable. IE

if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY /* Something with EnumFacing here if you want */) return itemHander;

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

and thats all ?!?!

Pretty much. You might need to create a custom implementation of IItemHandlerModifiable instead of using the default one provided (ItemStackHandler).

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

Could you please give me an example code for simple custom chest?

I dont have much time for this and it takes some time until somebody responds, so want to have it right pretty much first time.

I'm out of time for today, so see you tomorrow and thanks for your help.

Posted

Could you please give me an example code for simple custom chest?

I dont have much time for this and it takes some time until somebody responds, so want to have it right pretty much first time.

I'm out of time for today, so see you tomorrow and thanks for your help.

ItemStackHandler itemHandler = new ItemstackHandler(size);

@Override
public boolean hasCapability(Capability capability, EnumFacing facing) {
     return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY ? true : super.hasCapability(capability, facing);
}

@Override
public Capability getCapability(Capability capability, EnumFacing facing) {
     return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY : itemHandler ? super.getCapability(capability, facing);
}

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

and what am i supposed to do with this?

 

private TileEntityStoneCrate te;

public ContainerStoneCrate(IInventory playerInv, TileEntityStoneCrate te) {
	this.te = te;

	//Tile Entity, Slot 0-80, Slot IDs 0-80
	for (int y = 0; y < 9; ++y){
		for (int x = 0; x < 9; ++x){
			this.addSlotToContainer(new Slot(te, x + y * 9, 15 + x * 16, 15 + y * 16));
		}
	}

 

the Slot() wants IInventory, but the tileentity isn't IInventory anymore.

I tried just casting it to IInventory, but that doesn't work.

 

And this:

InventoryHelper.dropInventoryItems(world, pos, (IInventory) te);

Posted

I just dont understand what am i exactly supposed to do.

 

COULD ANYONE PLEASE GIVE ME A CODE FOR SIMPLE CHEST WITH ALL THE THINGS LIKE TILEENTITY, GUI CONTAINER AND BLOCK, PLEASE?

 

I will look at the code and learn how to do it, dont worry, i'll not juct copy and paste it.

 

 

 

Posted

Sorry, i've read them, but i'm so stupid and new.

The language is too technical for me and i dont understand, what am i supposed to do.

If you don't understand this then....you could use ItemStackHandler.

Javadocs

/**
     * Inserts an ItemStack into the given slot and return the remainder.
     * The ItemStack should not be modified in this function!
     * Note: This behaviour is subtly different from IFluidHandlers.fill()
     *
     * @param slot     Slot to insert into.
     * @param stack    ItemStack to insert.
     * @param simulate If true, the insertion is only simulated
     * @return The remaining ItemStack that was not inserted (if the entire stack is accepted, then return null).
     *         May be the same as the input ItemStack if unchanged, otherwise a new ItemStack.
     **/
    ItemStack insertItem(int slot, ItemStack stack, boolean simulate);

    /**
     * Extracts an ItemStack from the given slot. The returned value must be null
     * if nothing is extracted, otherwise it's stack size must not be greater than amount or the
     * itemstacks getMaxStackSize().
     *
     * @param slot     Slot to extract from.
     * @param amount   Amount to extract (may be greater than the current stacks max limit)
     * @param simulate If true, the extraction is only simulated
     * @return ItemStack extracted from the slot, must be null, if nothing can be extracted
     **/
    ItemStack extractItem(int slot, int amount, boolean simulate);

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

Still dont know

COULD ANYONE PLEASE GIVE ME A CODE FOR SIMPLE CHEST WITH ALL THE THINGS LIKE TILEENTITY, GUI CONTAINER AND BLOCK, PLEASE?

 

I will look at the code and learn how to do it, dont worry, i'll not juct copy and paste it.

Posted

Still dont know

COULD ANYONE PLEASE GIVE ME A CODE FOR SIMPLE CHEST WITH ALL THE THINGS LIKE TILEENTITY, GUI CONTAINER AND BLOCK, PLEASE?

 

I will look at the code and learn how to do it, dont worry, i'll not juct copy and paste it.

I gave you the code for the TE, diesieben provided the correct type of slot to use, and the block and gui code was not even posted.

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

Take Part A and combine with Change B.

It's not that hard.

 

Remove "Slot" add "SlotItemHandler"

 

Watch the magic happen.

 

We are not here to give you copy-and-paste code.  You should already know how to program on your own, we are not Java school.

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

Something is working now, but how do i do this

public ItemStack removeStackFromSlot(int index) {
	ItemStack stack = this.getStackInSlot(index);
	this.setInventorySlotContents(index, null);
	return stack;
}

 

with IItemHandlerModifiable?

 

(it does not let me take items out from the slots)

Posted

Something is working now, but how do i do this

public ItemStack removeStackFromSlot(int index) {
	ItemStack stack = this.getStackInSlot(index);
	this.setInventorySlotContents(index, null);
	return stack;
}

 

with IItemHandlerModifiable?

 

(it does not let me take items out from the slots)

What does your extractItem() method look like? Or did you use ItemStackHandler.

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

@Override
public ItemStack extractItem(int slot, int amount, boolean simulate) {
	if(!simulate){
		if(this.getStackInSlot(slot)!= null){
			ItemStack itemStack;

			if (this.getStackInSlot(slot).stackSize <= amount) {
				itemStack = this.getStackInSlot(slot);
				this.setInventorySlotContents(slot, null);
				this.markDirty();
				return itemStack;
			}else{
				itemStack = this.getStackInSlot(slot).splitStack(amount);

				if(this.getStackInSlot(slot).stackSize <= 0){
					this.setInventorySlotContents(slot, null);
				}else{
					this.setInventorySlotContents(slot, this.getStackInSlot(slot));
				}
				this.markDirty();
				return itemStack;
			}
		} else {
			return null;
		}
	}
	return null;
}

 

also when i placed hopper under it, the game crashed and i cant load the world anymore

Posted

So I have to ask:

Why are you overriding extractItem here?

It does not appear that you are doing anything different than the standard ItemStackHandler class does, except that you always return null in the case of simulate being true (which is incorrect).

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.

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

    • I am having trouble getting the game to load. I changed nothing about my code but one day it chose to start doing this for some reason. I also get this error message aswell: Caused by: java.lang.NullPointerException: Registry Object not present: wonderfulwoodlands:turkey_tail_mushrooms. So I tried changing my registering to use a supplier of my block which corrected that error before but now it no longer changes anything. My blocks class: public class ModBlocks { public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, WonderfulWoodlands.MOD_ID); public static final RegistryObject<Block> TURKEY_TAIL_MUSHROOMS = registerBlock("turkey_tail_mushrooms", () -> new SmallShelfridgeBlock(BlockBehaviour.Properties.of() .setId(BLOCKS.key("turkey_tail_mushrooms")) .noCollission() .sound(SoundType.WOOD) )); public static <T extends Block> RegistryObject<T> registerBlock(String name, Supplier<T> block) { RegistryObject<T> registeredBlock = BLOCKS.register(name, block); registerBlockItem(name, registeredBlock); return registeredBlock; } public static <T extends Block> void registerBlockItem(String name, RegistryObject<T> block) { ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties().setId(ModItems.ITEMS.key(name)))); } public static void register(IEventBus eventBus) { BLOCKS.register(eventBus); } } The SmallShelfridgeBlock class: public class SmallShelfridgeBlock extends Block { public static final EnumProperty<Direction> FACING = BlockStateProperties.HORIZONTAL_FACING; public static final IntegerProperty AMOUNT = BlockStateProperties.FLOWER_AMOUNT; public static final VoxelShape NORTH_SHAPE = Block.box(0, 0, 13, 16, 16, 3); public static final VoxelShape EAST_SHAPE = Block.box(0, 0, 0, 3, 16, 16); public static final VoxelShape SOUTH_SHAPE = Block.box(0, 0, 0, 16, 16, 3); public static final VoxelShape WEST_SHAPE = Block.box(0, 0, 13, 3, 16, 16); public SmallShelfridgeBlock(Properties properties) { super(properties); this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(AMOUNT, 1)); } @Override protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> pBuilder) { pBuilder.add(FACING, AMOUNT); } @Override public boolean canBeReplaced(@NotNull BlockState blockState, BlockPlaceContext blockPlaceContext) { return !blockPlaceContext.isSecondaryUseActive() && blockPlaceContext.getItemInHand().is(this.asItem()) && blockState.getValue(AMOUNT) < 4 || super.canBeReplaced(blockState, blockPlaceContext); } @Override public @NotNull VoxelShape getShape(BlockState blockState, @NotNull BlockGetter blockGetter, @NotNull BlockPos blockPos, @NotNull CollisionContext collisionContext) { Direction direction = blockState.getValue(FACING); switch(direction) { default -> { return NORTH_SHAPE; } case EAST -> { return EAST_SHAPE; } case SOUTH -> { return SOUTH_SHAPE; } case WEST -> { return WEST_SHAPE; } } } @Override public BlockState getStateForPlacement(BlockPlaceContext blockPlaceContext) { BlockState blockstate = blockPlaceContext.getLevel().getBlockState(blockPlaceContext.getClickedPos()); return blockstate.is(this) ? blockstate.setValue(AMOUNT, Math.min(4, blockstate.getValue(AMOUNT) + 1)) : this.defaultBlockState().setValue(FACING, blockPlaceContext.getHorizontalDirection().getOpposite()); } } My latest.log: [22Feb2025 14:13:00.602] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forge_userdev_client, --version, MOD_DEV, --assetIndex, 19, --assetsDir, C:\Users\campb\.gradle\caches\forge_gradle\assets, --gameDir, ., --mixin.config, wonderfulwoodlands.mixins.json] [22Feb2025 14:13:00.605] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: JVM identified as Eclipse Adoptium OpenJDK 64-Bit Server VM 21.0.4+7-LTS [22Feb2025 14:13:00.606] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.2.4 starting: java version 21.0.4 by Eclipse Adoptium; OS Windows 11 arch amd64 version 10.0 [22Feb2025 14:13:00.791] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow [22Feb2025 14:13:00.988] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6 [22Feb2025 14:13:01.035] [main/INFO] [EARLYDISPLAY/]: Requested GL version 4.6 got version 4.6 [22Feb2025 14:13:01.504] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=jar:file:///C:/Users/campb/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.7/8ab114ac385e6dbdad5efafe28aba4df8120915f/mixin-0.8.7.jar!/ Service=ModLauncher Env=CLIENT [22Feb2025 14:13:02.124] [EarlyDisplay/INFO] [EARLYDISPLAY/]: GL info: Intel(R) UHD Graphics GL version 4.6.0 - Build 26.20.100.6911, Intel [22Feb2025 14:13:04.063] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: No dependencies to load found. Skipping! [22Feb2025 14:13:05.719] [main/INFO] [mixin/]: Compatibility level set to JAVA_21 [22Feb2025 14:13:05.774] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forge_userdev_client' with arguments [--version, MOD_DEV, --gameDir, ., --assetsDir, C:\Users\campb\.gradle\caches\forge_gradle\assets, --assetIndex, 19] [22Feb2025 14:13:05.927] [main/WARN] [mixin/]: Reference map 'wonderfulwoodlands.refmap.json' for wonderfulwoodlands.mixins.json could not be read. If this is a development environment you can ignore this message [22Feb2025 14:13:10.506] [Datafixer Bootstrap/INFO] [com.mojang.datafixers.DataFixerBuilder/]: 243 Datafixer optimizations took 996 milliseconds [22Feb2025 14:13:18.985] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:root [22Feb2025 14:13:18.985] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:sound_event [22Feb2025 14:13:18.985] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:fluid [22Feb2025 14:13:18.985] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:particle_type [22Feb2025 14:13:18.986] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:attribute [22Feb2025 14:13:18.987] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:mob_effect [22Feb2025 14:13:18.987] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:block [22Feb2025 14:13:18.987] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:enchantment_effect_component_type [22Feb2025 14:13:18.987] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:data_component_type [22Feb2025 14:13:18.988] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:entity_type [22Feb2025 14:13:18.988] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:item [22Feb2025 14:13:18.991] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:game_event [22Feb2025 14:13:18.991] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:potion [22Feb2025 14:13:18.991] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:block_entity_type [22Feb2025 14:13:18.992] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:stat_type [22Feb2025 14:13:18.992] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:custom_stat [22Feb2025 14:13:18.992] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:chunk_status [22Feb2025 14:13:18.992] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:rule_test [22Feb2025 14:13:18.993] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:rule_block_entity_modifier [22Feb2025 14:13:18.993] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:pos_rule_test [22Feb2025 14:13:18.993] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:menu [22Feb2025 14:13:18.993] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:recipe_type [22Feb2025 14:13:18.994] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:recipe_serializer [22Feb2025 14:13:18.995] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:position_source_type [22Feb2025 14:13:18.996] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:command_argument_type [22Feb2025 14:13:18.996] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:villager_type [22Feb2025 14:13:18.996] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:villager_profession [22Feb2025 14:13:18.998] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:point_of_interest_type [22Feb2025 14:13:19.001] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:memory_module_type [22Feb2025 14:13:19.017] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:sensor_type [22Feb2025 14:13:19.018] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:activity [22Feb2025 14:13:19.018] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:schedule [22Feb2025 14:13:19.018] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:loot_score_provider_type [22Feb2025 14:13:19.018] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:loot_number_provider_type [22Feb2025 14:13:19.019] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:map_decoration_type [22Feb2025 14:13:19.019] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:loot_nbt_provider_type [22Feb2025 14:13:19.019] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:loot_function_type [22Feb2025 14:13:19.019] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:loot_pool_entry_type [22Feb2025 14:13:19.019] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:loot_condition_type [22Feb2025 14:13:19.022] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:float_provider_type [22Feb2025 14:13:19.022] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:int_provider_type [22Feb2025 14:13:19.022] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:height_provider_type [22Feb2025 14:13:19.023] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:block_predicate_type [22Feb2025 14:13:19.023] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/carver [22Feb2025 14:13:19.023] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/structure_processor [22Feb2025 14:13:19.023] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/feature [22Feb2025 14:13:19.024] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/structure_placement [22Feb2025 14:13:19.024] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/structure_piece [22Feb2025 14:13:19.024] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/structure_type [22Feb2025 14:13:19.024] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/placement_modifier_type [22Feb2025 14:13:19.024] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/block_state_provider_type [22Feb2025 14:13:19.025] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/foliage_placer_type [22Feb2025 14:13:19.025] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/trunk_placer_type [22Feb2025 14:13:19.025] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/root_placer_type [22Feb2025 14:13:19.025] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/tree_decorator_type [22Feb2025 14:13:19.027] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/feature_size_type [22Feb2025 14:13:19.028] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/biome_source [22Feb2025 14:13:19.030] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/chunk_generator [22Feb2025 14:13:19.030] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/material_condition [22Feb2025 14:13:19.030] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/material_rule [22Feb2025 14:13:19.030] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/density_function_type [22Feb2025 14:13:19.031] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:block_type [22Feb2025 14:13:19.031] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/structure_pool_element [22Feb2025 14:13:19.031] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:worldgen/pool_alias_binding [22Feb2025 14:13:19.031] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:cat_variant [22Feb2025 14:13:19.031] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:frog_variant [22Feb2025 14:13:19.032] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:decorated_pot_pattern [22Feb2025 14:13:19.032] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:creative_mode_tab [22Feb2025 14:13:19.032] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:trigger_type [22Feb2025 14:13:19.032] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:number_format_type [22Feb2025 14:13:19.032] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:entity_sub_predicate_type [22Feb2025 14:13:19.034] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:item_sub_predicate_type [22Feb2025 14:13:19.034] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:enchantment_level_based_value_type [22Feb2025 14:13:19.035] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:enchantment_entity_effect_type [22Feb2025 14:13:19.035] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:enchantment_location_based_effect_type [22Feb2025 14:13:19.035] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:enchantment_value_effect_type [22Feb2025 14:13:19.036] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:enchantment_provider_type [22Feb2025 14:13:19.037] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:consume_effect_type [22Feb2025 14:13:19.037] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:recipe_display [22Feb2025 14:13:19.037] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:slot_display [22Feb2025 14:13:19.037] [pool-5-thread-1/INFO] [net.minecraftforge.registries.GameData/REGISTRIES]: minecraft:recipe_book_category [22Feb2025 14:13:19.595] [Render thread/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/campb/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4/forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar%230!/assets/.mcassetsroot' uses unexpected schema [22Feb2025 14:13:19.597] [Render thread/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/campb/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4/forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar%230!/data/.mcassetsroot' uses unexpected schema [22Feb2025 14:13:19.639] [Render thread/INFO] [com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService/]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD] [22Feb2025 14:13:19.654] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Setting user: Dev [22Feb2025 14:13:19.860] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Backend library: LWJGL version 3.3.3+5 [22Feb2025 14:13:21.001] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 54.0.26, for MC 1.21.4 with MCP 20241203.143248 [22Feb2025 14:13:21.002] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v54.0.26 Initialized [22Feb2025 14:13:21.021] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Opening jdk.naming.dns/com.sun.jndi.dns to java.naming [22Feb2025 14:13:21.448] [Render thread/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/]: Exception caught during firing event: null Index: 3 Listeners: 0: NORMAL 1: ASM: net.minecraftforge.registries.DeferredRegister$EventDispatcher@30548a28 handleEvent(Lnet/minecraftforge/registries/RegisterEvent;)V 2: ASM: net.minecraftforge.registries.DeferredRegister$EventDispatcher@446f7e86 handleEvent(Lnet/minecraftforge/registries/RegisterEvent;)V 3: ASM: net.minecraftforge.registries.DeferredRegister$EventDispatcher@523fad04 handleEvent(Lnet/minecraftforge/registries/RegisterEvent;)V java.lang.ExceptionInInitializerError at TRANSFORMER/[email protected]/net.Saveloy_Master.Wonderful_Woodlands.block.ModBlocks.lambda$static$0(ModBlocks.java:27) at TRANSFORMER/[email protected]/net.minecraftforge.registries.DeferredRegister$EventDispatcher.lambda$handleEvent$0(DeferredRegister.java:381) at TRANSFORMER/[email protected]/net.minecraftforge.registries.RegisterEvent.register(RegisterEvent.java:55) at TRANSFORMER/[email protected]/net.minecraftforge.registries.DeferredRegister$EventDispatcher.handleEvent(DeferredRegister.java:381) at TRANSFORMER/[email protected]/net.minecraftforge.registries.__EventDispatcher_handleEvent_RegisterEvent.invoke(.dynamic) at SECURE-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:46) at SECURE-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) at SECURE-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:288) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:184) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.lambda$postEventWithWrapInModOrder$19(ModLoader.java:400) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModList.forEachModInOrder(ModList.java:148) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.postEventWithWrapInModOrder(ModLoader.java:398) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.postEventWrapContainerInModOrder(ModLoader.java:387) at TRANSFORMER/[email protected]/net.minecraftforge.registries.GameData.postRegisterEvents(GameData.java:351) at TRANSFORMER/[email protected]/net.minecraftforge.common.ForgeStatesProvider.lambda$gather$0(ForgeStatesProvider.java:34) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.handleInlineTransition(ModLoader.java:258) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.dispatchAndHandleError(ModLoader.java:247) at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:214) at TRANSFORMER/[email protected]/net.minecraftforge.client.loading.ClientModLoader.lambda$begin$1(ClientModLoader.java:48) at TRANSFORMER/[email protected]/net.minecraftforge.client.loading.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:68) at TRANSFORMER/[email protected]/net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java:48) at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.<init>(Minecraft.java:485) at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:224) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:96) at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:79) at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) Caused by: java.lang.IllegalArgumentException: The min values need to be smaller or equals to the max values at TRANSFORMER/[email protected]/net.minecraft.world.phys.shapes.Shapes.box(Shapes.java:50) at TRANSFORMER/[email protected]/net.minecraft.world.level.block.Block.box(Block.java:145) at TRANSFORMER/[email protected]/net.Saveloy_Master.Wonderful_Woodlands.block.custom.SmallShelfridgeBlock.<clinit>(SmallShelfridgeBlock.java:25) ... 39 more [22Feb2025 14:13:21.453] [Render thread/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Caught exception during event RegisterEvent dispatch for modid wonderfulwoodlands java.lang.ExceptionInInitializerError: null at TRANSFORMER/[email protected]/net.Saveloy_Master.Wonderful_Woodlands.block.ModBlocks.lambda$static$0(ModBlocks.java:27) ~[main/:?] at TRANSFORMER/[email protected]/net.minecraftforge.registries.DeferredRegister$EventDispatcher.lambda$handleEvent$0(DeferredRegister.java:381) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar%231!/:?] at TRANSFORMER/[email protected]/net.minecraftforge.registries.RegisterEvent.register(RegisterEvent.java:55) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar%231!/:?] at TRANSFORMER/[email protected]/net.minecraftforge.registries.DeferredRegister$EventDispatcher.handleEvent(DeferredRegister.java:381) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar%231!/:?] at TRANSFORMER/[email protected]/net.minecraftforge.registries.__EventDispatcher_handleEvent_RegisterEvent.invoke(.dynamic) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar%231!/:?] at SECURE-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:46) ~[eventbus-6.2.26.jar:?] at SECURE-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-6.2.26.jar:?] at SECURE-BOOTSTRAP/net.minecraftforge.eventbus/net.minecraftforge.eventbus.EventBus.post(EventBus.java:288) ~[eventbus-6.2.26.jar:?] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:184) ~[javafmllanguage-1.21.4-54.0.26.jar:54.0.26] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.lambda$postEventWithWrapInModOrder$19(ModLoader.java:400) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModList.forEachModInOrder(ModList.java:148) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.postEventWithWrapInModOrder(ModLoader.java:398) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.postEventWrapContainerInModOrder(ModLoader.java:387) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at TRANSFORMER/[email protected]/net.minecraftforge.registries.GameData.postRegisterEvents(GameData.java:351) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.minecraftforge.common.ForgeStatesProvider.lambda$gather$0(ForgeStatesProvider.java:34) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.handleInlineTransition(ModLoader.java:258) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.dispatchAndHandleError(ModLoader.java:247) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:214) ~[fmlcore-1.21.4-54.0.26.jar:1.0] at TRANSFORMER/[email protected]/net.minecraftforge.client.loading.ClientModLoader.lambda$begin$1(ClientModLoader.java:48) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.minecraftforge.client.loading.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:68) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java:48) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.<init>(Minecraft.java:485) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:224) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:96) ~[fmlloader-1.21.4-54.0.26.jar!/:?] at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:79) ~[fmlloader-1.21.4-54.0.26.jar!/:?] at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.4.jar!/:?] at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.4.jar!/:?] at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.4.jar!/:?] at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.4.jar!/:?] at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.4.jar!/:?] at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.8.jar!/:?] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.8.jar:2.1.8] at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.8.jar:2.1.8] at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.8.jar:2.1.8] Caused by: java.lang.IllegalArgumentException: The min values need to be smaller or equals to the max values at TRANSFORMER/[email protected]/net.minecraft.world.phys.shapes.Shapes.box(Shapes.java:50) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.minecraft.world.level.block.Block.box(Block.java:145) ~[forge-1.21.4-54.0.26_mapped_parchment_2025.01.19-1.21.4-recomp.jar:?] at TRANSFORMER/[email protected]/net.Saveloy_Master.Wonderful_Woodlands.block.custom.SmallShelfridgeBlock.<clinit>(SmallShelfridgeBlock.java:25) ~[main/:?] ... 39 more [22Feb2025 14:13:21.488] [Render thread/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/]: Exception caught during firing event: Registry Object not present: wonderfulwoodlands:turkey_tail_mushrooms Index: 2 Listeners: 0: NORMAL 1: ASM: net.minecraftforge.registries.DeferredRegister$EventDispatcher@30548a28 handleEvent(Lnet/minecraftforge/registries/RegisterEvent;)V 2: ASM: net.minecraftforge.registries.DeferredRegister$EventDispatcher@446f7e86 handleEvent(Lnet/minecraftforge/registries/RegisterEvent;)V 3: ASM: net.minecraftforge.registries.DeferredRegister$EventDispatcher@523fad04 handleEvent(Lnet/minecraftforge/registries/RegisterEvent;)V java.lang.NullPointerException: Registry Object not present: wonderfulwoodlands:turkey_tail_mushrooms  
    • actually, the thing is that forge is an client that was developed well for mods back in the day, (i know that i  write it 11 years later), and the downside was that forge needs a long of time to load (yes i tested it i need sometimes 2 minutes for optifine in forge to run it) and that will probably not change. if you are 1.16+ i suggest you to use fabric as the load times are lower than 10 seconds and yes i do have a lot of mods there. not to mehtion there is an better optimization client and yes i do get more fps on 1.21 fabric with sodium lithium and much more than with forge and optifine on 1.8.9
    • Also add the latest.log from your logs folder
  • Topics

×
×
  • Create New...

Important Information

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