Jump to content

Recommended Posts

Posted

I try to make Blocks that are flying in the air (when something explode under the Blocks) falling on the ground. I have a List with Blocks that "have to fall", but how can I make Blocks falling?

Posted

Possibly the parent class, BlockFalling.

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

Hmm:

public class BlockFalling extends Block
{
    public static boolean fallInstantly;

    public BlockFalling()
    {
        super(Material.sand);
        this.setCreativeTab(CreativeTabs.tabBlock);
    }

    public BlockFalling(Material materialIn)
    {
        super(materialIn);
    }

    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
    {
        worldIn.scheduleUpdate(pos, this, this.tickRate(worldIn));
    }

    /**
     * Called when a neighboring block changes.
     */
    public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
    {
        worldIn.scheduleUpdate(pos, this, this.tickRate(worldIn));
    }

    public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand)
    {
        if (!worldIn.isRemote)
        {
            this.checkFallable(worldIn, pos);
        }
    }

    private void checkFallable(World worldIn, BlockPos pos)
    {
        if (canFallInto(worldIn, pos.down()) && pos.getY() >= 0)
        {
            int i = 32;

            if (!fallInstantly && worldIn.isAreaLoaded(pos.add(-i, -i, -i), pos.add(i, i, i)))
            {
                if (!worldIn.isRemote)
                {
                    EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, worldIn.getBlockState(pos));
                    this.onStartFalling(entityfallingblock);
                    worldIn.spawnEntityInWorld(entityfallingblock);
                }
            }
            else
            {
                worldIn.setBlockToAir(pos);
                BlockPos blockpos;

                for (blockpos = pos.down(); canFallInto(worldIn, blockpos) && blockpos.getY() > 0; blockpos = blockpos.down())
                {
                    ;
                }

                if (blockpos.getY() > 0)
                {
                    worldIn.setBlockState(blockpos.up(), this.getDefaultState());
                }
            }
        }
    }

    protected void onStartFalling(EntityFallingBlock fallingEntity)
    {
    }

    /**
     * How many world ticks before ticking
     */
    public int tickRate(World worldIn)
    {
        return 2;
    }

    public static boolean canFallInto(World worldIn, BlockPos pos)
    {
        if (worldIn.isAirBlock(pos)) return true;
        Block block = worldIn.getBlockState(pos).getBlock();
        Material material = block.blockMaterial;
        return block == Blocks.fire || material == Material.air || material == Material.water || material == Material.lava;
    }

    public void onEndFalling(World worldIn, BlockPos pos)
    {
    }
}

But how can I make any Block (not Air) with this to a Falling Block?

Posted

Ok I see there is a Constructor with Material. I made a new Object BlockFalling for every block in the List but how can I make the blockfalling fall?

Posted

Oh for fuck's sake.

 

EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY(), (double)pos.getZ() + 0.5D, worldIn.getBlockState(pos));

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

Ok I dont get any futher. What I want:

When something explodes, I want to get all Blocks over the explosion, then I want that all this blocks falling down but I dont know why it isnt working:

@SubscribeEvent
public void onExplode(ExplosionEvent e) {
	HashMap<Block,BlockPos> fallingBlocks = getBlocksToFall(e);
	System.out.println(fallingBlocks.keySet().size() + "");
	for (Block b : fallingBlocks.keySet()) {
		BlockPos blockPos = fallingBlocks.get(b);
		EntityFallingBlock entityFallingBlock = new EntityFallingBlock(e.world, blockPos.getX(), blockPos.getY(), blockPos.getZ(), e.world.getBlockState(blockPos));
		entityFallingBlock.shouldDropItem = false;
		e.world.spawnEntityInWorld(entityFallingBlock);
	}
}

private HashMap<Block,BlockPos> getBlocksToFall(ExplosionEvent e){
	List<Integer> xs = new ArrayList<Integer>();
	List<Integer> zs = new ArrayList<Integer>();
	int exY = (int) Math.round(e.explosion.getPosition().yCoord);
	for(BlockPos loc : e.explosion.getAffectedBlockPositions()){
		int x = loc.getX();
		if(!xs.contains(x)){
			xs.add(x);
		}
		int z = loc.getZ();
		if(!zs.contains(z)){
			zs.add(z);
		}
	}
	HashMap<Block,BlockPos> blocksToFall = new HashMap<Block,BlockPos>();
	for(int y = exY; y <= e.world.getHeight(); y++){
		for(int x : xs){
			for(int z : zs){
				BlockPos pos = new BlockPos(x, y, z);
				Block b = e.world.getBlockState(pos).getBlock();
				if(!b.getRegistryName().contains("air")){
					blocksToFall.put(b,pos);
				}
			}
		}
	}
	return blocksToFall;
}

Posted

Firstly, "isn't working" isn't very helpful.  I'll assume you mean that it just doesn't spawn a falling block rather than it fails with an exception etc.

 

The explosion event is fired before any blocks are actually destroyed, so if you want to spawn a falling block, it's up to you to set the block being replaced with air.  Also, if there's a block underneath, you might want to add a small amount to the falling block's Y co-ord so it isn't considered on the ground (or it will immediately turn back into a real block).  You may also want to give newly spawned falling blocks an initial velocity (based on their position and proximity to the explosion centre) so they fly outwards.

 

Also, a map of Block->BlockPos makes no sense at all.  Block is a singleton class; you'll just end up with one element for each type of block affected.  And I don't follow what your getBlocksToFall() method is doing - why not just iterate over event.getAffectedBlockPositions() directly?

 

Update: OK, I understand what you need better now.  I'd suggest just converting the list of affected locations to a Set<Pair<Integer,Integer>>, where the two ints are the X & Z positions of the affected blocks.  Then for each element, you can iterate upward to world height and convert blocks to falling blocks.  If you work upwards, you shouldn't need to worry about the block underneath being solid.

 

(Also, be sure to test what happens with tile entity blocks, with or without held items).

Posted

Cool.  You'll also want to consider what happens if someone sets off multiple explosions down at bedrock level (the amount of scanning for blocks and more so the number of entities being rapidly created will make your server cry).

Posted

Yeah. Not my probleme^^ hm I calculate something: a explosion has a radius of 3 i think you place 5 tnts that is a length of 30 blocks. The world has a 64 height that are 30x6x64 blocks = 11.500 nooooo this will not lagging xD. Yeah but how can I do that?

Posted

TNT radius is 6.9, according to the official Wiki.  Now consider a couple of hundred TNT under some amplified biome, or mesa, or extreme hills... that could easily be millions of blocks.  (And it will be your problem if & when your publicly released mod gets fingered as a server killer  :) )

 

Mitigation might be not to create falling blocks immediately, but add them to a queue of limited (tunable) size.  Then pull a certain (tunable) number from the queue every tick, validate that the block hasn't already changed in the intervening ticks since they were added, and then create the falling block.  And if the queue is full, just don't add them.  A queue of Pair<BlockPos,IBlockState> should work here (remembering that IBlockState object can be validly and cheaply compared with ==).

Posted
@SubscribeEvent
public void onExplode(ExplosionEvent e) {
	HashMap<Block,BlockPos> fallingBlocks = getBlocksToFall(e);
	System.out.println(fallingBlocks.keySet().size() + "");
	for (Block b : fallingBlocks.keySet()) {
		BlockPos blockPos = fallingBlocks.get(b);
		EntityFallingBlock entityFallingBlock = new EntityFallingBlock(e.world, blockPos.getX(), blockPos.getY(), blockPos.getZ(), e.world.getBlockState(blockPos));
		entityFallingBlock.shouldDropItem = false;
		e.world.spawnEntityInWorld(entityFallingBlock);
	}
}

private HashMap<Block,BlockPos> getBlocksToFall(ExplosionEvent e){
	List<Integer> xs = new ArrayList<Integer>();
	List<Integer> zs = new ArrayList<Integer>();
	int exY = (int) Math.round(e.explosion.getPosition().yCoord);
	for(BlockPos loc : e.explosion.getAffectedBlockPositions()){
		int x = loc.getX();
		if(!xs.contains(x)){
			xs.add(x);
		}
		int z = loc.getZ();
		if(!zs.contains(z)){
			zs.add(z);
		}
	}
	HashMap<Block,BlockPos> blocksToFall = new HashMap<Block,BlockPos>();
	for(int y = exY; y <= e.world.getHeight(); y++){
		for(int x : xs){
			for(int z : zs){
				BlockPos pos = new BlockPos(x, y, z);
				Block b = e.world.getBlockState(pos).getBlock();
				if(!b.getRegistryName().contains("air")){
					blocksToFall.put(b,pos);
				}
			}
		}
	}
	return blocksToFall;
}

Posted

@SubscribeEvent
public void onExplode(ExplosionEvent e) {
	HashMap<Block,BlockPos> fallingBlocks = getBlocksToFall(e);
	System.out.println(fallingBlocks.keySet().size() + "");
	for (Block b : fallingBlocks.keySet()) {
		BlockPos blockPos = fallingBlocks.get(b);
		EntityFallingBlock entityFallingBlock = new EntityFallingBlock(e.world, blockPos.getX(), blockPos.getY(), blockPos.getZ(), e.world.getBlockState(blockPos));
		entityFallingBlock.shouldDropItem = false;
		e.world.spawnEntityInWorld(entityFallingBlock);
	}
}

private HashMap<Block,BlockPos> getBlocksToFall(ExplosionEvent e){
	List<Integer> xs = new ArrayList<Integer>();
	List<Integer> zs = new ArrayList<Integer>();
	int exY = (int) Math.round(e.explosion.getPosition().yCoord);
	for(BlockPos loc : e.explosion.getAffectedBlockPositions()){
		int x = loc.getX();
		if(!xs.contains(x)){
			xs.add(x);
		}
		int z = loc.getZ();
		if(!zs.contains(z)){
			zs.add(z);
		}
	}
	HashMap<Block,BlockPos> blocksToFall = new HashMap<Block,BlockPos>();
	for(int y = exY; y <= e.world.getHeight(); y++){
		for(int x : xs){
			for(int z : zs){
				BlockPos pos = new BlockPos(x, y, z);
				Block b = e.world.getBlockState(pos).getBlock();
				if(!b.getRegistryName().contains("air")){
					blocksToFall.put(b,pos);
				}
			}
		}
	}
	return blocksToFall;
}

You have not followed any of desht's advice, and you should be using the sub event of ExplosionEvent.Start

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

You also can't map Block -> BlockPos.  There are more BlockPos locations than there are Blocks, and the nature of a Hashmap is specifically One-to-One.  Your code right now will create exactly 1 falling block for an explosion taking place inside pure stone.

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

You also can't map Block -> BlockPos.  There are more BlockPos locations than there are Blocks, and the nature of a Hashmap is specifically One-to-One.  Your code right now will create exactly 1 falling block for an explosion taking place inside pure stone.

Yep.  Hence why I suggested a Set<Pair<Integer,Integer>> as the appropriate data structure here; a unique set of (x,z) positions from which columns can be traced vertically upwards.  OP needs to be paying attention :)

Posted

You also can't map Block -> BlockPos.  There are more BlockPos locations than there are Blocks, and the nature of a Hashmap is specifically One-to-One.  Your code right now will create exactly 1 falling block for an explosion taking place inside pure stone.

Yep.  Hence why I suggested a Set<Pair<Integer,Integer>> as the appropriate data structure here; a unique set of (x,z) positions from which columns can be traced vertically upwards.  OP needs to be paying attention :)

That wont work because theny position is not identifable.

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

Yep.  Hence why I suggested a Set<Pair<Integer,Integer>> as the appropriate data structure here; a unique set of (x,z) positions from which columns can be traced vertically upwards.  OP needs to be paying attention :)

That wont work because theny position is not identifable.

Explain please?  Seems totally workable to me.

Posted

I mean really, what's wrong with List<BlockPos>?

 

Also this:

if(!b.getRegistryName().contains("air")){

Block#isAirBlock() much?

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

Use your debugger and find out.

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

Yep.  Hence why I suggested a Set<Pair<Integer,Integer>> as the appropriate data structure here; a unique set of (x,z) positions from which columns can be traced vertically upwards.  OP needs to be paying attention :)

That wont work because theny position is not identifable.

Explain please?  Seems totally workable to me.

Two things multiple blocks on the same x and z coord, and second how would I even find the correct y coord. Would it be at the highest possible y position there is a block or would it be at the first block with air above them.

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

Two things multiple blocks on the same x and z coord, and second how would I even find the correct y coord. Would it be at the highest possible y position there is a block or would it be at the first block with air above them.

Hence using a Set<Pair> - just store one instance of each (X,Z) pair.  But you're right - you'd need to store a Y-value as well; so perhaps a Map<Pair<Integer,Integer>, Integer> would be better, where the key is (X,Z) and the value is Y.  As for which Y-value, that's up to the mod developer; the smallest Y would be a reasonable choice.

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

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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