Jump to content

Switching facing texture of a block


Recommended Posts

After finishing some code up for one of my block i decided to change the face texture of the block during placement. I've got the texture switching on placement but its doing it for every single block. I'm also storing the facing direction in a tileEntity so it stays per block, but this doesn't help. I think what i'm doing wrong is changing the texture of the block which changes it for all block. Though i'm too tire right now to figure out how to correct it. So any suggestion on how to fix this would be helpful.

 

BlockCode

package net.minecraft.src.eui;

import java.util.Random;
import net.minecraft.src.*;
import net.minecraft.src.eui.grinder.GuiGrinder;
import net.minecraft.src.eui.grinder.TileEntityGrinder;
import net.minecraft.src.forge.*;

public class BlockMachine extends BlockContainer implements ITextureProvider
{
    
    private Random furnaceRand = new Random();  
    private static boolean keepFurnaceInventory = true;

    public BlockMachine(int par1)
    {
        super(par1, Material.iron);
    }
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return this.blockID;
    }
    public int getBlockTextureFromSideAndMetadata(int side, int meta)
    {
    	// zero is bottom one is top
    	int facing = TileEntityMachine.getFacingDireciton();
        switch(meta)
        {
        case 0: 
        	if(side == 1)
        	{
        		return 6;
        	}
        	if(side == 0)
        	{
        		return 5;
        	}
        	if(side == facing)
        	{
        		return 2;
        	}
        	else
        	{
        		return 1;
        	}
        }
	return meta;
    }

    /**
     * Called upon block activation (left or right click on the block.). The three integers represent x,y,z of the
     * block.
     */
    public boolean blockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer)
    {
        if (par1World.isRemote)
        {
            return true;
        }
        else
        {
            TileEntity blockEntity = (TileEntity)par1World.getBlockTileEntity(par2, par3, par4);

            if (blockEntity != null)
            {
            	if(blockEntity instanceof TileEntityGrinder)
            	{
            	TileEntity var6 = (TileEntityGrinder)par1World.getBlockTileEntity(par2, par3, par4);
            	ModLoader.openGUI(par5EntityPlayer, new GuiGrinder(par5EntityPlayer.inventory, (TileEntityGrinder) var6 )); ;
            	}
            }

            return true;
        }
    }    
    @Override
    public TileEntity getBlockEntity(int meta)
    {
        switch(meta)
        {    
        case 0: return new TileEntityGrinder();
        }
	return null;
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving)
    {
        int var6 = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
        TileEntityMachine blockEntity = (TileEntityMachine) par1World.getBlockTileEntity(par2, par3, par4);
        if (var6 == 0)
        {
            blockEntity.setFacingDireciton(2);
        }

        if (var6 == 1)
        {
        	blockEntity.setFacingDireciton(3);
        }

        if (var6 == 2)
        {
        	blockEntity.setFacingDireciton(4);
        }

        if (var6 == 3)
        {
        	blockEntity.setFacingDireciton(5);
        }
    }
/**
     * Called whenever the block is removed.
     */
    public void onBlockRemoval(World par1World, int par2, int par3, int par4)
    {
        if (!keepFurnaceInventory)
        {
            TileEntityGrinder var5 = (TileEntityGrinder)par1World.getBlockTileEntity(par2, par3, par4);

            if (var5 != null)
            {
                for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6)
                {
                    ItemStack var7 = var5.getStackInSlot(var6);

                    if (var7 != null)
                    {
                        float var8 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float var9 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float var10 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;

                        while (var7.stackSize > 0)
                        {
                            int var11 = this.furnaceRand.nextInt(21) + 10;

                            if (var11 > var7.stackSize)
                            {
                                var11 = var7.stackSize;
                            }

                            var7.stackSize -= var11;
                            EntityItem var12 = new EntityItem(par1World, (double)((float)par2 + var8), (double)((float)par3 + var9), (double)((float)par4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));

                            if (var7.hasTagCompound())
                            {
                                var12.item.setTagCompound((NBTTagCompound)var7.getTagCompound().copy());
                            }

                            float var13 = 0.05F;
                            var12.motionX = (double)((float)this.furnaceRand.nextGaussian() * var13);
                            var12.motionY = (double)((float)this.furnaceRand.nextGaussian() * var13 + 0.2F);
                            var12.motionZ = (double)((float)this.furnaceRand.nextGaussian() * var13);
                            par1World.spawnEntityInWorld(var12);
                        }
                    }
                }
            }
        }

        super.onBlockRemoval(par1World, par2, par3, par4);
    }
@Override
public TileEntity getBlockEntity() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public String getTextureFile() {
	// TODO Auto-generated method stub
	return "/eui/blocks.png";
}
}

TileEntityMachine Code

package net.minecraft.src.eui;

import net.minecraft.src.*;
import net.minecraft.src.ueapi.*;

public class TileEntityMachine extends TileEntity {
 private static int facing = 0;
public static int getFacingDireciton()
{
	return facing;
}   
public static void setFacingDireciton(int side)
{
	facing = side;
}
 public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setInteger("facing", (int)this.facing);
        
    }
 public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        this.facing = par1NBTTagCompound.getInteger("facing");
    }

}

Link to comment
Share on other sites

If you look at the furnace block, it faces whatever direction you place it. Maybe you can look at that as reference.

I did, the way the furnace does it is by using metadata to change facing direction. Since i plan to put 16 machines in this one block i cant do that. Right now i know ic2 and redpower use tileEntities to control the textures, but since i can't look at there code i don't know how they do it.

Link to comment
Share on other sites

If you look at the furnace block, it faces whatever direction you place it. Maybe you can look at that as reference.

I did, the way the furnace does it is by using metadata to change facing direction. Since i plan to put 16 machines in this one block i cant do that. Right now i know ic2 and redpower use tileEntities to control the textures, but since i can't look at there code i don't know how they do it.

 

They just lookup the TE in the callback and pass the arguments to it and return what it returns, simple.

Link to comment
Share on other sites

If you look at the furnace block, it faces whatever direction you place it. Maybe you can look at that as reference.

I did, the way the furnace does it is by using metadata to change facing direction. Since i plan to put 16 machines in this one block i cant do that. Right now i know ic2 and redpower use tileEntities to control the textures, but since i can't look at there code i don't know how they do it.

 

They just lookup the TE in the callback and pass the arguments to it and return what it returns, simple.

that's what i thought so i added a function in my tileentity and got it to return the facing side. It worked at first but then the blocks started to all change facing direction with each other. They textures rotate on placement so i know its at least storing and getting the facing direction. However, i think what happening is when i go to change the texture i do it for every block instead of just one.

Link to comment
Share on other sites

If you look at the furnace block, it faces whatever direction you place it. Maybe you can look at that as reference.

I did, the way the furnace does it is by using metadata to change facing direction. Since i plan to put 16 machines in this one block i cant do that. Right now i know ic2 and redpower use tileEntities to control the textures, but since i can't look at there code i don't know how they do it.

 

They just lookup the TE in the callback and pass the arguments to it and return what it returns, simple.

that's what i thought so i added a function in my tileentity and got it to return the facing side. It worked at first but then the blocks started to all change facing direction with each other. They textures rotate on placement so i know its at least storing and getting the facing direction. However, i think what happening is when i go to change the texture i do it for every block instead of just one.

Then you are not doing it all possible situations.  If you do it in 1, you must do it in all, else you will get what you see.

Link to comment
Share on other sites

Then you are not doing it all possible situations.  If you do it in 1, you must do it in all, else you will get what you see.

Didn't quite understand that but, how would i go by making it so it only changes the texture of one instance of the block.

By making it change to the other image when it is *not* that instance.  You need to cover all cases.  It is more functional and less procedural per block, think of it that way.

Link to comment
Share on other sites

Try this: http://www.minecraftforum.net/topic/1154044-12520412-duckys-modding-tutorials-make-your-blocks-nice-now-with-cables-api/

 

Instead of using the metadata, use a variable stored in the tile entity.

I'm not using metadata for changing textures. I'm using it to change what the block does and its tileEntity.

 

:/ was actual about to just make my own custom render but was trying to avoid that. Though i could do some cool things with a custom model and render for the block. If i can't get this working using a normal block i'll try that :) . Also i've used that tut to make my steam pipes worked out well so far.

 

Also i am using a variable stored in the tile entity which is resulting in a texture change. Just for some reason it changes the texture for all blocks of the same type and stores the same value. Now that i'm thinking of it i can store a value to change what the block does. Is there a way to add data to a tileEntity when you place it?

Link to comment
Share on other sites

Also i am using a variable stored in the tile entity which is resulting in a texture change. Just for some reason it changes the texture for all blocks of the same type and stores the same value. Now that i'm thinking of it i can store a value to change what the block does. Is there a way to add data to a tileEntity when you place it?

 

Would help if you posted your current code for your getBlockTextureFromSideAndMetadata function, because if you are still using the one that calls the static function:

int facing = TileEntityMachine.getFacingDireciton();

Then that would not work for sure.  So post your current version of that function and the function in your TE that it calls?  Remember that all of it must not be static or it will not work.

Link to comment
Share on other sites

here is my current tileEntityMachine code

package net.minecraft.src.eui;

import net.minecraft.src.*;
import net.minecraft.src.ueapi.*;

public class TileEntityMachine extends TileEntity {
 private int facing = 0;
public int getFacingDireciton()
{
	return this.facing;
}   
public void setFacingDireciton(int side)
{
	this.facing = side;
}
 public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setInteger("facing", (int)this.facing);
        
    }
 public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        this.facing = par1NBTTagCompound.getInteger("facing");
    }
 	 public int getBlockTexture(int side, int meta)
    {
    	// zero is bottom one is top
    	int facing = this.getFacingDireciton();
        switch(meta)
        {
        case 0: 
        	if(side == 1)
        	{
        		return 6;
        	}
        	if(side == 0)
        	{
        		return 5;
        	}
        	if(side == facing)
        	{
        		return 2;
        	}
        	else
        	{
        		return 1;
        	}
        }
		return meta;
    }

}

I'm trying to recode the block code right now but can't seem to get it's xyz coords inorder to get the tileEntity at its location.

it hasn't changed much but i moving some of the texture code inside the tileEntity

package net.minecraft.src.eui;

import java.util.Random;
import net.minecraft.src.*;
import net.minecraft.src.IBlockAccess;
import net.minecraft.src.eui.grinder.GuiGrinder;
import net.minecraft.src.eui.grinder.TileEntityGrinder;
import net.minecraft.src.forge.*;

public class BlockMachine extends BlockContainer implements ITextureProvider
{
    
    private Random furnaceRand = new Random();  
    private static boolean keepFurnaceInventory = true;

    public BlockMachine(int par1)
    {
        super(par1, Material.iron);
    }
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return this.blockID;
    }
    public int getBlockTextureFromSideAndMetadata(int side, int meta)
    {
    	TileEntity blockEntity = (TileEntity)World.getBlockTileEntity(, par3, par4); //error here since i can't get par2, par3 and par4 inside this method
    	return ((TileEntityMachine) blockEntity).getBlockTexture(side,meta);
    }

    /**
     * Called upon block activation (left or right click on the block.). The three integers represent x,y,z of the
     * block.
     */
    public boolean blockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer)
    {
        if (par1World.isRemote)
        {
            return true;
        }
        else
        {
            TileEntity blockEntity = (TileEntity)par1World.getBlockTileEntity(par2, par3, par4);

            if (blockEntity != null)
            {
            	if(blockEntity instanceof TileEntityGrinder)
            	{
            	TileEntity var6 = (TileEntityGrinder)par1World.getBlockTileEntity(par2, par3, par4);
            	ModLoader.openGUI(par5EntityPlayer, new GuiGrinder(par5EntityPlayer.inventory, (TileEntityGrinder) var6 )); ;
            	}
            }

            return true;
        }
    }    
    @Override
    public TileEntity getBlockEntity(int meta)
    {
        switch(meta)
        {    
        case 0: return new TileEntityGrinder();
        }
	return null;
    }

    /**
     * Called when the block is placed in the world.
     */
    public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving)
    {
        int var6 = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
        TileEntityMachine blockEntity = (TileEntityMachine) par1World.getBlockTileEntity(par2, par3, par4);
        if (var6 == 0)
        {
            blockEntity.setFacingDireciton(2);
        }

        if (var6 == 1)
        {
        	blockEntity.setFacingDireciton(3);
        }

        if (var6 == 2)
        {
        	blockEntity.setFacingDireciton(4);
        }

        if (var6 == 3)
        {
        	blockEntity.setFacingDireciton(5);
        }
    }
/**
     * Called whenever the block is removed.
     */
    public void onBlockRemoval(World par1World, int par2, int par3, int par4)
    {
        if (!keepFurnaceInventory)
        {
            TileEntityGrinder var5 = (TileEntityGrinder)par1World.getBlockTileEntity(par2, par3, par4);

            if (var5 != null)
            {
                for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6)
                {
                    ItemStack var7 = var5.getStackInSlot(var6);

                    if (var7 != null)
                    {
                        float var8 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float var9 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
                        float var10 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;

                        while (var7.stackSize > 0)
                        {
                            int var11 = this.furnaceRand.nextInt(21) + 10;

                            if (var11 > var7.stackSize)
                            {
                                var11 = var7.stackSize;
                            }

                            var7.stackSize -= var11;
                            EntityItem var12 = new EntityItem(par1World, (double)((float)par2 + var8), (double)((float)par3 + var9), (double)((float)par4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));

                            if (var7.hasTagCompound())
                            {
                                var12.item.setTagCompound((NBTTagCompound)var7.getTagCompound().copy());
                            }

                            float var13 = 0.05F;
                            var12.motionX = (double)((float)this.furnaceRand.nextGaussian() * var13);
                            var12.motionY = (double)((float)this.furnaceRand.nextGaussian() * var13 + 0.2F);
                            var12.motionZ = (double)((float)this.furnaceRand.nextGaussian() * var13);
                            par1World.spawnEntityInWorld(var12);
                        }
                    }
                }
            }
        }

        super.onBlockRemoval(par1World, par2, par3, par4);
    }
@Override
public TileEntity getBlockEntity() {
	// TODO Auto-generated method stub
	return null;
}
@Override
public String getTextureFile() {
	// TODO Auto-generated method stub
	return "/eui/blocks.png";
}
}

Link to comment
Share on other sites

duo, i fill stupid missed this

public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)
    {
        return this.getBlockTextureFromSideAndMetadata(par5, par1IBlockAccess.getBlockMetadata(par2, par3, par4));
    }

started scanning threw the block.class as i was think what you meant and found it. Should help me get this working now that i can get the xyz.  Thank you again for help me and not doing it for me.

 

Edit: had to do a little more but that was basically it once i moved the texture code back into the block class. Spent 10 mins correcting the directions when place and i am done. Here is a simply version of my code for the next person who needs it.

TileEntity***.class

public class TileEntity*** extends TileEntity {
 private int facing;
public int getFacingDireciton()
{
	return this.facing;
}   
public void setFacingDireciton(int side)
{
	this.facing = side;
}
 public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setInteger("facing", (int)this.facing);
        
    }
 public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        this.facing = par1NBTTagCompound.getInteger("facing");
    } 	

}

and Block***.class

public block extends Block
{
//normal block code snipped
  public int getBlockTexture(IBlockAccess par1IBlockAccess, int x, int y, int z, int side)
    {
    
    	TileEntity blockEntity = par1IBlockAccess.getBlockTileEntity(x, y, z);
    	int meta = par1IBlockAccess.getBlockMetadata(x, y, z); 
    	if(side == 1)
        {
			 switch(meta)
			 {
			 case 0: return #;
			 default: return #;
			 }
        }
        if(side == ((TileEntity***)blockEntity).getFacingDireciton())
        {
        	switch(meta)
        	{
        	case 0: return #;
        	default: return #;
        	}
        }
	return #;
    }
public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLiving par5EntityLiving)
    {
        int var6 = MathHelper.floor_double((double)(par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
        TileEntity blockEntity = (TileEntity) par1World.getBlockTileEntity(par2, par3, par4);
        //0-4 are directions the player is facing on the compass, though i don't know which is which, but trial and error got me the write answers
        if (var6 == 0)
        {
           ((TileEntity***)blockEntity).setFacingDireciton(2);
        }

        if (var6 == 1)
        {
        	((TileEntity***)blockEntity).setFacingDireciton(5);
        }

        if (var6 == 2)
        {
        	((TileEntity***)blockEntity).setFacingDireciton(3);
        }

        if (var6 == 3)
        {
        	((TileEntity***)blockEntity).setFacingDireciton(4);
        }
       
    }
}
public TileEntity getBlockEntity(int meta)
    {
        switch(meta)
        {    
        case 0: return new TileEntity***();
        }
	return null;
    }

This code should work :)

 

Link to comment
Share on other sites

A lot of machines seems to require rotation of,it's textures. You think it's a good idea I include something like that in the API?

No.

 

Because every block does it different, even the blocks in my mod do.  Sometimes they need to rotate only on one axis, something the faces need to rotate around an axis while having the body also rotate around.  Sometimes it needs to be stored in metadata, other times Tile Entities.  Some times it is generated based on some state, some times it might just be a variable.  In all cases it is still very simple to do.

Link to comment
Share on other sites

Just giving code like most tutorials do does not help the person to learn.  Copy/Paste coding is not coding.  The best way to learn is to examine things through the MC source, debug around and follow the flow control paths, etc...  :)

yes your are right but i spent a week figuring this out. Even though i like it when people learn, sometimes it help if they have something too start with. Then they can learn when they go to edit the code i have up there to meet there needs. Similar to how i started, i copied and pasted code for the few things i did. Then i started to change how it worked too meet my needs. After that i was deep into figuring things out myself, with a few post like this when i got stuck. With a  little bit of using what i figured out and i usual get how to code it each time.

I have a question. I have a similar block that rotates but when right clicked with a wrench. Everything rotates fine. The problem is that the block doesn't update it's texture unless another block is either broken or placed. How can I update the block's texture?

Reading that just made me release if i use your wrench from the base mod How do i rotate my machines. Would i just make a method that gets the item the player is right clicking with? and then do the rotations stuff.

Link to comment
Share on other sites

You saw the Universal Components page right? I included in there the object reference for the wrench item. Basically do this.

 

//First of course you import the Universal Components package
import net.minecraft.src.universalelectricity.components

//Then in the on the blockActivated method check if the user is holding a wrench. If so, then rotate it!

               /**
        	 * Check if the player is holding a wrench or an electric item. If so, do not open the GUI.
        	 */
        	if(par5EntityPlayer.inventory.getCurrentItem() != null)
        	{
        		if(par5EntityPlayer.inventory.getCurrentItem().itemID == UniversalComponents.ItemWrench.shiftedIndex)
            	{
        			//Reorient the block
        			int metadata = par1World.getBlockMetadata(par2, par3, par4);
        			switch(metadata)
        			{
                                        //In your case, set the tile entity data.
        			case 2: par1World.setBlockMetadataWithNotify(par2, par3, par4, 5); break;
        			case 5: par1World.setBlockMetadataWithNotify(par2, par3, par4, 3); break;
        			case 3: par1World.setBlockMetadataWithNotify(par2, par3, par4, 4); break;
        			case 4: par1World.setBlockMetadataWithNotify(par2, par3, par4, 2); break;
        			}
        			
        			return true;
            	}
        		else if(par5EntityPlayer.inventory.getCurrentItem().getItem() instanceof UEItemElectric)
        		{
        			return false;
        		}
        	}

Link to comment
Share on other sites

You are probably calling world.setBlockMetadata, you need to call world.setBlockMetadataWithNotify I think.

 

I changed my code to setBlockMetadataWithNotify . The texture still doesn't update unless there is a block change nearby.

 

EDIT: I figured it out. I need to set this:

this.setRequiresSelfNotify();

 

EDIT 2: OK I have another problem now. I decided NOT to use metadata to save the direction and to use the tile entity instead. After the change, the texture of the block will not change or update unless a block besides it changes. Same problem. I tried cheating by setting the block metadata into the same metadata but it doesn't work.

Link to comment
Share on other sites

You are probably calling world.setBlockMetadata, you need to call world.setBlockMetadataWithNotify I think.

 

I changed my code to setBlockMetadataWithNotify . The texture still doesn't update unless there is a block change nearby.

 

EDIT: I figured it out. I need to set this:

this.setRequiresSelfNotify();

 

EDIT 2: OK I have another problem now. I decided NOT to use metadata to save the direction and to use the tile entity instead. After the change, the texture of the block will not change or update unless a block besides it changes. Same problem. I tried cheating by setting the block metadata into the same metadata but it doesn't work.

have you tried to call the getTexture method when changing direction. Not sure if it will work but its worth a try. Also try set block needs updating similar to how redstone wire calls for updating.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I have been trying to make a server with forge but I keep running into an issue. I have jdk 22 installed as well as Java 8. here is the debug file  
    • it crashed again     What the console says : [00:02:03] [Server thread/INFO] [Easy NPC/]: [EntityManager] Server started! [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {iceandfire:fire_dragon_roost=true, iceandfire:fire_lily=true, iceandfire:spawn_dragon_skeleton_fire=true, iceandfire:lightning_dragon_roost=true, iceandfire:spawn_dragon_skeleton_lightning=true, iceandfire:ice_dragon_roost=true, iceandfire:ice_dragon_cave=true, iceandfire:lightning_dragon_cave=true, iceandfire:cyclops_cave=true, iceandfire:spawn_wandering_cyclops=true, iceandfire:spawn_sea_serpent=true, iceandfire:frost_lily=true, iceandfire:hydra_cave=true, iceandfire:lightning_lily=true, iceandfireixie_village=true, iceandfire:myrmex_hive_jungle=true, iceandfire:myrmex_hive_desert=true, iceandfire:silver_ore=true, iceandfire:siren_island=true, iceandfire:spawn_dragon_skeleton_ice=true, iceandfire:spawn_stymphalian_bird=true, iceandfire:fire_dragon_cave=true, iceandfire:sapphire_ore=true, iceandfire:spawn_hippocampus=true, iceandfire:spawn_death_worm=true} [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {TROLL_S=true, HIPPOGRYPH=true, AMPHITHERE=true, COCKATRICE=true, TROLL_M=true, DREAD_LICH=true, TROLL_F=true} [00:02:03] [Server thread/INFO] [ne.be.lo.WeaponRegistry/]: Encoded Weapon Attribute registry size (with package overhead): 41976 bytes (in 5 string chunks with the size of 10000) [00:02:03] [Server thread/INFO] [patchouli/]: Sending reload packet to clients [00:02:03] [Server thread/WARN] [voicechat/]: [voicechat] Running in offline mode - Voice chat encryption is not secure! [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Using server-ip as bind address: 0.0.0.0 [00:02:03] [Server thread/WARN] [ModernFix/]: Dedicated server took 22.521 seconds to load [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Voice chat server started at 0.0.0.0:25565 [00:02:03] [Server thread/WARN] [minecraft/SynchedEntityData]: defineId called for: class net.minecraft.world.entity.player.Player from class tschipp.carryon.common.carry.CarryOnDataManager [00:02:03] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@2941ffd5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 0 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 1 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 2 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 3 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 4 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 6 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 7 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 8 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 9 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 10 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 11 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 12 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 13 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 14 [00:02:19] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@ebc7ef2 [00:02:19] [Server thread/INFO] [minecraft/PlayerList]: ZacAdos[/90.2.17.162:49242] logged in with entity id 1062 at (-1848.6727005281205, 221.0, -3054.2468255848935) [00:02:19] [Server thread/ERROR] [ModernFix/]: Skipping entity ID sync for com.talhanation.smallships.world.entity.ship.Ship: java.lang.NoClassDefFoundError: net/minecraft/client/CameraType [00:02:19] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos joined the game [00:02:19] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:19] [Server thread/INFO] [se.mi.te.da.DataManager/]: Sending data to client: ZacAdos [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Received secret request of - Gloop - ZacAdos (17) [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Sent secret to - Gloop - ZacAdos [00:02:21] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully authenticated player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully validated connection of player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Player - Gloop - ZacAdos (cc56befd-d376-3526-a760-340713c478bd) successfully connected to voice chat stop [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping the server [00:02:34] [Server thread/INFO] [mo.pl.ar.ArmourersWorkshop/]: stop local service [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [00:02:34] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: ZacAdos lost connection: Server closed [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos left the game [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (world): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage: All dimensions are saved [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopping IO worker... [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopped IO worker! [00:02:34] [Server thread/INFO] [Calio/]: Removing Dynamic Registries for: net.minecraft.server.dedicated.DedicatedServer@7dc879e1 [MineStrator Daemon]: Checking server disk space usage, this could take a few seconds... [MineStrator Daemon]: Updating process configuration files... [MineStrator Daemon]: Ensuring file permissions are set correctly, this could take a few seconds... [MineStrator Daemon]: Pulling Docker container image, this could take a few minutes to complete... [MineStrator Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ java -Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=jline.UnsupportedTerminal -p libraries/cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar:libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/net/minecraftforge/JarJarFileSystems/0.3.16/JarJarFileSystems-0.3.16.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-opens java.base/java.lang.invoke=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming -Djava.net.preferIPv6Addresses=system -DignoreList=bootstraplauncher-1.1.2.jar,securejarhandler-2.1.4.jar,asm-commons-9.5.jar,asm-util-9.5.jar,asm-analysis-9.5.jar,asm-tree-9.5.jar,asm-9.5.jar,JarJarFileSystems-0.3.16.jar -DlibraryDirectory=libraries -DlegacyClassPath=libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/net/minecraftforge/accesstransformers/8.0.4/accesstransformers-8.0.4.jar:libraries/org/antlr/antlr4-runtime/4.9.1/antlr4-runtime-4.9.1.jar:libraries/net/minecraftforge/eventbus/6.0.3/eventbus-6.0.3.jar:libraries/net/minecraftforge/forgespi/6.0.0/forgespi-6.0.0.jar:libraries/net/minecraftforge/coremods/5.0.1/coremods-5.0.1.jar:libraries/cpw/mods/modlauncher/10.0.8/modlauncher-10.0.8.jar:libraries/net/minecraftforge/unsafe/0.2.0/unsafe-0.2.0.jar:libraries/com/electronwill/night-config/core/3.6.4/core-3.6.4.jar:libraries/com/electronwill/night-config/toml/3.6.4/toml-3.6.4.jar:libraries/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar:libraries/net/jodah/typetools/0.8.3/typetools-0.8.3.jar:libraries/net/minecrell/terminalconsoleappender/1.2.0/terminalconsoleappender-1.2.0.jar:libraries/org/jline/jline-reader/3.12.1/jline-reader-3.12.1.jar:libraries/org/jline/jline-terminal/3.12.1/jline-terminal-3.12.1.jar:libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar:libraries/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar:libraries/net/minecraftforge/JarJarSelector/0.3.16/JarJarSelector-0.3.16.jar:libraries/net/minecraftforge/JarJarMetadata/0.3.16/JarJarMetadata-0.3.16.jar:libraries/net/minecraftforge/fmlloader/1.19.2-43.3.0/fmlloader-1.19.2-43.3.0.jar:libraries/net/minecraft/server/1.19.2-20220805.130853/server-1.19.2-20220805.130853-extra.jar:libraries/com/github/oshi/oshi-core/5.8.5/oshi-core-5.8.5.jar:libraries/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:libraries/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:libraries/com/mojang/authlib/3.11.49/authlib-3.11.49.jar:libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar:libraries/com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar:libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar:libraries/com/mojang/logging/1.0.0/logging-1.0.0.jar:libraries/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar:libraries/io/netty/netty-buffer/4.1.77.Final/netty-buffer-4.1.77.Final.jar:libraries/io/netty/netty-codec/4.1.77.Final/netty-codec-4.1.77.Final.jar:libraries/io/netty/netty-common/4.1.77.Final/netty-common-4.1.77.Final.jar:libraries/io/netty/netty-handler/4.1.77.Final/netty-handler-4.1.77.Final.jar:libraries/io/netty/netty-resolver/4.1.77.Final/netty-resolver-4.1.77.Final.jar:libraries/io/netty/netty-transport/4.1.77.Final/netty-transport-4.1.77.Final.jar:libraries/io/netty/netty-transport-classes-epoll/4.1.77.Final/netty-transport-classes-epoll-4.1.77.Final.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-x86_64.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-aarch_64.jar:libraries/io/netty/netty-transport-native-unix-common/4.1.77.Final/netty-transport-native-unix-common-4.1.77.Final.jar:libraries/it/unimi/dsi/fastutil/8.5.6/fastutil-8.5.6.jar:libraries/net/java/dev/jna/jna/5.10.0/jna-5.10.0.jar:libraries/net/java/dev/jna/jna-platform/5.10.0/jna-platform-5.10.0.jar:libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar:libraries/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:libraries/org/apache/logging/log4j/log4j-api/2.17.0/log4j-api-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-core/2.17.0/log4j-core-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.17.0/log4j-slf4j18-impl-2.17.0.jar:libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar cpw.mods.bootstraplauncher.BootstrapLauncher --launchTarget forgeserver --fml.forgeVersion 43.3.0 --fml.mcVersion 1.19.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220805.130853 [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [00:02:43] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [00:02:44] [main/INFO] [ne.mi.fm.lo.mo.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection Latest log [29Mar2024 00:02:42.803] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [29Mar2024 00:02:42.805] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [29Mar2024 00:02:43.548] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [29Mar2024 00:02:43.876] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.878] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:44.033] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [29Mar2024 00:02:44.034] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [29Mar2024 00:02:44.034] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection
    • I am unable to do that. Brigadier is a mojang library that parses commands.
    • Hi, i appreciate the answer. I would love to do that, but we have active players with all their belongings in SSN. Also this mod is really handy and they would be mad if we removed it. Are you really certain that SSN is causing this? It would require lots of work to test it and SSN was not really an issue before we removed Fast Suite. Can it be related somehow? I will provide you with log before removing FS. PasteBin: https://pastebin.com/Y5EpLpNe (crash before removing Fast Suite, which I suspected to be a problem from some crash before)
  • Topics

×
×
  • Create New...

Important Information

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