Jump to content

Recommended Posts

Posted

Hello, I made a portal and dimension, the dimension works but that portal crashes when going through it, the code of the teleporter class:

public class CheeseTeleporter extends Teleporter {
private final WorldServer worldServerInstance;
/** A private Random() function in Teleporter */
private final Random random;
private final Long2ObjectMap<CheeseTeleporter.PortalPosition> destinationCoordinateCache = new Long2ObjectOpenHashMap(
		4096);

public CheeseTeleporter(WorldServer worldIn) {
	super(worldIn);
	this.worldServerInstance = worldIn;
	this.random = new Random(worldIn.getSeed());
}

public void placeInPortal(Entity entityIn, float rotationYaw) {
	if (this.worldServerInstance.provider.getDimensionType().getId() != 1) {
		if (!this.placeInExistingPortal(entityIn, rotationYaw)) {
			this.makePortal(entityIn);
			this.placeInExistingPortal(entityIn, rotationYaw);
		}
	} else {
		int i = MathHelper.floor_double(entityIn.posX);
		int j = MathHelper.floor_double(entityIn.posY) - 1;
		int k = MathHelper.floor_double(entityIn.posZ);
		int l = 1;
		int i1 = 0;

		for (int j1 = -2; j1 <= 2; ++j1) {
			for (int k1 = -2; k1 <= 2; ++k1) {
				for (int l1 = -1; l1 < 3; ++l1) {
					int i2 = i + k1 * 1 + j1 * 0;
					int j2 = j + l1;
					int k2 = k + k1 * 0 - j1 * 1;
					boolean flag = l1 < 0;
					this.worldServerInstance.setBlockState(new BlockPos(i2, j2, k2),
							flag ? CheeseBlocks.CHEESE_BLOCK.getDefaultState() : Blocks.AIR.getDefaultState());
				}
			}
		}

		entityIn.setLocationAndAngles((double) i, (double) j, (double) k, entityIn.rotationYaw, 0.0F);
		entityIn.motionX = 0.0D;
		entityIn.motionY = 0.0D;
		entityIn.motionZ = 0.0D;
	}
}

public boolean placeInExistingPortal(Entity entityIn, float rotationYaw) {
	int i = 128;
	double d0 = -1.0D;
	int j = MathHelper.floor_double(entityIn.posX);
	int k = MathHelper.floor_double(entityIn.posZ);
	boolean flag = true;
	BlockPos blockpos = BlockPos.ORIGIN;
	long l = ChunkPos.asLong(j, k);

	if (this.destinationCoordinateCache.containsKey(l)) {
		CheeseTeleporter.PortalPosition teleporter$portalposition = (CheeseTeleporter.PortalPosition) this.destinationCoordinateCache
				.get(l);
		d0 = 0.0D;
		blockpos = teleporter$portalposition;
		teleporter$portalposition.lastUpdateTime = this.worldServerInstance.getTotalWorldTime();
		flag = false;
	} else {
		BlockPos blockpos3 = new BlockPos(entityIn);

		for (int i1 = -128; i1 <= 128; ++i1) {
			BlockPos blockpos2;

			for (int j1 = -128; j1 <= 128; ++j1) {
				for (BlockPos blockpos1 = blockpos3.add(i1,
						this.worldServerInstance.getActualHeight() - 1 - blockpos3.getY(), j1); blockpos1
								.getY() >= 0; blockpos1 = blockpos2) {
					blockpos2 = blockpos1.down();

					if (this.worldServerInstance.getBlockState(blockpos1).getBlock() == CheeseBlocks.CHEESE_PORTAL) {
						for (blockpos2 = blockpos1.down(); this.worldServerInstance.getBlockState(blockpos2)
								.getBlock() == CheeseBlocks.CHEESE_PORTAL; blockpos2 = blockpos2.down()) {
							blockpos1 = blockpos2;
						}

						double d1 = blockpos1.distanceSq(blockpos3);

						if (d0 < 0.0D || d1 < d0) {
							d0 = d1;
							blockpos = blockpos1;
						}
					}
				}
			}
		}
	}

	if (d0 >= 0.0D) {
		if (flag) {
			this.destinationCoordinateCache.put(l,
					new CheeseTeleporter.PortalPosition(blockpos, this.worldServerInstance.getTotalWorldTime()));
		}

		double d5 = (double) blockpos.getX() + 0.5D;
		double d7 = (double) blockpos.getZ() + 0.5D;
		BlockPattern.PatternHelper blockpattern$patternhelper = CheeseBlocks.CHEESE_PORTAL
				.createPatternHelper(this.worldServerInstance, blockpos);
		boolean flag1 = blockpattern$patternhelper.getForwards().rotateY()
				.getAxisDirection() == EnumFacing.AxisDirection.NEGATIVE;
		double d2 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X
				? (double) blockpattern$patternhelper.getFrontTopLeft().getZ()
				: (double) blockpattern$patternhelper.getFrontTopLeft().getX();
		double d6 = (double) (blockpattern$patternhelper.getFrontTopLeft().getY() + 1)
				- entityIn.getLastPortalVec().yCoord * (double) blockpattern$patternhelper.getHeight();

		if (flag1) {
			++d2;
		}

		if (blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X) {
			d7 = d2 + (1.0D - entityIn.getLastPortalVec().xCoord) * (double) blockpattern$patternhelper.getWidth()
					* (double) blockpattern$patternhelper.getForwards().rotateY().getAxisDirection().getOffset();
		} else {
			d5 = d2 + (1.0D - entityIn.getLastPortalVec().xCoord) * (double) blockpattern$patternhelper.getWidth()
					* (double) blockpattern$patternhelper.getForwards().rotateY().getAxisDirection().getOffset();
		}

		float f = 0.0F;
		float f1 = 0.0F;
		float f2 = 0.0F;
		float f3 = 0.0F;

		if (blockpattern$patternhelper.getForwards().getOpposite() == entityIn.getTeleportDirection()) {
			f = 1.0F;
			f1 = 1.0F;
		} else if (blockpattern$patternhelper.getForwards().getOpposite() == entityIn.getTeleportDirection()
				.getOpposite()) {
			f = -1.0F;
			f1 = -1.0F;
		} else if (blockpattern$patternhelper.getForwards().getOpposite() == entityIn.getTeleportDirection()
				.rotateY()) {
			f2 = 1.0F;
			f3 = -1.0F;
		} else {
			f2 = -1.0F;
			f3 = 1.0F;
		}

		double d3 = entityIn.motionX;
		double d4 = entityIn.motionZ;
		entityIn.motionX = d3 * (double) f + d4 * (double) f3;
		entityIn.motionZ = d3 * (double) f2 + d4 * (double) f1;
		entityIn.rotationYaw = rotationYaw
				- (float) (entityIn.getTeleportDirection().getOpposite().getHorizontalIndex() * 90)
				+ (float) (blockpattern$patternhelper.getForwards().getHorizontalIndex() * 90);

		if (entityIn instanceof EntityPlayerMP) {
			((EntityPlayerMP) entityIn).connection.setPlayerLocation(d5, d6, d7, entityIn.rotationYaw,
					entityIn.rotationPitch);
		} else {
			entityIn.setLocationAndAngles(d5, d6, d7, entityIn.rotationYaw, entityIn.rotationPitch);
		}

		return true;
	} else {
		return false;
	}
}

public boolean makePortal(Entity entityIn) {
	int i = 16;
	double d0 = -1.0D;
	int j = MathHelper.floor_double(entityIn.posX);
	int k = MathHelper.floor_double(entityIn.posY);
	int l = MathHelper.floor_double(entityIn.posZ);
	int i1 = j;
	int j1 = k;
	int k1 = l;
	int l1 = 0;
	int i2 = this.random.nextInt(4);
	BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos();

	for (int j2 = j - 16; j2 <= j + 16; ++j2) {
		double d1 = (double) j2 + 0.5D - entityIn.posX;

		for (int l2 = l - 16; l2 <= l + 16; ++l2) {
			double d2 = (double) l2 + 0.5D - entityIn.posZ;
			label146:

			for (int j3 = this.worldServerInstance.getActualHeight() - 1; j3 >= 0; --j3) {
				if (this.worldServerInstance.isAirBlock(blockpos$mutableblockpos.setPos(j2, j3, l2))) {
					while (j3 > 0 && this.worldServerInstance
							.isAirBlock(blockpos$mutableblockpos.setPos(j2, j3 - 1, l2))) {
						--j3;
					}

					for (int k3 = i2; k3 < i2 + 4; ++k3) {
						int l3 = k3 % 2;
						int i4 = 1 - l3;

						if (k3 % 4 >= 2) {
							l3 = -l3;
							i4 = -i4;
						}

						for (int j4 = 0; j4 < 3; ++j4) {
							for (int k4 = 0; k4 < 4; ++k4) {
								for (int l4 = -1; l4 < 4; ++l4) {
									int i5 = j2 + (k4 - 1) * l3 + j4 * i4;
									int j5 = j3 + l4;
									int k5 = l2 + (k4 - 1) * i4 - j4 * l3;
									blockpos$mutableblockpos.setPos(i5, j5, k5);

									if (l4 < 0
											&& !this.worldServerInstance.getBlockState(blockpos$mutableblockpos)
													.getMaterial().isSolid()
											|| l4 >= 0 && !this.worldServerInstance
													.isAirBlock(blockpos$mutableblockpos)) {
										continue label146;
									}
								}
							}
						}

						double d5 = (double) j3 + 0.5D - entityIn.posY;
						double d7 = d1 * d1 + d5 * d5 + d2 * d2;

						if (d0 < 0.0D || d7 < d0) {
							d0 = d7;
							i1 = j2;
							j1 = j3;
							k1 = l2;
							l1 = k3 % 4;
						}
					}
				}
			}
		}
	}

	if (d0 < 0.0D) {
		for (int l5 = j - 16; l5 <= j + 16; ++l5) {
			double d3 = (double) l5 + 0.5D - entityIn.posX;

			for (int j6 = l - 16; j6 <= l + 16; ++j6) {
				double d4 = (double) j6 + 0.5D - entityIn.posZ;
				label567:

				for (int i7 = this.worldServerInstance.getActualHeight() - 1; i7 >= 0; --i7) {
					if (this.worldServerInstance.isAirBlock(blockpos$mutableblockpos.setPos(l5, i7, j6))) {
						while (i7 > 0 && this.worldServerInstance
								.isAirBlock(blockpos$mutableblockpos.setPos(l5, i7 - 1, j6))) {
							--i7;
						}

						for (int k7 = i2; k7 < i2 + 2; ++k7) {
							int j8 = k7 % 2;
							int j9 = 1 - j8;

							for (int j10 = 0; j10 < 4; ++j10) {
								for (int j11 = -1; j11 < 4; ++j11) {
									int j12 = l5 + (j10 - 1) * j8;
									int i13 = i7 + j11;
									int j13 = j6 + (j10 - 1) * j9;
									blockpos$mutableblockpos.setPos(j12, i13, j13);

									if (j11 < 0
											&& !this.worldServerInstance.getBlockState(blockpos$mutableblockpos)
													.getMaterial().isSolid()
											|| j11 >= 0 && !this.worldServerInstance
													.isAirBlock(blockpos$mutableblockpos)) {
										continue label567;
									}
								}
							}

							double d6 = (double) i7 + 0.5D - entityIn.posY;
							double d8 = d3 * d3 + d6 * d6 + d4 * d4;

							if (d0 < 0.0D || d8 < d0) {
								d0 = d8;
								i1 = l5;
								j1 = i7;
								k1 = j6;
								l1 = k7 % 2;
							}
						}
					}
				}
			}
		}
	}

	int i6 = i1;
	int k2 = j1;
	int k6 = k1;
	int l6 = l1 % 2;
	int i3 = 1 - l6;

	if (l1 % 4 >= 2) {
		l6 = -l6;
		i3 = -i3;
	}

	if (d0 < 0.0D) {
		j1 = MathHelper.clamp_int(j1, 70, this.worldServerInstance.getActualHeight() - 10);
		k2 = j1;

		for (int j7 = -1; j7 <= 1; ++j7) {
			for (int l7 = 1; l7 < 3; ++l7) {
				for (int k8 = -1; k8 < 3; ++k8) {
					int k9 = i6 + (l7 - 1) * l6 + j7 * i3;
					int k10 = k2 + k8;
					int k11 = k6 + (l7 - 1) * i3 - j7 * l6;
					boolean flag = k8 < 0;
					this.worldServerInstance.setBlockState(new BlockPos(k9, k10, k11),
							flag ? CheeseBlocks.CHEESE_BLOCK.getDefaultState() : Blocks.AIR.getDefaultState());
				}
			}
		}
	}

	IBlockState iblockstate = CheeseBlocks.CHEESE_PORTAL.getDefaultState().withProperty(BlockPortal.AXIS,
			l6 == 0 ? EnumFacing.Axis.Z : EnumFacing.Axis.X);

	for (int i8 = 0; i8 < 4; ++i8) {
		for (int l8 = 0; l8 < 4; ++l8) {
			for (int l9 = -1; l9 < 4; ++l9) {
				int l10 = i6 + (l8 - 1) * l6;
				int l11 = k2 + l9;
				int k12 = k6 + (l8 - 1) * i3;
				boolean flag1 = l8 == 0 || l8 == 3 || l9 == -1 || l9 == 3;
				this.worldServerInstance.setBlockState(new BlockPos(l10, l11, k12),
						flag1 ? CheeseBlocks.CHEESE_BLOCK.getDefaultState() : iblockstate, 2);
			}
		}

		for (int i9 = 0; i9 < 4; ++i9) {
			for (int i10 = -1; i10 < 4; ++i10) {
				int i11 = i6 + (i9 - 1) * l6;
				int i12 = k2 + i10;
				int l12 = k6 + (i9 - 1) * i3;
				BlockPos blockpos = new BlockPos(i11, i12, l12);
				this.worldServerInstance.notifyNeighborsOfStateChange(blockpos,
						this.worldServerInstance.getBlockState(blockpos).getBlock(), false);
			}
		}
	}

	return true;
}

/**
 * called periodically to remove out-of-date portal locations from the cache
 * list. Argument par1 is a WorldServer.getTotalWorldTime() value.
 */
public void removeStalePortalLocations(long worldTime) {
	if (worldTime % 100L == 0L) {
		long i = worldTime - 300L;
		ObjectIterator<CheeseTeleporter.PortalPosition> objectiterator = this.destinationCoordinateCache.values()
				.iterator();

		while (objectiterator.hasNext()) {
			CheeseTeleporter.PortalPosition teleporter$portalposition = (CheeseTeleporter.PortalPosition) objectiterator
					.next();

			if (teleporter$portalposition == null || teleporter$portalposition.lastUpdateTime < i) {
				objectiterator.remove();
			}
		}
	}
}

public class PortalPosition extends BlockPos {
	/** The worldtime at which this PortalPosition was last verified */
	public long lastUpdateTime;

	public PortalPosition(BlockPos pos, long lastUpdate) {
		super(pos.getX(), pos.getY(), pos.getZ());
		this.lastUpdateTime = lastUpdate;
	}
}
}

The portal class

public class CheesePortal extends BlockBreakable {
public static final PropertyEnum<EnumFacing.Axis> AXIS = PropertyEnum.<EnumFacing.Axis>create("axis",
		EnumFacing.Axis.class, new EnumFacing.Axis[] { EnumFacing.Axis.X, EnumFacing.Axis.Z });
protected static final AxisAlignedBB X_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 1.0D, 0.625D);
protected static final AxisAlignedBB Z_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 1.0D, 1.0D);
protected static final AxisAlignedBB Y_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D);

public CheesePortal() {
	super(Material.PORTAL, false);
	this.setDefaultState(this.blockState.getBaseState().withProperty(AXIS, EnumFacing.Axis.X));
	this.setTickRandomly(true);
}

public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
	switch ((EnumFacing.Axis) state.getValue(AXIS)) {
	case X:
		return X_AABB;
	case Y:
	default:
		return Y_AABB;
	case Z:
		return Z_AABB;
	}
}

public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) {
	super.updateTick(worldIn, pos, state, rand);

	if (worldIn.provider.isSurfaceWorld() && worldIn.getGameRules().getBoolean("doMobSpawning")
			&& rand.nextInt(2000) < worldIn.getDifficulty().getDifficultyId()) {
		int i = pos.getY();
		BlockPos blockpos;

		for (blockpos = pos; !worldIn.getBlockState(blockpos).isFullyOpaque()
				&& blockpos.getY() > 0; blockpos = blockpos.down()) {
			;
		}

		if (i > 0 && !worldIn.getBlockState(blockpos.up()).isNormalCube()) {
			Entity entity = ItemMonsterPlacer.spawnCreature(worldIn,
					EntityList.func_191306_a(EntityPigZombie.class), (double) blockpos.getX() + 0.5D,
					(double) blockpos.getY() + 1.1D, (double) blockpos.getZ() + 0.5D);

			if (entity != null) {
				entity.timeUntilPortal = entity.getPortalCooldown();
			}
		}
	}
}

@Nullable
public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) {
	return NULL_AABB;
}

public static int getMetaForAxis(EnumFacing.Axis axis) {
	return axis == EnumFacing.Axis.X ? 1 : (axis == EnumFacing.Axis.Z ? 2 : 0);
}

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

public boolean trySpawnPortal(World worldIn, BlockPos pos) {
	CheesePortal.Size blockportal$size = new CheesePortal.Size(worldIn, pos, EnumFacing.Axis.X);

	if (blockportal$size.isValid() && blockportal$size.portalBlockCount == 0) {
		blockportal$size.placePortalBlocks();
		return true;
	} else {
		CheesePortal.Size blockportal$size1 = new CheesePortal.Size(worldIn, pos, EnumFacing.Axis.Z);

		if (blockportal$size1.isValid() && blockportal$size1.portalBlockCount == 0) {
			blockportal$size1.placePortalBlocks();
			return true;
		} else {
			return false;
		}
	}
}

/**
 * Called when a neighboring block was changed and marks that this state
 * should perform any checks during a neighbor change. Cases may include
 * when redstone power is updated, cactus blocks popping off due to a
 * neighboring solid block, etc.
 */
public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos p_189540_5_) {
	EnumFacing.Axis enumfacing$axis = (EnumFacing.Axis) state.getValue(AXIS);

	if (enumfacing$axis == EnumFacing.Axis.X) {
		CheesePortal.Size blockportal$size = new CheesePortal.Size(worldIn, pos, EnumFacing.Axis.X);

		if (!blockportal$size.isValid()
				|| blockportal$size.portalBlockCount < blockportal$size.width * blockportal$size.height) {
			worldIn.setBlockState(pos, Blocks.AIR.getDefaultState());
		}
	} else if (enumfacing$axis == EnumFacing.Axis.Z) {
		CheesePortal.Size blockportal$size1 = new CheesePortal.Size(worldIn, pos, EnumFacing.Axis.Z);

		if (!blockportal$size1.isValid()
				|| blockportal$size1.portalBlockCount < blockportal$size1.width * blockportal$size1.height) {
			worldIn.setBlockState(pos, Blocks.AIR.getDefaultState());
		}
	}
}

@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos,
		EnumFacing side) {
	pos = pos.offset(side);
	EnumFacing.Axis enumfacing$axis = null;

	if (blockState.getBlock() == this) {
		enumfacing$axis = (EnumFacing.Axis) blockState.getValue(AXIS);

		if (enumfacing$axis == null) {
			return false;
		}

		if (enumfacing$axis == EnumFacing.Axis.Z && side != EnumFacing.EAST && side != EnumFacing.WEST) {
			return false;
		}

		if (enumfacing$axis == EnumFacing.Axis.X && side != EnumFacing.SOUTH && side != EnumFacing.NORTH) {
			return false;
		}
	}

	boolean flag = blockAccess.getBlockState(pos.west()).getBlock() == this
			&& blockAccess.getBlockState(pos.west(2)).getBlock() != this;
	boolean flag1 = blockAccess.getBlockState(pos.east()).getBlock() == this
			&& blockAccess.getBlockState(pos.east(2)).getBlock() != this;
	boolean flag2 = blockAccess.getBlockState(pos.north()).getBlock() == this
			&& blockAccess.getBlockState(pos.north(2)).getBlock() != this;
	boolean flag3 = blockAccess.getBlockState(pos.south()).getBlock() == this
			&& blockAccess.getBlockState(pos.south(2)).getBlock() != this;
	boolean flag4 = flag || flag1 || enumfacing$axis == EnumFacing.Axis.X;
	boolean flag5 = flag2 || flag3 || enumfacing$axis == EnumFacing.Axis.Z;
	return flag4 && side == EnumFacing.WEST ? true
			: (flag4 && side == EnumFacing.EAST ? true
					: (flag5 && side == EnumFacing.NORTH ? true : flag5 && side == EnumFacing.SOUTH));
}

/**
 * Returns the quantity of items to drop on block destruction.
 */
public int quantityDropped(Random random) {
	return 0;
}

/**
 * Called When an Entity Collided with the Block
 */
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) {
	if (!entityIn.isRiding() && !entityIn.isBeingRidden() && entityIn.isNonBoss()) {
		if (entityIn.timeUntilPortal > 0) {
			entityIn.timeUntilPortal = entityIn.getPortalCooldown();
		} else {
			if (!worldIn.isRemote && !pos.equals(getField(Entity.class, entityIn, "lastPortalPos"))) {
				setField(Entity.class, entityIn, "lastPortalPos", pos);
				BlockPattern.PatternHelper blockpattern$patternhelper = CheeseBlocks.CHEESE_PORTAL.createPatternHelper(worldIn, pos);
				double d0 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X
						? (double) blockpattern$patternhelper.getFrontTopLeft().getZ()
						: (double) blockpattern$patternhelper.getFrontTopLeft().getX();
				double d1 = blockpattern$patternhelper.getForwards().getAxis() == EnumFacing.Axis.X ? entityIn.posZ
						: entityIn.posX;
				d1 = Math.abs(MathHelper.pct(
						d1 - (double) (blockpattern$patternhelper.getForwards().rotateY()
								.getAxisDirection() == EnumFacing.AxisDirection.NEGATIVE ? 1 : 0),
						d0, d0 - (double) blockpattern$patternhelper.getWidth()));
				double d2 = MathHelper.pct(entityIn.posY - 1.0D,
						(double) blockpattern$patternhelper.getFrontTopLeft().getY(),
						(double) (blockpattern$patternhelper.getFrontTopLeft().getY()
								- blockpattern$patternhelper.getHeight()));
				setField(Entity.class, entityIn, "lastPortalVex", new Vec3d(d1, d2, 0.0D));
				setField(Entity.class, entityIn, "teleportDirection", blockpattern$patternhelper.getForwards());
			}

			setField(Entity.class, entityIn, "inPortal", true);

		}

		if (entityIn instanceof EntityPlayerMP) {
			EntityPlayerMP player = (EntityPlayerMP) entityIn;
			if (player.timeUntilPortal > 0) {
				player.timeUntilPortal = 10;
			} else if (player.dimension == 0) {
				player.timeUntilPortal = 10;
				MinecraftServer server = player.mcServer;
				server.getPlayerList().transferPlayerToDimension(player, CheeseDimension.DIMENSION_ID,
						new CheeseTeleporter(server.worldServerForDimension(CheeseDimension.DIMENSION_ID)));
			} else if (player.dimension == CheeseDimension.DIMENSION_ID) {
				player.timeUntilPortal = 10;
				MinecraftServer server = player.mcServer;
				server.getPlayerList().transferPlayerToDimension(player, 0,
						new CheeseTeleporter(server.worldServerForDimension(0)));
			}
		}
	}
}

public Object getField(Class clazz, Object obj, String fieldstr) {
	try {
		Field field = clazz.getDeclaredField(fieldstr);
		field.setAccessible(true);
		return field.get(obj);
	} catch(Exception ex) {
		return null;
	}
}

public void setField(Class clazz, Object obj, String fieldstr, Object value) {
	try {
		Field field = clazz.getDeclaredField(fieldstr);
		field.setAccessible(true);
		field.set(obj, value);
	} catch(Exception ex) {
	}
}

public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
	return ItemStack.field_190927_a;
}

/**
 * Convert the given metadata into a BlockState for this Block
 */
public IBlockState getStateFromMeta(int meta) {
	return this.getDefaultState().withProperty(AXIS, (meta & 3) == 2 ? EnumFacing.Axis.Z : EnumFacing.Axis.X);
}

@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
	return BlockRenderLayer.TRANSLUCENT;
}

@SideOnly(Side.CLIENT)
public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand) {
	if (rand.nextInt(100) == 0) {
		worldIn.playSound((double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D,
				SoundEvents.BLOCK_PORTAL_AMBIENT, SoundCategory.BLOCKS, 0.5F, rand.nextFloat() * 0.4F + 0.8F,
				false);
	}

	for (int i = 0; i < 4; ++i) {
		double d0 = (double) ((float) pos.getX() + rand.nextFloat());
		double d1 = (double) ((float) pos.getY() + rand.nextFloat());
		double d2 = (double) ((float) pos.getZ() + rand.nextFloat());
		double d3 = ((double) rand.nextFloat() - 0.5D) * 0.5D;
		double d4 = ((double) rand.nextFloat() - 0.5D) * 0.5D;
		double d5 = ((double) rand.nextFloat() - 0.5D) * 0.5D;
		int j = rand.nextInt(2) * 2 - 1;

		if (worldIn.getBlockState(pos.west()).getBlock() != this
				&& worldIn.getBlockState(pos.east()).getBlock() != this) {
			d0 = (double) pos.getX() + 0.5D + 0.25D * (double) j;
			d3 = (double) (rand.nextFloat() * 2.0F * (float) j);
		} else {
			d2 = (double) pos.getZ() + 0.5D + 0.25D * (double) j;
			d5 = (double) (rand.nextFloat() * 2.0F * (float) j);
		}

		worldIn.spawnParticle(EnumParticleTypes.PORTAL, d0, d1, d2, d3, d4, d5, new int[0]);
	}
}

/**
 * Convert the BlockState into the correct metadata value
 */
public int getMetaFromState(IBlockState state) {
	return getMetaForAxis((EnumFacing.Axis) state.getValue(AXIS));
}

/**
 * Returns the blockstate with the given rotation from the passed
 * blockstate. If inapplicable, returns the passed blockstate.
 */
public IBlockState withRotation(IBlockState state, Rotation rot) {
	switch (rot) {
	case COUNTERCLOCKWISE_90:
	case CLOCKWISE_90:

		switch ((EnumFacing.Axis) state.getValue(AXIS)) {
		case X:
			return state.withProperty(AXIS, EnumFacing.Axis.Z);
		case Z:
			return state.withProperty(AXIS, EnumFacing.Axis.X);
		default:
			return state;
		}

	default:
		return state;
	}
}

protected BlockStateContainer createBlockState() {
	return new BlockStateContainer(this, new IProperty[] { AXIS });
}

public static BlockPattern.PatternHelper createPatternHelper(World worldIn, BlockPos p_181089_2_) {
	EnumFacing.Axis enumfacing$axis = EnumFacing.Axis.Z;
	CheesePortal.Size blockportal$size = new CheesePortal.Size(worldIn, p_181089_2_, EnumFacing.Axis.X);
	LoadingCache<BlockPos, BlockWorldState> loadingcache = BlockPattern.createLoadingCache(worldIn, true);

	if (!blockportal$size.isValid()) {
		enumfacing$axis = EnumFacing.Axis.X;
		blockportal$size = new CheesePortal.Size(worldIn, p_181089_2_, EnumFacing.Axis.Z);
	}

	if (!blockportal$size.isValid()) {
		return new BlockPattern.PatternHelper(p_181089_2_, EnumFacing.NORTH, EnumFacing.UP, loadingcache, 1, 1, 1);
	} else {
		int[] aint = new int[EnumFacing.AxisDirection.values().length];
		EnumFacing enumfacing = blockportal$size.rightDir.rotateYCCW();
		BlockPos blockpos = blockportal$size.bottomLeft.up(blockportal$size.getHeight() - 1);

		for (EnumFacing.AxisDirection enumfacing$axisdirection : EnumFacing.AxisDirection.values()) {
			BlockPattern.PatternHelper blockpattern$patternhelper = new BlockPattern.PatternHelper(
					enumfacing.getAxisDirection() == enumfacing$axisdirection ? blockpos
							: blockpos.offset(blockportal$size.rightDir, blockportal$size.getWidth() - 1),
					EnumFacing.getFacingFromAxis(enumfacing$axisdirection, enumfacing$axis), EnumFacing.UP,
					loadingcache, blockportal$size.getWidth(), blockportal$size.getHeight(), 1);

			for (int i = 0; i < blockportal$size.getWidth(); ++i) {
				for (int j = 0; j < blockportal$size.getHeight(); ++j) {
					BlockWorldState blockworldstate = blockpattern$patternhelper.translateOffset(i, j, 1);

					if (blockworldstate.getBlockState() != null
							&& blockworldstate.getBlockState().getMaterial() != Material.AIR) {
						++aint[enumfacing$axisdirection.ordinal()];
					}
				}
			}
		}

		EnumFacing.AxisDirection enumfacing$axisdirection1 = EnumFacing.AxisDirection.POSITIVE;

		for (EnumFacing.AxisDirection enumfacing$axisdirection2 : EnumFacing.AxisDirection.values()) {
			if (aint[enumfacing$axisdirection2.ordinal()] < aint[enumfacing$axisdirection1.ordinal()]) {
				enumfacing$axisdirection1 = enumfacing$axisdirection2;
			}
		}

		return new BlockPattern.PatternHelper(
				enumfacing.getAxisDirection() == enumfacing$axisdirection1 ? blockpos
						: blockpos.offset(blockportal$size.rightDir, blockportal$size.getWidth() - 1),
				EnumFacing.getFacingFromAxis(enumfacing$axisdirection1, enumfacing$axis), EnumFacing.UP,
				loadingcache, blockportal$size.getWidth(), blockportal$size.getHeight(), 1);
	}
}

public static class Size {
	private final World world;
	private final EnumFacing.Axis axis;
	private final EnumFacing rightDir;
	private final EnumFacing leftDir;
	private int portalBlockCount;
	private BlockPos bottomLeft;
	private int height;
	private int width;

	public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_) {
		this.world = worldIn;
		this.axis = p_i45694_3_;

		if (p_i45694_3_ == EnumFacing.Axis.X) {
			this.leftDir = EnumFacing.EAST;
			this.rightDir = EnumFacing.WEST;
		} else {
			this.leftDir = EnumFacing.NORTH;
			this.rightDir = EnumFacing.SOUTH;
		}

		for (BlockPos blockpos = p_i45694_2_; p_i45694_2_.getY() > blockpos.getY() - 21 && p_i45694_2_.getY() > 0
				&& this.isEmptyBlock(
						worldIn.getBlockState(p_i45694_2_.down()).getBlock()); p_i45694_2_ = p_i45694_2_.down()) {
			;
		}

		int i = this.getDistanceUntilEdge(p_i45694_2_, this.leftDir) - 1;

		if (i >= 0) {
			this.bottomLeft = p_i45694_2_.offset(this.leftDir, i);
			this.width = this.getDistanceUntilEdge(this.bottomLeft, this.rightDir);

			if (this.width < 2 || this.width > 21) {
				this.bottomLeft = null;
				this.width = 0;
			}
		}

		if (this.bottomLeft != null) {
			this.height = this.calculatePortalHeight();
		}
	}

	protected int getDistanceUntilEdge(BlockPos p_180120_1_, EnumFacing p_180120_2_) {
		int i;

		for (i = 0; i < 22; ++i) {
			BlockPos blockpos = p_180120_1_.offset(p_180120_2_, i);

			if (!this.isEmptyBlock(this.world.getBlockState(blockpos).getBlock())
					|| this.world.getBlockState(blockpos.down()).getBlock() != CheeseBlocks.CHEESE_BLOCK) {
				break;
			}
		}

		Block block = this.world.getBlockState(p_180120_1_.offset(p_180120_2_, i)).getBlock();
		return block == CheeseBlocks.CHEESE_BLOCK ? i : 0;
	}

	public int getHeight() {
		return this.height;
	}

	public int getWidth() {
		return this.width;
	}

	protected int calculatePortalHeight() {
		label24:

		for (this.height = 0; this.height < 21; ++this.height) {
			for (int i = 0; i < this.width; ++i) {
				BlockPos blockpos = this.bottomLeft.offset(this.rightDir, i).up(this.height);
				Block block = this.world.getBlockState(blockpos).getBlock();

				if (!this.isEmptyBlock(block)) {
					break label24;
				}

				if (block == CheeseBlocks.CHEESE_PORTAL) {
					++this.portalBlockCount;
				}

				if (i == 0) {
					block = this.world.getBlockState(blockpos.offset(this.leftDir)).getBlock();

					if (block != CheeseBlocks.CHEESE_BLOCK) {
						break label24;
					}
				} else if (i == this.width - 1) {
					block = this.world.getBlockState(blockpos.offset(this.rightDir)).getBlock();

					if (block != CheeseBlocks.CHEESE_BLOCK) {
						break label24;
					}
				}
			}
		}

		for (int j = 0; j < this.width; ++j) {
			if (this.world.getBlockState(this.bottomLeft.offset(this.rightDir, j).up(this.height))
					.getBlock() != CheeseBlocks.CHEESE_BLOCK) {
				this.height = 0;
				break;
			}
		}

		if (this.height <= 21 && this.height >= 3) {
			return this.height;
		} else {
			this.bottomLeft = null;
			this.width = 0;
			this.height = 0;
			return 0;
		}
	}

	protected boolean isEmptyBlock(Block blockIn) {
		return blockIn.getMaterial(blockIn.getDefaultState()) == Material.AIR || blockIn == CheeseBlocks.CHEESE_FIRE
				|| blockIn == CheeseBlocks.CHEESE_PORTAL;
	}

	public boolean isValid() {
		return this.bottomLeft != null && this.width >= 2 && this.width <= 21 && this.height >= 3
				&& this.height <= 21;
	}

	public void placePortalBlocks() {
		for (int i = 0; i < this.width; ++i) {
			BlockPos blockpos = this.bottomLeft.offset(this.rightDir, i);

			for (int j = 0; j < this.height; ++j) {
				this.world.setBlockState(blockpos.up(j),
						CheeseBlocks.CHEESE_PORTAL.getDefaultState().withProperty(CheesePortal.AXIS, this.axis), 2);
			}
		}
	}
}
}

The crash

[16:00:16] [server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: net.minecraft.util.ReportedException: Colliding entity with block
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_77]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_77]
at net.minecraft.util.Util.runTask(Util.java:27) [util.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:753) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:698) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:156) [integratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:547) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_77]
Caused by: net.minecraft.util.ReportedException: Colliding entity with block
at net.minecraft.entity.Entity.moveEntity(Entity.java:999) ~[Entity.class:?]
at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:501) ~[NetHandlerPlayServer.class:?]
at net.minecraft.network.play.client.CPacketPlayer.processPacket(CPacketPlayer.java:36) ~[CPacketPlayer.class:?]
at net.minecraft.network.play.client.CPacketPlayer$PositionRotation.processPacket(CPacketPlayer.java:125) ~[CPacketPlayer$PositionRotation.class:?]
at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15) ~[PacketThreadUtil$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_77]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_77]
at net.minecraft.util.Util.runTask(Util.java:26) ~[util.class:?]
... 5 more
Caused by: java.lang.NullPointerException
at com.Kokkie.cheesemod.world.dimension.CheeseTeleporter.placeInExistingPortal(CheeseTeleporter.java:131) ~[CheeseTeleporter.class:?]
at com.Kokkie.cheesemod.world.dimension.CheeseTeleporter.placeInPortal(CheeseTeleporter.java:38) ~[CheeseTeleporter.class:?]
at net.minecraft.server.management.PlayerList.transferEntityToWorld(PlayerList.java:732) ~[PlayerList.class:?]
at net.minecraft.server.management.PlayerList.transferPlayerToDimension(PlayerList.java:639) ~[PlayerList.class:?]
at com.Kokkie.cheesemod.blocks.CheesePortal.onEntityCollidedWithBlock(CheesePortal.java:239) ~[CheesePortal.class:?]
at net.minecraft.entity.Entity.doBlockCollisions(Entity.java:1074) ~[Entity.class:?]
at net.minecraft.entity.Entity.moveEntity(Entity.java:992) ~[Entity.class:?]
at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:501) ~[NetHandlerPlayServer.class:?]
at net.minecraft.network.play.client.CPacketPlayer.processPacket(CPacketPlayer.java:36) ~[CPacketPlayer.class:?]
at net.minecraft.network.play.client.CPacketPlayer$PositionRotation.processPacket(CPacketPlayer.java:125) ~[CPacketPlayer$PositionRotation.class:?]
at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15) ~[PacketThreadUtil$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_77]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_77]
at net.minecraft.util.Util.runTask(Util.java:26) ~[util.class:?]
... 5 more

Classes: 94

Lines of code: 12173

Other files: 206

Github repo: https://github.com/KokkieBeer/DeGeweldigeMod

Posted
Caused by: java.lang.NullPointerException
at com.Kokkie.cheesemod.world.dimension.CheeseTeleporter.placeInExistingPortal(CheeseTeleporter.java:131) ~[CheeseTeleporter.class:?]

Well, there's something

null

on that line which is causing your issue. Use your debugger to figure out what.

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

if(null) { do one thing } else { do another}

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.

Guest
This topic is now closed to further replies.

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.