Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.8]Sending packages whith more complex contens like arrays ??


perromercenary00
 Share

Recommended Posts

goo days

 

i been working in this project, and to achive it  i need to break masive amounts of blocks.

 

heres the video

 

heres  happen but not all the times the hole make by the explosion just happen apparently in server only  soo i cant  get in the hole becose the local world think there is  still blocks inside

to cause this explosion and remove blocks im using the fill command but where im executing the code is inside a

 

public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)

    {  }

 

in the explosive block from then i execute

 

chat.chatga(playerIn, "mundo="+worldIn_entrada.isRemote);

	net.minecraft.command.CommandFill  fill = new net.minecraft.command.CommandFill();
	//String [] comando= {"-136","41","215","-140","44","217","minecraft:glass"};
    String [] comando= {xmin+"",ymin+"",zmin+"",xmax+"",ymax+"",zmax+"","minecraft:air","0","destroy"};
    try {
fill.execute(playerIn, comando);
} catch (CommandException e) {

	e.printStackTrace();
}

 

and the message part

chat.chatga(playerIn, "mundo="+worldIn_entrada.isRemote);

always return false on player screen this means this code only execute in server. to avoid this trouble i need to execute this in server and in local at same time

 

 

######

packets i alredy have a working class to send messages to server and local world but just allow to send strings from 6 to 14 char and to work the fill a need to send it to blocks coordentes or a String[] array    exem: String [] comando= {xmin+"",ymin+"",zmin+"",xmax+"",ymax+"",zmax+"","minecraft:air","0","destroy"};

 

?????

is workaround  to send complex packages to the server ??

Link to comment
Share on other sites

It is ok to only do it on the server, that is correct. The server will then send packets automatically.

You say you call this

fill.execute(playerIn, comando);

from

onNeighborBlockChange

. Where do you get the player from? That method has no player available. I highly suspect that that is the problem.

Why do you go the route through the command? Why not break the blocks yourself?

Link to comment
Share on other sites

 

i get it from the minecraft class

doing the

 

Minecraft mc = Minecraft.getMinecraft();

EntityPlayer playerIn= mc.thePlayer;

 

 

but if its the guilty on the player where i could get the player entity?

 

and from the packages i been triyng  write the array directly to an execute.class then send to the server a message to execute the code in the execude class but in this case it only gets the array the server class.  sounds legit i gonna try thath

 

the class is long but here is

 

 

 

package mercenarymod.blocks.explosivos;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.apache.logging.log4j.core.config.Property;

import mercenarymod.Mercenary;
import mercenarymod.blocks.MercenaryModBlocks;
import net.minecraft.block.Block;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumWorldBlockLayer;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import mercenarymod.utilidades.chat;
import net.minecraft.entity.EntityLivingBase;
import mercenarymod.blocks.explosivos.tiempoDinamita;
//import net.minecraft.command.CommandFill;

public class dinamitaParaPerforaciones3 extends Block
{
    public static String name = "dinamitaParaPerforaciones3";
    
            
    public static final PropertyDirection FACING = PropertyDirection.create("facing");
    
    public static int conteo=0;
    
    public static ArrayList<tiempoDinamita> listaDinamita = new  ArrayList<tiempoDinamita>();
    
    private static BlockPos posa=null;

    public dinamitaParaPerforaciones3()
    {
    	super(Material.tnt);
        setUnlocalizedName(Mercenary.MODID + "_" + name);
        GameRegistry.registerBlock(this, name);
        setCreativeTab(Mercenary.herramientas);
        //this.maxStackSize = 1;
        
      
    }
  //###########################################################3
    
    public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
    {
    	
String F=""+state.getValue(FACING);
    	
    	System.out.println("\n\n\nFacing="+F);
    	
    	if ( F.contains("east") &  worldIn.isAirBlock(pos.east()) ){worldIn.destroyBlock(pos, false);}
    	if ( F.contains("west") &  worldIn.isAirBlock(pos.west()) ){worldIn.destroyBlock(pos, false);}
    	
    	if ( F.contains("north") &  worldIn.isAirBlock(pos.north()) ){worldIn.destroyBlock(pos, false);}
    	if ( F.contains("south") &  worldIn.isAirBlock(pos.south()) ){worldIn.destroyBlock(pos, false);}
    	
    	if ( F.contains("up") &  worldIn.isAirBlock(pos.up()) ){worldIn.destroyBlock(pos, false);}
    	if ( F.contains("down") &  worldIn.isAirBlock(pos.down()) ){worldIn.destroyBlock(pos, false);}
    	 	
    	
    	
    	
    	Minecraft mc = Minecraft.getMinecraft();
    	EntityPlayer playerIn= mc.thePlayer;
       
        if (worldIn.isBlockPowered(pos)){
        	
                	
        	if (pos.equals(posa)){System.out.println("%%%%%%\n ignorar posicion por estar repetida\n"+pos+"\n"+posa);/*do nothing*/;}	 
    		else { posa=pos;	 
    		 destruirBlockes(pos,worldIn);
    		
    		//tiempoDinamita.habilitar(worldIn,pos);
    		     }
        	
        }
    	
    	
    }
  //###########################################################3  
    public Block setBlockUnbreakable()
    {
        this.setHardness(-1.0F);
        return this;
    }

  //###########################################################3  
    public Item getItemDropped(IBlockState state, Random rand, int fortune)
    {
        return null; //Item.getItemFromBlock(MercenaryModBlocks.romper);
    }
    
    
  //###########################################################3
    
    public boolean isOpaqueCube()
    {
        return false;
    }

    @SideOnly(Side.CLIENT)
    public EnumWorldBlockLayer getBlockLayer()
    {
        return EnumWorldBlockLayer.CUTOUT;
    }
   

  //###########################################################3
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ)
    {
    	
    	
    IBlockState  bs0 = worldIn.getBlockState(pos.north());
    
    IBlockState  bs1 = worldIn.getBlockState(pos.south());
    
    IBlockState  bs2 = worldIn.getBlockState(pos.east());
    
    IBlockState  bs3 = worldIn.getBlockState(pos.west());
    
    
    
    System.out.println("Norte="+bs0.getBlock().getUnlocalizedName());
    System.out.println("Sur="+bs1.getBlock().getUnlocalizedName());
    System.out.println("Este="+bs2.getBlock().getUnlocalizedName());
    System.out.println("Oeste="+bs3.getBlock().getUnlocalizedName());
    
    System.out.println("\n\n\nmundo="+worldIn.isRemote);
    
    
    
    /*
    net.minecraft.command.CommandFill  fill = new net.minecraft.command.CommandFill();
    
    
    //String [] comando= {"-136","41","215","-140","44","217","minecraft:glass"};
    String [] comando= {"-136","41","215","-140","44","217","minecraft:air","0","destroy"};
    try {
if (!worldIn.isRemote){fill.execute(playerIn, comando);}
} catch (CommandException e) {

	e.printStackTrace();
}
    */
   	
    	
    	
    return false;}
    
  //###########################################################3
public static String[] destruirBlockes(BlockPos pos_entrada,World worldIn_entrada){

Minecraft mc = Minecraft.getMinecraft();
EntityPlayer playerIn= mc.thePlayer;


 int x=pos_entrada.getX(),y=pos_entrada.getY(),z=pos_entrada.getZ();	
 int xmax=0,xmin=0, ymax=0,ymin=0, zmax=0,zmin=0;
    
IBlockState state_entrada = worldIn_entrada.getBlockState(pos_entrada);
Block iblk_entrada=state_entrada.getBlock();
String F=""+state_entrada.getValue(FACING);

BlockPos pos1=null;
int T=3; //tamaño
int C=6; //profundidad
    
	if(F.contains("down")){
	pos1= new BlockPos(x,(y-1),z);	
     xmax=x+T;
     xmin=x-T;
     ymax=y;
     ymin=y-(T*2)-C;
     zmax=z+T;
     zmin=z-T;
	}	

	if(F.contains("up")){
	pos1= new BlockPos(x,(y+1),z);	
     xmax=x+T;
     xmin=x-T;
     ymax=y+(T*2)+C;
     ymin=y;
     zmax=z+T;
     zmin=z-T;
	}	

	if(F.contains("north")){
     	pos1= new BlockPos(x,y,(z-1));	
         xmax=x+T;
         xmin=x-T;
         ymax=y+T;
         ymin=y-T;
         zmax=z;
         zmin=z-(T*2)-C;
     	}	

	if(F.contains("south")){
     	pos1= new BlockPos(x,y,(z+1));	
         xmax=x+T;
         xmin=x-T;
         ymax=y+T;
         ymin=y-T;
         zmax=z+(T*2)+C;
         zmin=z;
     	}	

	  	
	if(F.contains("east")){
     	pos1= new BlockPos((x+1),y,z);	
         xmax=x+(T*2)+C;
         xmin=x;
         ymax=y+T;
         ymin=y-T;
         zmax=z+T;
         zmin=z-T;
     	}	

	if(F.contains("west")){
     	pos1= new BlockPos((x-1),y,z);	
         xmax=x;
         xmin=x-(T*2)-C;
         ymax=y+T;
         ymin=y-T;
         zmax=z+T;
         zmin=z-T;
     	}	
	 	  	

	chat.chatga(playerIn, "mundo="+worldIn_entrada.isRemote);

	net.minecraft.command.CommandFill  fill = new net.minecraft.command.CommandFill();
	//String [] comando= {"-136","41","215","-140","44","217","minecraft:glass"};
    String [] comando= {xmin+"",ymin+"",zmin+"",xmax+"",ymax+"",zmax+"","minecraft:air","0","destroy"};
    try {
if (!worldIn_entrada.isRemote){fill.execute(playerIn, comando);}
} catch (CommandException e) {

	e.printStackTrace();
}

    
    
    
boolean flag=true;
int explosionPower = 1;
worldIn_entrada.newExplosion((Entity)null, x, y, z, (float)explosionPower, flag, flag);
    //setDead();




return comando;	
} 
  
    
  //###########################################################3
    
    
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
    {
    	
    	
    	EnumFacing cara = getFacingFromEntity(worldIn, pos, placer);
    	
    	
    	worldIn.setBlockState(pos, state.withProperty(FACING, cara.getOpposite()), 2);
        //worldIn.setBlockState(pos, state.withProperty(FACING, getFacingFromEntity(worldIn, pos, placer)), 2);

     
    }
    
  //###########################################################3    
    public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
    {
        return this.getDefaultState().withProperty(FACING, getFacingFromEntity(worldIn, pos, placer));
    }
    
  //###########################################################3    
    public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
    {
        IBlockState iblockstate = worldIn.getBlockState(pos);

       
            float f = 0.25F;
            EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING);

            if (enumfacing != null)
            {
                switch (dinamitaParaPerforaciones3.SwitchEnumFacing.FACING_LOOKUP[enumfacing.ordinal()])
                {
                    case 1:
                        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.01F, 1.0F);
                        break;
                    case 2:
                        this.setBlockBounds(0.0F, 0.99F, 0.0F, 1.0F, 1.0F, 1.0F);
                        break;
                    case 3:
                        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.01F);
                        break;
                    case 4:
                        this.setBlockBounds(0.0F, 0.0F, 0.99F, 1.0F, 1.0F, 1.0F);
                        break;
                    case 5:
                        this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.01F, 1.0F, 1.0F);
                        break;
                    case 6:
                        this.setBlockBounds(0.99F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
                }
            }
        
        else
        {
            this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
        }
    }

  //###########################################################3  
    public void setBlockBoundsForItemRender()
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
    }    
        
  //###########################################################3  
    
    public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn)
    {
        if (MathHelper.abs((float)entityIn.posX - (float)clickedBlock.getX()) < 2.0F && MathHelper.abs((float)entityIn.posZ - (float)clickedBlock.getZ()) < 2.0F)
        {
            double d0 = entityIn.posY + (double)entityIn.getEyeHeight();

            if (d0 - (double)clickedBlock.getY() > 2.0D)
            {
                return EnumFacing.UP;
            }

            if ((double)clickedBlock.getY() - d0 > 0.0D)
            {
                return EnumFacing.DOWN;
            }
        }

        return entityIn.getHorizontalFacing().getOpposite();
    } 
  
  //###########################################################3     
    
    @SideOnly(Side.CLIENT)
    public IBlockState getStateForEntityRender(IBlockState state)
    {
        return this.getDefaultState().withProperty(FACING, EnumFacing.UP);
    }
    
    //###########################################################3
    
    protected BlockState createBlockState()
    {
        return new BlockState(this, new IProperty[] {FACING});
    }
    
    //###########################################################3
    
    public int getMetaFromState(IBlockState state)
    {
        byte b0 = 0;
        int i = b0 | ((EnumFacing)state.getValue(FACING)).getIndex();

       
        return i;
    }
    
    //###########################################################3
    
    static final class SwitchEnumFacing
    {
        static final int[] FACING_LOOKUP = new int[EnumFacing.values().length];
        private static final String __OBFID = "CL_00002037";

        static
        {
            try
            {
                FACING_LOOKUP[EnumFacing.DOWN.ordinal()] = 1;
            }
            catch (NoSuchFieldError var6)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.UP.ordinal()] = 2;
            }
            catch (NoSuchFieldError var5)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.NORTH.ordinal()] = 3;
            }
            catch (NoSuchFieldError var4)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.SOUTH.ordinal()] = 4;
            }
            catch (NoSuchFieldError var3)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.WEST.ordinal()] = 5;
            }
            catch (NoSuchFieldError var2)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.EAST.ordinal()] = 6;
            }
            catch (NoSuchFieldError var1)
            {
                ;
            }
        }
    }
   
    //###########################################################3
    /*
    public void addCollisionBoxesToList(World worldIn, BlockPos pos, IBlockState state, AxisAlignedBB mask, List list, Entity collidingEntity)
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
        super.addCollisionBoxesToList(worldIn, pos, state, mask, list, collidingEntity);
    }
*/
    /*
    public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
    {
        this.setBlockBoundsBasedOnState(worldIn, pos);
        return super.getCollisionBoundingBox(worldIn, pos, state);
    }
*/
    public boolean isFullCube()
    {
        return false;
    }
    
    
    //###########################################################3
    public String getUnlocalizedName(ItemStack stack)
    {
        
    	int m= stack.getMetadata();
    	
    	if (m == 0){return name+"0" ;}
    	if (m == 1){return name+"1" ;}
    	if (m == 2){return name+"2" ;}
    	if (m == 3){return name+"3" ;}
    	if (m == 4){return name+"4" ;}
    	if (m == 5){return name+"5" ;}
    	if (m == 5){return name+"6" ;}
    	if (m == 5){return name+"7" ;}
    	
    	return name+"0";

    }

    @SideOnly(Side.CLIENT)
    public void getSubItems(Item itemIn, CreativeTabs tab, List subItems)
    {
        subItems.add(new ItemStack(itemIn, 1, 0));
        subItems.add(new ItemStack(itemIn, 1, 1));
        subItems.add(new ItemStack(itemIn, 1, 2));
        subItems.add(new ItemStack(itemIn, 1, 3));
        subItems.add(new ItemStack(itemIn, 1, 4));
        subItems.add(new ItemStack(itemIn, 1, 5));
        subItems.add(new ItemStack(itemIn, 1, 6));
        subItems.add(new ItemStack(itemIn, 1, 7));
        
        
    }
    
    
  //###########################################################3
}//fin de la clase

 

 

Link to comment
Share on other sites

Minecraft.getMinecraft().thePlayer is the client-side player. If you pass that to the command it will modify the client world, even if you are on the server thread (which you are, since you are in onNeighborBlockChanged). That is also why you got the ConcurrentModificationException (you modified the client world from server thread while the client was also using it, threads run simultaneously).

 

You can't get a player object here, there might not even be a player online (chunk loaders and then a block placer or a piston moves, causes onNeighborBlockChanged to be called).

You need to code the block remove independent of the fill command, but you can use it's code as a reference.

 

Edit: Also these 3 static fields look very suspicious:

public static int conteo=0;
public static ArrayList<tiempoDinamita> listaDinamita = new  ArrayList<tiempoDinamita>();
private static BlockPos posa=null;

 

static will be shared across the entire server! That is most likely not what you want.

Link to comment
Share on other sites

well

 

lets working

 

i get ride of the unnesesary static almos all  and get ride from all the Minecraft mc = Minecraft.getMinecraft();

EntityPlayer playerIn= mc.thePlayer; 

 

make a set in an execute.class to load the int[] array whit the data of the blocks to break  and set the mesenger class to run execute and break the blocks on the comand "romper "

 

but still get the exeption.

 

Question ?

im executing code in the server using the packages trick how do to get the current world to use in

 

worldIn.destroy(blockpos , drops);

 

im geting the player from the message

 

public static class Handler0 implements IMessageHandler<mensajeMercenarioalServidor, IMessage> {


    @Override
    public IMessage onMessage(mensajeMercenarioalServidor message, MessageContext ctx) {
    	
    	EntityPlayer playerIn=ctx.getServerHandler().playerEntity;
    	EntityPlayerMP playerMp=(EntityPlayerMP)playerIn;
    	
    	ejecutar.esto(texto0,playerIn);//this pas the "mesage" and the player get from the message sender 
    	
    	return null; // no response in this case
    }

 

in the ejecutar.class i get world from the player using

World worldIn=playerIn.getEntityWorld();

 

 

and then do

 

//load  comandofill whit max and mins
public void setComando(int[]  comando0){
  comandofill=comando0;
System.out.println("comando reciviod="+comando0);

}

//"romper"
	if (comando.equals("romper")){ //destruir maxivamente Blockes en el mundo

		System.out.println("Mundo="+worldIn.isRemote);

	 	int xmin=comandofill[0], ymin=comandofill[1], zmin=comandofill[2];
	 	int xmax=comandofill[3], ymax=comandofill[4], zmax=comandofill[5];

	 	for (int dx=xmin;dx <= xmax; dx++ ){
	 	for (int dy=ymin;dy <= ymax; dy++ ){
	 	for (int dz=zmin;dz <= zmax; dz++ ){

	 	BlockPos posx= new BlockPos(dx,dy,dz);	

	 	System.out.println("romper="+posx)	;
	 	worldIn.destroyBlock(posx, true);
	 	}}}

	}
//##########################################################33	

Link to comment
Share on other sites

ñaa

 

is a thing of features and feelings

i wanna chain explosions so when the block recives the pulse its wait a full second to get the data of all the charges and then bllow up all the fucking thing in one single shot

 

 

the simple way thath give no  troubles but freeze temporaly the game when get to may blocks is

 

package mercenarymod.blocks.explosivos;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.apache.logging.log4j.core.config.Property;

import mercenarymod.Mercenary;
import mercenarymod.blocks.MercenaryModBlocks;
import net.minecraft.block.Block;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumWorldBlockLayer;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import mercenarymod.mensajes.mensajeMercenarioalServidor;
import mercenarymod.utilidades.chat;
import net.minecraft.entity.EntityLivingBase;
import mercenarymod.blocks.explosivos.tiempoDinamita;
//import net.minecraft.command.CommandFill;

public class dinamitaParaPerforaciones3 extends Block
{
    public String name = "dinamitaParaPerforaciones3";
    
            
    public static final PropertyDirection FACING = PropertyDirection.create("facing");
    
    public  int conteo=0;
    
    private  BlockPos posa=null;

    public dinamitaParaPerforaciones3()
    {
    	super(Material.tnt);
        setUnlocalizedName(Mercenary.MODID + "_" + name);
        GameRegistry.registerBlock(this, name);
        setCreativeTab(Mercenary.herramientas);
        //this.maxStackSize = 1;
        
      
    }
  //###########################################################3
    
    public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
    {
    	
String F=""+state.getValue(FACING);
    	
    	System.out.println("\n\n\nFacing="+F);
    	
    	if ( F.contains("east") &  worldIn.isAirBlock(pos.east()) ){worldIn.destroyBlock(pos, false);}
    	if ( F.contains("west") &  worldIn.isAirBlock(pos.west()) ){worldIn.destroyBlock(pos, false);}
    	
    	if ( F.contains("north") &  worldIn.isAirBlock(pos.north()) ){worldIn.destroyBlock(pos, false);}
    	if ( F.contains("south") &  worldIn.isAirBlock(pos.south()) ){worldIn.destroyBlock(pos, false);}
    	
    	if ( F.contains("up") &  worldIn.isAirBlock(pos.up()) ){worldIn.destroyBlock(pos, false);}
    	if ( F.contains("down") &  worldIn.isAirBlock(pos.down()) ){worldIn.destroyBlock(pos, false);}
    	 	
    	
    	
    	
    	//Minecraft mc = Minecraft.getMinecraft();
    	//EntityPlayer playerIn= mc.thePlayer;
       
        if (worldIn.isBlockPowered(pos)){
        	
                	
        	if (pos.equals(posa)){System.out.println("%%%%%%\n ignorar posicion por estar repetida\n"+pos+"\n"+posa);/*do nothing*/;}	 
    		else { posa=pos;	 
    		destruirBlockes(pos,worldIn);
    		
    		//tiempoDinamita.habilitar(worldIn,pos);
    		     }
        	
        }
    	
    	
    }
  //###########################################################3  
    public Block setBlockUnbreakable()
    {
        this.setHardness(-1.0F);
        return this;
    }

  //###########################################################3  
    public Item getItemDropped(IBlockState state, Random rand, int fortune)
    {
        return null; //Item.getItemFromBlock(MercenaryModBlocks.romper);
    }
    
    
  //###########################################################3
    
    public boolean isOpaqueCube()
    {
        return false;
    }

    @SideOnly(Side.CLIENT)
    public EnumWorldBlockLayer getBlockLayer()
    {
        return EnumWorldBlockLayer.CUTOUT;
    }
   

  //###########################################################3
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ)
    {
    	
    	
    IBlockState  bs0 = worldIn.getBlockState(pos.north());
    
    IBlockState  bs1 = worldIn.getBlockState(pos.south());
    
    IBlockState  bs2 = worldIn.getBlockState(pos.east());
    
    IBlockState  bs3 = worldIn.getBlockState(pos.west());
    
    
    
    System.out.println("Norte="+bs0.getBlock().getUnlocalizedName());
    System.out.println("Sur="+bs1.getBlock().getUnlocalizedName());
    System.out.println("Este="+bs2.getBlock().getUnlocalizedName());
    System.out.println("Oeste="+bs3.getBlock().getUnlocalizedName());
    
    System.out.println("\n\n\nmundo="+worldIn.isRemote);
    
    
    
    /*
    net.minecraft.command.CommandFill  fill = new net.minecraft.command.CommandFill();
    
    
    //String [] comando= {"-136","41","215","-140","44","217","minecraft:glass"};
    String [] comando= {"-136","41","215","-140","44","217","minecraft:air","0","destroy"};
    try {
if (!worldIn.isRemote){fill.execute(playerIn, comando);}
} catch (CommandException e) {

	e.printStackTrace();
}
    */
   	
    	
    	
    return false;}
    
  //###########################################################3
public void destruirBlockes(BlockPos pos_entrada,World worldIn_entrada){

//Minecraft mc = Minecraft.getMinecraft();
//EntityPlayer playerIn= mc.thePlayer;


 int x=pos_entrada.getX(),y=pos_entrada.getY(),z=pos_entrada.getZ();	
 int xmax=0,xmin=0, ymax=0,ymin=0, zmax=0,zmin=0;
    
IBlockState state_entrada = worldIn_entrada.getBlockState(pos_entrada);
Block iblk_entrada=state_entrada.getBlock();
String F=""+state_entrada.getValue(FACING);

BlockPos pos1=null;
int T=3; //tamaño
int C=6; //profundidad
    
	if(F.contains("down")){
	pos1= new BlockPos(x,(y-1),z);	
     xmax=x+T;
     xmin=x-T;
     ymax=y;
     ymin=y-(T*2)-C;
     zmax=z+T;
     zmin=z-T;
	}	

	if(F.contains("up")){
	pos1= new BlockPos(x,(y+1),z);	
     xmax=x+T;
     xmin=x-T;
     ymax=y+(T*2)+C;
     ymin=y;
     zmax=z+T;
     zmin=z-T;
	}	

	if(F.contains("north")){
     	pos1= new BlockPos(x,y,(z-1));	
         xmax=x+T;
         xmin=x-T;
         ymax=y+T;
         ymin=y-T;
         zmax=z;
         zmin=z-(T*2)-C;
     	}	

	if(F.contains("south")){
     	pos1= new BlockPos(x,y,(z+1));	
         xmax=x+T;
         xmin=x-T;
         ymax=y+T;
         ymin=y-T;
         zmax=z+(T*2)+C;
         zmin=z;
     	}	

	  	
	if(F.contains("east")){
     	pos1= new BlockPos((x+1),y,z);	
         xmax=x+(T*2)+C;
         xmin=x;
         ymax=y+T;
         ymin=y-T;
         zmax=z+T;
         zmin=z-T;
     	}	

	if(F.contains("west")){
     	pos1= new BlockPos((x-1),y,z);	
         xmax=x;
         xmin=x-(T*2)-C;
         ymax=y+T;
         ymin=y-T;
         zmax=z+T;
         zmin=z-T;
     	}	
	 	  	

	for (int dx=xmin ; dx <=xmax ;dx++){
		for (int dy=ymin ; dy <=ymax ;dy++){
		for (int dz=zmin ; dz <=zmax ;dz++){
		BlockPos posx=new BlockPos(dx,dy,dz);

		worldIn_entrada.destroyBlock(posx, true);

		}}}

	 	    

		worldIn_entrada.newExplosion((Entity)null, x, y, z, 2.0F, true, true);
	    //setDead();



//return comando;	
} 
  
    
  //###########################################################3
    
    
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
    {
    	
    	
    	EnumFacing cara = getFacingFromEntity(worldIn, pos, placer);
    	
    	
    	worldIn.setBlockState(pos, state.withProperty(FACING, cara.getOpposite()), 2);
        //worldIn.setBlockState(pos, state.withProperty(FACING, getFacingFromEntity(worldIn, pos, placer)), 2);

     
    }
    
  //###########################################################3    
    public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
    {
        return this.getDefaultState().withProperty(FACING, getFacingFromEntity(worldIn, pos, placer));
    }
    
  //###########################################################3    
    public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
    {
        IBlockState iblockstate = worldIn.getBlockState(pos);

       
            float f = 0.25F;
            EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING);

            if (enumfacing != null)
            {
                switch (dinamitaParaPerforaciones.SwitchEnumFacing.FACING_LOOKUP[enumfacing.ordinal()])
                {
                    case 1:
                        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.01F, 1.0F);
                        break;
                    case 2:
                        this.setBlockBounds(0.0F, 0.99F, 0.0F, 1.0F, 1.0F, 1.0F);
                        break;
                    case 3:
                        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.01F);
                        break;
                    case 4:
                        this.setBlockBounds(0.0F, 0.0F, 0.99F, 1.0F, 1.0F, 1.0F);
                        break;
                    case 5:
                        this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.01F, 1.0F, 1.0F);
                        break;
                    case 6:
                        this.setBlockBounds(0.99F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
                }
            }
        
        else
        {
            this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
        }
    }

  //###########################################################3  
    public void setBlockBoundsForItemRender()
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
    }    
        
  //###########################################################3  
    
    public static EnumFacing getFacingFromEntity(World worldIn, BlockPos clickedBlock, EntityLivingBase entityIn)
    {
        if (MathHelper.abs((float)entityIn.posX - (float)clickedBlock.getX()) < 2.0F && MathHelper.abs((float)entityIn.posZ - (float)clickedBlock.getZ()) < 2.0F)
        {
            double d0 = entityIn.posY + (double)entityIn.getEyeHeight();

            if (d0 - (double)clickedBlock.getY() > 2.0D)
            {
                return EnumFacing.UP;
            }

            if ((double)clickedBlock.getY() - d0 > 0.0D)
            {
                return EnumFacing.DOWN;
            }
        }

        return entityIn.getHorizontalFacing().getOpposite();
    } 
  
  //###########################################################3     
    
    @SideOnly(Side.CLIENT)
    public IBlockState getStateForEntityRender(IBlockState state)
    {
        return this.getDefaultState().withProperty(FACING, EnumFacing.UP);
    }
    
    //###########################################################3
    
    protected BlockState createBlockState()
    {
        return new BlockState(this, new IProperty[] {FACING});
    }
    
    //###########################################################3
    
    public int getMetaFromState(IBlockState state)
    {
        byte b0 = 0;
        int i = b0 | ((EnumFacing)state.getValue(FACING)).getIndex();

       
        return i;
    }
    
    //###########################################################3
    
    static final class SwitchEnumFacing
    {
        static final int[] FACING_LOOKUP = new int[EnumFacing.values().length];
        private static final String __OBFID = "CL_00002037";

        static
        {
            try
            {
                FACING_LOOKUP[EnumFacing.DOWN.ordinal()] = 1;
            }
            catch (NoSuchFieldError var6)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.UP.ordinal()] = 2;
            }
            catch (NoSuchFieldError var5)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.NORTH.ordinal()] = 3;
            }
            catch (NoSuchFieldError var4)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.SOUTH.ordinal()] = 4;
            }
            catch (NoSuchFieldError var3)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.WEST.ordinal()] = 5;
            }
            catch (NoSuchFieldError var2)
            {
                ;
            }

            try
            {
                FACING_LOOKUP[EnumFacing.EAST.ordinal()] = 6;
            }
            catch (NoSuchFieldError var1)
            {
                ;
            }
        }
    }
   
    //###########################################################3
    /*
    public void addCollisionBoxesToList(World worldIn, BlockPos pos, IBlockState state, AxisAlignedBB mask, List list, Entity collidingEntity)
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
        super.addCollisionBoxesToList(worldIn, pos, state, mask, list, collidingEntity);
    }
*/
    /*
    public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
    {
        this.setBlockBoundsBasedOnState(worldIn, pos);
        return super.getCollisionBoundingBox(worldIn, pos, state);
    }
*/
    public boolean isFullCube()
    {
        return false;
    }
    
    
    //###########################################################3
    public String getUnlocalizedName(ItemStack stack)
    {
        
    	int m= stack.getMetadata();
    	
    	if (m == 0){return name+"0" ;}
    	if (m == 1){return name+"1" ;}
    	if (m == 2){return name+"2" ;}
    	if (m == 3){return name+"3" ;}
    	if (m == 4){return name+"4" ;}
    	if (m == 5){return name+"5" ;}
    	if (m == 5){return name+"6" ;}
    	if (m == 5){return name+"7" ;}
    	
    	return name+"0";

    }

    @SideOnly(Side.CLIENT)
    public void getSubItems(Item itemIn, CreativeTabs tab, List subItems)
    {
        subItems.add(new ItemStack(itemIn, 1, 0));
        subItems.add(new ItemStack(itemIn, 1, 1));
        subItems.add(new ItemStack(itemIn, 1, 2));
        subItems.add(new ItemStack(itemIn, 1, 3));
        subItems.add(new ItemStack(itemIn, 1, 4));
        subItems.add(new ItemStack(itemIn, 1, 5));
        subItems.add(new ItemStack(itemIn, 1, 6));
        subItems.add(new ItemStack(itemIn, 1, 7));
        
        
    }
    
    
  //###########################################################3
}//fin de la clase

Link to comment
Share on other sites

String F=""+state_entrada.getValue(FACING);
if(F.contains("down")){ ... }

 

My god.  It's full of Strings.

 

Not to mention static properties.  Jesus.

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.

Link to comment
Share on other sites

Yeah, what Draco cited will not work outside the development environment (why is left as an exercise to the reader).

 

Also (as I told you before) your code is pretty much unreadable for anyone not speaking your language.

What the fuck does this:

int T=3; //tamaño

mean to someone who does not know what "tamaño" means? Nothing. If you want us to help you, code in English. This is not to discriminate your language or anything. We (or I at least) just can not understand it.

 

Yes, destroying a lot of blocks will lag Minecraft. How do commands or packets help here? Not at all.

You need to distribute the destroying over multiple ticks (using ServerTickEvent / WorldTickEvent) or deal with the lag. Either or. Do not use threads. Do not use Packets. Do not pass go, do not collect $400.

 

Also to add to what Draco said: See point #7 on http://blog.codinghorror.com/new-programming-jargon/

 

Link to comment
Share on other sites

Also to add to what Draco said: See point #7 on http://blog.codinghorror.com/new-programming-jargon/

 

I like that list. :D

 

My company's website is full of nothing but ducks.  Refuctored, hydra-code, ducks.  Another one of our programs as at least one loch ness bug, another application has a loch ness bug we know exists but can't reproduce in-house because Apple and iOS 8.0.0/1/2 FUBARed the whole thing ("Of COURSE I upgraded my device to 8.2!  What do you think I am, stupid?" "Our tracking code says you're still on 8.0.2, which is broken.")

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.

Link to comment
Share on other sites

weel not getting mad but

there is thing named google traductor it will gve you what tamaño is and other things in other langs

 

the ticks  thing sound interesting    ServerTickEvent / WorldTickEvent

al ready read http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/1571567-forge-1-6-4-1-8-eventhandler-and

and other thinks

 

but from i read,

 

¿ there is alredy a

//Called when the server ticks. Usually 20 ticks a second.

@SubscribeEvent

public void onServerTick(TickEvent.ServerTickEvent event) {

}

 

to use in 1.8 or this must be created? and

?i could do watever i want here , like create in this event class a public static blockArray and fill the whit hundreds of blocks to break then in

 

public void onServerTick(TickEvent.ServerTickEvent event) {

if (pass == 0){break all the frist 100 blocks }

if (pass == 1){break all the second  100 blocks }

soo on soo on

 

pass++

}

Link to comment
Share on other sites

weel not getting mad but

there is thing named google traductor it will gve you what tamaño is and other things in other langs

Which is not our job. You want help here, you are in an English forum. Provide information in English.

but from i read,

 

¿ there is alredy a

//Called when the server ticks. Usually 20 ticks a second.

@SubscribeEvent

public void onServerTick(TickEvent.ServerTickEvent event) {

}

 

to use in 1.8 or this must be created?

If I understand you correctly: Yes, this event exists in 1.8 and is useable.

and

?i could do watever i want here

Yes. But it must be registered in pre-init like any other event handler.

So you'd have to have some sort of event-scheduler in your TickEvent handler that can store actions (Probably using the Runnable interface) and execute them lets say... 3 ticks into the future.

Then in your Block you'd say "execute this in 3 ticks".

Link to comment
Share on other sites

well

the post now become about minecraft events

 

well i read and alredy have create a events class and register it to preinit

and have this on console

 

[20:40:44] [server thread/INFO] [sTDOUT]: [mercenarymod.mercenaryEvent:onServerTick:28]: ==============Server tick==============

[20:40:44] [server thread/INFO] [sTDOUT]: [mercenarymod.mercenaryEvent:onServerTick:28]: ==============Server tick==============

[20:40:44] [server thread/INFO] [sTDOUT]: [mercenarymod.mercenaryEvent:onServerTick:28]: ==============Server tick==============

[20:40:44] [Client thread/INFO] [sTDOUT]: [mercenarymod.mercenaryEvent:onClientTick:21]: ==============Client tick==============

[20:40:44] [Client thread/INFO] [sTDOUT]: [mercenarymod.mercenaryEvent:onClientTick:21]: ==============Client tick==============

[20:40:44] [Client thread/INFO] [sTDOUT]: [mercenarymod.mercenaryEvent:onClientTick:21]: ==============Client tick==============

 

tinking in the posibilities i gona play a few days whit this and see what happen later 

 

 

Link to comment
Share on other sites

done alredy

 

it kkeps just one instance of event class runing at same time , its waits like a little more than a second to blow up,  if i detonate more packages when is alredy running dont crash but add the new blocks to the list to break and break them

 

but disapoint it is even seting the event class to  break one single block per tick it stills lag but you can see how breaks everything  one block at time

so its gonna have to deal whith the lag  and keep explosions the less bigger

 

//###########################################################3
public boolean destroyBlockes(BlockPos pos_initial,World worldIn_initial){

 int x=pos_initial.getX(),y=pos_initial.getY(),z=pos_initial.getZ();	
 int xmax=0,xmin=0, ymax=0,ymin=0, zmax=0,zmin=0;
 ArrayList<BlockPos> blockes = new ArrayList<BlockPos>();
 blockes.clear();


BlockPos pos1=null;
int R=2; //sizew
//int C=2; //deep


//cuadrado
xmax=x+R;
    xmin=x-R;
    ymax=y+R;
    ymin=y-R;
    zmax=z+R;
    zmin=z-R;

for (int dx=xmin ; dx <=xmax ;dx++){
for (int dy=ymin ; dy <=ymax ;dy++){
for (int dz=zmin ; dz <=zmax ;dz++){
BlockPos posx=new BlockPos(dx,dy,dz);

IBlockState iblk0=worldIn_initial.getBlockState(posx);
Block       blk0=iblk0.getBlock();
	        
int         Hard=(int)blk0.getBlockHardness(worldIn_initial, posx);	
        
if ((Hard > -1 & Hard < 4)||(blk0.equals(Blocks.obsidian))){//ignore to hard except obsidiana
        
	blockes.add(posx);
	//worldIn_initial.destroyBlock(posx, true);                	
                                                           }
}}}

mercenaryEvent.blockes.addAll(blockes);
mercenaryEvent.explosions.add(pos_initial);
mercenaryEvent.worldIn=worldIn_initial;


	//worldIn_entrada.newExplosion((Entity)null, x, y, z, 2.0F, true, true);
    //setDead();






return true;	
} 
//###########################################################3  

 

package mercenarymod;

import java.util.ArrayList;

import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.InputEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;

// import mercenarymod.mercenaryEvent

//mercenaryEvent.blockes;
//mercenaryEvent.worldIn;


public class mercenaryEvent {
int count=0;
boolean countwassreset=false; 
public static ArrayList<BlockPos> blockes = new ArrayList<BlockPos>();
public static ArrayList<BlockPos> explosions = new ArrayList<BlockPos>();
public static World worldIn=null;


//Called when the client ticks. 
@SubscribeEvent
public void onClientTick(TickEvent.ClientTickEvent event) {
//System.out.println("==============Cliente tick==============");	 
                                                           }
               

//Called when the server ticks. Usually 20 ticks a second. 
@SubscribeEvent
public void onServerTick(TickEvent.ServerTickEvent event) {
//System.out.println("==============Servidor tick==============");
if (worldIn!=null){

if (!countwassreset){count=0;countwassreset=true;}	

int ticks=30;  //wait until begin

if(count==ticks){//explosiones;

int l_explosions=explosions.size();
for (int explotar=0; explotar < l_explosions ; explotar++){
BlockPos poss=explosions.get(explotar);	 
worldIn.newExplosion((Entity)null, poss.getX(), poss.getY(),poss.getZ(), 2.0F, true, true);	 
                 }


}

if(count>ticks){

int l_blockes=blockes.size();
System.out.println("blockes has="+l_blockes+" conteo="+count);

int T=8;  //amount of blocks per tick 
int bmin=((count-ticks-1)*T) ,bmax=((count-ticks)*T);	 
if ( bmax >= l_blockes ){bmax=(l_blockes-1);}

System.out.println("\n break from bmin="+bmin+" to bmax="+bmax);

for (int romper=bmin; romper < bmax ; romper++){

BlockPos posx=blockes.get(romper);
worldIn.destroyBlock(posx, true);	
}

if ( bmax >= (l_blockes-1) ){worldIn=null;countwassreset=false;blockes.clear();explosions.clear();}	 

}

count++;

}}}

 

 

 

Link to comment
Share on other sites

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
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.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • when trying to launch the game I get and exit code one and I can't find any sort of crash report for it.
    • Rephrasing what I said above: Inside the minecraft launcher click installations, find your forge installation, click it, click "more options" then change "java executable" to the path of the java.exe of adoptium. Then click "save".
    • Could you let me know exactly what settings I need to change? Thank you.
    • Fixed. Deleted the config file and it worked if you have this error tried that first
    • // Uh... Did I do that? Time: 13/08/22 06:48 PM Description: Mod loading error has occurred java.lang.Exception: Mod Loading has failed     at net.minecraftforge.fml.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:71) [?:?] {re:classloading}     at net.minecraftforge.fml.client.ClientModLoader.completeModLoading(ClientModLoader.java:174) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$null$1(Minecraft.java:508) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft$$Lambda$8660/1955243996.run(Unknown Source) [?:?] {}     at net.minecraft.util.Util.func_215077_a(Util.java:320) [?:?] {re:classloading}     at net.minecraft.client.Minecraft.lambda$new$2(Minecraft.java:504) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft$$Lambda$8439/1289154699.accept(Unknown Source) [?:?] {}     at net.minecraft.client.gui.ResourceLoadProgressGui.func_230430_a_(ResourceLoadProgressGui.java:113) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:481) [?:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerobetterpvp:xaero_gamerenderer_resetprojectionmatrix,xf:fml:xaerobetterpvp:xaero_gamerenderer_renderworld,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,xf:fml:xaerobetterpvp:xaero_gamerenderer_resetprojectionmatrix,xf:fml:xaerobetterpvp:xaero_gamerenderer_renderworld,pl:mixin:APP:tombstone.mixins.json:GameRendererMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:977) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:assets/mining_dimension/mining_dimension.mixins.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:37) [forge-1.16.5-36.2.39.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$495/854977732.call(Unknown Source) [forge-1.16.5-36.2.39.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.1.3.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.1.3.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {} -- MOD prefab -- Details:     Mod File: prefab-1.6.5.15.jar     Failure message: Prefab (prefab) has failed to load correctly         com.electronwill.nightconfig.core.io.ParsingException: Not enough data available     Mod Version: 1.6.5.15     Mod Issue URL: https://github.com/Brian-Wuest/MC-Prefab/issues     Exception message: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available Stacktrace:     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] {}     at com.wuest.prefab.config.ModConfiguration.loadConfig(ModConfiguration.java:515) ~[?:1.6.5.15] {re:classloading}     at com.wuest.prefab.proxy.CommonProxy.<init>(CommonProxy.java:47) ~[?:1.6.5.15] {re:classloading,re:mixin}     at com.wuest.prefab.proxy.ClientProxy.<init>(ClientProxy.java:66) ~[?:1.6.5.15] {re:classloading}     at com.wuest.prefab.Prefab$$Lambda$3856/1236900836.get(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.DistExecutor.safeRunForDist(DistExecutor.java:187) ~[?:?] {re:classloading}     at com.wuest.prefab.Prefab.<init>(Prefab.java:93) ~[?:1.6.5.15] {re:classloading,re:mixin}     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}     at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:67) ~[?:36.2] {re:classloading}     at net.minecraftforge.fml.javafmlmod.FMLModContainer$$Lambda$3115/1359891833.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:106) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModContainer$$Lambda$3613/36214154.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {} -- MOD epicfight -- Details:     Caused by 0: java.lang.ExceptionInInitializerError         at yesman.epicfight.main.EpicFightMod.<init>(EpicFightMod.java:73) ~[?:1.0] {re:classloading}         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}         at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}         at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_51] {}         at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:67) ~[?:36.2] {re:classloading}         at net.minecraftforge.fml.javafmlmod.FMLModContainer$$Lambda$3115/1359891833.run(Unknown Source) ~[?:?] {}         at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:106) ~[?:?] {re:classloading}         at net.minecraftforge.fml.ModContainer$$Lambda$3613/36214154.run(Unknown Source) ~[?:?] {}         at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}         at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}         at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}         at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}         at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {}         at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {}     Mod File: EpicFightMod-16.5.13.jar     Failure message: Epic Fight Mod (epicfight) has failed to load correctly         java.lang.ExceptionInInitializerError: null     Mod Version: 16.5.13     Mod Issue URL: NOT PROVIDED     Exception message: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available Stacktrace:     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] {}     at yesman.epicfight.config.ConfigManager.<clinit>(ConfigManager.java:21) ~[?:1.0] {re:classloading}     at yesman.epicfight.main.EpicFightMod.<init>(EpicFightMod.java:73) ~[?:1.0] {re:classloading}     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}     at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:67) ~[?:36.2] {re:classloading}     at net.minecraftforge.fml.javafmlmod.FMLModContainer$$Lambda$3115/1359891833.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:106) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModContainer$$Lambda$3613/36214154.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {} -- MOD endrem -- Details:     Mod File: endrem-5.0.3-R-1.16.5.jar     Failure message: End Remastered (endrem) has failed to load correctly         com.electronwill.nightconfig.core.io.ParsingException: Not enough data available     Mod Version: 5.0.3-R-1.16.5     Mod Issue URL: https://github.com/Team-Remastered/End-Remastered-Forge/issues     Exception message: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available Stacktrace:     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] {}     at com.teamremastered.endrem.config.ERConfig.load(ERConfig.java:160) ~[?:5.0.3-R-1.16.5] {re:mixin,re:classloading}     at com.teamremastered.endrem.EndRemastered.<init>(EndRemastered.java:31) ~[?:5.0.3-R-1.16.5] {re:classloading}     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}     at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:67) ~[?:36.2] {re:classloading}     at net.minecraftforge.fml.javafmlmod.FMLModContainer$$Lambda$3115/1359891833.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:106) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModContainer$$Lambda$3613/36214154.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {} -- MOD ironfurnaces -- Details:     Mod File: ironfurnaces-1.16.5-2.7.7.jar     Failure message: Iron Furnaces (ironfurnaces) has failed to load correctly         com.electronwill.nightconfig.core.io.ParsingException: Not enough data available     Mod Version: 2.7.7     Mod Issue URL: NOT PROVIDED     Exception message: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available Stacktrace:     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] {}     at ironfurnaces.Config.loadConfig(Config.java:233) ~[?:2.7.7] {re:classloading}     at ironfurnaces.IronFurnaces.<init>(IronFurnaces.java:50) ~[?:2.7.7] {re:classloading}     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}     at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:67) ~[?:36.2] {re:classloading}     at net.minecraftforge.fml.javafmlmod.FMLModContainer$$Lambda$3115/1359891833.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:106) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModContainer$$Lambda$3613/36214154.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {} -- System Details -- Details:     Minecraft Version: 1.16.5     Minecraft Version ID: 1.16.5     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 2381051616 bytes (2270 MB) / 3053453312 bytes (2912 MB) up to 3154116608 bytes (3008 MB)     CPUs: 4     JVM Flags: 10 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -XX:+IgnoreUnrecognizedVMOptions -Xmx3000M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     ModLauncher: 8.1.3+8.1.3+main-8.1.x.c94d18ec     ModLauncher launch target: fmlclient     ModLauncher naming: srg     ModLauncher services:          /mixin-0.8.4.jar mixin PLUGINSERVICE          /eventbus-4.0.0.jar eventbus PLUGINSERVICE          /forge-1.16.5-36.2.39.jar object_holder_definalize PLUGINSERVICE          /forge-1.16.5-36.2.39.jar runtime_enum_extender PLUGINSERVICE          /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE          /forge-1.16.5-36.2.39.jar capability_inject_definalize PLUGINSERVICE          /forge-1.16.5-36.2.39.jar runtimedistcleaner PLUGINSERVICE          /mixin-0.8.4.jar mixin TRANSFORMATIONSERVICE          /forge-1.16.5-36.2.39.jar fml TRANSFORMATIONSERVICE      FML: 36.2     Forge: net.minecraftforge:36.2.39     FML Language Providers:          javafml@36.2         minecraft@1     Mod List:          bmorph-1.16.5-3.0.1.jar                           |Budschie's Morph Mod          |bmorph                        |1.16.5-3.0.1        |CREATE_REG|Manifest: NOSIGNATURE         jei-1.16.5-7.7.1.152.jar                          |Just Enough Items             |jei                           |7.7.1.152           |CREATE_REG|Manifest: NOSIGNATURE         prefab-1.6.5.15.jar                               |Prefab                        |prefab                        |1.6.5.15            |ERROR     |Manifest: NOSIGNATURE         Mekanism-1.16.5-10.1.2.457.jar                    |Mekanism                      |mekanism                      |10.1.2              |CREATE_REG|Manifest: NOSIGNATURE         Guide-API-VP-1.16.5-2.2.2.jar                     |Guide-API VP                  |guideapi-vp                   |2.2.2               |CREATE_REG|Manifest: NOSIGNATURE         Space-BossTools-1.16.5-5.5e.jar                   |Space-BossTools               |boss_tools                    |5.5e                |CREATE_REG|Manifest: NOSIGNATURE         Neat+1.7-27.jar                                   |Neat                          |neat                          |1.7-27              |CREATE_REG|Manifest: NOSIGNATURE         EpicFightMod-16.5.13.jar                          |Epic Fight Mod                |epicfight                     |16.5.13             |ERROR     |Manifest: NOSIGNATURE         Clumps-6.0.0.28.jar                               |Clumps                        |clumps                        |6.0.0.28            |CREATE_REG|Manifest: NOSIGNATURE         Placebo-1.16.5-4.7.0.jar                          |Placebo                       |placebo                       |4.7.0               |CREATE_REG|Manifest: NOSIGNATURE         citadel-1.8.1-1.16.5.jar                          |Citadel                       |citadel                       |1.8.1               |CREATE_REG|Manifest: NOSIGNATURE         alexsmobs-1.12.1.jar                              |Alex's Mobs                   |alexsmobs                     |1.12.1              |CREATE_REG|Manifest: NOSIGNATURE         NaturesCompass-1.16.5-1.9.1-forge.jar             |Nature's Compass              |naturescompass                |1.16.5-1.9.1-forge  |CREATE_REG|Manifest: NOSIGNATURE         Artifacts-1.16.5-2.10.5.jar                       |Artifacts                     |artifacts                     |1.16.5-2.10.5       |CREATE_REG|Manifest: NOSIGNATURE         sophisticatedbackpacks-1.16.5-3.15.16.669.jar     |Sophisticated Backpacks       |sophisticatedbackpacks        |1.16.5-3.15.16.669  |CREATE_REG|Manifest: NOSIGNATURE         randompatches-2.4.4-forge.jar                     |RandomPatches                 |randompatches                 |2.4.4-forge         |CREATE_REG|Manifest: 92:f6:29:d4:09:89:f5:f5:98:5e:20:34:31:d0:7b:58:22:06:bd:a5:d1:6a:92:6e:ac:3d:8d:18:c5:b2:5b:d7         Apotheosis-1.16.5-4.8.99F.jar                     |Apotheosis                    |apotheosis                    |4.8.99F             |CREATE_REG|Manifest: NOSIGNATURE         ExplorersCompass-1.16.5-1.1.2-forge.jar           |Explorer's Compass            |explorerscompass              |1.16.5-1.1.2-forge  |CREATE_REG|Manifest: NOSIGNATURE         TwerkItMeal-1.3.9.jar                             |TwerkItMeal                   |twerkitmeal                   |1.3.9               |CREATE_REG|Manifest: NOSIGNATURE         MekanismGenerators-1.16.5-10.1.2.457.jar          |Mekanism: Generators          |mekanismgenerators            |10.1.2              |CREATE_REG|Manifest: NOSIGNATURE         walljump-forge-1.16.4-1.3.7.jar                   |Wall-Jump!                    |walljump                      |1.16.4-1.3.7        |CREATE_REG|Manifest: NOSIGNATURE         iChunUtil-1.16.5-10.6.1.jar                       |iChunUtil                     |ichunutil                     |10.6.1              |CREATE_REG|Manifest: NOSIGNATURE         carryon-1.16.5-1.15.5.22.jar                      |Carry On                      |carryon                       |1.15.5.22           |CREATE_REG|Manifest: NOSIGNATURE         JustEnoughResources-1.16.5-0.12.1.128.jar         |Just Enough Resources         |jeresources                   |0.12.1.128          |CREATE_REG|Manifest: NOSIGNATURE         ImmersivePetroleum-1.16.5-3.4.0-13.jar            |Immersive Petroleum           |immersivepetroleum            |3.4.0-13            |CREATE_REG|Manifest: NOSIGNATURE         forge-1.16.5-36.2.39-universal.jar                |Forge                         |forge                         |36.2.39             |CREATE_REG|Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90         tl_skin_cape_forge_1.16.5-1.17.jar                |TLSkinCape                    |tlskincape                    |1.17                |CREATE_REG|Manifest: 19:f5:ce:44:81:0c:e4:22:05:5e:73:c5:a8:cd:de:f3:c8:cf:a9:b3:01:70:40:a0:ee:2d:50:7a:1c:3d:1c:8a         mob_grinding_utils-1.16.5-0.4.37.jar              |Mob Grinding Utils            |mob_grinding_utils            |1.16.5-0.4.37       |CREATE_REG|Manifest: NOSIGNATURE         easy_piglins-1.16.5-1.0.2.jar                     |Easy Piglins                  |easy_piglins                  |1.16.5-1.0.2        |CREATE_REG|Manifest: NOSIGNATURE         Morph-1.16.5-10.2.0.jar                           |Morph                         |morph                         |10.2.0              |CREATE_REG|Manifest: NOSIGNATURE         DungeonsArise-1.16.5-2.1.49-beta.jar              |When Dungeons Arise           |dungeons_arise                |2.1.49              |CREATE_REG|Manifest: NOSIGNATURE         forge-1.16.5-36.2.39-client.jar                   |Minecraft                     |minecraft                     |1.16.5              |CREATE_REG|Manifest: NOSIGNATURE         cofh_core-1.16.5-1.5.0.11.jar                     |CoFH Core                     |cofh_core                     |1.5.0.11            |CREATE_REG|Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         thermal_foundation-1.16.5-1.5.0.14.jar            |Thermal Series                |thermal                       |1.5.0.14            |CREATE_REG|Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         TConstruct-1.16.5-3.3.4.335.jar                   |Tinkers' Construct            |tconstruct                    |3.3.4.335           |CREATE_REG|Manifest: NOSIGNATURE         theoneprobe-1.16-3.1.7.jar                        |The One Probe                 |theoneprobe                   |1.16-3.1.7          |CREATE_REG|Manifest: NOSIGNATURE         thermal_innovation-1.16.5-1.5.0.4.jar             |Thermal Innovation            |thermal_innovation            |1.5.0.4             |CREATE_REG|Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         ImmersiveEngineering-1.16.5-5.1.0-148.jar         |Immersive Engineering         |immersiveengineering          |1.16.5-5.1.0-148    |CREATE_REG|Manifest: NOSIGNATURE         MekanismAdditions-1.16.5-10.1.2.457.jar           |Mekanism: Additions           |mekanismadditions             |10.1.2              |CREATE_REG|Manifest: NOSIGNATURE         endrem-5.0.3-R-1.16.5.jar                         |End Remastered                |endrem                        |5.0.3-R-1.16.5      |ERROR     |Manifest: NOSIGNATURE         ironfurnaces-1.16.5-2.7.7.jar                     |Iron Furnaces                 |ironfurnaces                  |2.7.7               |ERROR     |Manifest: NOSIGNATURE         mining_dimension-1.16.5-1.0.6.jar                 |Mining World                  |mining_dimension              |1.16.5-1.0.6        |CREATE_REG|Manifest: NOSIGNATURE         ElenaiDodge2-1.16.X-1.1.0.jar                     |Elenai Dodge 2                |elenaidodge2                  |1.1.0               |CREATE_REG|Manifest: NOSIGNATURE         jeiintegration_1.16.5-7.1.0.22.jar                |JEI Integration               |jeiintegration                |7.1.0.22            |CREATE_REG|Manifest: NOSIGNATURE         easy_villagers-1.16.5-1.0.13.jar                  |Easy Villagers                |easy_villagers                |1.16.5-1.0.13       |CREATE_REG|Manifest: NOSIGNATURE         goprone-1.16.4-1.3.5.jar                          |GoProne                       |goprone                       |1.16.4-1.3.5        |CREATE_REG|Manifest: NOSIGNATURE         curios-forge-1.16.5-4.0.8.2.jar                   |Curios API                    |curios                        |1.16.5-4.0.8.2      |CREATE_REG|Manifest: NOSIGNATURE         Patchouli-1.16.4-53.3.jar                         |Patchouli                     |patchouli                     |1.16.4-53.3         |CREATE_REG|Manifest: NOSIGNATURE         Mantle-1.16.5-1.6.157.jar                         |Mantle                        |mantle                        |1.6.157             |CREATE_REG|Manifest: NOSIGNATURE         collective-1.16.5-4.37.jar                        |Collective                    |collective                    |4.37                |CREATE_REG|Manifest: NOSIGNATURE         thermal_cultivation-1.16.5-1.5.0.4.jar            |Thermal Cultivation           |thermal_cultivation           |1.5.0.4             |CREATE_REG|Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         AutoRegLib-1.6-49.jar                             |AutoRegLib                    |autoreglib                    |1.6-49              |CREATE_REG|Manifest: NOSIGNATURE         Quark-r2.4-322.jar                                |Quark                         |quark                         |r2.4-322            |CREATE_REG|Manifest: NOSIGNATURE         OreExcavation-1.8.157.jar                         |Ore Excavation                |oreexcavation                 |1.8.157             |CREATE_REG|Manifest: e7:68:1c:0d:b9:7e:cf:f8:f3:40:9c:84:c5:39:d7:a4:59:78:b0:6b:c3:fd:b7:4f:69:18:a3:88:e3:76:8c:3f         thermal_expansion-1.16.5-1.5.0.7.jar              |Thermal Expansion             |thermal_expansion             |1.5.0.7             |CREATE_REG|Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         tombstone-6.7.9-1.16.5.jar                        |Corail Tombstone              |tombstone                     |6.7.9               |CREATE_REG|Manifest: NOSIGNATURE         obfuscate-0.6.3-1.16.5.jar                        |Obfuscate                     |obfuscate                     |0.6.3               |CREATE_REG|Manifest: NOSIGNATURE         vehicle-mod-0.45.2-1.16.3.jar                     |MrCrayfish's Vehicle Mod      |vehicle                       |0.45.2              |CREATE_REG|Manifest: NOSIGNATURE         thermal_locomotion-1.16.5-1.5.0.4.jar             |Thermal Locomotion            |thermal_locomotion            |1.5.0.4             |CREATE_REG|Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         MekanismTools-1.16.5-10.1.2.457.jar               |Mekanism: Tools               |mekanismtools                 |10.1.2              |CREATE_REG|Manifest: NOSIGNATURE         Space-BossTools_Giselle_Addon-1.16.5-1.16.jar     |Space-BossTools: Giselle Addon|boss_tools_giselle_addon      |1.16                |CREATE_REG|Manifest: NOSIGNATURE         globalxp-1.16.5-v1.10.jar                         |Global XP                     |globalxp                      |v1.10               |CREATE_REG|Manifest: NOSIGNATURE         FallingTree-1.16.5-2.11.5.jar                     |FallingTree                   |fallingtree                   |2.11.5              |CREATE_REG|Manifest: 3c:8e:df:6c:df:a6:2a:9f:af:64:ea:04:9a:cf:65:92:3b:54:93:0e:96:50:b4:52:e1:13:42:18:2b:ae:40:29         BetterPvP_21.3.0.2_Forge_1.16.5.jar               |Better PVP Mod                |xaerobetterpvp                |21.3.0              |CREATE_REG|Manifest: NOSIGNATURE         infinitetrading_1.16.5-1.9.jar                    |Infinite Trading              |infinitetrading               |1.9                 |CREATE_REG|Manifest: NOSIGNATURE         expandability-2.0.1-forge.jar                     |ExpandAbility                 |expandability                 |2.0.1               |CREATE_REG|Manifest: NOSIGNATURE         geckolib-forge-1.16.5-3.0.87.jar                  |GeckoLib                      |geckolib3                     |3.0.87              |CREATE_REG|Manifest: NOSIGNATURE     Crash Report UUID: f87c06ab-41cb-4017-af8b-b57d5913d665
  • Topics

×
×
  • Create New...

Important Information

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