Jump to content

Recommended Posts

Posted

Hi guys, i need help to the topic Variables. I have an entity and want animate them. My idea is if i Right Click my Animal should play an animation. For this I wrote a variable which is set to true with the getEntityInteractionResult() function. But if i rightclick my animal ALL my Enimals play the animation. How can i fix this?

Posted

 Yes,This is my EntityClass

package net.thetruescp.lootbugs.entities.entities;

import net.minecraft.block.BlockState;
import net.minecraft.block.SoundType;
import net.minecraft.entity.AgeableEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.MobEntity;
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
import net.minecraft.entity.ai.attributes.Attributes;
import net.minecraft.entity.ai.goal.*;
import net.minecraft.entity.monster.SpiderEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.passive.PigEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.Mod;
import net.thetruescp.lootbugs.LootbugsMain;
import net.thetruescp.lootbugs.client.Sound.ModSounds;
import net.thetruescp.lootbugs.client.model.LootbugModel;
import net.thetruescp.lootbugs.entities.ModEntityType;
import sun.security.ssl.Debug;

import javax.annotation.Nullable;

public class LootbugEntity extends AnimalEntity
{

    public static boolean isPetting = false;



    public static final Ingredient TEMPTATION_ITEMS = Ingredient.fromItems(Items.REDSTONE);

    public LootbugEntity(EntityType<? extends AnimalEntity> type, World world) {
        super(type, world);
    }


    //Register
    public static AttributeModifierMap.MutableAttribute setCustomAttributes()
    {
        return MobEntity.func_233666_p_()
                .createMutableAttribute(Attributes.MAX_HEALTH, 10.009)
                .createMutableAttribute(Attributes.MOVEMENT_SPEED, 0.25);


    }


    public ActionResultType getEntityInteractionResult(PlayerEntity playerIn, Hand hand) {
        boolean flag = this.isBreedingItem(playerIn.getHeldItem(hand));
        if (!playerIn.isCrouching() && playerIn.getHeldItem(hand).getItem() == Items.REDSTONE)
        {
            if (!this.world.isRemote) {
                playerIn.startRiding(this);
            }

            return ActionResultType.func_233537_a_(this.world.isRemote);

        }
        else if(playerIn.isCrouching())
        {

            return ActionResultType.func_233537_a_(this.world.isRemote);
        }


        else {
            world.playSound(playerIn.getPosX(),playerIn.getPosY(),playerIn.getPosZ(), ModSounds.LOOTBUG_REACTION.get(),SoundCategory.NEUTRAL,12,12,true);
           LootbugEntity.isPetting = true;

            System.out.println("Feed Lootubg");

            return ActionResultType.func_233537_a_(this.world.isRemote);

        }
    }





    @Override
    protected void registerGoals() {
        super.registerGoals();
        this.goalSelector.addGoal(0, new SwimGoal(this));
       // this.goalSelector.addGoal(1, new PanicGoal(this, 2.250));
        this.goalSelector.addGoal(2, new BreedGoal(this, 1.80));
        this.goalSelector.addGoal(4, new TemptGoal(this, 1.2D, false, TEMPTATION_ITEMS));
        this.goalSelector.addGoal(5, new FollowParentGoal(this, 1.1D));

        this.goalSelector.addGoal(6, new WaterAvoidingRandomWalkingGoal(this, 1.0D));
        this.goalSelector.addGoal(7, new LookAtGoal(this, PlayerEntity.class, 6.0F));
        this.goalSelector.addGoal(8, new LookRandomlyGoal(this));
    }

    //Riding

    @Nullable
    public Entity getControllingPassenger() {
        return this.getPassengers().isEmpty() ? null : this.getPassengers().get(0);
    }




    @Nullable
    @Override
    public AgeableEntity createChild(ServerWorld world, AgeableEntity mate) {
        return ModEntityType.LOOTBUG.get().create(this.world);
    }

    @Override
    protected int getExperiencePoints(PlayerEntity player) {
        return 1 + this.world.rand.nextInt(4);
    }

    @Nullable
    @Override
    protected SoundEvent getAmbientSound()
    {
        return ModSounds.LOOTBUG_IDLE.get();
    }

    @Nullable
    @Override
    protected SoundEvent getDeathSound() {
        return ModSounds.LOOTBUG_DEATH.get();
    }

    @Nullable
    @Override
    protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
        return ModSounds.LOOTBUG_HURT.get();
    }

    @Override
    protected void playStepSound(BlockPos pos, BlockState blockIn) {
        this.playSound(ModSounds.LOOTBUG_IDLE.get(), 0.30F, 1.0F);
    }

    @Override
    public boolean isBreedingItem(ItemStack stack) {
        return TEMPTATION_ITEMS.test(stack);
    }
}

and this is my ModelClass:

package net.thetruescp.lootbugs.client.model;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.entity.model.EntityModel;
import net.minecraft.client.renderer.entity.model.QuadrupedModel;
import net.minecraft.client.renderer.model.ModelRenderer;
import net.minecraft.util.math.MathHelper;
import net.thetruescp.lootbugs.entities.entities.LootbugEntity;

import javax.swing.text.html.parser.Entity;

public class LootbugModel<T extends LootbugEntity> extends EntityModel<T>
{
    private final ModelRenderer Leg3;
    private final ModelRenderer Head2;
    private final ModelRenderer Leg4;
    private final ModelRenderer Leg1;
    private final ModelRenderer tail3;
    private final ModelRenderer tail2;
    private final ModelRenderer head1;
    private final ModelRenderer tail1;
    private final ModelRenderer Leg2;
    private final ModelRenderer body;

    public LootbugModel() {
        textureWidth = 128;
        textureHeight = 128;

        Leg3 = new ModelRenderer(this);
        Leg3.setRotationPoint(0.0F, 22.0F, 4.0F);
        Leg3.setTextureOffset(68, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg3.setTextureOffset(70, 44).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Head2 = new ModelRenderer(this);
        Head2.setRotationPoint(0.0F, 17.0F, -11.0F);
        Head2.setTextureOffset(58, 52).addBox(-8.0F, -7.0F, -5.0F, 16.0F, 14.0F, 10.0F, 0.0F, false);

        Leg4 = new ModelRenderer(this);
        Leg4.setRotationPoint(0.0F, 22.0F, 10.0F);
        Leg4.setTextureOffset(0, 86).addBox(6.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg4.setTextureOffset(52, 76).addBox(-12.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Leg1 = new ModelRenderer(this);
        Leg1.setRotationPoint(0.0F, 22.0F, -8.0F);
        Leg1.setTextureOffset(72, 76).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg1.setTextureOffset(54, 40).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        tail3 = new ModelRenderer(this);
        tail3.setRotationPoint(0.0F, 21.0F, 14.0F);
        tail3.setTextureOffset(68, 22).addBox(-4.0F, -3.0F, -6.0F, 8.0F, 6.0F, 12.0F, 0.0F, false);

        tail2 = new ModelRenderer(this);
        tail2.setRotationPoint(0.0F, 19.0F, 11.0F);
        tail2.setTextureOffset(0, 62).addBox(-6.0F, -5.0F, -7.0F, 12.0F, 10.0F, 14.0F, 0.0F, false);

        head1 = new ModelRenderer(this);
        head1.setRotationPoint(0.0F, 20.0F, -14.0F);
        head1.setTextureOffset(64, 0).addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F, 0.0F, false);

        tail1 = new ModelRenderer(this);
        tail1.setRotationPoint(0.0F, 17.0F, 5.0F);
        tail1.setTextureOffset(0, 34).addBox(-10.0F, -7.0F, -7.0F, 20.0F, 14.0F, 14.0F, 0.0F, false);

        Leg2 = new ModelRenderer(this);
        Leg2.setRotationPoint(0.0F, 22.0F, -2.0F);
        Leg2.setTextureOffset(48, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg2.setTextureOffset(38, 62).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        body = new ModelRenderer(this);
        body.setRotationPoint(0.0F, 15.0F, -4.0F);
        body.setTextureOffset(0, 0).addBox(-12.0F, -9.0F, -8.0F, 24.0F, 18.0F, 16.0F, 0.0F, false);
    }



    @Override
    public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
        Leg3.render(matrixStack, buffer, packedLight, packedOverlay);
        Head2.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg4.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail3.render(matrixStack, buffer, packedLight, packedOverlay);
        tail2.render(matrixStack, buffer, packedLight, packedOverlay);
        head1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail1.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg2.render(matrixStack, buffer, packedLight, packedOverlay);
        body.render(matrixStack, buffer, packedLight, packedOverlay);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }

    @Override
    public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {

        // LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS

        this.Leg1.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;
        this.Leg1.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;

        this.Leg2.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;
        this.Leg2.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;

        this.Leg3.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;
        this.Leg3.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;

        this.Leg4.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;
        this.Leg4.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;

// LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS

// BODY-BODY-BODY-BODY-BODY-BODY-BODY
        this.body.rotateAngleZ = MathHelper.sin(limbSwing * 0.6662F) * 0.1F * limbSwingAmount;//


      if(LootbugEntity.isPetting)
      {
          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;
          this.tail1.rotateAngleX =  -0.45F * 0.1F * ageInTicks;
          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;

          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;
          this.tail2.rotateAngleX = - 0.45F *0.1F * ageInTicks;
          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;

          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;
          this.tail3.rotateAngleX =  -0.45F * 0.1F * ageInTicks;
          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;

          LootbugEntity.isPetting = false;


      }

    }
}

 

Posted

Yup, as suspected, your field is static meaning that it's bound to the class and not to a specific instance of your entity.
All entities will share this variable meaning that if one sets it to true, it changes for the other ones too.
Please learn basic Java before modding.

  • Like 1
Posted (edited)

sorry for writing again but I've tried a bit and although I now use the variables from Minecraft, but the same thing still happens 

this is the piece of code that I have rewritten:

 @Override
    public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {


      if(entityIn.isBurning())
      {



          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;


          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;


          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;




      }

    }

 

Edited by TheTrueSCP
Posted

What exactly are you trying to accomplish?

By using the isBurning() method you are checking if the entity is on fire, which is not what you want to check?

You simply had to remove 'static' from the isPetting variable.

Like @uSkizzik said, please learn basic Java before modding.

Posted

 

I have already removed the static from the isPetting and now used the is burning for the test. but still it doesn't work

package net.thetruescp.lootbugs.client.model;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.entity.model.EntityModel;
import net.minecraft.client.renderer.model.ModelRenderer;
import net.thetruescp.lootbugs.entities.LootbugEntity;

public class LootbugModel<T extends LootbugEntity> extends EntityModel<T>
{
    private final ModelRenderer Leg3;
    private final ModelRenderer Head2;
    private final ModelRenderer Leg4;
    private final ModelRenderer Leg1;
    private final ModelRenderer tail3;
    private final ModelRenderer tail2;
    private final ModelRenderer head1;
    private final ModelRenderer tail1;
    private final ModelRenderer Leg2;
    private final ModelRenderer body;

    public LootbugModel() {
        textureWidth = 128;
        textureHeight = 128;

        Leg3 = new ModelRenderer(this);
        Leg3.setRotationPoint(0.0F, 22.0F, 4.0F);
        Leg3.setTextureOffset(68, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg3.setTextureOffset(70, 44).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Head2 = new ModelRenderer(this);
        Head2.setRotationPoint(0.0F, 17.0F, -11.0F);
        Head2.setTextureOffset(58, 52).addBox(-8.0F, -7.0F, -5.0F, 16.0F, 14.0F, 10.0F, 0.0F, false);

        Leg4 = new ModelRenderer(this);
        Leg4.setRotationPoint(0.0F, 22.0F, 10.0F);
        Leg4.setTextureOffset(0, 86).addBox(6.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg4.setTextureOffset(52, 76).addBox(-12.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Leg1 = new ModelRenderer(this);
        Leg1.setRotationPoint(0.0F, 22.0F, -8.0F);
        Leg1.setTextureOffset(72, 76).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg1.setTextureOffset(54, 40).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        tail3 = new ModelRenderer(this);
        tail3.setRotationPoint(0.0F, 21.0F, 14.0F);
        tail3.setTextureOffset(68, 22).addBox(-4.0F, -3.0F, -6.0F, 8.0F, 6.0F, 12.0F, 0.0F, false);

        tail2 = new ModelRenderer(this);
        tail2.setRotationPoint(0.0F, 19.0F, 11.0F);
        tail2.setTextureOffset(0, 62).addBox(-6.0F, -5.0F, -7.0F, 12.0F, 10.0F, 14.0F, 0.0F, false);

        head1 = new ModelRenderer(this);
        head1.setRotationPoint(0.0F, 20.0F, -14.0F);
        head1.setTextureOffset(64, 0).addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F, 0.0F, false);

        tail1 = new ModelRenderer(this);
        tail1.setRotationPoint(0.0F, 17.0F, 5.0F);
        tail1.setTextureOffset(0, 34).addBox(-10.0F, -7.0F, -7.0F, 20.0F, 14.0F, 14.0F, 0.0F, false);

        Leg2 = new ModelRenderer(this);
        Leg2.setRotationPoint(0.0F, 22.0F, -2.0F);
        Leg2.setTextureOffset(48, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg2.setTextureOffset(38, 62).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        body = new ModelRenderer(this);
        body.setRotationPoint(0.0F, 15.0F, -4.0F);
        body.setTextureOffset(0, 0).addBox(-12.0F, -9.0F, -8.0F, 24.0F, 18.0F, 16.0F, 0.0F, false);
    }



    @Override
    public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
        Leg3.render(matrixStack, buffer, packedLight, packedOverlay);
        Head2.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg4.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail3.render(matrixStack, buffer, packedLight, packedOverlay);
        tail2.render(matrixStack, buffer, packedLight, packedOverlay);
        head1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail1.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg2.render(matrixStack, buffer, packedLight, packedOverlay);
        body.render(matrixStack, buffer, packedLight, packedOverlay);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }

    @Override
    public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {


      if(entityIn.isBurning())
      {



          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;


          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;


          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;




      }

    }
}

 

Posted
package net.thetruescp.lootbugs.client.render;

import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.util.ResourceLocation;
import net.thetruescp.lootbugs.LootbugsMain;

import net.thetruescp.lootbugs.client.model.LootbugModel;
import net.thetruescp.lootbugs.entities.LootbugEntity;

public class LootbugRender extends MobRenderer<LootbugEntity, LootbugModel<LootbugEntity>>
{

    protected static final ResourceLocation TEXTURE = new ResourceLocation(LootbugsMain.MOD_ID,"textures/entity/lootbug_hannes.png");

    public LootbugRender(EntityRendererManager renderManagerIn) {
        super(renderManagerIn, new LootbugModel<>(), 0.7f);
    }


    @Override
    public ResourceLocation getEntityTexture(LootbugEntity entity) {
        return TEXTURE;
    }
}

 

Posted

 

it looks like everything is going to work. The entity is recognized whether it is in the water and if so, the function is carried out. But nothing happens or the same thing happens to everyone

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

    • hello i am wanting to know if anyone can help me with this crash happened when i tried to go to bed on server https://pastebin.com/CezfAbAh
    • I accidentally posted this in the ForgeGradle subforum, super sorry. I meant to post it in the regular modders forum. Hopefully it can still reach the right people!
    • I've been trying to make an addon mod for create, but setting up dependencies and trying to add the mod into my mod environment has proven a little difficult for me. Ive been searching this forum and I've seen problems that were close to mine but not exactly mine, searching the error output just yields  people having trouble with their own modid, not an addons. The error while loading Minecraft,  "mods.toml missing metadata of modid create" and  "The Mod File C:Users\user1\data\<mod>\build\resources\main has mods that were not found" My build.gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'org.parchmentmc.librarian.forgegradle' version '1.+' } version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: 'parchment', version: '2023.09.03-1.20.1' copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' property 'mixin.env.remapRefMap', 'true' property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" mods { "${mod_id}" { source sourceSets.main } } } client { // ... mods { other_mod { // ... } // Configures the 'example' mod create { // Add a source set to a mod's sources source sourceSets.main // Merges this configuration and specifies whether to overwrite existing properties merge mods.other_mod, true } } } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } // This run config launches GameTestServer and runs all registered gametests, then exits. // By default, the server will crash when no gametests are provided. // The gametest system is also enabled by default for other run configs under the /test command. gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { // example of overriding the workingDirectory set in configureEach above workingDirectory project.file('run-data') // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { maven { url = 'https://maven.tterrag.com/' } } dependencies { // Specify the version of Minecraft to use. // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. // The "userdev" classifier will be requested and setup by ForgeGradle. // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. minecraft "net.minecraftforge:forge:1.20.1-47.3.22" implementation fg.deobf("com.simibubi.create:create-${create_minecraft_version}:${create_version}:slim") { transitive = false } implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}") // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") // Example mod dependency using a mod jar from ./libs with a flat dir repository // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar // The group id is ignored when searching -- in this case, it is "blank" // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") // For more info: // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } // This block of code expands all declared replace properties in the specified resource targets. // A missing property will result in an error. Properties are expanded using ${} Groovy notation. // When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html tasks.named('processResources', ProcessResources).configure { var replaceProperties = [ minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range, forge_version: forge_version, forge_version_range: forge_version_range, loader_version_range: loader_version_range, mod_id: mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, mod_authors: mod_authors, mod_description: mod_description, ] inputs.properties replaceProperties filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { expand replaceProperties + [project: project] } } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } // This is the preferred method to reobfuscate your jar file finalizedBy 'reobfJar' } // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing: // tasks.named('publish').configure { // dependsOn 'reobfJar' // } // Example configuration to allow publishing using the maven-publish plugin publishing { publications { register('mavenJava', MavenPublication) { artifact jar } } } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation } -And my mods.toml file  modLoader="javafml" #mandatory loaderVersion="[47,)" license="MIT" [[mods]] modId="mechmod" version="0.0.1" displayName="Create: Mechs" authors="Affe" [[dependencies.mechmod]] modId="create" mandatory=true versionRange="[0,)" ordering="NONE" side="BOTH" [[dependencies.mechmod]] modId="forge" mandatory=true versionRange="[47.1.3,)" ordering="NONE" side="BOTH" [[dependencies.mechmod]] modId="minecraft" mandatory=true versionRange="[1.20,1.21)" ordering="NONE" side="BOTH" [[dependencies.mechmod]] modId="flywheel" mandatory=true versionRange="[0.6.11,0.6.12)" ordering="AFTER" side="CLIENT" I thought I had implemented the code from the "depending on create" section from their github correctly. But I assume I haven't implemented something that is needed. But I don't know what or where. I can also provide any file you think will help with your diagnosis. Any help would be appreciated, cheers!   
    • Yo i might be a lil bit late but on 1.20.6 you can call BuiltInRegistries.ITEMS.getTagOrEmpty(*required tag*) to get an iterable of item holders, this might be possible on 1.18.2 as well. Then you get the items using for(Holder<Item> holder: iterable) or the .forEach(Consumer<Holder<Item>>) method, or convert the iterable to array/list/collection. When you get the holders, use the .get() method to get the items
    • I'm troubleshooting some mods that I want for a single player world in 1.21.4 and I was having trouble with a resource library config crashing my game so I tried another mod and the library config for that was causing crashes as well. I've updated java and forge recently. Both of these dependency mods have caused Exit Code: -1 but I'm using the crash report for the mod that I was originally wanting to use. https://pastebin.com/82FZPwS2
  • Topics

×
×
  • Create New...

Important Information

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