Jump to content

[1.7.2] Projectile Rotation Render


Admaster

Recommended Posts

Hello.

I have problem when rendering a ShurikenEntity want to rotate it like shuriken do.

I was trying to  set it with ticks and position as arguments but don't know how to make it.

It is code from arrow entity changed a bit.

I load my model from wavefront file.

Can smb tell how to make it rotating?

 

public class EntityShuriken extends Entity implements IProjectile
{
    private int d = -1;
    private int e = -1;
    private int f = -1;
    private Block contactBlock;
    private int inData;
    private boolean inGround;
    public int canBePickedUp;
    public static int ShurikenShake;
    public Entity shootingEntity;
    private int ticksInGround;
    private int ticksInAir;
    private double damage = 2.0D;
    private static final String __OBFID = "CL_00001715";

    public EntityShuriken(World par1World)
    {
        super(par1World);
        this.renderDistanceWeight = 10.0D;
        this.setSize(0.5F, 0.5F);
    }

    public EntityShuriken(World par1World, double par2, double par4, double par6)
    {
        super(par1World);
        this.renderDistanceWeight = 10.0D;
        this.setSize(0.5F, 0.5F);
        this.setPosition(par2, par4, par6);
        this.yOffset = 0.0F;
    }

    public EntityShuriken(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5)
    {
        super(par1World);
        this.renderDistanceWeight = 10.0D;
        this.shootingEntity = par2EntityLivingBase;

        if (par2EntityLivingBase instanceof EntityPlayer)
        {
            this.canBePickedUp = 1;
        }

        this.posY = par2EntityLivingBase.posY + (double)par2EntityLivingBase.getEyeHeight() - 0.10000000149011612D;
        double d0 = par3EntityLivingBase.posX - par2EntityLivingBase.posX;
        double d1 = par3EntityLivingBase.boundingBox.minY + (double)(par3EntityLivingBase.height / 3.0F) - this.posY;
        double d2 = par3EntityLivingBase.posZ - par2EntityLivingBase.posZ;
        double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d2 * d2);

        if (d3 >= 1.0E-7D)
        {
            float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
            float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI));
            double d4 = d0 / d3;
            double d5 = d2 / d3;
            this.setLocationAndAngles(par2EntityLivingBase.posX + d4, this.posY, par2EntityLivingBase.posZ + d5, f2, f3);
            this.yOffset = 0.0F;
            float f4 = (float)d3 * 0.2F;
            this.setThrowableHeading(d0, d1 + (double)f4, d2, par4, par5);
        }
    }

    public EntityShuriken(World par1World, EntityLivingBase par2EntityLivingBase, float par3)
    {
        super(par1World);
        this.renderDistanceWeight = 10.0D;
        this.shootingEntity = par2EntityLivingBase;

        if (par2EntityLivingBase instanceof EntityPlayer)
        {
            this.canBePickedUp = 1;
        }

        this.setSize(0.5F, 0.5F);
        this.setLocationAndAngles(par2EntityLivingBase.posX, par2EntityLivingBase.posY + (double)par2EntityLivingBase.getEyeHeight(), par2EntityLivingBase.posZ, par2EntityLivingBase.rotationYaw, par2EntityLivingBase.rotationPitch);
        this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F);
        this.posY -= 0.10000000149011612D;
        this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F);
        this.setPosition(this.posX, this.posY, this.posZ);
        this.yOffset = 0.0F;
        this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI));
        this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI));
        this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI));
        this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, par3 * 1.5F, 1.0F);
    }

    @Override
    protected void entityInit()
    {
        this.dataWatcher.addObject(16, Byte.valueOf((byte)0));
    }

    /**
     * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction.
     */
    @Override
    public void setThrowableHeading(double par1, double par3, double par5, float par7, float par8)
    {
        float f2 = MathHelper.sqrt_double(par1 * par1 + par3 * par3 + par5 * par5);
        par1 /= (double)f2;
        par3 /= (double)f2;
        par5 /= (double)f2;
        par1 += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)par8;
        par3 += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)par8;
        par5 += this.rand.nextGaussian() * (double)(this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * (double)par8;
        par1 *= (double)par7;
        par3 *= (double)par7;
        par5 *= (double)par7;
        this.motionX = par1;
        this.motionY = par3;
        this.motionZ = par5;
        float f3 = MathHelper.sqrt_double(par1 * par1 + par5 * par5);
        this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(par1, par5) * 180.0D / Math.PI);
        this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(par3, (double)f3) * 180.0D / Math.PI);
        this.ticksInGround = 0;
    }

    /**
     * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX,
     * posY, posZ, yaw, pitch
     */
    @SideOnly(Side.CLIENT)
    public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9)
    {
        this.setPosition(par1, par3, par5);
        this.setRotation(par7, par8);
    }

    /**
     * Sets the velocity to the args. Args: x, y, z
     */
    @SideOnly(Side.CLIENT)
    public void setVelocity(double par1, double par3, double par5)
    {
        this.motionX = par1;
        this.motionY = par3;
        this.motionZ = par5;

        if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
        {
            float f = MathHelper.sqrt_double(par1 * par1 + par5 * par5);
            this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(par1, par5) * 180.0D / Math.PI);
            this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(par3, (double)f) * 180.0D / Math.PI);
            this.prevRotationPitch = this.rotationPitch;
            this.prevRotationYaw = this.rotationYaw;
            this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch);
            this.ticksInGround = 0;
        }
    }

    /**
     * Called to update the entity's position/logic.
     */
    @Override
    public void onEntityUpdate()
    {
        super.onEntityUpdate();

        if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F)
        {
            float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
            this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
            this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI);
        }

        Block block = this.worldObj.getBlock(this.d, this.e, this.f);

        if (block.getMaterial() != Material.air)
        {
            block.setBlockBoundsBasedOnState(this.worldObj, this.d, this.e, this.f);
            AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.d, this.e, this.f);

            if (axisalignedbb != null && axisalignedbb.isVecInside(this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ)))
            {
                this.inGround = true;
            }
        }

        if (this.ShurikenShake > 0)
        {
            --this.ShurikenShake;
        }

        if (this.inGround)
        {
            int j = this.worldObj.getBlockMetadata(this.d, this.e, this.f);

            if (block == this.contactBlock && j == this.inData)
            {
                ++this.ticksInGround;

                if (this.ticksInGround == 1200) //1200 = 60s
                {
                    this.setDead();
                }
            }
            else
            {
                this.inGround = false;
                this.motionX *= (double)(this.rand.nextFloat() * 0.2F);
                this.motionY *= (double)(this.rand.nextFloat() * 0.2F);
                this.motionZ *= (double)(this.rand.nextFloat() * 0.2F);
                this.ticksInGround = 0;
                this.ticksInAir = 0;
            }
        }
        else
        {
            ++this.ticksInAir;
            Vec3 vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ);
            Vec3 vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
            MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false);
            vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ);
            vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);

            if (movingobjectposition != null)
            {
                vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
            }

            Entity entity = null;
            List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
            double d0 = 0.0D;
            int i;
            float f1;

            for (i = 0; i < list.size(); ++i)
            {
                Entity entity1 = (Entity)list.get(i);

                if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5))
                {
                    f1 = 0.3F;
                    AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand((double)f1, (double)f1, (double)f1);
                    MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3);

                    if (movingobjectposition1 != null)
                    {
                        double d1 = vec31.distanceTo(movingobjectposition1.hitVec);

                        if (d1 < d0 || d0 == 0.0D)
                        {
                            entity = entity1;
                            d0 = d1;
                        }
                    }
                }
            }

            if (entity != null)
            {
                movingobjectposition = new MovingObjectPosition(entity);
            }

            if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer)
            {
                EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit;

                if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer))
                {
                    movingobjectposition = null;
                }
            }

            float f2;
            float f4;

            if (movingobjectposition != null)
            {
                if (movingobjectposition.entityHit != null)
                {
                    f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
                    int k = MathHelper.ceiling_double_int((double)f2 * this.damage);

                   /* if (this.getIsCritical())
                    {
                        k += this.rand.nextInt(k / 2 + 2);
                    }*/

                    DamageSource damagesource = null;

                    if (this.shootingEntity == null)
                    {
                        damagesource = DamSource.causeShurikenDamage(this, this);
                    }
                    else
                    {
                        damagesource = DamSource.causeShurikenDamage(this, this.shootingEntity);
                    }

                    if (movingobjectposition.entityHit.attackEntityFrom(damagesource, (float)k))
                    {
                        if (movingobjectposition.entityHit instanceof EntityLivingBase)
                        {
                            EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit;

                            if (!this.worldObj.isRemote)
                            {
                                entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1);
                            }

                            if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP)
                            {
                                ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F));
                            }
                        }

                        this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));

                        if (!(movingobjectposition.entityHit instanceof EntityEnderman))
                        {
                            this.setDead();
                        }
                    }
                    else
                    {
                        this.motionX *= -0.10000000149011612D;
                        this.motionY *= -0.10000000149011612D;
                        this.motionZ *= -0.10000000149011612D;
                        this.rotationYaw += 180.0F;
                        this.prevRotationYaw += 180.0F;
                        this.ticksInAir = 0;
                    }
                }
                else
                {
                    this.d = movingobjectposition.blockX;
                    this.e = movingobjectposition.blockY;
                    this.f = movingobjectposition.blockZ;
                    this.contactBlock = block;
                    this.inData = this.worldObj.getBlockMetadata(this.d, this.e, this.f);
                    this.motionX = (double)((float)(movingobjectposition.hitVec.xCoord - this.posX));
                    this.motionY = (double)((float)(movingobjectposition.hitVec.yCoord - this.posY));
                    this.motionZ = (double)((float)(movingobjectposition.hitVec.zCoord - this.posZ));
                    f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
                    this.posX -= this.motionX / (double)f2 * 0.05000000074505806D;
                    this.posY -= this.motionY / (double)f2 * 0.05000000074505806D;
                    this.posZ -= this.motionZ / (double)f2 * 0.05000000074505806D;
                    this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));
                    this.inGround = true;
                    this.ShurikenShake = 0;

                    if (this.contactBlock.getMaterial() != Material.air)
                    {
                        this.contactBlock.onEntityCollidedWithBlock(this.worldObj, this.d, this.e, this.f, this);
                    }
                }
            }

           /* if (this.getIsCritical())
            {
                for (i = 0; i < 4; ++i)
                {
                    this.worldObj.spawnParticle("crit", this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D, -this.motionX, -this.motionY + 0.2D, -this.motionZ);
                }
            }*/

            this.posX += this.motionX;
            this.posY += this.motionY;
            this.posZ += this.motionZ;
            f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
            this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);

            for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F)
            {
                ;
            }

            while (this.rotationPitch - this.prevRotationPitch >= 180.0F)
            {
                this.prevRotationPitch += 360.0F;
            }

            while (this.rotationYaw - this.prevRotationYaw < -180.0F)
            {
                this.prevRotationYaw -= 360.0F;
            }

            while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
            {
                this.prevRotationYaw += 360.0F;
            }

            this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
            this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
            float f3 = 0.99F;
            f1 = 0.05F;

            if (this.isInWater())
            {
                for (int l = 0; l < 4; ++l)
                {
                    f4 = 0.25F;
                    this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double)f4, this.posY - this.motionY * (double)f4, this.posZ - this.motionZ * (double)f4, this.motionX, this.motionY, this.motionZ);
                }

                f3 = 0.8F;
            }

            if (this.isWet())
            {
                this.extinguish();
            }

            this.motionX *= (double)f3;
            this.motionY *= (double)f3;
            this.motionZ *= (double)f3;
            this.motionY -= (double)f1;
            this.setPosition(this.posX, this.posY, this.posZ);
            this.func_145775_I();
        }
    }

public class RenderShuriken extends Render {
final ResourceLocation texture = new ResourceLocation("Ref.modID:models/obj/Shuriken.png");
final ResourceLocation modelobj = new ResourceLocation("Ref.modID:models/obj/Shuriken.obj");
private IModelCustom model;

@Override
public void doRender(Entity par1EntityShuriken, double var2, double var4, double var6, float var8, float var9) 
{
	Tessellator tessellator = Tessellator.instance;
	this.model = AdvancedModelLoader.loadModel(modelobj);

	GL11.glPushMatrix();
	GL11.glTranslatef((float)var2, (float)var4, (float)var6);
	FMLClientHandler.instance().getClient().getTextureManager().bindTexture(texture);
	GL11.glRotatef(par1EntityShuriken.prevRotationYaw + (par1EntityShuriken.rotationYaw - par1EntityShuriken.prevRotationYaw) * var9 - 90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(par1EntityShuriken.prevRotationPitch + (par1EntityShuriken.rotationPitch - par1EntityShuriken.prevRotationPitch) * var9, 0.0F, 0.0F, 1.0F);
    byte b0 = 0;
    float f2 = 0.0F;
    float f3 = 0.5F;
    float f4 = (0 + b0 * 10) / 32.0F;
    float f5 = (32 + b0 * 10) / 32.0F;
    float f6 = 0.0F;
    float f7 = 1.0F;
    float f8 = (32 + b0 * 10) / 32.0F;
    float f9 = (64 + b0 * 10) / 32.0F;
    float f10 = 0.01F;
    GL11.glEnable(32826);
    float f11 = EntityShuriken.ShurikenShake - var9;
    if (f11 > 0.0F)
    {
      float f12 = -MathHelper.sin(f11 * 3.0F) * f11;
      GL11.glRotatef(f12, 0.0F, 0.0F, 1.0F);
    }
    GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
    GL11.glScalef(f10, f10, f10);
    GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
    
	model.renderAll();
	GL11.glPopMatrix();
}

public void renderSpecial()
{
}

@Override
protected ResourceLocation getEntityTexture(Entity var1) 
{
	return texture;
}
}

Link to comment
Share on other sites

Yeah, you have to rotate it based of ticks and partialTicks. Choose an axis. Or use an animation texture.

Link to comment
Share on other sites

I think that it would be easiest to add a an instance variable to the projectile's class to track the spinning, and then in the onUpdate method for the projectile increment the rotation variable, and use a modular operator to keep the value less than 360.

 

Then in the renderer simply call glRotate with the angle and (assuming you want it to rotate on a flat plane) the y-axis

 


public int rotation = 0;

onUpdate() {
   ...
   
   rotation = (rotation + 1) % 360;
   
   ...
}

Renderer:

GL11.glRotatef(projectile.rotation, 0, 1, 0);

Link to comment
Share on other sites

when I put rotation into Render class it works(so without projectile.), but it rotate when on ground only I think.

I used    

if(!par1EntityShuriken.onGround)
    	onUpdate();

but still rotating.

It is hard to say but when it is in air it doesn't rotate(it's too fast). Just it rotates when in ground.

I used it also without ! and it stopped rotating.

It looks like onGround doesn't work.

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

    • Descargo un mod y luego, en archivo jar, lo mando a la carpeta "mods" en minecraft, pero al entrar a minecraft forge no me aparecen los mods por ningun lado, si pongo un mod incompatible me sale un error pero no me aparecen los demas mods, ¿Que puedo hacer?  
    • Descargo un mod y luego, en archivo jar, lo mando a la carpeta "mods" en minecraft, pero al entrar a minecraft forge no me aparecen los mods por ningun lado, si pongo un mod incompatible me sale un error pero no me aparecen los demas mods, ¿Que puedo hacer?  
    • Please read the FAQ for how to post logs, pasting them inline is very hard to read. What happened after you removed JEI? A log from that run might help as well.
    • I am setting up a modded server using Aternos and I have gotten this error:   [06Oct2024 18:53:53.588] [main/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class com/minecolonies/core/compatibility/jei/GenericRecipeCategory for invalid dist DEDICATED_SERVER I removed JEI from the server to see if that would fix anything. All I know is that Minecolonies is the main problem, I have seen similar errors though I still am unsure.   I am not wanting to remove Minecolonies as it will be a major part of the server I am setting up.   FULL LOG:   [06Oct2024 18:53:37.486] [main/INFO] [Arclight/]: ___ ___ __ /\ / | ________/ (_)__ / / / / / /| |/ __/ __/ / / _ / _ \/__/ / ___ / / / /_/ / / / / // / / /_/ |/_/ \__/_/_/\_ /_//_/ / /__/ \/ Version 顿顽 (Trials) / arclight-1.20.1-1.0.6-SNAPSHOT-b2cde4a Build Date 2024-08-11 16:15:13 [06Oct2024 18:53:37.535] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, arclightserver, --fml.forgeVersion, 47.2.20, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412, nogui] [06Oct2024 18:53:37.537] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.12 by Eclipse Adoptium; OS Linux arch amd64 version 5.15.0-112-generic [06Oct2024 18:53:39.238] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is arclightserver [06Oct2024 18:53:39.272] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/server/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2399!/ Service=ModLauncher Env=SERVER [06Oct2024 18:53:40.002] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/fmlcore/1.20.1-47.2.20/fmlcore-1.20.1-47.2.20.jar is missing mods.toml file [06Oct2024 18:53:40.002] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/javafmllanguage/1.20.1-47.2.20/javafmllanguage-1.20.1-47.2.20.jar is missing mods.toml file [06Oct2024 18:53:40.003] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/lowcodelanguage/1.20.1-47.2.20/lowcodelanguage-1.20.1-47.2.20.jar is missing mods.toml file [06Oct2024 18:53:40.003] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/mclanguage/1.20.1-47.2.20/mclanguage-1.20.1-47.2.20.jar is missing mods.toml file [06Oct2024 18:53:40.502] [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: [06Oct2024 18:53:40.504] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: aeroblender. Using Mod File: /server/mods/aeroblender-1.20.1-1.0.1-neoforge.jar [06Oct2024 18:53:40.504] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: expandability. Using Mod File: /server/mods/expandability-9.0.4.jar [06Oct2024 18:53:40.504] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: curios. Using Mod File: /server/mods/curios-forge-5.10.0+1.20.1.jar [06Oct2024 18:53:40.504] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 15 dependencies adding them to mods collection [06Oct2024 18:53:48.289] [main/INFO] [mixin/]: Compatibility level set to JAVA_17 [06Oct2024 18:53:49.330] [main/INFO] [mixin/]: Successfully loaded Mixin Connector [io.izzel.arclight.common.mod.ArclightConnector] [06Oct2024 18:53:49.359] [main/INFO] [Arclight/]: Arclight core mixin added. [06Oct2024 18:53:49.362] [main/INFO] [Arclight/]: Arclight optimization mixin added. [06Oct2024 18:53:49.367] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'arclightserver' with arguments [nogui] [06Oct2024 18:53:49.491] [main/INFO] [ModernFix/]: Loaded configuration file for ModernFix 5.19.4+mc1.20.1: 84 options available, 0 override(s) found [06Oct2024 18:53:49.492] [main/INFO] [ModernFix/]: Applying Nashorn fix [06Oct2024 18:53:49.544] [main/INFO] [ModernFix/]: Applied Forge config corruption patch [06Oct2024 18:53:49.646] [main/WARN] [mixin/]: Reference map 'expanded_ecosphere-forge-refmap.json' for wwoo.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:49.669] [main/WARN] [mixin/]: Reference map 'nitrogen_internals.refmap.json' for nitrogen_internals.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:49.845] [main/WARN] [mixin/]: Reference map 'AxesAreWeapons-forge-refmap.json' for axesareweapons.forge.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:49.957] [main/INFO] [Puzzles Lib/]: Loading 209 mods: - additionalbanners 14.0.4 - additionalstructures 4.2.2 - aeroblender 1.20.1-1.0.1-neoforge - aether 0.0NONE |-- cumulus_menus 0.0NONE |-- mixinextras 0.2.0-beta.9 \-- nitrogen_internals 0.0NONE - aether_protect_your_moa 1.20.1-1.0.0-neoforge - aether_villages 1.0.7 - aethersdelight 0.1.1-1.20.1 - alexsdelight 1.5 - alexsmobs 1.22.9 - amendments 1.20-1.2.11 - appleskin 2.5.1+mc1.20.1 - aquamirae 6.API15 - architectury 9.2.14 - arclight 1.20.1-1.0.6-SNAPSHOT-b2cde4a - armorstatues 8.0.6 |-- puzzlesaccessapi 8.0.7 \-- puzzlesapi 8.1.4 - artifacts 9.5.13 - axesareweapons 1.7.3 - backported_wolves 1.0.3-1.20.1 - bagus_lib 1.20.1-5.3.0 - balm 7.3.9 \-- kuma_api 20.1.8 - beekeeperhut 2.0.1 - bettercombat 1.8.6+1.20.1 - betterdeserttemples 1.20-Forge-3.0.3 - betterdungeons 1.20-Forge-4.0.4 - betterendisland 1.20-Forge-2.0.6 - betterfortresses 1.20-Forge-2.0.6 - betterjungletemples 1.20-Forge-2.0.5 - bettermineshafts 1.20-Forge-4.0.4 - betteroceanmonuments 1.20-Forge-3.0.4 - betterstrongholds 1.20-Forge-4.0.3 - bettertridents 8.0.1 - betterwitchhuts 1.20-Forge-3.0.3 - betterwithminecolonies 1.20-1.19.19 - bfendcities 1.0 - biome_backlog 1.3.0 - blockrunner 8.0.4 - blockui 1.20.1-1.0.186-beta - blueprint 7.1.0 - boatload 5.0.1 - bookshelf 20.2.13 - born_in_chaos_v1 1.0.0 - brutalbosses 1.20.1-7.1 - buzzier_bees 6.0.0 - bygonenether 1.3.2 - caelus 3.2.0+1.20.1 - cataclysm 2.05 - cataclysmiccombat 1.3.5 - caveore 1.20.1-3.7 - cavesanddepths 1.2.7 - charmofundying 6.5.0+1.20.1 \-- spectrelib 0.13.15+1.20.1 - charms 2.0.1-1.20.1 - chefsdelight 1.0.3-forge-1.20.1 - citadel 2.6.0 - clayworks 3.0.1 - cloth_config 11.1.136 - clumps 12.0.0.4 - cobweb 1.0.0 - collective 7.84 - comforts 6.4.0+1.20.1 - connectivity 1.20.1-5.6 - corgilib 4.0.3.2 - cosmeticarmorreworked 1.20.1-v1a - cristellib 1.1.5 - crittersandcompanions 1.20.1-2.1.7 - ctov 3.4.9b - cupboard 1.20.1-2.7 - curios 5.10.0+1.20.1 - curiosquarkobp 1.2.5 - curious_armor_stands 1.20-5.1.0 - curiouslanterns 1.20.1-1.3.3 - deep_aether 1.20.1-1.0.4 - deeperdarker 1.3.2 - domum_ornamentum 1.20.1-1.0.282-snapshot - dragonfight 1.20.1-4.6 - dragonmounts 1.2.3-beta - dynamiclights 1.20.1.2 - earthmobsmod 1.20.1-10.5.0 - easyanvils 8.0.2 - echochest 8.0.0 - elytraslot 6.4.4+1.20.1 \-- mixinsquared 0.1.2-beta.6 - enchantwithmob 1.20.1-11.13.1 - endrem 5.3.3-R-1.20.1 - ends_delight 2.4 - everycomp 1.20-2.6.80 - expandability 9.0.4 - expanded_ecosphere 3.2.4 - explorify 1.6.2 - farmersdelight 1.20.1-1.2.4 - ferritecore 6.0.1 - flowerymooblooms 2.0.2 - followersteleporttoo 2.6 - forge 47.2.20 - formations 1.0.2+a - formationsnether 1.0.5 - formationsoverworld 1.0.4 - friendsandfoes 3.0.3 - geckolib 4.4.9 - geode_plus 1.2.5 - guardvillagers 1.20.1-1.6.7 - hoporp 1.3.7 - hopour 1.1.4 - horsecombatcontrols 1.20.1-1.0.2 - hunters_return 1.20.1-11.5.0 - iceandfire 1.19.2-2.1.13+build.beta-2 - illagerinvasion 8.0.6 - immersive_armors 1.6.1+1.20.1 - immersive_weathering 1.20.1-2.0.3 - irons_spellbooks 1.20.1-3.4.0.2 - iter_rpg 0.7.3 - leaky 1.20.1-2.1 - lionfishapi 1.9 - lithostitched 1.3.0 - lolmha 2.0.0 - 1.20.1 - lootintegrationaddonyung 1.18-1.20.1-1.1 - lootintegrations 1.20.1-3.7 - luminoustag 1.0.0 - luminousworld 1.4.42 - magistuarmory 9.16 - mavapi 1.1.4 - mavm 1.2.6 - mcwbridges 3.0.0 - mcwdoors 1.1.1 - mcwfences 1.1.2 - mcwfurnitures 3.3.0 - mcwlights 1.1.0 - mcwpaintings 1.0.5 - mcwpaths 1.0.5 - mcwroofs 2.3.1 - mcwtrpdoors 1.1.3 - mcwwindows 2.3.0 - minecolonies 1.20.1-1.1.683-snapshot - minecolonies_compatibility 2.43 - minecolonies_tweaks 2.36 - minecraft 1.20.1 - modernfix 5.19.4+mc1.20.1 - moonlight 1.20-2.13.3 - moreadvancementsmod 1.3.0-1.20.1 - moremobvariants 1.3.0.1 - mowziesdelight 1.0.3.1-1.20.1 - mowziesmobs 1.6.4 - mr_ctov_domesticatedinnovationcompat 2.0 - mr_ctov_farmersdelightcompat 2.1 - mr_ctov_friendsandfoescompat 2.0 - mr_ctov_ironsspellsnspellbookscompat 1.2 - multipiston 1.20-1.2.43-RELEASE - nameless_trinkets 1.20.1-1.7.8 - netherdepthsupgrade 3.1.5-1.20 - nethersdelight 1.20.1-4.0 - obscure_api 15 - onlyhammersandexcavators 1.20.1-0.3 - openpartiesandclaims 0.23.2 - personality 4.0.0 - pet_cemetery 2.0.0 - phantasm 0.4.1 - philipsruins 4.6 - playeranimator 1.0.2-rc1+1.20 - polymorph 0.49.5+1.20.1 - proplacer 8.0.2 - puzzleslib 8.1.24 - quark 4.0-460 - quarkoddities 1.20.1 - radiantgear 2.1.5+1.20.1 - resource_ghouls 1.8.0 - sawmill 1.20-1.4.3 - sereneseasons 9.0.0.46 - simple_weapons 1.4.4 - simplecorinthium 1.2.2 - smoothchunk 1.20.1-3.6 - sophisticatedbackpacks 3.20.11.1115 - sophisticatedcore 0.6.33.711 - soul_fire_d 4.0.4 - spelunkers_charm 3.6.0 - stoneworks 8.0.0 - strongersnowballs 13.0.2 - structureessentials 1.20.1-3.4 - structurize 1.20.1-1.0.760-snapshot - supplementaries 1.20-2.8.17 - swordblockingmechanics 8.0.1 - t_and_t 0.0NONE - terrablender 3.0.1.7 - the_fletching_table_mod 1.3 - totw_additions 1.3.1 - totw_modded 1.0.5 - towntalk 1.1.0 - treechop 0.19.0 - twilightdelight 2.0.12 \-- l2library 2.4.16 - twilightforest 4.3.2508 - upgrade_aquatic 6.0.1 - valhelsia_core 1.1.2 - valhelsia_structures 1.20.1-1.1.2 - villagernames 8.1 - w2w2 1.0 - waystones 14.1.5 - woodworks 3.0.1 - wwoo_forge 2.0.0 - xaerominimap 24.5.0 - xaeroworldmap 1.39.0 - yungsapi 1.20-Forge-4.0.6 - yungsbridges 1.20-Forge-4.0.3 - zeta 1.0-24 [06Oct2024 18:53:49.973] [main/WARN] [mixin/]: Reference map 'Aquamirae.refmap.json' for aquamirae.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:49.980] [main/WARN] [mixin/]: Reference map 'cristellib-forge-refmap.json' for cristellib.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:50.064] [main/WARN] [mixin/]: Reference map 'cobweb.refmap.json' for cobweb.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:50.066] [main/WARN] [mixin/]: Reference map 'cobweb.refmap.json' for cobweb.forge.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:50.287] [main/WARN] [mixin/]: Reference map 'netherdepthsupgrade.refmap.json' for netherdepthsupgrade.mixins.json could not be read. If this is a development environment you can ignore this message [06Oct2024 18:53:53.145] [main/WARN] [mixin/]: Error loading class: com/legacy/lost_aether/entity/AerwhaleKingEntity (java.lang.ClassNotFoundException: com.legacy.lost_aether.entity.AerwhaleKingEntity) [06Oct2024 18:53:53.588] [main/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class com/minecolonies/core/compatibility/jei/GenericRecipeCategory for invalid dist DEDICATED_SERVER [06Oct2024 18:53:53.589] [main/WARN] [mixin/]: Error loading class: com/minecolonies/core/compatibility/jei/GenericRecipeCategory (java.lang.RuntimeException: Attempted to load class com/minecolonies/core/compatibility/jei/GenericRecipeCategory for invalid dist DEDICATED_SERVER) [06Oct2024 18:53:53.589] [main/WARN] [mixin/]: @Mixin target com.minecolonies.core.compatibility.jei.GenericRecipeCategory was not found minecolonies_compatibility.mixin.common.json:minecolonies.GenericRecipeCategoryMixin [06Oct2024 18:53:53.640] [main/WARN] [mixin/]: Error loading class: com/legacy/blue_skies/blocks/natural/BrewberryBushBlock (java.lang.ClassNotFoundException: com.legacy.blue_skies.blocks.natural.BrewberryBushBlock) [06Oct2024 18:53:53.640] [main/WARN] [mixin/]: @Mixin target com.legacy.blue_skies.blocks.natural.BrewberryBushBlock was not found minecolonies_compatibility.mixin.common.json:blue_skies.BrewberryBushBlockAccessor [06Oct2024 18:53:53.645] [main/WARN] [mixin/]: Error loading class: com/cobblemon/mod/common/block/BerryBlock (java.lang.ClassNotFoundException: com.cobblemon.mod.common.block.BerryBlock) [06Oct2024 18:53:53.645] [main/WARN] [mixin/]: @Mixin target com.cobblemon.mod.common.block.BerryBlock was not found minecolonies_compatibility.mixin.common.json:cobblemon.BerryBlockAccessor [06Oct2024 18:53:53.654] [main/WARN] [mixin/]: Error loading class: com/lothrazar/cyclic/block/apple/AppleCropBlock (java.lang.ClassNotFoundException: com.lothrazar.cyclic.block.apple.AppleCropBlock) [06Oct2024 18:53:53.654] [main/WARN] [mixin/]: @Mixin target com.lothrazar.cyclic.block.apple.AppleCropBlock was not found minecolonies_compatibility.mixin.common.json:cyclic.AppleCropBlockAccessor [06Oct2024 18:53:53.659] [main/WARN] [mixin/]: Error loading class: com/mrbysco/oreberriesreplanted/block/OreBerryBushBlock (java.lang.ClassNotFoundException: com.mrbysco.oreberriesreplanted.block.OreBerryBushBlock) [06Oct2024 18:53:53.659] [main/WARN] [mixin/]: @Mixin target com.mrbysco.oreberriesreplanted.block.OreBerryBushBlock was not found minecolonies_compatibility.mixin.common.json:oreberries.OreBerryBushBlockAccessor [06Oct2024 18:53:53.664] [main/WARN] [mixin/]: Error loading class: reliquary/items/HandgunItem (java.lang.ClassNotFoundException: reliquary.items.HandgunItem) [06Oct2024 18:53:53.664] [main/WARN] [mixin/]: @Mixin target reliquary.items.HandgunItem was not found minecolonies_compatibility.mixin.common.json:reliquary.HandgunItemAccessor [06Oct2024 18:53:53.669] [main/WARN] [mixin/]: Error loading class: reliquary/entities/shot/NeutralShotEntity (java.lang.ClassNotFoundException: reliquary.entities.shot.NeutralShotEntity) [06Oct2024 18:53:53.669] [main/WARN] [mixin/]: @Mixin target reliquary.entities.shot.NeutralShotEntity was not found minecolonies_compatibility.mixin.common.json:reliquary.NeutralShotEntityMixin [06Oct2024 18:53:53.674] [main/WARN] [mixin/]: Error loading class: com/lothrazar/storagenetwork/block/main/NetworkModule (java.lang.ClassNotFoundException: com.lothrazar.storagenetwork.block.main.NetworkModule) [06Oct2024 18:53:53.674] [main/WARN] [mixin/]: @Mixin target com.lothrazar.storagenetwork.block.main.NetworkModule was not found minecolonies_compatibility.mixin.common.json:storagenetwork.NetworkModuleAccessor [06Oct2024 18:53:53.678] [main/WARN] [mixin/]: Error loading class: com/lothrazar/storagenetwork/util/UtilConnections (java.lang.ClassNotFoundException: com.lothrazar.storagenetwork.util.UtilConnections) [06Oct2024 18:53:53.678] [main/WARN] [mixin/]: @Mixin target com.lothrazar.storagenetwork.util.UtilConnections was not found minecolonies_compatibility.mixin.common.json:storagenetwork.UtilConnectionsMixin [06Oct2024 18:53:53.683] [main/WARN] [mixin/]: Error loading class: cofh/lib/common/block/CropBlockCoFH (java.lang.ClassNotFoundException: cofh.lib.common.block.CropBlockCoFH) [06Oct2024 18:53:53.683] [main/WARN] [mixin/]: @Mixin target cofh.lib.common.block.CropBlockCoFH was not found minecolonies_compatibility.mixin.common.json:thermal.CropBlockCoFHAccessor [06Oct2024 18:53:54.080] [main/INFO] [com.cupboard.Cupboard/]: Loaded config for: structureessentials.json [06Oct2024 18:53:54.236] [main/WARN] [mixin/]: Error loading class: net/minecraft/client/model/geom/builders/LayerDefinition (java.lang.ClassNotFoundException: net.minecraft.client.model.geom.builders.LayerDefinition) [06Oct2024 18:53:54.236] [main/WARN] [mixin/]: @Mixin target net.minecraft.client.model.geom.builders.LayerDefinition was not found aether_protect_your_moa.mixins.json:client.accessor.LayerDefinitionAccessor [06Oct2024 18:53:54.351] [main/WARN] [mixin/]: Error loading class: net/minecraft/client/renderer/entity/PhantomRenderer (java.lang.ClassNotFoundException: net.minecraft.client.renderer.entity.PhantomRenderer) [06Oct2024 18:53:54.351] [main/WARN] [mixin/]: @Mixin target net.minecraft.client.renderer.entity.PhantomRenderer was not found mixins.deeperdarker.json:PhantomRendererMixin [06Oct2024 18:53:55.165] [main/WARN] [mixin/]: Error loading class: noobanidus/mods/lootr/config/ConfigManager (java.lang.ClassNotFoundException: noobanidus.mods.lootr.config.ConfigManager) [06Oct2024 18:53:57.039] [main/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.0). [06Oct2024 18:53:57.861] [main/INFO] [net.minecraft.server.Bootstrap/]: ModernFix reached bootstrap stage (24.02 s after launch) [06Oct2024 18:53:57.999] [main/WARN] [mixin/]: @Final field delegatesByName:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [06Oct2024 18:53:58.000] [main/WARN] [mixin/]: @Final field delegatesByValue:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [06Oct2024 18:53:58.647] [main/WARN] [mixin/]: @Redirect conflict. Skipping mixins.arclight.core.json:world.entity.EntityMixin->@Redirect::arclight$setOnFireFromLava$bukkitEvent(Lnet/minecraft/world/entity/Entity;I)V with priority 500, already redirected by soul_fire_d.mixins.json:EntityMixin->@Redirect::redirectSetSecondsOnFire(Lnet/minecraft/world/entity/Entity;I)V with priority 1000  
  • Topics

×
×
  • Create New...

Important Information

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