Jump to content

[Solved][1.7.2]Need help with AI tasks for sub-classed entity


jabelar

Recommended Posts

(Using Forge 1047)

 

Okay, I'm doing something that should be simple but have gotten confused.

 

I am creating a tiger entity which is essentially a re-textured wolf at the moment (I plan to more drastically mod the behavior later but for now it is pretty much just an orange striped wolf).  This works great -- nothing wrong with tiger entity.

 

Next I wanted to extend the tiger class to create special case of a "man-eating" tiger that basically is always hostile and cannot be tamed.

 

The problem is that the AI task list is set up in the superclass EntityTiger but I want to override some of the AI.  I'm getting stuck because my constructor for EntityManEatingTiger would add additional AI tasks but would still have the superclass tasks (I think).  There is a removeTask method but it seems to reference an instance of the AI class which isn't really available at the sub-class (I suppose I could store instances in variables and pass them, but seems clumsy).

 

So basically my main issue is I want to remove a specific AI task from the superclass's AI task list during the subclass constructor.

 

Here is constructor of EntityTiger:

 

    public EntityTiger(World par1World)

    {

        super(par1World);

 

        this.setSize(0.6F, 0.8F);

        this.getNavigator().setAvoidsWater(true);

        this.tasks.addTask(1, new EntityAISwimming(this));

        this.tasks.addTask(2, this.aiSit);

        this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F));

        this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true));

        this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F));

        this.tasks.addTask(6, new EntityAIMate(this, 1.0D));

        this.tasks.addTask(7, new EntityAIWander(this, 1.0D));

        this.tasks.addTask(8, new EntityAIBegTiger(this, 8.0F)); // in vanilla begging is only for wolf

        this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));

        this.tasks.addTask(10, new EntityAILookIdle(this));

        this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this));

        this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this));

        this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true));

        this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false));

        this.setTamed(false);

    }

 

 

And suppose I want to remove the begging task in the subclass EntityManEatingTiger (which extends EntityTiger) constructor:

 

    public EntityManEatingTiger(World par1World)

    {

        super(par1World);

 

        this.tasks.removeTask(new EntityAIBegTiger(this, 8.0F)); // I know this is wrong, just giving idea of what I want to do

        this.setTamed(false);

        // make him a man-eater by starting angry

        this.setAngry(true);

        // make him hunt the player

    super.setAttackTarget(Minecraft.getMinecraft().thePlayer);

    }

 

 

 

I know the removeTask must be wrong because it is referencing a new instance of the EntityAIBegTiger rather than whatever instance was added in superclass constructor.  Is the only solution to record the instance in the superclass and reference it here?

 

Or is there some better way to organize the AI task list generation?  Maybe create some other method or even superclass constructor to call?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

EntityLiving#tasks.removeTask(EntityAIBase base)

does indeed use == for the comparison when seeking the object to remove and new Object() is always a different instance, so you probably won't find it as easy as you noted. But, EntityAnimal and EntityTameable (as well as EntityAgeable) do not suffer from preassigned tasks, so you could override EntityAnimal and assign your own AI tasks.

Others may know more or do it differently, so don't take this a gospel. Just trying to help.

Link to comment
Share on other sites

Like sequituri said, you will not be able to remove it due to the '==' operator; however, what you can do is cheat and keep a local instance of the AI in your class, like EntityTameable does with the AI for sitting. This way, you have access to the memory location and '==' will be able to return true.

 

protected EntityAISit aiSit = new EntityAISit(this);

// you can now use tasks.remove(aiSit) and it should work

Another option is to use List#clear() to remove all AI tasks, and simply add the ones back that you want.

Link to comment
Share on other sites

Like sequituri said, you will not be able to remove it due to the '==' operator; however, what you can do is cheat and keep a local instance of the AI in your class, like EntityTameable does with the AI for sitting. This way, you have access to the memory location and '==' will be able to return true.

 

protected EntityAISit aiSit = new EntityAISit(this);

// you can now use tasks.remove(aiSit) and it should work

Another option is to use List#clear() to remove all AI tasks, and simply add the ones back that you want.

 

Thanks.  Yeah, the first idea is pretty much what I expected when I asked "Is the only solution to record the instance in the superclass and reference it here?".

 

But I like the second idea better gives me more specific control especially since I plan to override much of the behavior (can't have a man-eating tiger act like a regular tiger after all...)

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I have run the server on a second device and my friend had the same issues as before where he was in the server and could move client side but nothing happened server side but any blocks he broke near his actual player did break but that was it, after a while he saw things move but it was around 2 minutes delay but this time he didn't get timed out This leads me to still believe it is an internet issue but i have no clue what it could be as the logs say nothing about this and both of us have decent internet so maybe the router is limiting the amount of data that can be sent leading to the delay and eventual timeout.  
    • Hi, I'm a newbie in Minecraft Mods and I've been following some guides to create my Mod. But I've had a problem that I have not been able to solve in any way. When I try to equip an item to my custom Entity like for example, a diamond sword, The item never renders in your hand. How can I solve this? I leave the code of my entity below   BrotecitoModel class package com.example.examplemod.entity.client; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.model.ArmedModel; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; import net.minecraft.client.model.geom.builders.*; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.HumanoidArm; public class BrotecitoModel<T extends Entity> extends HierarchicalModel<T> implements ArmedModel { private final ModelPart brotecito; private final ModelPart arms; private final ModelPart pot; private final ModelPart rightArm; private final ModelPart leaf; private final ModelPart head; private final ModelPart leftArm; private final ModelPart frontPot; private final ModelPart backPot; private final ModelPart leftPot; private final ModelPart rightPot; private final ModelPart upperLeftPot; private final ModelPart upperRightPot; private final ModelPart upperFrontPot; private final ModelPart upperBackPot; private final ModelPart bottomPotFaceAndSoil; public BrotecitoModel(ModelPart root) { this.brotecito = root.getChild("brotecito"); this.leaf = brotecito.getChild("leaf"); this.head = brotecito.getChild("head"); this.arms = brotecito.getChild("arms"); this.pot = brotecito.getChild("pot"); this.leftArm = arms.getChild("leftArm"); this.rightArm = arms.getChild("rightArm"); this.frontPot = pot.getChild("frontPot"); this.backPot = pot.getChild("backPot"); this.leftPot = pot.getChild("leftPot"); this.rightPot = pot.getChild("rightPot"); this.upperLeftPot = pot.getChild("upperLeftPot"); this.upperRightPot = pot.getChild("upperRightPot"); this.upperFrontPot = pot.getChild("upperFrontPot"); this.upperBackPot = pot.getChild("upperBackPot"); this.bottomPotFaceAndSoil = pot.getChild("bottomPotFaceAndSoil"); } public static LayerDefinition createBodyLayer() { MeshDefinition meshdefinition = new MeshDefinition(); PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition brotecito = partdefinition.addOrReplaceChild("brotecito", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); PartDefinition leaf = brotecito.addOrReplaceChild("leaf", CubeListBuilder.create().texOffs(1, 4).addBox(1.3045F, 1.7638F, 2.1262F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.3045F, -13.7638F, 4.1262F, -3.1416F, 0.0F, 3.1416F)); PartDefinition leafLower_r1 = leaf.addOrReplaceChild("leafLower_r1", CubeListBuilder.create().texOffs(53, 44).addBox(-2.3827F, -0.2609F, 1.5675F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) .texOffs(53, 41).addBox(-2.3827F, -7.2609F, 1.5675F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) .texOffs(51, 18).addBox(-3.3827F, -6.2609F, 1.5675F, 5.0F, 6.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.3394F, 2.5155F, -1.0048F, 0.7854F, 0.3927F, 0.0F)); PartDefinition leaftRoot2_r1 = leaf.addOrReplaceChild("leaftRoot2_r1", CubeListBuilder.create().texOffs(1, 1).addBox(-0.8827F, -1.9942F, 1.1189F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.5926F, 3.4932F, 0.7139F, 0.3927F, 0.3927F, 0.0F)); PartDefinition head = brotecito.addOrReplaceChild("head", CubeListBuilder.create().texOffs(41, 1).addBox(-4.9286F, -2.3571F, 4.5F, 10.0F, 6.0F, 1.0F, new CubeDeformation(0.0F)) .texOffs(26, 28).addBox(-4.9286F, -3.3571F, -4.5F, 10.0F, 1.0F, 9.0F, new CubeDeformation(0.0F)) .texOffs(27, 19).addBox(-3.9286F, -4.3571F, -3.5F, 8.0F, 1.0F, 7.0F, new CubeDeformation(0.0F)) .texOffs(1, 8).addBox(-3.9286F, 3.6429F, -4.5F, 8.0F, 1.0F, 9.0F, new CubeDeformation(0.0F)) .texOffs(1, 35).addBox(-5.9286F, -2.3571F, -4.5F, 2.0F, 6.0F, 9.0F, new CubeDeformation(0.0F)) .texOffs(10, 19).addBox(3.0714F, -2.3571F, -4.5F, 3.0F, 6.0F, 9.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0714F, -6.6429F, -0.5F, -3.1416F, 0.0F, 3.1416F)); PartDefinition backFace_r1 = head.addOrReplaceChild("backFace_r1", CubeListBuilder.create().texOffs(28, 0).addBox(4.0F, -8.0F, -5.0F, 1.0F, 6.0F, 10.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0714F, 5.6429F, -0.5F, 0.0F, 1.5708F, 0.0F)); PartDefinition arms = brotecito.addOrReplaceChild("arms", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition rightArm = arms.addOrReplaceChild("rightArm", CubeListBuilder.create().texOffs(21, 1).addBox(-1.0F, -1.0F, 2.0F, 2.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(-7.0F, -5.0767F, -6.9556F)); PartDefinition leftArm = arms.addOrReplaceChild("leftArm", CubeListBuilder.create().texOffs(7, 1).addBox(-1.0F, -1.0F, 2.0F, 2.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(7.0F, -5.0767F, -6.9556F)); PartDefinition pot = brotecito.addOrReplaceChild("pot", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -3.1416F, 0.0F, 3.1416F)); PartDefinition frontPot = pot.addOrReplaceChild("frontPot", CubeListBuilder.create().texOffs(33, 62).addBox(-7.0F, -2.0F, 6.0F, 14.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition backPot = pot.addOrReplaceChild("backPot", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition backPot_r1 = backPot.addOrReplaceChild("backPot_r1", CubeListBuilder.create().texOffs(33, 59).addBox(-7.0F, -2.0F, 6.0F, 14.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 3.1416F, 0.0F)); PartDefinition leftPot = pot.addOrReplaceChild("leftPot", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition leftPot_r1 = leftPot.addOrReplaceChild("leftPot_r1", CubeListBuilder.create().texOffs(1, 53).addBox(-6.0F, -2.0F, 6.0F, 12.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); PartDefinition rightPot = pot.addOrReplaceChild("rightPot", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition rightPot_r1 = rightPot.addOrReplaceChild("rightPot_r1", CubeListBuilder.create().texOffs(1, 56).addBox(-6.0F, -2.0F, 6.0F, 12.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 1.5708F, 0.0F)); PartDefinition upperLeftPot = pot.addOrReplaceChild("upperLeftPot", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition upperLeftPot_r1 = upperLeftPot.addOrReplaceChild("upperLeftPot_r1", CubeListBuilder.create().texOffs(0, 59).addBox(-8.0F, -3.0F, 7.0F, 15.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); PartDefinition upperRightPot = pot.addOrReplaceChild("upperRightPot", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition upperRightPot_r1 = upperRightPot.addOrReplaceChild("upperRightPot_r1", CubeListBuilder.create().texOffs(29, 53).addBox(-8.0F, -3.0F, -8.0F, 16.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); PartDefinition upperFrontPot = pot.addOrReplaceChild("upperFrontPot", CubeListBuilder.create().texOffs(0, 62).addBox(-8.0F, -3.0F, 7.0F, 15.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition upperBackPot = pot.addOrReplaceChild("upperBackPot", CubeListBuilder.create().texOffs(33, 56).addBox(-7.0F, -3.0F, -8.0F, 14.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 0.0F)); PartDefinition bottomPotFaceAndSoil = pot.addOrReplaceChild("bottomPotFaceAndSoil", CubeListBuilder.create().texOffs(15, 39).addBox(-6.0F, -1.0F, -6.0F, 12.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 0.0F)); return LayerDefinition.create(meshdefinition, 64, 64); } @Override public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { brotecito.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); } @Override public ModelPart root() { return brotecito; } public ModelPart getArmRight() { return brotecito.getChild("arms").getChild("rightArm"); } @Override public void translateToHand(HumanoidArm p_102108_, PoseStack p_102109_) { this.getArmRight().translateAndRotate(p_102109_); } @Override public void setupAnim(T p_102618_, float p_102619_, float p_102620_, float p_102621_, float p_102622_, float p_102623_) { } } BrotecitoRenderer class package com.example.examplemod.entity.client; import com.example.examplemod.ExampleMod; import com.example.examplemod.entity.custom.brotecito.BrotecitoEntity; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.MobRenderer; import net.minecraft.client.renderer.entity.layers.ItemInHandLayer; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; public class BrotecitoRenderer extends MobRenderer<BrotecitoEntity, BrotecitoModel<BrotecitoEntity>> { public static final ResourceLocation TEXTURE = new ResourceLocation(ExampleMod.MODID, "textures/entity/brotecito.png"); public BrotecitoRenderer(EntityRendererProvider.Context pContext) { super(pContext, new BrotecitoModel<>(pContext.bakeLayer(ModModelLayers.BROTECITO_LAYER)), 0.6f); this.addLayer(new ItemInHandLayer<>(this, pContext.getItemInHandRenderer())); } @Override public @NotNull ResourceLocation getTextureLocation(@NotNull BrotecitoEntity pEntity) { return TEXTURE; } @Override public void render(BrotecitoEntity pEntity, float pEntityYaw, float pPartialTicks, @NotNull PoseStack pMatrixStack, @NotNull MultiBufferSource pBuffer, int pPackedLight) { if (pEntity.isBaby()) { pMatrixStack.scale(0.3f, 0.3f, 0.3f); } super.render(pEntity, pEntityYaw, pPartialTicks, pMatrixStack, pBuffer, pPackedLight); } } BrotecitoEntity class package com.example.examplemod.entity.custom.brotecito; import com.example.examplemod.entity.ModEntities; import com.example.examplemod.particle.ModParticles; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.*; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.goal.*; import net.minecraft.world.entity.ai.goal.target.*; import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.animal.Turtle; import net.minecraft.world.entity.animal.horse.AbstractHorse; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.monster.AbstractSkeleton; import net.minecraft.world.entity.monster.Ghast; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import net.minecraft.world.scores.Team; import net.minecraftforge.event.ForgeEventFactory; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.UUID; public class BrotecitoEntity extends TamableAnimal implements NeutralMob { @Nullable private UUID persistentAngerTarget; private static final UniformInt PERSISTENT_ANGER_TIME = UniformInt.of(20, 39); private static final EntityDataAccessor<Integer> DATA_REMAINING_ANGER_TIME = SynchedEntityData.defineId(BrotecitoEntity.class, EntityDataSerializers.INT); private static final EntityDataAccessor<Boolean> SITTING = SynchedEntityData.defineId(BrotecitoEntity.class, EntityDataSerializers.BOOLEAN); public BrotecitoEntity(EntityType<? extends TamableAnimal> pEntityType, Level pLevel) { super(pEntityType, pLevel); this.moveControl = new BrotecitoMoveControl(this); } // Método para que el Brotecito pueda obtener espadas de diamante y equiparlas @Override public void tick() { super.tick(); if (!this.isAlive()) { return; } List<ItemEntity> itemsNearby = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate(1.0)); for (ItemEntity itemEntity : itemsNearby) { Item item = itemEntity.getItem().getItem(); if (item == Items.DIAMOND_SWORD || item == Items.BOW) { // Recoger el Objeto this.take(itemEntity, itemEntity.getItem().getCount()); // Equipar la espada this.setItemSlot(EquipmentSlot.MAINHAND, itemEntity.getItem()); itemEntity.discard(); break; } } } /** * Define el comportamiento de la IA del Brotecito */ @Override protected void registerGoals() { this.goalSelector.addGoal(1, new BrotecitoFloatGoal(this)); this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this)); this.goalSelector.addGoal(4, new LeapAtTargetGoal(this, 0.4F)); this.goalSelector.addGoal(5, new BrotecitoAttackGoal(this)); this.goalSelector.addGoal(6, new FollowOwnerGoal(this, 1.0, 10.0F, 2.0F, false)); this.goalSelector.addGoal(7, new BreedGoal(this, 1.0)); this.goalSelector.addGoal(8, new BrotecitoRandomDirectionGoal(this)); this.goalSelector.addGoal(9, new BrotecitoKeepOnJumpingGoal(this)); this.goalSelector.addGoal(10, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(10, new RandomLookAroundGoal(this)); this.targetSelector.addGoal(1, new OwnerHurtByTargetGoal(this)); this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(3, (new HurtByTargetGoal(this)).setAlertOthers()); this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR)); this.targetSelector.addGoal(7, new NearestAttackableTargetGoal<>(this, AbstractSkeleton.class, false)); this.targetSelector.addGoal(8, new ResetUniversalAngerTargetGoal<>(this, true)); } public static AttributeSupplier.Builder createAttributes() { return Animal.createLivingAttributes() .add(Attributes.MAX_HEALTH, 20D) .add(Attributes.FOLLOW_RANGE, 24D) .add(Attributes.MOVEMENT_SPEED, 0.25D) .add(Attributes.ARMOR_TOUGHNESS, 0.1f) .add(Attributes.ATTACK_KNOCKBACK, 2f) .add(Attributes.ATTACK_DAMAGE, 2f); } @Nullable @Override public AgeableMob getBreedOffspring(@NotNull ServerLevel pLevel, @NotNull AgeableMob pOtherParent) { return ModEntities.BROTECITO.get().create(pLevel); } // Método para que los Brotecitos puedan emitir partículas personalizadas al aparearse @Override public void handleEntityEvent(byte id) { if (id == 18) { for(int i = 0; i < 7; i++) { double d0 = this.random.nextGaussian() * 0.02; double d1 = this.random.nextGaussian() * 0.02; double d2 = this.random.nextGaussian() * 0.02; this.level().addParticle(ModParticles.KAPPA_PRIDE_PARTICLES.get(), this.getRandomX(1.0),this.getRandomY() + 0.5, this.getRandomZ(1.0), d0, d1, d2); } } else { super.handleEntityEvent(id); } } @Override public boolean isFood(ItemStack pStack) { return pStack.is(Items.CARROT); } @Override public int getRemainingPersistentAngerTime() { return this.entityData.get(DATA_REMAINING_ANGER_TIME); } @Override public void setRemainingPersistentAngerTime(int i) { this.entityData.set(DATA_REMAINING_ANGER_TIME, i); } @Nullable @Override public UUID getPersistentAngerTarget() { return this.persistentAngerTarget; } @Override public void setPersistentAngerTarget(@Nullable UUID pTarget) { this.persistentAngerTarget = pTarget; } @Override public void startPersistentAngerTimer() { this.setRemainingPersistentAngerTime(PERSISTENT_ANGER_TIME.sample(this.random)); } /* TAMEABLE */ @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { ItemStack itemStack = player.getItemInHand(hand); Item item = itemStack.getItem(); Item itemForTaming = Items.APPLE; if (isFood(itemStack)) { return super.mobInteract(player, hand); } if (item == itemForTaming && !isTame()) { if (this.level().isClientSide) { return InteractionResult.CONSUME; } else { if (!player.getAbilities().instabuild) { itemStack.shrink(1); } if (!ForgeEventFactory.onAnimalTame(this, player)) { if (!this.level().isClientSide) { super.tame(player); this.navigation.recomputePath(); this.setTarget(null); this.level().broadcastEntityEvent(this, (byte) 7); setSitting(false); } } return InteractionResult.SUCCESS; } } if (isTame() && !this.level().isClientSide && hand == InteractionHand.MAIN_HAND) { setSitting(!isSitting()); return InteractionResult.SUCCESS; } if (itemStack.getItem() == itemForTaming) { return InteractionResult.PASS; } return super.mobInteract(player, hand); } // Método para que el Brotecito pueda atacar a entidades hostiles excepto a: // - Ghasts // - Brotecitos que no son suyos // - jugadores que no pueden ser dañados @Override public boolean wantsToAttack(@NotNull LivingEntity pTarget, @NotNull LivingEntity pOwner) { if (!(pTarget instanceof Ghast)) { if (pTarget instanceof BrotecitoEntity brotecitoEntity) { return !brotecitoEntity.isTame() || brotecitoEntity.getOwner() != pOwner; } else if (pTarget instanceof Player && pOwner instanceof Player && !((Player)pOwner).canHarmPlayer((Player)pTarget)) { return false; } else if (pTarget instanceof AbstractHorse && ((AbstractHorse)pTarget).isTamed()) { return false; } else { return !(pTarget instanceof TamableAnimal) || !((TamableAnimal)pTarget).isTame(); } } else { return false; } } @Override public boolean isAlliedTo(Entity pEntity) { if (this.isTame() && this.getOwner() != null) { return pEntity == this.getOwner(); } else { return super.isAlliedTo(pEntity); } } @Override public void readAdditionalSaveData(CompoundTag tag) { super.readAdditionalSaveData(tag); setSitting(tag.getBoolean("isSitting")); } @Override public void addAdditionalSaveData(CompoundTag tag) { super.addAdditionalSaveData(tag); tag.putBoolean("isSitting", this.isSitting()); } // Método para que el Brotecito pueda sentarse y levantarse @Override protected void defineSynchedData() { super.defineSynchedData(); this.entityData.define(SITTING, false); } public void setSitting(boolean sitting) { this.entityData.set(SITTING, sitting); this.setOrderedToSit(sitting); } public boolean isSitting() { return this.entityData.get(SITTING); } @Override public Team getTeam() { return super.getTeam(); } public boolean canBeLeashed(Player player) { return false; } @Override public void setTame(boolean tamed) { super.setTame(tamed); if (tamed) { getAttribute(Attributes.MAX_HEALTH).setBaseValue(60.0D); getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(4D); getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.5f); } else { getAttribute(Attributes.MAX_HEALTH).setBaseValue(30.0D); getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(2D); getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.25f); } } public int getJumpDelay() { return this.random.nextInt(20) + 10; } protected void jumpFromGround() { Vec3 vec3 = this.getDeltaMovement(); this.setDeltaMovement(vec3.x, this.getJumpPower(), vec3.z); this.hasImpulse = true; } protected float getJumpPower() { return 0.42F; } protected SoundEvent getJumpSound() { return SoundEvents.SLIME_JUMP; } protected float getSoundVolume() { return 0.4F; } protected float getSoundPitch() { float f = this.isTiny() ? 1.4F : 0.8F; return ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F) * f; } public boolean isTiny() { return false; // Puedes ajustar esta lógica según las necesidades de tu entidad } public void dealDamage(LivingEntity target) { if (this.isAlive() && this.distanceToSqr(target) < this.getBbWidth() * this.getBbWidth() && this.hasLineOfSight(target)) { boolean flag = target.hurt(target.damageSources().mobAttack(this), (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE)); if (flag) { this.doEnchantDamageEffects(this, target); this.playSound(SoundEvents.IRON_GOLEM_ATTACK, 1.0F, 1.0F); } } } } I look forward to hearing from you, thank you very much in advance.
    • You posted in an unrelated topic and triggered the anti-spam by posting your log directly, I've split your post into its own topic. Please read the FAQ.
    • 1.18.2 The crash report:  ---- Minecraft Crash Report ---- // Why did you do that? Time: 6/28/24, 6:05 PM Description: Rendering entity in world java.lang.IncompatibleClassChangeError: Method 'java.lang.String net.minecraft.world.item.Item.getArmorTexture(net.minecraft.world.item.ItemStack, net.minecraft.world.entity.Entity, net.minecraft.world.entity.EquipmentSlot, java.lang.String)' must be Methodref constant     at net.minecraft.world.item.Item.getArmorTexture(Item.java:557) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:factoryapi.mixins.json:IForgeItemInjector,pl:mixin:APP:ftblibrary-common.mixins.json:ItemMixin,pl:mixin:APP:bookshelf.common.mixins.json:item.AccessorItem,pl:mixin:APP:architectury-common.mixins.json:inject.MixinItem,pl:mixin:A}     at net.minecraftforge.client.ForgeHooksClient.getArmorTexture(ForgeHooksClient.java:210) ~[forge-1.18.2-40.2.0-universal.jar%2393!/:?] {re:classloading,re:mixin}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.getArmorResource(HumanoidArmorLayer.java:142) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_117118_(HumanoidArmorLayer.java:60) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_6494_(HumanoidArmorLayer.java:37) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_6494_(HumanoidArmorLayer.java:23) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.LivingEntityRenderer.m_7392_(LivingEntityRenderer.java:131) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.MobRenderer.m_7392_(MobRenderer.java:45) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading}     at net.minecraft.client.renderer.entity.MobRenderer.m_7392_(MobRenderer.java:18) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading}     at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:129) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1428) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1219) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1061) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:835) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1046) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:665) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraft.world.item.Item.getArmorTexture(Item.java:557) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:factoryapi.mixins.json:IForgeItemInjector,pl:mixin:APP:ftblibrary-common.mixins.json:ItemMixin,pl:mixin:APP:bookshelf.common.mixins.json:item.AccessorItem,pl:mixin:APP:architectury-common.mixins.json:inject.MixinItem,pl:mixin:A}     at net.minecraftforge.client.ForgeHooksClient.getArmorTexture(ForgeHooksClient.java:210) ~[forge-1.18.2-40.2.0-universal.jar%2393!/:?] {re:classloading,re:mixin}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.getArmorResource(HumanoidArmorLayer.java:142) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_117118_(HumanoidArmorLayer.java:60) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_6494_(HumanoidArmorLayer.java:37) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_6494_(HumanoidArmorLayer.java:23) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.LivingEntityRenderer.m_7392_(LivingEntityRenderer.java:131) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.MobRenderer.m_7392_(MobRenderer.java:45) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading}     at net.minecraft.client.renderer.entity.MobRenderer.m_7392_(MobRenderer.java:18) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading}     at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:129) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1428) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1219) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1061) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} -- Entity being rendered -- Details:     Entity Type: minecraft:zombie (net.minecraft.world.entity.monster.Zombie)     Entity ID: 224     Entity Name: Zombie     Entity's Exact location: -362.88, 16.12, 204.47     Entity's Block location: World: (-363,16,204), Section: (at 5,0,12 in -23,1,12; chunk contains blocks -368,-64,192 to -353,319,207), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,-64,0 to -1,319,511)     Entity's Momentum: -0.09, -0.08, 0.00     Entity's Passengers: []     Entity's Vehicle: null Stacktrace:     at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:129) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1428) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1219) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1061) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:835) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1046) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:665) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} -- Renderer details -- Details:     Assigned renderer: net.minecraft.client.renderer.entity.ZombieRenderer@608aa474     Location: -82.50,-55.50,12.82 - World: (-83,-56,12), Section: (at 13,8,12 in -6,-4,0; chunk contains blocks -96,-64,0 to -81,319,15), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,-64,0 to -1,319,511)     Rotation: 88.59375     Delta: 0.8799957 Stacktrace:     at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:129) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1428) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1219) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1061) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:835) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1046) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:665) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} -- Affected level -- Details:     All players: 1 total; [LocalPlayer['Kindanooby'/112, l='ClientLevel', x=-280.36, y=70.00, z=191.65]]     Chunk stats: 961, 611     Level dimension: minecraft:overworld     Level spawn location: World: (-16,75,16), Section: (at 0,11,0 in -1,4,1; chunk contains blocks -16,-64,16 to -1,319,31), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,-64,0 to -1,319,511)     Level time: 21046 game time, 31968 day time     Server brand: forge     Server type: Integrated singleplayer server Stacktrace:     at net.minecraft.client.multiplayer.ClientLevel.m_6026_(ClientLevel.java:407) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:architectury.mixins.json:MixinClientLevel,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91354_(Minecraft.java:2262) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:682) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:mixins.ipnext.json:MixinMinecraftClient,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:mixins.codechickenlib.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.2-20220404.173914-srg.jar%2388!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: Yes     Packs: Default, Mod Resources -- System Details -- Details:     Minecraft Version: 1.18.2     Minecraft Version ID: 1.18.2     Operating System: Windows 10 (amd64) version 10.0     Java Version: 17.0.1, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 1467234992 bytes (1399 MiB) / 2954887168 bytes (2818 MiB) up to 4294967296 bytes (4096 MiB)     CPUs: 12     Processor Vendor: GenuineIntel     Processor Name: 13th Gen Intel(R) Core(TM) i7-1355U     Identifier: Intel64 Family 6 Model 186 Stepping 3     Microarchitecture: unknown     Frequency (GHz): 2.61     Number of physical packages: 1     Number of physical CPUs: 10     Number of logical CPUs: 12     Graphics card #0 name: Intel(R) Iris(R) Xe Graphics     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MB): 128.00     Graphics card #0 deviceId: 0xa7a1     Graphics card #0 versionInfo: DriverVersion=31.0.101.5522     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 6.40     Memory slot #0 type: Unknown     Memory slot #1 capacity (MB): 8192.00     Memory slot #1 clockSpeed (GHz): 6.40     Memory slot #1 type: Unknown     Virtual memory max (MB): 21995.87     Virtual memory used (MB): 10986.19     Swap memory total (MB): 5888.00     Swap memory used (MB): 87.83     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx4096m -Xms256m     Launched Version: forge-40.2.0     Backend library: LWJGL version 3.2.2 SNAPSHOT     Backend API: Intel(R) Iris(R) Xe Graphics GL version 3.2.0 - Build 31.0.101.5522, Intel     Window size: 1024x768     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'     Type: Integrated Server (map_client.txt)     Graphics mode: fancy     Resource Packs: vanilla, mod_resources     Current Language: English (US)     CPU: 12x 13th Gen Intel(R) Core(TM) i7-1355U     Server Running: true     Player Count: 1 / 8; [ServerPlayer['Kindanooby'/112, l='ServerLevel[a]', x=-280.36, y=70.00, z=191.65]]     Data Packs: vanilla, mod:tconstruct (incompatible), mod:libipn (incompatible), mod:enchdesc (incompatible), mod:mousetweaks (incompatible), mod:toolstats (incompatible), mod:tinkerslevellingaddon, mod:wthit (incompatible), mod:betterfpsdist (incompatible), mod:kotlinforforge, mod:sophisticatedcore (incompatible), mod:mantle (incompatible), mod:gravestone (incompatible), mod:journeymap, mod:badpackets (incompatible), mod:inventoryhud (incompatible), mod:ftbultimine (incompatible), mod:bookshelf, mod:sophisticatedbackpacks (incompatible), mod:fps (incompatible), mod:constructionwand, mod:inventoryprofilesnext (incompatible), mod:betterfurnacesreforged, mod:architectury (incompatible), mod:factory_api, mod:ftblibrary (incompatible), mod:balm (incompatible), mod:forge, mod:fastleafdecay, mod:codechickenlib (incompatible), mod:enderstorage (incompatible), mod:refinedstorage, mod:jei (incompatible), mod:refinedstorageaddons, mod:ironchest, mod:craftingtweaks (incompatible), mod:appleskin (incompatible)     World Generation: Experimental     ModLauncher: 9.1.3+9.1.3+main.9b69c82a     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:           mixin PLUGINSERVICE           eventbus PLUGINSERVICE           slf4jfixer PLUGINSERVICE           object_holder_definalize PLUGINSERVICE           runtime_enum_extender PLUGINSERVICE           capability_token_subclass PLUGINSERVICE           accesstransformer PLUGINSERVICE           runtimedistcleaner PLUGINSERVICE           mixin TRANSFORMATIONSERVICE           fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         javafml@null         [email protected]         lowcodefml@null     Mod List:          client-1.18.2-20220404.173914-srg.jar             |Minecraft                     |minecraft                     |1.18.2              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         TConstruct-1.18.2-3.6.4.113.jar                   |Tinkers' Construct            |tconstruct                    |3.6.4.113           |DONE      |Manifest: NOSIGNATURE         libIPN-forge-1.18.2-4.0.2.jar                     |libIPN                        |libipn                        |4.0.2               |DONE      |Manifest: NOSIGNATURE         EnchantmentDescriptions-Forge-1.18.2-10.0.12.jar  |EnchantmentDescriptions       |enchdesc                      |10.0.12             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         MouseTweaks-forge-mc1.18-2.21.jar                 |Mouse Tweaks                  |mousetweaks                   |2.21                |DONE      |Manifest: NOSIGNATURE         ToolStats-Forge-1.18.2-9.0.4.jar                  |ToolStats                     |toolstats                     |9.0.4               |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         TinkersLevellingAddon-1.18.2-1.3.0.jar            |Tinkers' Levelling Addon      |tinkerslevellingaddon         |1.3.0               |DONE      |Manifest: NOSIGNATURE         wthit-forge-4.13.6.jar                            |wthit                         |wthit                         |4.13.6              |DONE      |Manifest: NOSIGNATURE         betterfpsdist-1.18.2-1.5.jar                      |betterfpsdist mod             |betterfpsdist                 |1.18.2-1.5          |DONE      |Manifest: NOSIGNATURE         kffmod-3.12.0.jar                                 |Kotlin For Forge              |kotlinforforge                |3.12.0              |DONE      |Manifest: NOSIGNATURE         sophisticatedcore-1.18.2-0.6.4.604.jar            |Sophisticated Core            |sophisticatedcore             |1.18.2-0.6.4.604    |DONE      |Manifest: NOSIGNATURE         Mantle-1.18.2-1.9.50.jar                          |Mantle                        |mantle                        |1.9.50              |DONE      |Manifest: NOSIGNATURE         gravestone-1.18.2-1.0.1.jar                       |Gravestone Mod                |gravestone                    |1.18.2-1.0.1        |DONE      |Manifest: NOSIGNATURE         journeymap-1.18.2-5.9.8-forge.jar                 |Journeymap                    |journeymap                    |5.9.8               |DONE      |Manifest: NOSIGNATURE         badpackets-forge-0.1.3.jar                        |Bad Packets API               |badpackets                    |0.1.3               |DONE      |Manifest: NOSIGNATURE         inventoryhud.forge.1.18.2-3.4.22.jar              |Inventory HUD+(Forge edition) |inventoryhud                  |3.4.22              |DONE      |Manifest: NOSIGNATURE         ftb-ultimine-forge-1802.3.4-build.93.jar          |FTB Ultimine                  |ftbultimine                   |1802.3.4-build.93   |DONE      |Manifest: NOSIGNATURE         Bookshelf-Forge-1.18.2-13.3.56.jar                |Bookshelf                     |bookshelf                     |13.3.56             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         sophisticatedbackpacks-1.18.2-3.20.2.1036.jar     |Sophisticated Backpacks       |sophisticatedbackpacks        |1.18.2-3.20.2.1036  |DONE      |Manifest: NOSIGNATURE         FPS-Monitor-1.18.2-1.2.1.jar                      |FPS Monitor                   |fps                           |1.2.1               |DONE      |Manifest: NOSIGNATURE         constructionwand-1.18.2-2.9.jar                   |Construction Wand             |constructionwand              |1.18.2-2.9          |DONE      |Manifest: NOSIGNATURE         InventoryProfilesNext-forge-1.18.2-1.10.10.jar    |Inventory Profiles Next       |inventoryprofilesnext         |1.10.10             |DONE      |Manifest: NOSIGNATURE         BetterFurnaces-1.18.2-1.0-forge.jar               |Better Furnaces Reforged      |betterfurnacesreforged        |1.0                 |DONE      |Manifest: NOSIGNATURE         architectury-4.12.94-forge.jar                    |Architectury                  |architectury                  |4.12.94             |DONE      |Manifest: NOSIGNATURE         FactoryAPI-1.18.2-2.0-forge.jar                   |Factory API                   |factory_api                   |2.0                 |DONE      |Manifest: NOSIGNATURE         ftb-library-forge-1802.3.11-build.177.jar         |FTB Library                   |ftblibrary                    |1802.3.11-build.177 |DONE      |Manifest: NOSIGNATURE         balm-3.2.6.jar                                    |Balm                          |balm                          |3.2.6               |DONE      |Manifest: NOSIGNATURE         forge-1.18.2-40.2.0-universal.jar                 |Forge                         |forge                         |40.2.0              |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         appleskin-forge-mc1.18.2-2.5.1.jar                |AppleSkin                     |appleskin                     |2.5.1+mc1.18.2      |DONE      |Manifest: NOSIGNATURE         FastLeafDecay-28.jar                              |FastLeafDecay                 |fastleafdecay                 |28                  |DONE      |Manifest: NOSIGNATURE         CodeChickenLib-1.18.2-4.1.4.488-universal.jar     |CodeChicken Lib               |codechickenlib                |4.1.4.488           |DONE      |Manifest: 31:e6:db:63:47:4a:6e:e0:0a:2c:11:d1:76:db:4e:82:ff:56:2d:29:93:d2:e5:02:bd:d3:bd:9d:27:47:a5:71         EnderStorage-1.18.2-2.9.0.182-universal.jar       |EnderStorage                  |enderstorage                  |2.9.0.182           |DONE      |Manifest: 31:e6:db:63:47:4a:6e:e0:0a:2c:11:d1:76:db:4e:82:ff:56:2d:29:93:d2:e5:02:bd:d3:bd:9d:27:47:a5:71         refinedstorage-1.10.6.jar                         |Refined Storage               |refinedstorage                |1.10.6              |DONE      |Manifest: NOSIGNATURE         jei-1.18.2-forge-10.2.1.1005.jar                  |Just Enough Items             |jei                           |10.2.1.1005         |DONE      |Manifest: NOSIGNATURE         refinedstorageaddons-0.8.2.jar                    |Refined Storage Addons        |refinedstorageaddons          |0.8.2               |DONE      |Manifest: NOSIGNATURE         ironchest-1.18.2-13.2.11.jar                      |Iron Chests                   |ironchest                     |1.18.2-13.2.11      |DONE      |Manifest: NOSIGNATURE         craftingtweaks-forge-1.18.2-14.0.9.jar            |CraftingTweaks                |craftingtweaks                |14.0.9              |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: a4aa04e4-ee00-4b0c-97da-5ba2f8eda372     FML: 40.2     Forge: net.minecraftforge:40.2.0
  • Topics

×
×
  • Create New...

Important Information

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