Jump to content

Recommended Posts

Posted

I have two blocks that don't seem to mark sub chunks as containing anything, so when there aren't any other blocks in the sub chunk it doesn't render.

 

My block classes:

BlockCatwalk

package com.thecodewarrior.catwalks;


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.MovingObjectPosition.MovingObjectType;
import net.minecraft.util.Vec3;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import buildcraft.api.tools.IToolWrench;
import codechicken.lib.raytracer.ExtendedMOP;
import codechicken.lib.raytracer.IndexedCuboid6;
import codechicken.lib.raytracer.RayTracer;
import codechicken.lib.vec.BlockCoord;
import codechicken.lib.vec.Cuboid6;
import codechicken.lib.vec.Vector3;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockCatwalk extends Block implements ICagedLadderConnectable {
public boolean lights;
public boolean bottom;

private RayTracer rayTracer = new RayTracer();


public IIcon transparent;

public IIcon sideTexture;
public IIcon bottomTexture;

public IIcon bottomTextureWithLights;
public IIcon sideTextureWithLights;

public IIcon bottomLights;
public IIcon sideLights;

public BlockCatwalk(boolean lights, boolean bottom) {
	super(Material.iron);
	setHardness(1.0F);
	setStepSound(Block.soundTypeMetal);
	setBlockName("catwalk");
	if(lights && !bottom)
		setCreativeTab(CreativeTabs.tabTransport);
//		setHarvestLevel("wrench", 0);
//		setHarvestLevel("pickaxe", 0);
	this.lights = lights;
	this.bottom = bottom;
}

//==============================================================================
// Clicking methods
//==============================================================================

public float getPlayerRelativeBlockHardness(EntityPlayer player, World world, int x, int y, int z){
	int metadata = world.getBlockMetadata(x, y, z);
	float hardness = blockHardness;

	if(player.getHeldItem() != null ) {
		boolean shouldBeSoft = false;
		if(player.getHeldItem().getItem() instanceof IToolWrench)
			shouldBeSoft = true;
		Set<String> toolClasses = player.getHeldItem().getItem().getToolClasses(player.getHeldItem());
		if(toolClasses.contains("wrench"))
			shouldBeSoft = true;

		if(shouldBeSoft)
			hardness = blockHardness/10;
	}

        return player.getBreakSpeed(this, false, metadata, x, y, z) / hardness / 30F;
}

@Override
public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) {
	MovingObjectPosition hit = RayTracer.retraceBlock(world, player, x, y, z);

	ForgeDirection side = ForgeDirection.UP;
	if (hit != null) {
		side = (ForgeDirection) ( (ExtendedMOP) hit ).data;
	}

	if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof IToolWrench) {
		if(player.isSneaking()) {

			this.dropBlockAsItem(world, x, y, z, 0, 0);
			world.setBlockToAir(x,y,z);
			this.updateNeighborSides(world, x, y, z, false);
		}
	}
}


@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int blockSide, float hitX, float hitY, float hitZ) {
	MovingObjectPosition hit = RayTracer.retraceBlock(world, player, x, y, z);

	ForgeDirection side = ForgeDirection.UP;
	if (hit != null) {
		side = (ForgeDirection) ( (ExtendedMOP) hit ).data;
	}

	if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof IToolWrench) {
		if(player.isSneaking()) {
			if(this.lights) {
				if(!world.isRemote) {
					world.spawnEntityInWorld(new EntityItem(world, x+0.5, y+0.5, z+0.5, new ItemStack(CatwalkMod.itemRopeLight, 1)));
					updateData(world, x, y, z, ForgeDirection.UP, false, false);
				}
			}
		} else {
			if(side != ForgeDirection.UP) {
				updateData(world,x,y,z, side, !getOpenState(world,x,y,z, side), this.lights);
			}
		}
	}

	if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemRopeLight && this.lights == false) {
		updateData(world, x, y, z, ForgeDirection.UP, false, true);
		if(!player.capabilities.isCreativeMode)
			player.getCurrentEquippedItem().stackSize--;
	}
//		
//		if()

	return false;
}

//==============================================================================
// Place/Destroy methods
//==============================================================================

    @Override
public void onBlockPlacedBy(World w, int x, int y, int z, EntityLivingBase e, ItemStack s) {
	updateNeighborSides(w,x,y,z,true);
}

public void onBlockDestroyedByPlayer(World w, int x, int y, int z, int meta) {
	updateNeighborSides(w,x,y,z,false);
}

public void onBlockDestroyedByExplosion(World w, int x, int y, int z, Explosion e) {
	updateNeighborSides(w,x,y,z,false);
}

//==============================================================================
// Drop methods
//==============================================================================

public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune)
{
    ArrayList<ItemStack> ret = new ArrayList<ItemStack>();

    ret.add(new ItemStack(
    		Item.getItemFromBlock(CatwalkMod.catwalkUnlitBottom),
    		1));
    if(this.lights) {
    	ret.add(new ItemStack(
    			CatwalkMod.itemRopeLight,
    			1
    		));
    }
    return ret;
}

public boolean canHarvestBlock(EntityPlayer player, int meta)
    {
        return true;
    }

//==============================================================================
// Block highlight raytrace methods
//==============================================================================

@Override
    public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 start, Vec3 end) {
        List<IndexedCuboid6> cuboids = new LinkedList<IndexedCuboid6>();
        
        float px = 1/16F;
    	int meta = world.getBlockMetadata(x, y, z);
//    	System.out.println("META: " + (meta & );
    	boolean ovr = false;
    	double d = 0;
    	float smallHeight = 0.25f;
    	if(bottom) {
    		d = 0.125;
    		//cuboids.add(new IndexedCuboid6(Hitboxes.BOTTOM, new Cuboid6(x+ px, y+ 0, z+ px, x+ 1-px, y+ px, z+ 1-px)));
    	} else {
    		d = 0.25;
    	}
    	cuboids.add(new IndexedCuboid6(ForgeDirection.DOWN, new Cuboid6(x+ d, y+ 0, z+ d, x+ 1-d, y+ px, z+ 1-d)));
    	float ym = 1;
    	
    	if((meta &  == 0 || ovr) { ym = 1; } else { ym = smallHeight; }
    	cuboids.add(new IndexedCuboid6(ForgeDirection.NORTH, new Cuboid6(
			x+ 0, 	y+ 0, 	z+ 0,
			x+ 1, 	y+ ym, 	z+ px
		)));
    	
    	
    	if((meta & 4) == 0 || ovr) { ym = 1; } else { ym = smallHeight; }
    	cuboids.add(new IndexedCuboid6(ForgeDirection.SOUTH, new Cuboid6(
			x+ 0, 	y+ 0, 	z+ 1-px,
			x+ 1, 	y+ ym, 	z+ 1
		)));
    	
    	
    	if((meta & 2) == 0 || ovr) { ym = 1; } else { ym = smallHeight; }
    	cuboids.add(new IndexedCuboid6(ForgeDirection.WEST, new Cuboid6(
			x+ 0, 	y+ 0, 	z+ 0,
			x+ px, 	y+ ym, 	z+ 1
		)));
    	
    	
    	if((meta & 1) == 0 || ovr) { ym = 1; } else { ym = smallHeight; }
    	cuboids.add(new IndexedCuboid6(ForgeDirection.EAST, new Cuboid6(
			x+ 1-px, y+ 0, 	z+ 0,
			x+ 1, 	 y+ ym, 	z+ 1
		)));
    	//new BlockCoord(x, y, z), this
        ExtendedMOP mop = (ExtendedMOP) rayTracer.rayTraceCuboids(new Vector3(start), new Vector3(end), cuboids, new BlockCoord(x, y, z), this);
        if(mop != null) {
        	if(mop.sideHit == ((ForgeDirection)mop.data).getOpposite().ordinal()) {
        		mop.sideHit = ((ForgeDirection)mop.data).ordinal();
        	
        	}
        }
        //        System.out.println(mop.data);
        return mop;
    }
    
    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public void onBlockHighlight(DrawBlockHighlightEvent event) {
        if (event.target.typeOfHit == MovingObjectType.BLOCK && event.player.worldObj.getBlock(event.target.blockX, event.target.blockY, event.target.blockZ) == this)
            RayTracer.retraceBlock(event.player.worldObj, event.player, event.target.blockX, event.target.blockY, event.target.blockZ);
    }
    
    //==============================================================================
// Collision methods
//==============================================================================

@Override
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
	if (FMLCommonHandler.instance().getEffectiveSide() != Side.CLIENT)
		return;
	double mul = 1.315;
	if(entity instanceof EntityPlayer && ( (EntityPlayer)entity).isSneaking() ) {
		mul = 2.860578;
	}
	CatwalkMod.proxy.speedupPlayer(world, entity, mul);
}

@Override
    public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB blockBounds, List list, Entity collidingEntity) {
    	
	if(collidingEntity == null)
		return;

	float px = 1/16F;
    	int meta = world.getBlockMetadata(x, y, z);
    	float top = 1.5F;
    	if(collidingEntity.isSneaking())
    		top = 1.0F;
    	
    	boolean ovr = false;
    	Cuboid6 oldBounds = new Cuboid6(
    			this.getBlockBoundsMinX(), this.getBlockBoundsMinY(), this.getBlockBoundsMinZ(),
    			this.getBlockBoundsMaxX(), this.getBlockBoundsMaxY(), this.getBlockBoundsMaxZ()
    		);
    	if(bottom) {
    		this.setBlockBounds(0, 0, 0, 1, px, 1);
            super.addCollisionBoxesToList(world, x, y, z, blockBounds, list, collidingEntity);
    	}
    	if((meta &  == 0 || ovr) {
    		if(getStepConnect(world,x,y,z,ForgeDirection.NORTH)) {
    			this.setBlockBounds(0, 0, 0, 1, 1, px);
    		} else {
    			this.setBlockBounds(0, 0, 0, 1, top, px);
    		}
            super.addCollisionBoxesToList(world, x, y, z, blockBounds, list, collidingEntity);
    	}
    	if((meta & 4) == 0 || ovr) {
    		if(getStepConnect(world,x,y,z,ForgeDirection.SOUTH)) {
    			this.setBlockBounds(0, 0, 1-px, 1, 1, 1);
    		} else {
    			this.setBlockBounds(0, 0, 1-px, 1, top, 1);
    		}
            super.addCollisionBoxesToList(world, x, y, z, blockBounds, list, collidingEntity);
    	}
    	if((meta & 2) == 0 || ovr) {
    		if(getStepConnect(world,x,y,z,ForgeDirection.WEST)) {
    			this.setBlockBounds(0, 0, 0, px, 1, 1);
    		} else {
    			this.setBlockBounds(0, 0, 0, px, top, 1);
    		}
            super.addCollisionBoxesToList(world, x, y, z, blockBounds, list, collidingEntity);
    	}
    	if((meta & 1) == 0 || ovr) {
    		if(getStepConnect(world,x,y,z,ForgeDirection.EAST)) {
    			this.setBlockBounds(1-px, 0, 0, 1, 1, 1);
    		} else {
    			this.setBlockBounds(1-px, 0, 0, 1, top, 1);    			
    		}
            super.addCollisionBoxesToList(world, x, y, z, blockBounds, list, collidingEntity);
    	}
    	
    	oldBounds.setBlockBounds(this);
//    	this.setBlockBounds(0, 0, 0, 1, 1, 1);
    }

public boolean getBlocksMovement(IBlockAccess p_149655_1_, int p_149655_2_, int p_149655_3_, int p_149655_4_)
{
    return false;
}

//==============================================================================
// Texture methods
//==============================================================================

@Override
public void registerBlockIcons(IIconRegister reg) {
	transparent   			= reg.registerIcon("catwalks:transparent");

	sideTexture   			= reg.registerIcon("catwalks:side");
	bottomTexture 			= reg.registerIcon("catwalks:bottom");

    sideTextureWithLights   = reg.registerIcon("catwalks:side_with_lights");
    bottomTextureWithLights = reg.registerIcon("catwalks:bottom_with_lights");
    
    sideLights   			= reg.registerIcon("catwalks:side_lights");
    bottomLights 			= reg.registerIcon("catwalks:bottom_lights");
}

@Override
public IIcon getIcon(int _side, int meta) {
	ForgeDirection dir = ForgeDirection.VALID_DIRECTIONS[_side];
	/**/
    if(dir == ForgeDirection.DOWN) {
		if(bottom) {
			return lights ? bottomTextureWithLights : bottomTexture;
		}
    }
    if(dir == ForgeDirection.NORTH && (meta &  < 1) {
    	return lights ? sideTextureWithLights : sideTexture;
    }
    if(dir == ForgeDirection.SOUTH && (meta & 4) < 1) {
    	return lights ? sideTextureWithLights : sideTexture;
    }
    if(dir == ForgeDirection.WEST && (meta & 2) < 1) {
    	return lights ? sideTextureWithLights : sideTexture;
    }
    if(dir == ForgeDirection.EAST && (meta & 1) < 1) {
    	return lights ? sideTextureWithLights : sideTexture;
    }
    return transparent; /**/
}

@Override
public boolean isSideSolid(IBlockAccess w, int x, int y, int z, ForgeDirection side) {
	return !getOpenState(w,x,y,z,side);//getOpenState(w, x-side.offsetX, y-side.offsetY, z-side.offsetZ, side.getOpposite());
}

@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockAccess w, int x, int y, int z, int _side)
{
	ForgeDirection dir = ForgeDirection.getOrientation(_side);
    int meta = w.getBlockMetadata(x-dir.offsetX, y-dir.offsetY, z-dir.offsetZ);

    if(dir == ForgeDirection.DOWN && (
    		bottom == false ||
    		( w.isSideSolid(x, y, z, ForgeDirection.UP, false) && !(w.getBlock(x,y,z) instanceof BlockCatwalk) )
    	)) {
    	return false;
    }
    if(dir == ForgeDirection.NORTH && (
    		(meta &  > 0 ||
    		( w.isSideSolid(x, y, z, ForgeDirection.SOUTH, false) && !(w.getBlock(x,y,z) instanceof BlockCatwalk) )
    	)) {
    	return false;
    }
    if(dir == ForgeDirection.SOUTH && (
    		(meta & 4) > 0 ||
    		( w.isSideSolid(x, y, z, ForgeDirection.NORTH, false) )// && !(w.getBlock(x,y,z) instanceof BlockCatwalk) )
    	)) {
    	return false;
    }
    if(dir == ForgeDirection.WEST && (
    		(meta & 2) > 0 ||
    		( w.isSideSolid(x, y, z, ForgeDirection.EAST, false) && !(w.getBlock(x,y,z) instanceof BlockCatwalk) )
    	)) {
    	return false;
    }
    if(dir == ForgeDirection.EAST && (
    		(meta & 1) > 0 ||
    		( w.isSideSolid(x, y, z, ForgeDirection.WEST, false) )// && !(w.getBlock(x,y,z) instanceof BlockCatwalk) )
    	)) {
    	return false;
    }
    return true;
}



/**
 * Gets the light value of the specified block coords. Args: x, y, z
 */
public int getLightValue()
{
    return this.lights ? 15 : 0;
}

public int getRenderType(){
    return CatwalkMod.catwalkRenderType;
}

@SideOnly(Side.CLIENT)
public int getRenderBlockPass()
{
    return 0;
}

public boolean isOpaqueCube()
{
    return false;
}
}

(I removed all the code for accessing data etc. here's the full class http://pastebin.com/HcXbYvVV)

 

BlockCagedLadder:

package com.thecodewarrior.catwalks;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import buildcraft.api.tools.IToolWrench;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.MovingObjectPosition.MovingObjectType;
import net.minecraft.util.Vec3;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.common.util.ForgeDirection;
import codechicken.lib.raytracer.ExtendedMOP;
import codechicken.lib.raytracer.IndexedCuboid6;
import codechicken.lib.raytracer.RayTracer;
import codechicken.lib.vec.BlockCoord;
import codechicken.lib.vec.Cuboid6;
import codechicken.lib.vec.Vector3;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockCagedLadder extends Block implements ICustomLadderVelocity, ICagedLadderConnectable {

RayTracer rayTracer = new RayTracer();

public ForgeDirection direction;
public boolean lights;

public IIcon bottom;
public IIcon bottom_with_lights;
public IIcon bottom_lights;

public IIcon ladder;
public IIcon ladder_with_lights;
public IIcon ladder_lights;

public IIcon front;
public IIcon front_with_lights;
public IIcon front_lights;

public IIcon side;
public IIcon side_with_lights;
public IIcon side_lights;

public IIcon landing;
public IIcon landing_side;

public IIcon transparent;

public Map<RelativeSide, Cuboid6> closed = new HashMap<RelativeSide, Cuboid6>();
public Map<RelativeSide, Cuboid6>   open = new HashMap<RelativeSide, Cuboid6>();

// meta: bottom, front, left, right

public BlockCagedLadder(ForgeDirection direction, boolean lights) {
	super(Material.iron);
	setHardness(1.0F);
	setStepSound(Block.soundTypeMetal);
	float px = 1/16F;
    	setBlockBounds(px, 0, px, 1-px, 1, 1-px);
	setBlockName("cagedladder");
	setStepSound(soundTypeLadder);
	if(direction == ForgeDirection.NORTH && !lights)
		setCreativeTab(CreativeTabs.tabTransport);
	setHarvestLevel("wrench", 0);
	setHarvestLevel("pickaxe", 0);
	this.lights = lights;
	this.direction = direction;
	initHitBoxes();
}

//==============================================================================
// Place/Destroy methods
//==============================================================================

    @Override
public void onBlockPlacedBy(World w, int x, int y, int z, EntityLivingBase e, ItemStack s) {
	updateNeighborSides(w,x,y,z,true);
}

public void onBlockDestroyedByPlayer(World w, int x, int y, int z, int meta) {
	updateNeighborSides(w,x,y,z,false);
}

public void onBlockDestroyedByExplosion(World w, int x, int y, int z, Explosion e) {
	updateNeighborSides(w,x,y,z,false);
}

public void updateNeighborSides(World world, int x, int y, int z, boolean self) {
	Block b = world.getBlock(x, y+1, z);
	if(b instanceof BlockCagedLadder) {
//			this.updateOpenData(world, x, y+1, z, RelativeSide.BOTTOM, false);
//			System.out.println("---");
		( (BlockCagedLadder)b ).updateBottom(world, x, y+1, z);
//			System.out.println("---");
	}
	if(self)
		this.updateBottom(world, x, y, z);
}

public void updateBottom(World world, int x, int y, int z) {
//		System.out.println("UPD");
	if(world.getBlock(x, y-1, z) instanceof BlockCagedLadder) {
		updateOpenData(world, x, y, z, RelativeSide.BOTTOM, true);
	} else {
		updateOpenData(world, x, y, z, RelativeSide.BOTTOM, false);
	}
}

//==============================================================================
// Clicking methods
//==============================================================================

public float getPlayerRelativeBlockHardness(EntityPlayer player, World world, int x, int y, int z){
	int metadata = world.getBlockMetadata(x, y, z);
	float hardness = blockHardness;

	if(player.getHeldItem() != null ) {
		boolean shouldBeSoft = false;
		if(player.getHeldItem().getItem() instanceof IToolWrench)
			shouldBeSoft = true;
		Set<String> toolClasses = player.getHeldItem().getItem().getToolClasses(player.getHeldItem());
		if(toolClasses.contains("wrench"))
			shouldBeSoft = true;

		if(shouldBeSoft)
			hardness = blockHardness/10;
	}

        return player.getBreakSpeed(this, false, metadata, x, y, z) / hardness / 30F;
}

@Override
public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) {
	MovingObjectPosition hit = RayTracer.retraceBlock(world, player, x, y, z);

	RelativeSide side = RelativeSide.TOP;
	if (hit != null) {
		side = (RelativeSide) ( (ExtendedMOP) hit ).data;
	}

//		if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof IToolWrench) {
//			if(player.isSneaking()) {
//
//				this.dropBlockAsItem(world, x, y, z, 0, 0);
//				world.setBlockToAir(x,y,z);
//				this.updateNeighborSides(world, x, y, z, false);
//			}
//		}
}

@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int blockSide, float hitX, float hitY, float hitZ) {
	MovingObjectPosition hit = RayTracer.retraceBlock(world, player, x, y, z);

	RelativeSide side = RelativeSide.TOP;
	if (hit != null) {
		side = (RelativeSide) ( (ExtendedMOP) hit ).data;
	}
//		System.out.println(side);

	ItemStack handStack = player.getCurrentEquippedItem();
	if(handStack != null && handStack.getItem() instanceof IToolWrench) {
		if(player.isSneaking()) {
			if(this.lights) {
				if(!world.isRemote) {
					world.spawnEntityInWorld(new EntityItem(world, x+0.5, y+0.5, z+0.5, new ItemStack(CatwalkMod.itemRopeLight, 1)));
					updateIdData(world, x, y, z, direction, false);
				}
			}
		} else {
//				System.out.println("META:  " + world.getBlockMetadata(x,y,z));
			updateOpenData(world, x, y, z, side, !isOpen(side, world.getBlockMetadata(x, y, z)));
//				System.out.println("META2: " + world.getBlockMetadata(x,y,z));
		}
	}

	if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemRopeLight && this.lights == false) {
		updateIdData(world, x, y, z, direction, true);
		if(!player.capabilities.isCreativeMode)
			player.getCurrentEquippedItem().stackSize--;
	}

	return false;
}

//==============================================================================
// ILadderCustomVelocity methods
//==============================================================================

@Override
    public boolean isOnLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
    {
	float px = 1/16F;
	float px2 = 2*px;
	float d = px*3;
        return CatwalkMod.options.fullBlockLadder || entity.boundingBox.intersectsWith(AxisAlignedBB.getBoundingBox(x+d, y, z+d, x+1-d, y+1, z+1-d));
    }

public double getLadderVelocity(IBlockAccess world, int x, int y, int z, EntityLivingBase entity) {
	return entity.isSneaking() ? 0.15D : 0.25D;
}

public double getLadderFallVelocity(IBlockAccess world, int x, int y, int z, EntityLivingBase entity) {
	return 0.25D;
}


//==============================================================================
// Block highlight raytrace methods
//==============================================================================

@Override
    public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 start, Vec3 end) {
        List<IndexedCuboid6> cuboids = new LinkedList<IndexedCuboid6>();
        
    	float ym = 1;
    	
    	float px = 1/16F;
	float px2 = 2*px;

	float outsideDistance = 1/32F;
	float insideDistance  = 3/32F;

	float out = px/2;
	float in = out+px;
    	
	int meta = world.getBlockMetadata(x, y, z);

	if(!(world.getBlock(x, y+1, z) instanceof BlockCagedLadder)) {
		addToList(x, y, z, cuboids, RelativeSide.TOP, open.get(RelativeSide.TOP));
	}

    	for (RelativeSide rs : RelativeSide.values()) {
		if(rs == RelativeSide.LADDER) {
			addToList(x, y, z, cuboids, rs, closed.get(rs));
			continue;
		}
		if(rs == RelativeSide.TOP) {
			continue;
		}
		if(isOpen(rs, meta)) {
			addToList(x, y, z, cuboids, rs, open.get(rs));
		} else {
			addToList(x, y, z, cuboids, rs, closed.get(rs));
		}
	}
    	
        ExtendedMOP mop = (ExtendedMOP) rayTracer.rayTraceCuboids(new Vector3(start), new Vector3(end), cuboids, new BlockCoord(x, y, z), this);
        if(mop != null) {
        	if(mop.sideHit == RelativeSide.RStoFD( (RelativeSide)mop.data, direction).getOpposite().ordinal()) {
        		mop.sideHit = ForgeDirection.getOrientation(mop.sideHit).getOpposite().ordinal();
        	}
        }
        //        System.out.println(mop.data);
        return mop;
    }
    
public void addToList(int x, int y, int z, List<IndexedCuboid6> list, Object data, Cuboid6 cuboid) {

	list.add( new IndexedCuboid6(data, new Cuboid6(
			x+cuboid.min.x, y+cuboid.min.y, z+cuboid.min.z,
			x+cuboid.max.x, y+cuboid.max.y, z+cuboid.max.z
			)) );
}

    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public void onBlockHighlight(DrawBlockHighlightEvent event) {
        if (event.target.typeOfHit == MovingObjectType.BLOCK && event.player.worldObj.getBlock(event.target.blockX, event.target.blockY, event.target.blockZ) == this)
            RayTracer.retraceBlock(event.player.worldObj, event.player, event.target.blockX, event.target.blockY, event.target.blockZ);
    }

//==============================================================================
// Texture methods
//==============================================================================

@Override
public void registerBlockIcons(IIconRegister reg) {
    transparent   		= reg.registerIcon("catwalks:transparent");
    
    bottom 				= reg.registerIcon("catwalks:ladder/bottom");
    bottom_with_lights	= reg.registerIcon("catwalks:ladder/bottom_with_lights");
    bottom_lights		= reg.registerIcon("catwalks:ladder/bottom_lights");
    
    ladder 				= reg.registerIcon("catwalks:ladder/ladder");
	ladder_with_lights 	= reg.registerIcon("catwalks:ladder/ladder_with_lights");
	ladder_lights 		= reg.registerIcon("catwalks:ladder/ladder_lights");

	front 				= reg.registerIcon("catwalks:ladder/front");
	front_with_lights 	= reg.registerIcon("catwalks:ladder/front_with_lights");
	front_lights 		= reg.registerIcon("catwalks:ladder/front_lights");

	side 				= reg.registerIcon("catwalks:ladder/side");
	side_with_lights 	= reg.registerIcon("catwalks:ladder/side_with_lights");
	side_lights 		= reg.registerIcon("catwalks:ladder/side_lights");

	landing 			= reg.registerIcon("catwalks:ladder/landing");
	landing_side		= reg.registerIcon("catwalks:ladder/landing_side");
}

@Override
public IIcon getIcon(int _side, int meta) {
	RelativeSide dir = RelativeSide.FDtoRS( ForgeDirection.getOrientation(_side), direction );

	switch(dir) {
	case LADDER:
		if(lights)
			return ladder_with_lights;
		else
			return ladder;
	case FRONT:
		if(lights)
			return front_with_lights;
		else
			return front;
	case LEFT:
	case RIGHT:
		if(lights)
			return side_with_lights;
		else
			return side;
	case BOTTOM:
		if(lights)
			return bottom_with_lights;
		else
			return bottom;
	}

    return transparent;
}

public IIcon getLightIcon(int _side, int meta) {
	RelativeSide dir = RelativeSide.FDtoRS( ForgeDirection.getOrientation(_side) , direction);

	switch(dir) {
	case LADDER:
		return ladder_lights;
	case FRONT:
		return front_lights;
	case LEFT:
	case RIGHT:
		return side_lights;
	case BOTTOM:
		return transparent;//bottom_lights;
	}

    return transparent;
}

@Override
public boolean isSideSolid(IBlockAccess w, int x, int y, int z, ForgeDirection side) {
	if(side == ForgeDirection.UP)
		return false;
	return !isOpen(RelativeSide.FDtoRS(side, direction), w.getBlockMetadata(x,y,z));
}

@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockAccess w, int x, int y, int z, int _side)
{
	ForgeDirection dir = ForgeDirection.getOrientation(_side);
	if(dir == ForgeDirection.DOWN) {
		if(w.isSideSolid(x, y, z, ForgeDirection.DOWN, false))
			return false;
	}
    int meta = w.getBlockMetadata(x-dir.offsetX, y-dir.offsetY, z-dir.offsetZ);

    if(isOpen(RelativeSide.FDtoRS(dir, direction), meta)) {
    	return false;
    }
    
    return true;
}


//==============================================================================
// Collision methods
//==============================================================================

@Override
    public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB blockBounds, List list, Entity collidingEntity) {
    	if(collidingEntity == null)
		return;

	float px = 1/16F;

	float out = px;///2;
	float in = out+px;
    	
	int meta = world.getBlockMetadata(x, y, z);
    	
    	if(!isOpen(RelativeSide.FDtoRS(ForgeDirection.NORTH, direction), meta)) {
    		addToList(world, x, y, z, blockBounds, list, out, 0, out, 1-out, 1, in);
    	}
    	
    	if(!isOpen(RelativeSide.FDtoRS(ForgeDirection.SOUTH, direction), meta)) {
    		addToList(world, x, y, z, blockBounds, list, out, 0, 1-out, 1-out, 1, 1-in);
    	}
    	
    	if(!isOpen(RelativeSide.FDtoRS(ForgeDirection.EAST, direction), meta)) {
    		addToList(world, x, y, z, blockBounds, list, 1-in, 0, out, 1-out, 1, 1-out);
    	}
    	
    	if(!isOpen(RelativeSide.FDtoRS(ForgeDirection.WEST, direction), meta)) {
    		addToList(world, x, y, z, blockBounds, list, out, 0, out, in, 1, 1-out);
    	}
    }

public void addToList(World world, int x, int y, int z, AxisAlignedBB blockBounds, List list, double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
	AxisAlignedBB axisalignedbb1 = AxisAlignedBB.getBoundingBox(
        		(double)x + minX, (double)y + minY, (double)z + minZ,
        		(double)x + maxX, (double)y + maxY, (double)z + maxZ
        		);
        		
	if (axisalignedbb1 != null && blockBounds.intersectsWith(axisalignedbb1))
        {
            list.add(axisalignedbb1);
        }
}

@Override
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {

//		System.out.println("COLLIDE!");
}

//==============================================================================
// Render type methods
//==============================================================================

public int getRenderType(){
    return CatwalkMod.ladderRenderType;
}

@SideOnly(Side.CLIENT)
public int getRenderBlockPass()
{
    return 0;
}

public boolean isOpaqueCube()
{
    return false;
}

@SideOnly(Side.CLIENT)
public boolean isBlockNormalCube()
{
    return super.isBlockNormalCube();
}

public boolean isNormalCube()
{
    return false;
}

public static enum RelativeSide {
	LADDER, FRONT, LEFT, RIGHT, TOP, BOTTOM;
}
}

(I removed all the code for accessing data etc. here's the full class http://pastebin.com/8z2dUkAj)

 

The code for the BlockCagedLadder ISBRH is quite complex (~400 lines), so unless you want it I'll just leave it out.

package com.thecodewarrior.catwalks;

import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;

public class CatwalkRenderer implements ISimpleBlockRenderingHandler {

@Override
public void renderInventoryBlock(Block block, int meta, int modelId,
		RenderBlocks renderer) {
	boolean lights = false;
	boolean bottom = true;
	if(block instanceof BlockCatwalk) {
		lights = ( (BlockCatwalk)block).lights;
		bottom = ( (BlockCatwalk)block).bottom;
	}

	renderer.overrideBlockBounds(0, 0, 0, 1, 1, 1);
	 Tessellator tessellator = Tessellator.instance;
    GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
    tessellator.startDrawingQuads();
    
    renderer.renderFromInside = true;
    renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta));
    renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta));
    renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta));
    renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta));
    renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta));
    renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta));
    
    renderer.renderFromInside = false;
    renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta));
    renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta));
    renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta));
    renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta));
    renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta));
    renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta));
    
    tessellator.draw();
    GL11.glTranslatef(0.5F, 0.5F, 0.5F);
    
    renderer.unlockBlockBounds();
}

@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z,
		Block block, int modelId, RenderBlocks renderer) {

	boolean lights = false;
	boolean bottom = true;
	if(block instanceof BlockCatwalk) {
		lights = ( (BlockCatwalk)block).lights;
		bottom = ( (BlockCatwalk)block).bottom;
	}

//		renderer.renderFromInside = true;
//		renderer.renderStandardBlock(block, x, y, z);
//		RenderBlocks renderer = new RenderBlocks(world);
//		renderer.setRenderFromInside(true);
//		renderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
	renderer.overrideBlockBounds(0, 0, 0, 1, 1, 1);
	renderer.renderFromInside = true;
	renderer.renderStandardBlock(block, x, y, z);
	renderer.renderFromInside = false;
	renderer.renderStandardBlock(block, x, y, z);
	boolean force = false;
	if(lights) {
		BlockCatwalk b = ((BlockCatwalk) block);

		boolean oldAO = renderer.enableAO;
		renderer.enableAO = false;

		Tessellator.instance.setBrightness(15728880);

		renderer.renderFromInside = true;

		if( b.shouldSideBeRendered(world, x, y-1, z, 0) || force)
			renderer.renderFaceYNeg(b, x, y, z, b.bottomLights);
		if( b.shouldSideBeRendered(world, x, y, z-1, 2) || force)
			renderer.renderFaceZNeg(b, x, y, z, b.sideLights);
		if( b.shouldSideBeRendered(world, x, y, z+1, 3) || force)
			renderer.renderFaceZPos(b, x, y, z, b.sideLights);
		if( b.shouldSideBeRendered(world, x-1, y, z, 4) || force )
			renderer.renderFaceXNeg(b, x, y, z, b.sideLights);
		if( b.shouldSideBeRendered(world, x+1, y, z, 5) || force )
			renderer.renderFaceXPos(b, x, y, z, b.sideLights);

		renderer.renderFromInside = false;

		if( b.shouldSideBeRendered(world, x, y-1, z, 0) || force)
			renderer.renderFaceYNeg(b, x, y, z, b.bottomLights);
		if( b.shouldSideBeRendered(world, x, y, z-1, 2) || force)
			renderer.renderFaceZNeg(b, x, y, z, b.sideLights);
		if( b.shouldSideBeRendered(world, x, y, z+1, 3) || force)
			renderer.renderFaceZPos(b, x, y, z, b.sideLights);
		if( b.shouldSideBeRendered(world, x-1, y, z, 4) || force )
			renderer.renderFaceXNeg(b, x, y, z, b.sideLights);
		if( b.shouldSideBeRendered(world, x+1, y, z, 5) || force )
			renderer.renderFaceXPos(b, x, y, z, b.sideLights);

		renderer.enableAO = oldAO;
	}
	renderer.unlockBlockBounds();
	renderer.clearOverrideBlockTexture();
	return false;
}

@Override
public boolean shouldRender3DInInventory(int modelId) {
	return true;
}

@Override
public int getRenderId() {
	return CatwalkMod.catwalkRenderType;
}

}

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

    • java.lang.IllegalArgumentException: Can't find attribute minecraft:generic.attack_knockback having the same problem as this one: https://forums.minecraftforge.net/topic/151258-some-kind-of-issue-with-lycanites-mobs-and-the-knockback-attribute/ also my report on Lycanites Issue page(crash log included): https://gitlab.com/Lycanite/LycanitesMobs/-/issues/951
    • I just removed that mod as well and it's still stuck on 100% loading and does still not go past it. all of my modded maps are so unplayable, i like, have no idea what to do https://mclo.gs/XHWCu5M
    • Here is the newest crash report because I've been trying to fix the problem for hours, please help me also its "error code -1"   ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 2024-11-27 15:43:43 Description: Rendering screen java.lang.NoClassDefFoundError: org/spongepowered/asm/synthetic/args/Args$1     at net.minecraft.client.gui.GuiGraphics.m_280677_(GuiGraphics.java:562) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.GuiGraphics.renderTooltip(GuiGraphics.java:556) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventory.AbstractContainerScreen.m_280072_(AbstractContainerScreen.java:163) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:attributeslib.mixins.json:client.AbstractContainerScreenMixin,pl:mixin:APP:majruszlibrary-forge.mixins.json:MixinAbstractContainerScreen,plasmixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventoasasry.CreativeModeInventoryScreen.m_88315_(CreativeModeInventoryScreen.java:650) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_280264_(Screen.java:109) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenIgnoreRenderAfterOverlayMixin,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.ForgeHooksClient.drawScreenInternal(ForgeHooksClient.java:427) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin}     at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:420) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:965) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:jeg.mixins.json:client.GameRendererMixin,pl:mixin:APP:alexscaves.mixins.json:client.GameRendererMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.compat.MixinGameRenderer,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-47.3.0.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} Caused by: java.lang.ClassNotFoundException: org.spongepowered.asm.synthetic.args.Args$1     at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.10.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.10.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}     ... 26 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Suspected Mods: NONE Stacktrace:     at net.minecraft.client.gui.GuiGraphics.m_280677_(GuiGraphics.java:562) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.GuiGraphics.renderTooltip(GuiGraphics.java:556) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventory.AbstractContainerScreen.m_280072_(AbstractContainerScreen.java:163) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:attributeslib.mixins.json:client.AbstractContainerScreenMixin,pl:mixin:APP:majruszlibrary-forge.mixins.json:MixinAbstractContainerScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen.m_88315_(CreativeModeInventoryScreen.java:650) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_280264_(Screen.java:109) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenIgnoreRenderAfterOverlayMixin,pl:mixin:APP:CustomCursor-comm-common.mixins.json:ScreenMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.ForgeHooksClient.drawScreenInternal(ForgeHooksClient.java:427) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin}     at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:420) ~[forge-1.20.1-47.3.0-universal.jar%23355!/:?] {re:classloading,re:mixin} -- Screen render details -- Details:     Screen name: net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen     Mouse location: Scaled: (273, 153). Absolute: (546.000000, 307.000000)     Screen size: Scaled: (547, 308). Absolute: (1093, 615). Scale factor of 2.000000 Stacktrace:     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:965) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:jeg.mixins.json:client.GameRendererMixin,pl:mixin:APP:alexscaves.mixins.json:client.GameRendererMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.compat.MixinGameRenderer,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-47.3.0.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} -- Affected level -- Details:     All players: 1 total; [LocalPlayer['muglad'/4, l='ClientLevel', x=11.34, y=-62.50, z=7.05]]     Chunk stats: 529, 313     Level dimension: minecraft:overworld     Level spawn location: World: (0,-63,0), Section: (at 0,1,0 in 0,-4,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)     Level time: 522 game time, 522 day time     Server brand: forge     Server type: Integrated singleplayer server Stacktrace:     at net.minecraft.client.multiplayer.ClientLevel.m_6026_(ClientLevel.java:455) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:client.ClientLevelMixin,pl:mixin:APP:architectury.mixins.json:MixinClientLevel,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinClientLevel,pl:mixin:APP:starlight.mixins.json:client.world.ClientLevelMixin,pl:mixin:APP:alexscaves.mixins.json:client.ClientLevelMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91354_(Minecraft.java:2319) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:735) ~[client-1.20.1-20230612.114412-srg.jar%23350!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:alexscaves.mixins.json:client.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.world_leaks.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.concurrency.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.blast_search_trees.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftMixin,pl:mixin:APP:modernfix-common.mixins.json:feature.measure_time.MinecraftMixin,pl:mixin:APP:modernfix-forge.mixins.json:feature.measure_time.MinecraftMixin_Forge,pl:mixin:APP:bookshelf.common.mixins.json:accessors.client.AccessorMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:monolib.mixins.json:MinecraftMixin,pl:mixin:APP:majruszlibrary-common.mixins.json:MixinMinecraft,pl:mixin:APP:jeg.mixins.json:client.MinecraftMixin,pl:mixin:APP:immediatelyfast-common.mixins.json:core.MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-47.3.0.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.3.0.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: Yes     Packs: vanilla, mod_resources -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 17.0.8, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 1400903168 bytes (1336 MiB) / 3370123264 bytes (3214 MiB) up to 4261412864 bytes (4064 MiB)     CPUs: 4     Processor Vendor: GenuineIntel     Processor Name: 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz     Identifier: Intel64 Family 6 Model 140 Stepping 1     Microarchitecture: Tiger Lake     Frequency (GHz): 3.00     Number of physical packages: 1     Number of physical CPUs: 2     Number of logical CPUs: 4     Graphics card #0 name: Intel(R) UHD Graphics     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MB): 128.00     Graphics card #0 deviceId: 0x9a78     Graphics card #0 versionInfo: DriverVersion=31.0.101.5186     Memory slot #0 capacity (MB): 4096.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 4096.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MB): 19346.77     Virtual memory used (MB): 17116.04     Swap memory total (MB): 11511.14     Swap memory used (MB): 2066.14     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx4064m -Xms256m     Launched Version: forge-47.3.0     Backend library: LWJGL version 3.3.1 build 7     Backend API: Intel(R) UHD Graphics GL version 4.6.0 - Build 31.0.101.5186, Intel     Window size: 1093x615     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'     Type: Integrated Server (map_client.txt)     Graphics mode: fast     Resource Packs:      Current Language: en_us     CPU: 4x 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz     Server Running: true     Player Count: 1 / 8; [ServerPlayer['muglad'/4, l='ServerLevel[New Worldassssssssssssasasas]', x=11.34, y=-62.50, z=7.05]]     Data Packs: vanilla, mod:elevated_enchantment, mod:treechopper (incompatible), mod:quarryplus, mod:geckolib, mod:playeranimator (incompatible), mod:placebo (incompatible), mod:modernfix (incompatible), mod:citadel (incompatible), mod:mixinextras (incompatible), mod:morebuckets, mod:botanypotstiers (incompatible), mod:bookshelf, mod:ironshulkerbox, mod:ironbookshelves, mod:raw_iron_block_can_be_heated, mod:iron_extra_things, mod:cloth_config (incompatible), mod:more_villager_trades, mod:ironbows (incompatible), mod:industrialforegoing (incompatible), mod:farmersdelight, mod:iron_ender_chests, mod:ironfurnaces, mod:structurecompass, mod:lionfishapi (incompatible), mod:mysticaladaptations, mod:maxxam_aiot, mod:structureexpansion (incompatible), mod:patchouli (incompatible), mod:ironchests (incompatible), mod:advancednetherite, mod:mysticalagriculturedelight, mod:gk_unbreakable (incompatible), mod:attributeslib (incompatible), mod:mysticalcustomization, mod:mifa, mod:resourcefullib (incompatible), mod:veinst, mod:architectury (incompatible), mod:squatgrow (incompatible), mod:xenotech (incompatible), mod:monolib (incompatible), mod:disenchanting_table (incompatible), mod:more_bows_and_arrows (incompatible), mod:hasteenchantment, mod:quad (incompatible), mod:ironcoals (incompatible), mod:framework, mod:nebs (incompatible), mod:majruszlibrary (incompatible), mod:fixed_netherite, mod:x_player_info (incompatible), mod:cucumber, mod:jeg (incompatible), mod:ironladders, mod:attributefix (incompatible), mod:configlibtxf, mod:fortune_on_netherite_forge, mod:caelus (incompatible), mod:enchantment_reveal (incompatible), mod:botanypots (incompatible), mod:starlight (incompatible), mod:grand_enchantment_table, mod:iron_bushes, mod:iron_fishing_rods, mod:puzzlesaccessapi, mod:forge, mod:more_wandering_trades, mod:mctb (incompatible), mod:mteg (incompatible), mod:mysticalagriculture, mod:mysticalagradditions, mod:matc, mod:mysticriftsmelt_ancient_debris, mod:more_underground_structures, mod:lucky (incompatible), mod:aurorasarsenal (incompatible), mod:alexscaves, mod:more_useful_copper (incompatible), mod:enchdesc (incompatible), mod:customcursorcomm (incompatible), mod:titanium (incompatible), mod:mysterious_mountain_lib (incompatible), mod:ironspawners, mod:enchlevellangpatch (incompatible), mod:vtaw_mw (incompatible), mod:mr_reds_morestructures, mod:watching, mod:ironbarrels, mod:mysticalexpansion, mod:easy_emerald, mod:more_beautiful_torches (incompatible), mod:universalenchants, mod:immediatelyfast (incompatible), mod:moremobvariants, mod:ferritecore (incompatible), mod:mvw, mod:puzzleslib, mod:overpowered_creative_items, mod:overloadedarmorbar (incompatible), mod:overflowingbars     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.5.jar eventbus PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.3.0.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@null         [email protected]         javafml@null     Mod List:          Elevated enchantment-forge_1.20.1.jar             |Elevated enchantment          |elevated_enchantment          |1.0.0               |DONE      |Manifest: NOSIGNATURE         treechopper-1.0.0.jar                             |TreeChopper                   |treechopper                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         AdditionalEnchantedMiner-1.20.1-1201.1.90.jar     |QuarryPlus                    |quarryplus                    |1201.1.90           |DONE      |Manifest: ef:50:af:b3:03:e0:3e:70:a7:ef:78:77:a5:4d:d4:b5:07:ec:df:9d:d6:f3:12:13:c9:3c:cd:9a:0a:3e:6b:43         geckolib-forge-1.20.1-4.4.9.jar                   |GeckoLib 4                    |geckolib                      |4.4.9               |DONE      |Manifest: NOSIGNATURE         player-animation-lib-forge-1.0.2-rc1+1.20.jar     |Player Animator               |playeranimator                |1.0.2-rc1+1.20      |DONE      |Manifest: NOSIGNATURE         Placebo-1.20.1-8.6.2.jar                          |Placebo                       |placebo                       |8.6.2               |DONE      |Manifest: NOSIGNATURE         modernfix-forge-5.19.5+mc1.20.1.jar               |ModernFix                     |modernfix                     |5.19.5+mc1.20.1     |DONE      |Manifest: NOSIGNATURE         citadel-2.6.0-1.20.1.jar                          |Citadel                       |citadel                       |2.6.0               |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.4.1.jar                       |MixinExtras                   |mixinextras                   |0.4.1               |DONE      |Manifest: NOSIGNATURE         MoreBuckets-1.20.1-4.0.4.jar                      |More Buckets                  |morebuckets                   |4.0.4               |DONE      |Manifest: NOSIGNATURE         BotanyPotsTiers-Forge-1.20.1-6.0.1.jar            |BotanyPotsTiers               |botanypotstiers               |6.0.1               |DONE      |Manifest: NOSIGNATURE         Bookshelf-Forge-1.20.1-20.2.13.jar                |Bookshelf                     |bookshelf                     |20.2.13             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         ironshulkerbox-1.20.1-5.3.2.jar                   |Iron Shulker Boxes            |ironshulkerbox                |1.20.1-5.3.2        |DONE      |Manifest: NOSIGNATURE         ironbookshelves-1.20.1-1.4.0-forge.jar            |Iron Bookshelves              |ironbookshelves               |1.20.1-1.4.0-forge  |DONE      |Manifest: NOSIGNATURE         raw_iron_block_can_heated-1.0.0-forge-1.20.1.jar  |Raw Iron Block can be heated  |raw_iron_block_can_be_heated  |1.0.0               |DONE      |Manifest: NOSIGNATURE         Iron Extra Things 1.0.6.jar                       |Iron Extra Things             |iron_extra_things             |1.0.5               |DONE      |Manifest: NOSIGNATURE         cloth-config-11.1.136-forge.jar                   |Cloth Config v10 API          |cloth_config                  |11.1.136            |DONE      |Manifest: NOSIGNATURE         More Villager Trades 1.0.0 - 1.20.1.jar           |More Villager Trades          |more_villager_trades          |1.0.0               |DONE      |Manifest: NOSIGNATURE         ironbows-1.20.1-FORGE-1.10.jar                    |Iron Bows (Forge)             |ironbows                      |1.20.1-FORGE-1.10   |DONE      |Manifest: NOSIGNATURE         industrial-foregoing-1.20.1-3.5.19.jar            |Industrial Foregoing          |industrialforegoing           |3.5.19              |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.5.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.5        |DONE      |Manifest: NOSIGNATURE         iron_ender_chests-1.20-1.0.3.jar                  |Iron Ender Chests             |iron_ender_chests             |1.20-1.0.3          |DONE      |Manifest: NOSIGNATURE         ironfurnaces-1.20.1-4.1.6.jar                     |Iron Furnaces                 |ironfurnaces                  |4.1.6               |DONE      |Manifest: NOSIGNATURE         StructureCompass-1.20.1-2.1.0.jar                 |Structure Compass Mod         |structurecompass              |2.1.0               |DONE      |Manifest: NOSIGNATURE         lionfishapi-2.4-Fix.jar                           |LionfishAPI                   |lionfishapi                   |2.4-Fix             |DONE      |Manifest: NOSIGNATURE         MysticalAdaptations-1.20.1-1.0.1.jar              |Mystical Adaptations          |mysticaladaptations           |1.20.1-1.0.1        |DONE      |Manifest: NOSIGNATURE         AIOT 1.20.1 (v2.3) by 96maxxam69.jar              |maxxam AIOTs                  |maxxam_aiot                   |2.3                 |DONE      |Manifest: NOSIGNATURE         structure-expansion-2.0.1-build.11.jar            |Structure Expansion           |structureexpansion            |2.0.1-build.11      |DONE      |Manifest: NOSIGNATURE         Patchouli-1.20.1-84-FORGE.jar                     |Patchouli                     |patchouli                     |1.20.1-84-FORGE     |DONE      |Manifest: NOSIGNATURE         ironchests-5.0.2-forge.jar                        |Iron Chests: Restocked        |ironchests                    |5.0.2               |DONE      |Manifest: NOSIGNATURE         advancednetherite-forge-2.1.3-1.20.1.jar          |Advanced Netherite            |advancednetherite             |2.1.3               |DONE      |Manifest: NOSIGNATURE         mysticalagriculturedelight-1.0.2-1.20.1.jar       |Mystical Agriculture Delight  |mysticalagriculturedelight    |1.0.2-1.20.1        |DONE      |Manifest: NOSIGNATURE         gk_unbreakable-2.7.jar                            |Simple Unbreakable Tools      |gk_unbreakable                |2.7                 |DONE      |Manifest: NOSIGNATURE         ApothicAttributes-1.20.1-1.3.7.jar                |Apothic Attributes            |attributeslib                 |1.3.7               |DONE      |Manifest: NOSIGNATURE         MysticalCustomization-1.20.1-5.0.2.jar            |Mystical Customization        |mysticalcustomization         |5.0.2               |DONE      |Manifest: NOSIGNATURE         mifa-forge-1.20.x-1.1.1.jar                       |More Industrial Foregoing Addo|mifa                          |1.1.1               |DONE      |Manifest: NOSIGNATURE         resourcefullib-forge-1.20-2.0.6.jar               |Resourceful Lib               |resourcefullib                |2.0.6               |DONE      |Manifest: NOSIGNATURE         veinst-1.0.0.jar                                  |Veinst                        |veinst                        |1.0.0               |DONE      |Manifest: NOSIGNATURE         architectury-9.2.14-forge.jar                     |Architectury                  |architectury                  |9.2.14              |DONE      |Manifest: NOSIGNATURE         squatgrow-forge-5.3.0+mc1.20.1.jar                |Squat Grow                    |squatgrow                     |5.3.0+mc1.20.1      |DONE      |Manifest: NOSIGNATURE         xenotech-1.20.1-1.17.jar                          |XenoTech                      |xenotech                      |1.20.1-1.17         |DONE      |Manifest: NOSIGNATURE         monolib-forge-1.20.1-1.4.1.jar                    |MonoLib                       |monolib                       |1.4.1               |DONE      |Manifest: NOSIGNATURE         disenchanting_table-merged-1.20.1-3.1.0.jar       |Dis-Enchanting Table          |disenchanting_table           |3.1.0               |DONE      |Manifest: NOSIGNATURE         more_bows_and_arrows-merged-1.20.1-3.2.0.jar      |More Bows and Arrows          |more_bows_and_arrows          |3.2.0               |DONE      |Manifest: NOSIGNATURE         Haste Enchantment 1.0.0 - 1.20.1.jar              |Haste Enchantment             |hasteenchantment              |1.0.0               |DONE      |Manifest: NOSIGNATURE         Quad-1.2.9+1.20.4-Forge.jar                       |Quad                          |quad                          |1.2.9               |DONE      |Manifest: NOSIGNATURE         ironcoals-4.1.6.jar                               |Iron Coals                    |ironcoals                     |4.1.6               |DONE      |Manifest: NOSIGNATURE         framework-forge-1.20.1-0.7.12.jar                 |Framework                     |framework                     |0.7.12              |DONE      |Manifest: 0d:78:5f:44:c0:47:0c:8c:e2:63:a3:04:43:d4:12:7d:b0:7c:35:37:dc:40:b1:c1:98:ec:51:eb:3b:3c:45:99         NekosEnchantedBooks-1.20.1-1.8.0.jar              |Neko's Enchanted Books        |nebs                          |1.8.0               |DONE      |Manifest: NOSIGNATURE         majrusz-library-forge-1.20.1-7.0.8.jar            |Majrusz Library               |majruszlibrary                |7.0.8               |DONE      |Manifest: NOSIGNATURE         ReworkedNetheriteV2.jar                           |Fixed netherite               |fixed_netherite               |1.0.0               |DONE      |Manifest: NOSIGNATURE         X-PlayerInfo-1.20.1-1.0.8.1-SNAPSHOT.jar          |X-PlayerInfo                  |x_player_info                 |1.20.1-1.0.8.1-SNAPS|DONE      |Manifest: NOSIGNATURE         Cucumber-1.20.1-7.0.13.jar                        |Cucumber Library              |cucumber                      |7.0.13              |DONE      |Manifest: NOSIGNATURE         JustEnoughGuns-0.8.0-1.20.1.jar                   |Just Enough Guns              |jeg                           |0.8.0               |DONE      |Manifest: NOSIGNATURE         ironladders-1.20.1-2.5.10-forge.jar               |Iron Ladders                  |ironladders                   |2.5.10              |DONE      |Manifest: NOSIGNATURE         AttributeFix-Forge-1.20.1-21.0.4.jar              |AttributeFix                  |attributefix                  |21.0.4              |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         configlibtxf-4.2.5-forge.jar                      |ConfigLib TXF                 |configlibtxf                  |4.2.5-forge         |DONE      |Manifest: NOSIGNATURE         fortune_on_netherite_1.1.0_forge_1.20.1.jar       |Fortune on Netherite forge    |fortune_on_netherite_forge    |1.0.0               |DONE      |Manifest: NOSIGNATURE         caelus-forge-3.2.0+1.20.1.jar                     |Caelus API                    |caelus                        |3.2.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         Enchantment-Reveal-1.20.1-Forge.jar               |Enchantment Reveal            |enchantment_reveal            |1.0.0               |DONE      |Manifest: NOSIGNATURE         BotanyPots-Forge-1.20.1-13.0.39.jar               |BotanyPots                    |botanypots                    |13.0.39             |DONE      |Manifest: NOSIGNATURE         starlight-1.1.2+forge.1cda73c.jar                 |Starlight                     |starlight                     |1.1.2+forge.1cda73c |DONE      |Manifest: NOSIGNATURE         Grand Enchantment Table 1.0.0 - 1.20.1.jar        |Grand Enchantment Table       |grand_enchantment_table       |1.0.0               |DONE      |Manifest: NOSIGNATURE         Iron Bushes 1.0.0 - 1.20.1.jar                    |Iron Bushes                   |iron_bushes                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         Iron Fishing Rods 1.0.0 - 1.20.1.jar              |Iron Fishing Rods             |iron_fishing_rods             |1.0.0               |DONE      |Manifest: NOSIGNATURE         puzzlesaccessapi-forge-8.0.7.jar                  |Puzzles Access Api            |puzzlesaccessapi              |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         forge-1.20.1-47.3.0-universal.jar                 |Forge                         |forge                         |47.3.0              |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         More Wandering Trades 1.0.0 - 1.20.1.jar          |More Wandering Trades         |more_wandering_trades         |1.0.0               |DONE      |Manifest: NOSIGNATURE         [1.20.1]MoreCraftingTables-5.1.3.jar              |More Crafting Tables Mod      |mctb                          |1.20.1              |DONE      |Manifest: NOSIGNATURE         M'TEG-1.1.0-1.20.1.jar                            |Mo' Than Enough Guns          |mteg                          |1.1.0               |DONE      |Manifest: NOSIGNATURE         MysticalAgriculture-1.20.1-7.0.14.jar             |Mystical Agriculture          |mysticalagriculture           |7.0.14              |DONE      |Manifest: NOSIGNATURE         MysticalAgradditions-1.20.1-7.0.6.jar             |Mystical Agradditions         |mysticalagradditions          |7.0.6               |DONE      |Manifest: NOSIGNATURE         matc-1.6.0.jar                                    |Mystical Agriculture Tiered Cr|matc                          |1.6.0               |DONE      |Manifest: NOSIGNATURE         client-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         mysticriftsmelt_ancient_debris-1.2.2-forge-1.20.1.|MysticRift:Smelt Ancient Debri|mysticriftsmelt_ancient_debris|1.2.2               |DONE      |Manifest: NOSIGNATURE         more_undrground_structures_1.20.1_8.1.jar         |more underground structures   |more_underground_structures   |7.1.0               |DONE      |Manifest: NOSIGNATURE         lucky-block-forge-1.20.1-13.0.jar                 |Lucky Block                   |lucky                         |1.20.1-13.0         |DONE      |Manifest: NOSIGNATURE         Aurora's-Arsenal-1.0.0-1.20.1.jar                 |Aurora's Arsenal              |aurorasarsenal                |1.0.0               |DONE      |Manifest: NOSIGNATURE         alexscaves-2.0.2.jar                              |Alex's Caves                  |alexscaves                    |2.0.2               |DONE      |Manifest: NOSIGNATURE         more_useful_copper-merged-1.20.1-1.2.0.jar        |More Useful Copper            |more_useful_copper            |1.2.0               |DONE      |Manifest: NOSIGNATURE         EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar  |EnchantmentDescriptions       |enchdesc                      |17.1.19             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         CustomCursor-comm-1.2.0-forge.jar                 |customcursorcomm              |customcursorcomm              |1.0-SNAPSHOT        |DONE      |Manifest: NOSIGNATURE         titanium-1.20.1-3.8.32.jar                        |Titanium                      |titanium                      |3.8.32              |DONE      |Manifest: NOSIGNATURE         mysterious_mountain_lib-1.5.17-1.20.1.jar         |Mysterious Mountain Lib       |mysterious_mountain_lib       |1.5.17-1.20.1       |DONE      |Manifest: NOSIGNATURE         ironspawners-1.0.0.jar                            |Iron Spawners                 |ironspawners                  |1.0.0               |DONE      |Manifest: NOSIGNATURE         enchlevel-langpatch-2.2.8.jar                     |Enchantment Level Language Pat|enchlevellangpatch            |2.2.8               |DONE      |Manifest: NOSIGNATURE         vtaw_mw-forge-1.20.1-1.0.4.jar                    |Variant Tools and Weaponry - E|vtaw_mw                       |1.0.4               |DONE      |Manifest: NOSIGNATURE         reds-more-structures-1.0.8-common.jar             |Red’s More Structures         |mr_reds_morestructures        |1.0.8               |DONE      |Manifest: NOSIGNATURE         From-The-Fog-1.20-v1.9.2-Forge-Fabric.jar         |From The Fog                  |watching                      |1.9.2               |DONE      |Manifest: NOSIGNATURE         IronBarrels1.20.1-V1.0.jar                        |IronBarrelsUpdated            |ironbarrels                   |1.0.0               |DONE      |Manifest: NOSIGNATURE         MysticalExpansion-1.20.1-1.0.0.jar                |Mystical Expansion            |mysticalexpansion             |1.0.0               |DONE      |Manifest: NOSIGNATURE         EasyEmerald-Forge-1.20.1-1.5.8.jar                |Easy Emerald                  |easy_emerald                  |1.5.8               |DONE      |Manifest: NOSIGNATURE         more_beautiful_torches-merged-1.20.1-3.0.0.jar    |More Beautiful Torches!       |more_beautiful_torches        |3.0.0               |DONE      |Manifest: NOSIGNATURE         UniversalEnchants-v8.0.0-1.20.1-Forge.jar         |Universal Enchants            |universalenchants             |8.0.0               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         ImmediatelyFast-Forge-1.3.2+1.20.4.jar            |ImmediatelyFast               |immediatelyfast               |1.3.2+1.20.4        |DONE      |Manifest: NOSIGNATURE         moremobvariants-forge+1.20.1-1.3.0.1.jar          |More Mob Variants             |moremobvariants               |1.3.0.1             |DONE      |Manifest: NOSIGNATURE         ferritecore-6.0.1-forge.jar                       |Ferrite Core                  |ferritecore                   |6.0.1               |DONE      |Manifest: 41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a         Mvw-2.3.3c.jar                                    |MoreVanillaWeapons            |mvw                           |2.3.3c              |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.25-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.25              |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         Overpowered Creative Items.jar                    |Overpowered Creative Items    |overpowered_creative_items    |1.0.0               |DONE      |Manifest: NOSIGNATURE         overloadedarmorbar-1.20.1-1.jar                   |Overloaded Armor Bar          |overloadedarmorbar            |1.20.1-1            |DONE      |Manifest: NOSIGNATURE         OverflowingBars-v8.0.1-1.20.1-Forge.jar           |Overflowing Bars              |overflowingbars               |8.0.1               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a     Crash Report UUID: ccaf101c-823f-47b9-9c2f-7d3d0db92823     FML: 47.3     Forge: net.minecraftforge:47.3.0
    • You could try posting a log (if there is no log at all, it may be the launcher you are using, the FAQ may have info on how to enable the log) as described in the FAQ, however this will probably need to be reported to/remedied by the mod author.
    • So me and a couple of friends are playing with a shitpost mod pack and one of the mods in the pack is corail tombstone and for some reason there is a problem with it, where on death to fire the player will get kicked out of the server and the tombstone will not spawn basically deleting an entire inventory, it doesn't matter what type of fire it is, whether it's from vanilla fire/lava, or from modded fire like ice&fire/lycanites and it's common enough to where everyone on the server has experienced at least once or twice and it doesn't give any crash log. a solution to this would be much appreciated thank you!
  • Topics

×
×
  • Create New...

Important Information

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