Jump to content

[1.17.1] Replacing leaves on trees / Generating world generation data


Recommended Posts

Posted

Hello!

I want to replace the leaves on trees that generate in the world with other blocks. One way I've found to do this is to manually create files in data/minecraft/worldgen/configured_feature that correspond to vanilla's features and replacing the block in "foliage_provider" with the one I want. Doing it manually works well, but it's not convenient to do at a large scale, and obviously has other drawbacks.

I'd ideally use the data generator system, like I do for recipes and loot tables. Unfortunately, there is no built in support for specifically world generation, like there is for recipes and loot tables. I could create the json files if I managed to convert the features to JsonElements, but I don't know how I would do that.

To summarise, I have one objective:

  • Replacing leaves on trees placed in the world by
    • world generation and
    • saplings.

But I would gladly receive help on how to generate json files of ConfiguredFeatures such as Features.OAK.

Thanks in advance!

Posted

you need to create your own FoliagePlacer, then use BiomeLoadingEvent to loop through the Features, check if the Feature is an TreeFeature then replace the original FoliagePlacer with Reflection or use an AT

Posted
19 hours ago, Luis_ST said:

you need to create your own FoliagePlacer, then use BiomeLoadingEvent to loop through the Features, check if the Feature is an TreeFeature then replace the original FoliagePlacer with Reflection or use an AT

Thanks for your reply! I have done it using data generation now. It works well for world generation, and I have realised that I don't care about saplings, so it works well.

For anyone looking to do something similar, I include files to show what I did. They are just a bit hacky and incomplete now, but they can probably easily be generalised.

 

import static net.anju.larus.data.ResourceLocationUtil.prefix;
import static net.anju.larus.data.ResourceLocationUtil.slash;

@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public abstract class LarusFeatureProvider<T> implements DataProvider {

    private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();

    protected final Set<FeatureEntry> featureEntries = new HashSet<>();

    private final DataGenerator generator;

    protected LarusFeatureProvider(DataGenerator generator, Registry<T> registry) {
        this.generator = generator;
        for (Map.Entry<ResourceKey<T>, T> entry : registry.entrySet()) {
            ResourceKey<T> key = entry.getKey();
            T feature = entry.getValue();
            JsonElement jsonElement = getJson(feature);
            if (jsonElement != null) {
                FeatureEntry featureEntry = new FeatureEntry(prefix(key.location(), key.getRegistryName()), jsonElement);
                featureEntries.add(featureEntry);
            }
        }
    }

    private void addFeatures() {
        for (FeatureEntry featureEntry : featureEntries) {
            modifyFeatureEntry(featureEntry);
        }
    }

    protected abstract void modifyFeatureEntry(FeatureEntry featureEntry);

    @Override
    public void run(HashCache cache) {
        addFeatures();
        writeFiles(cache, this.generator.getOutputFolder(), featureEntries);
    }

    // Actually write out the tables in the output folder
    private static void writeFiles(HashCache cache, Path outputFolder, Set<FeatureEntry> featureEntries) {
        for (FeatureEntry featureEntry : featureEntries) {
            if (featureEntry.isModified()) {
                ResourceLocation key = featureEntry.resourceLocation;
                JsonElement jsonElement = featureEntry.jsonElement;
                Path path = getPath(outputFolder, key);
                try {
                    DataProvider.save(GSON, cache, jsonElement, path);
                } catch (IOException e) {
                    LarusMod.LOGGER.error("Couldn't write data {}", key, e);
                }
            }
        }
    }

    @Override
    public String getName() {
        return "Larus features";
    }

    @Nullable
    public JsonElement getJson(T feature) {
        if (feature instanceof ConfiguredFeature<?, ?> configuredFeature) {
            Optional<JsonElement> optional = ConfiguredFeature.DIRECT_CODEC.encodeStart(JsonOps.INSTANCE, configuredFeature).result();
            return optional.orElse(null);
        }
        return null;
    }

    public static Path getPath(Path outputFolder, ResourceLocation key) {
        return outputFolder.resolve("data/" + slash(key) + ".json");
    }

    protected static class FeatureEntry {

        boolean modified = false;
        private final ResourceLocation resourceLocation;
        private final JsonElement jsonElement;

        private FeatureEntry(ResourceLocation resourceLocation, JsonElement jsonElement) {
            this.resourceLocation = resourceLocation;
            this.jsonElement = jsonElement;
        }

        public JsonElement getJsonElement() {
            return jsonElement;
        }

        protected void markModified() {
            this.modified = true;
        }

        private boolean isModified() {
            return this.modified;
        }

    }

}
public class LarusLeavesFeatureProvider extends LarusFeatureProvider<ConfiguredFeature<?, ?>> {

    public LarusLeavesFeatureProvider(DataGenerator generator) {
        super(generator, BuiltinRegistries.CONFIGURED_FEATURE);
    }

    @Override
    protected void modifyFeatureEntry(FeatureEntry featureEntry) {
        JsonElement jsonElement = featureEntry.getJsonElement();
        if (jsonElement.isJsonObject()) {
            JsonObject jsonObject = jsonElement.getAsJsonObject();
            if (jsonObject.has("config")) {
                JsonObject config = jsonObject.get("config").getAsJsonObject();
                if (config.has("foliage_provider")) {
                    JsonObject mcFoliage = config.get("foliage_provider").getAsJsonObject();
                    JsonObject larusFoliage = larusFoliage(mcFoliage);
                    if (larusFoliage != null) {
                        config.add("foliage_provider", larusFoliage);
                        featureEntry.markModified();
                    }
                }
            }
        }
    }

    @Nullable
    protected JsonObject larusFoliage(JsonObject mcFoliage) {
        JsonElement type = mcFoliage.get("type");
        if (type.getAsString().equals("minecraft:simple_state_provider")) {
            JsonObject state = mcFoliage.get("state").getAsJsonObject();

            // Change leaves
            String mcLeaves = state.get("Name").getAsString();
            LarusLeavesBlock larusLeavesBlock = larusLeavesBlock(mcLeaves);
            if (larusLeavesBlock == null || larusLeavesBlock.getRegistryName() == null)
                return null;
            String larusLeaves = larusLeavesBlock.getRegistryName().toString();
            state.add("Name", new JsonPrimitive(larusLeaves));

            // Transform properties
            JsonObject mcProperties = state.get("Properties").getAsJsonObject();
            transformProperties(mcProperties, larusLeavesBlock);
        } else {
            LarusMod.LOGGER.warn("Unexpected type for MC foliage " + mcFoliage);
        }
        return mcFoliage;
    }

    protected void transformProperties(JsonObject properties, LarusLeavesBlock larusLeavesBlock) {
        if (larusLeavesBlock instanceof LarusDeciduousLeavesBlock)
            properties.add("leafy", new JsonPrimitive("green"));
    }

    @Nullable
    protected LarusLeavesBlock larusLeavesBlock(String mcLeaves) {
        switch (mcLeaves) {
            case "minecraft:oak_leaves" -> {
                return LarusBlocks.OAK_LEAVES.get();
            }
            case "minecraft:birch_leaves" -> {
                return LarusBlocks.BIRCH_LEAVES.get();
            }
            case "minecraft:acacia_leaves" -> {
                return LarusBlocks.ACACIA_LEAVES.get();
            }
            case "minecraft:jungle_leaves" -> {
                return LarusBlocks.JUNGLE_LEAVES.get();
            }
            case "minecraft:dark_oak_leaves" -> {
                return LarusBlocks.DARK_OAK_LEAVES.get();
            }
            case "minecraft:spruce_leaves" -> {
                return LarusBlocks.SPRUCE_LEAVES.get();
            }
        }
        return null;
    }


}

 

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

    • Add crash-reports with sites like https://mclo.gs/ Make a test without fastfurnace
    • From the page I downloaded the software and installed all the chipset drivers.
    • okay so i have this project (im new btw first ever project) and i keep getting this error inside my build.gradle file and if its fixed a new error appears then if thats fixed it loops!   1:29:26 PM: Executing 'runClient --scan --info'… The client will now receive all logging from the daemon (pid: 22264). The daemon log file: C:\Users\2010r\.gradle\daemon\8.8\daemon-22264.out.log Starting 23rd build in daemon [uptime: 39 mins 57.553 secs, performance: 100%, GC rate: 0.00/s, heap usage: 0% of 4 GiB] Using 28 worker leases. Now considering [C:\Users\2010r\OneDrive\Desktop\stuffiesss] as hierarchies to watch Watching the file system is configured to be enabled if available File system watching is active Transforming external-system-rt.jar with InstrumentationAnalysisTransform Transforming external-system-rt.jar with InstrumentationAnalysisTransform Transforming external-system-rt.jar with MergeInstrumentationAnalysisTransform Transforming external-system-rt.jar with ExternalDependencyInstrumentingArtifactTransform Starting Build Transforming develocity-gradle-plugin-3.17.4.jar (com.gradle:develocity-gradle-plugin:3.17.4) with InstrumentationAnalysisTransform Transforming foojay-resolver-0.7.0.jar (org.gradle.toolchains:foojay-resolver:0.7.0) with InstrumentationAnalysisTransform Transforming gson-2.9.1.jar (com.google.code.gson:gson:2.9.1) with InstrumentationAnalysisTransform Transforming develocity-gradle-plugin-3.17.4.jar (com.gradle:develocity-gradle-plugin:3.17.4) with InstrumentationAnalysisTransform Transforming develocity-gradle-plugin-3.17.4.jar (com.gradle:develocity-gradle-plugin:3.17.4) with MergeInstrumentationAnalysisTransform Transforming foojay-resolver-0.7.0.jar (org.gradle.toolchains:foojay-resolver:0.7.0) with InstrumentationAnalysisTransform Transforming foojay-resolver-0.7.0.jar (org.gradle.toolchains:foojay-resolver:0.7.0) with MergeInstrumentationAnalysisTransform Transforming gson-2.9.1.jar (com.google.code.gson:gson:2.9.1) with InstrumentationAnalysisTransform Transforming gson-2.9.1.jar (com.google.code.gson:gson:2.9.1) with MergeInstrumentationAnalysisTransform Transforming develocity-gradle-plugin-3.17.4.jar (com.gradle:develocity-gradle-plugin:3.17.4) with ExternalDependencyInstrumentingArtifactTransform Transforming foojay-resolver-0.7.0.jar (org.gradle.toolchains:foojay-resolver:0.7.0) with ExternalDependencyInstrumentingArtifactTransform Transforming gson-2.9.1.jar (com.google.code.gson:gson:2.9.1) with ExternalDependencyInstrumentingArtifactTransform Settings evaluated using settings file 'C:\Users\2010r\OneDrive\Desktop\stuffiesss\settings.gradle'. Projects loaded. Root project using build file 'C:\Users\2010r\OneDrive\Desktop\stuffiesss\build.gradle'. Included projects: [root project 'stuffiesss'] > Configure project : Evaluating root project 'stuffiesss' using build file 'C:\Users\2010r\OneDrive\Desktop\stuffiesss\build.gradle'. Transforming ForgeGradle-6.0.36.jar (net.minecraftforge.gradle:ForgeGradle:6.0.36) with InstrumentationAnalysisTransform Transforming commons-io-2.11.0.jar (commons-io:commons-io:2.11.0) with InstrumentationAnalysisTransform Transforming JarJarSelector-0.3.19.jar (net.minecraftforge:JarJarSelector:0.3.19) with InstrumentationAnalysisTransform Transforming JarJarMetadata-0.3.19.jar (net.minecraftforge:JarJarMetadata:0.3.19) with InstrumentationAnalysisTransform Transforming gson-2.10.1.jar (com.google.code.gson:gson:2.10.1) with InstrumentationAnalysisTransform Transforming guava-31.1-jre.jar (com.google.guava:guava:31.1-jre) with InstrumentationAnalysisTransform Transforming fastcsv-2.2.1.jar (de.siegmar:fastcsv:2.2.1) with InstrumentationAnalysisTransform Transforming artifactural-3.0.20.jar (net.minecraftforge:artifactural:3.0.20) with InstrumentationAnalysisTransform Transforming unsafe-0.2.0.jar (net.minecraftforge:unsafe:0.2.0) with InstrumentationAnalysisTransform Transforming maven-artifact-3.9.1.jar (org.apache.maven:maven-artifact:3.9.1) with InstrumentationAnalysisTransform Transforming httpclient-4.5.14.jar (org.apache.httpcomponents:httpclient:4.5.14) with InstrumentationAnalysisTransform Transforming srgutils-0.5.10.jar (net.minecraftforge:srgutils:0.5.10) with InstrumentationAnalysisTransform Transforming DiffPatch-2.0.12-all.jar (net.minecraftforge:DiffPatch:2.0.12) with InstrumentationAnalysisTransform Transforming failureaccess-1.0.1.jar (com.google.guava:failureaccess:1.0.1) with InstrumentationAnalysisTransform Transforming listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava) with InstrumentationAnalysisTransform Transforming jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2) with InstrumentationAnalysisTransform Transforming checker-qual-3.12.0.jar (org.checkerframework:checker-qual:3.12.0) with InstrumentationAnalysisTransform Transforming error_prone_annotations-2.11.0.jar (com.google.errorprone:error_prone_annotations:2.11.0) with InstrumentationAnalysisTransform Transforming j2objc-annotations-1.3.jar (com.google.j2objc:j2objc-annotations:1.3) with InstrumentationAnalysisTransform Transforming plexus-utils-3.5.1.jar (org.codehaus.plexus:plexus-utils:3.5.1) with InstrumentationAnalysisTransform Transforming commons-lang3-3.9.jar (org.apache.commons:commons-lang3:3.9) with InstrumentationAnalysisTransform Transforming httpcore-4.4.16.jar (org.apache.httpcomponents:httpcore:4.4.16) with InstrumentationAnalysisTransform Transforming commons-logging-1.2.jar (commons-logging:commons-logging:1.2) with InstrumentationAnalysisTransform Transforming commons-codec-1.11.jar (commons-codec:commons-codec:1.11) with InstrumentationAnalysisTransform Transforming fastutil-8.3.1.jar (it.unimi.dsi:fastutil:8.3.1) with InstrumentationAnalysisTransform Transforming commons-compress-1.18.jar (org.apache.commons:commons-compress:1.18) with InstrumentationAnalysisTransform Transforming xz-1.8.jar (org.tukaani:xz:1.8) with InstrumentationAnalysisTransform Transforming jopt-simple-5.0.4.jar (net.sf.jopt-simple:jopt-simple:5.0.4) with InstrumentationAnalysisTransform Transforming noexception-1.7.1.jar (com.machinezoo.noexception:noexception:1.7.1) with InstrumentationAnalysisTransform Transforming slf4j-simple-1.7.30.jar (org.slf4j:slf4j-simple:1.7.30) with InstrumentationAnalysisTransform Transforming slf4j-api-1.7.30.jar (org.slf4j:slf4j-api:1.7.30) with InstrumentationAnalysisTransform Transforming ForgeGradle-6.0.36.jar (net.minecraftforge.gradle:ForgeGradle:6.0.36) with InstrumentationAnalysisTransform Transforming ForgeGradle-6.0.36.jar (net.minecraftforge.gradle:ForgeGradle:6.0.36) with MergeInstrumentationAnalysisTransform Transforming commons-io-2.11.0.jar (commons-io:commons-io:2.11.0) with InstrumentationAnalysisTransform Transforming commons-io-2.11.0.jar (commons-io:commons-io:2.11.0) with MergeInstrumentationAnalysisTransform Transforming JarJarSelector-0.3.19.jar (net.minecraftforge:JarJarSelector:0.3.19) with InstrumentationAnalysisTransform Transforming JarJarSelector-0.3.19.jar (net.minecraftforge:JarJarSelector:0.3.19) with MergeInstrumentationAnalysisTransform Transforming ForgeGradle-6.0.36.jar (net.minecraftforge.gradle:ForgeGradle:6.0.36) with ExternalDependencyInstrumentingArtifactTransform Transforming JarJarMetadata-0.3.19.jar (net.minecraftforge:JarJarMetadata:0.3.19) with InstrumentationAnalysisTransform Transforming JarJarMetadata-0.3.19.jar (net.minecraftforge:JarJarMetadata:0.3.19) with MergeInstrumentationAnalysisTransform Transforming commons-io-2.11.0.jar (commons-io:commons-io:2.11.0) with ExternalDependencyInstrumentingArtifactTransform Transforming JarJarSelector-0.3.19.jar (net.minecraftforge:JarJarSelector:0.3.19) with ExternalDependencyInstrumentingArtifactTransform Transforming gson-2.10.1.jar (com.google.code.gson:gson:2.10.1) with InstrumentationAnalysisTransform Transforming gson-2.10.1.jar (com.google.code.gson:gson:2.10.1) with MergeInstrumentationAnalysisTransform Transforming JarJarMetadata-0.3.19.jar (net.minecraftforge:JarJarMetadata:0.3.19) with ExternalDependencyInstrumentingArtifactTransform Transforming guava-31.1-jre.jar (com.google.guava:guava:31.1-jre) with InstrumentationAnalysisTransform Transforming guava-31.1-jre.jar (com.google.guava:guava:31.1-jre) with MergeInstrumentationAnalysisTransform Transforming gson-2.10.1.jar (com.google.code.gson:gson:2.10.1) with ExternalDependencyInstrumentingArtifactTransform Transforming fastcsv-2.2.1.jar (de.siegmar:fastcsv:2.2.1) with InstrumentationAnalysisTransform Transforming fastcsv-2.2.1.jar (de.siegmar:fastcsv:2.2.1) with MergeInstrumentationAnalysisTransform Transforming guava-31.1-jre.jar (com.google.guava:guava:31.1-jre) with ExternalDependencyInstrumentingArtifactTransform Transforming artifactural-3.0.20.jar (net.minecraftforge:artifactural:3.0.20) with InstrumentationAnalysisTransform Transforming fastcsv-2.2.1.jar (de.siegmar:fastcsv:2.2.1) with ExternalDependencyInstrumentingArtifactTransform Transforming artifactural-3.0.20.jar (net.minecraftforge:artifactural:3.0.20) with MergeInstrumentationAnalysisTransform Transforming unsafe-0.2.0.jar (net.minecraftforge:unsafe:0.2.0) with InstrumentationAnalysisTransform Transforming unsafe-0.2.0.jar (net.minecraftforge:unsafe:0.2.0) with MergeInstrumentationAnalysisTransform Transforming artifactural-3.0.20.jar (net.minecraftforge:artifactural:3.0.20) with ExternalDependencyInstrumentingArtifactTransform Transforming maven-artifact-3.9.1.jar (org.apache.maven:maven-artifact:3.9.1) with InstrumentationAnalysisTransform Transforming maven-artifact-3.9.1.jar (org.apache.maven:maven-artifact:3.9.1) with MergeInstrumentationAnalysisTransform Transforming unsafe-0.2.0.jar (net.minecraftforge:unsafe:0.2.0) with ExternalDependencyInstrumentingArtifactTransform Transforming httpclient-4.5.14.jar (org.apache.httpcomponents:httpclient:4.5.14) with InstrumentationAnalysisTransform Transforming httpclient-4.5.14.jar (org.apache.httpcomponents:httpclient:4.5.14) with MergeInstrumentationAnalysisTransform Transforming maven-artifact-3.9.1.jar (org.apache.maven:maven-artifact:3.9.1) with ExternalDependencyInstrumentingArtifactTransform Transforming srgutils-0.5.10.jar (net.minecraftforge:srgutils:0.5.10) with InstrumentationAnalysisTransform Transforming httpclient-4.5.14.jar (org.apache.httpcomponents:httpclient:4.5.14) with ExternalDependencyInstrumentingArtifactTransform Transforming srgutils-0.5.10.jar (net.minecraftforge:srgutils:0.5.10) with MergeInstrumentationAnalysisTransform Transforming DiffPatch-2.0.12-all.jar (net.minecraftforge:DiffPatch:2.0.12) with InstrumentationAnalysisTransform Transforming srgutils-0.5.10.jar (net.minecraftforge:srgutils:0.5.10) with ExternalDependencyInstrumentingArtifactTransform Transforming DiffPatch-2.0.12-all.jar (net.minecraftforge:DiffPatch:2.0.12) with MergeInstrumentationAnalysisTransform Transforming failureaccess-1.0.1.jar (com.google.guava:failureaccess:1.0.1) with InstrumentationAnalysisTransform Transforming failureaccess-1.0.1.jar (com.google.guava:failureaccess:1.0.1) with MergeInstrumentationAnalysisTransform Transforming DiffPatch-2.0.12-all.jar (net.minecraftforge:DiffPatch:2.0.12) with ExternalDependencyInstrumentingArtifactTransform Transforming listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava) with InstrumentationAnalysisTransform Transforming listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava) with MergeInstrumentationAnalysisTransform Transforming failureaccess-1.0.1.jar (com.google.guava:failureaccess:1.0.1) with ExternalDependencyInstrumentingArtifactTransform Transforming jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2) with InstrumentationAnalysisTransform Transforming jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2) with MergeInstrumentationAnalysisTransform Transforming listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava) with ExternalDependencyInstrumentingArtifactTransform Transforming checker-qual-3.12.0.jar (org.checkerframework:checker-qual:3.12.0) with InstrumentationAnalysisTransform Transforming checker-qual-3.12.0.jar (org.checkerframework:checker-qual:3.12.0) with MergeInstrumentationAnalysisTransform Transforming jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2) with ExternalDependencyInstrumentingArtifactTransform Transforming error_prone_annotations-2.11.0.jar (com.google.errorprone:error_prone_annotations:2.11.0) with InstrumentationAnalysisTransform Transforming error_prone_annotations-2.11.0.jar (com.google.errorprone:error_prone_annotations:2.11.0) with MergeInstrumentationAnalysisTransform Transforming j2objc-annotations-1.3.jar (com.google.j2objc:j2objc-annotations:1.3) with InstrumentationAnalysisTransform Transforming j2objc-annotations-1.3.jar (com.google.j2objc:j2objc-annotations:1.3) with MergeInstrumentationAnalysisTransform Transforming error_prone_annotations-2.11.0.jar (com.google.errorprone:error_prone_annotations:2.11.0) with ExternalDependencyInstrumentingArtifactTransform Transforming plexus-utils-3.5.1.jar (org.codehaus.plexus:plexus-utils:3.5.1) with InstrumentationAnalysisTransform Transforming checker-qual-3.12.0.jar (org.checkerframework:checker-qual:3.12.0) with ExternalDependencyInstrumentingArtifactTransform Transforming j2objc-annotations-1.3.jar (com.google.j2objc:j2objc-annotations:1.3) with ExternalDependencyInstrumentingArtifactTransform Transforming plexus-utils-3.5.1.jar (org.codehaus.plexus:plexus-utils:3.5.1) with MergeInstrumentationAnalysisTransform Transforming commons-lang3-3.9.jar (org.apache.commons:commons-lang3:3.9) with InstrumentationAnalysisTransform Transforming commons-lang3-3.9.jar (org.apache.commons:commons-lang3:3.9) with MergeInstrumentationAnalysisTransform Transforming plexus-utils-3.5.1.jar (org.codehaus.plexus:plexus-utils:3.5.1) with ExternalDependencyInstrumentingArtifactTransform Transforming httpcore-4.4.16.jar (org.apache.httpcomponents:httpcore:4.4.16) with InstrumentationAnalysisTransform Transforming httpcore-4.4.16.jar (org.apache.httpcomponents:httpcore:4.4.16) with MergeInstrumentationAnalysisTransform Transforming commons-lang3-3.9.jar (org.apache.commons:commons-lang3:3.9) with ExternalDependencyInstrumentingArtifactTransform Transforming commons-logging-1.2.jar (commons-logging:commons-logging:1.2) with InstrumentationAnalysisTransform Transforming commons-logging-1.2.jar (commons-logging:commons-logging:1.2) with MergeInstrumentationAnalysisTransform Transforming httpcore-4.4.16.jar (org.apache.httpcomponents:httpcore:4.4.16) with ExternalDependencyInstrumentingArtifactTransform Transforming commons-codec-1.11.jar (commons-codec:commons-codec:1.11) with InstrumentationAnalysisTransform Transforming commons-codec-1.11.jar (commons-codec:commons-codec:1.11) with MergeInstrumentationAnalysisTransform Transforming commons-logging-1.2.jar (commons-logging:commons-logging:1.2) with ExternalDependencyInstrumentingArtifactTransform Transforming fastutil-8.3.1.jar (it.unimi.dsi:fastutil:8.3.1) with InstrumentationAnalysisTransform Transforming fastutil-8.3.1.jar (it.unimi.dsi:fastutil:8.3.1) with MergeInstrumentationAnalysisTransform Transforming commons-codec-1.11.jar (commons-codec:commons-codec:1.11) with ExternalDependencyInstrumentingArtifactTransform Transforming commons-compress-1.18.jar (org.apache.commons:commons-compress:1.18) with InstrumentationAnalysisTransform Transforming commons-compress-1.18.jar (org.apache.commons:commons-compress:1.18) with MergeInstrumentationAnalysisTransform Transforming fastutil-8.3.1.jar (it.unimi.dsi:fastutil:8.3.1) with ExternalDependencyInstrumentingArtifactTransform Transforming xz-1.8.jar (org.tukaani:xz:1.8) with InstrumentationAnalysisTransform Transforming xz-1.8.jar (org.tukaani:xz:1.8) with MergeInstrumentationAnalysisTransform Transforming commons-compress-1.18.jar (org.apache.commons:commons-compress:1.18) with ExternalDependencyInstrumentingArtifactTransform Transforming jopt-simple-5.0.4.jar (net.sf.jopt-simple:jopt-simple:5.0.4) with InstrumentationAnalysisTransform Transforming xz-1.8.jar (org.tukaani:xz:1.8) with ExternalDependencyInstrumentingArtifactTransform Transforming jopt-simple-5.0.4.jar (net.sf.jopt-simple:jopt-simple:5.0.4) with MergeInstrumentationAnalysisTransform Transforming noexception-1.7.1.jar (com.machinezoo.noexception:noexception:1.7.1) with InstrumentationAnalysisTransform Transforming noexception-1.7.1.jar (com.machinezoo.noexception:noexception:1.7.1) with MergeInstrumentationAnalysisTransform Transforming slf4j-simple-1.7.30.jar (org.slf4j:slf4j-simple:1.7.30) with InstrumentationAnalysisTransform Transforming jopt-simple-5.0.4.jar (net.sf.jopt-simple:jopt-simple:5.0.4) with ExternalDependencyInstrumentingArtifactTransform Transforming slf4j-simple-1.7.30.jar (org.slf4j:slf4j-simple:1.7.30) with MergeInstrumentationAnalysisTransform Transforming slf4j-api-1.7.30.jar (org.slf4j:slf4j-api:1.7.30) with InstrumentationAnalysisTransform Transforming noexception-1.7.1.jar (com.machinezoo.noexception:noexception:1.7.1) with ExternalDependencyInstrumentingArtifactTransform Transforming slf4j-api-1.7.30.jar (org.slf4j:slf4j-api:1.7.30) with MergeInstrumentationAnalysisTransform Transforming slf4j-simple-1.7.30.jar (org.slf4j:slf4j-simple:1.7.30) with ExternalDependencyInstrumentingArtifactTransform Transforming slf4j-api-1.7.30.jar (org.slf4j:slf4j-api:1.7.30) with ExternalDependencyInstrumentingArtifactTransform Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. Watched directory hierarchies: [] Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Use defined at https://gradle.com/help/legal-terms-of-use. Do you accept these terms? [yes, no]  FAILURE: Build failed with an exception. * Where: Build file 'C:\Users\2010r\OneDrive\Desktop\stuffiesss\build.gradle' line: 35 * What went wrong: A problem occurred evaluating root project 'stuffiesss'. > Cannot get property 'mappingsChannel' on extra properties extension as it does not exist * Try: > Run with --stacktrace option to get the stack trace. > Run with --debug option to get more log output. > Get more help at https://help.gradle.org. BUILD FAILED in 691ms then here is the code    buildscript { repositories { maven { url = 'https://maven.minecraftforge.net/' } mavenCentral() } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:6.0.36' } } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'idea' group = 'com.temmiemanz.backroommod' archivesBaseName = 'backroommod' version = '1.0.0' java.toolchain.languageVersion = JavaLanguageVersion.of(17) //Proper naming convention for the Properties: These were fixed to adhere to the casing convention ext { minecraft_version = "1.19.2" forge_version = "43.2.0" forgeVer = "${minecraft_version}-${forge_version}" mappingsChannel = "official" mappingsVersion = minecraft_version } sourceSets.main.resources { srcDir 'src/main/resources' } minecraft { // Use the ext object *explicitly using ext.* mappings channel: ext.mappingsChannel, version: ext.mappingsVersion // Use ext to make sure every call is made to the external properties and not the property itself version = "${ext.minecraft_version}-${ext.forge_version}" runs { client { workingDirectory project.file('run') args '--username', 'Dev' property 'forge.logging.console.level', 'info' } server { workingDirectory project.file('run') property 'forge.logging.console.level', 'info' args '--nogui' } } } processResources { inputs.property "version", project.version inputs.property "mcversion", ext.minecraft_version from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' expand 'version': project.version, 'mcversion': project.ext.minecraft_version } from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } } dependencies { minecraft "net.minecraftforge:forge:${ext.minecraft_version}-${ext.forge_version}" } jar { manifest { attributes([ "Specification-Title": "backroommod", "Specification-Vendor": "temmiemanz", "Specification-Version": "1", "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor": "temmiemanz", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } (sorry about the weird formating)  
    • [13:02:36] [main/ERROR]:Mixin config fabric-item-api-v1.client.mixins.json does not specify "minVersion" property [13:02:36] [main/ERROR]:Mixin config entity_model_features.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config beautifulcampfires.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config portablespawner.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config celestisynth.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config fabric-item-group-api-v1.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config fabric-item-group-api-v1.client.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config fabric-data-attachment-api-v1.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config fabric-data-attachment-api-v1.client.mixins.json does not specify "minVersion" property [13:02:37] [main/ERROR]:Mixin config pipeorgans.mixins.json does not specify "minVersion" property [13:02:42] [main/ERROR]:com.electronwill.nightconfig.core.io.ParsingException: Invalid TOML data: entry "[fastfurnace]" defined twice in its table. [13:02:42] [main/ERROR]:com.electronwill.nightconfig.core.io.ParsingException: Invalid TOML data: entry "[fastfurnace]" defined twice in its table.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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