Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
minecraftforge
GitHub Repository: minecraftforge/minecraftforge
Path: blob/1.21.x/settings.gradle
6513 views
pluginManagement {
    repositories {
        gradlePluginPortal()
        //mavenLocal()
        maven { url = 'https://maven.minecraftforge.net/' }
    }
}

buildscript {
    dependencies {
        classpath('com.google.code.gson:gson') {
            version {
                strictly '2.11.0'
            }
        }
    }
}

plugins {
    id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
}

dependencyResolutionManagement {
    versionCatalogs {
        libs {
            plugin('apt', 'com.diffplug.eclipse.apt').version('4.2.0')

            library('forgespi', 'net.minecraftforge:forgespi:7.1.5') // Needs modlauncher
            library('modlauncher', 'net.minecraftforge:modlauncher:10.2.4') // Needs securemodules
            library('securemodules', 'net.minecraftforge:securemodules:2.2.21') // Needs unsafe
            library('unsafe', 'net.minecraftforge:unsafe:0.9.2')
            library('accesstransformers', 'net.minecraftforge:accesstransformers:8.2.2')
            library('coremods', 'net.minecraftforge:coremods:5.2.6')
            library('nashorn', 'org.openjdk.nashorn:nashorn-core:15.4') // Needed by coremods, because the JRE no longer ships JS
            library('eventbus', 'net.minecraftforge:eventbus:7.0-beta.11')
            library('eventbus-validator', 'net.minecraftforge:eventbus-validator:7.0-beta.11')
            library('mergetool-api', 'net.minecraftforge:mergetool-api:1.0')

            library('mixin', 'org.spongepowered:mixin:0.8.7')
            library('jetbrains-annotations', 'org.jetbrains:annotations:24.1.0') // for ApiStatus annotations
            library('jspecify', 'org.jspecify:jspecify:1.0.0') // for nullability annotations
            library('slf4j-api', 'org.slf4j:slf4j-api:2.0.7')
            library('maven-artifact', 'org.apache.maven:maven-artifact:3.8.8')

            // Google's InMemory File System. Used by ForgeDev Tests for now, but could be useful for a lot of things.
            library('jimfs', 'com.google.jimfs:jimfs:1.3.0')
            bundle('jimfs', ['guava', 'failureaccess'])

            version('bootstrap', '2.1.8')
            library('bootstrap',      'net.minecraftforge', 'bootstrap'     ).versionRef('bootstrap') // Needs modlauncher
            library('bootstrap-api',  'net.minecraftforge', 'bootstrap-api' ).versionRef('bootstrap')
            library('bootstrap-dev',  'net.minecraftforge', 'bootstrap-dev' ).versionRef('bootstrap')
            library('bootstrap-shim', 'net.minecraftforge', 'bootstrap-shim').versionRef('bootstrap')

            // ASM it's used for so many of our hacks
            version('asm', '9.8')
            library('asm',          'org.ow2.asm', 'asm'         ).versionRef('asm')
            library('asm-tree',     'org.ow2.asm', 'asm-tree'    ).versionRef('asm')
            library('asm-util',     'org.ow2.asm', 'asm-util'    ).versionRef('asm')
            library('asm-commons',  'org.ow2.asm', 'asm-commons' ).versionRef('asm')
            library('asm-analysis', 'org.ow2.asm', 'asm-analysis').versionRef('asm')
            bundle('asm', ['asm', 'asm-tree', 'asm-util', 'asm-commons', 'asm-analysis'])

            // Terminal Console Appender.. essentually make pretty colors in the console, but it's been a PITA
            library('terminalconsoleappender', 'net.minecrell:terminalconsoleappender:1.2.0')
            version('jline', '3.25.1')
            library('jline-reader',       'org.jline', 'jline-reader'      ).versionRef('jline')
            library('jline-terminal',     'org.jline', 'jline-terminal'    ).versionRef('jline')
            library('jline-terminal-jna', 'org.jline', 'jline-terminal-jna').versionRef('jline') // Colors and tab completeion
            bundle('terminalconsoleappender', ['terminalconsoleappender', 'jline-reader', 'jline-terminal', 'jline-terminal-jna'])

            // The core of our configuration system, it has many flaws, but it works for the most part
            version('night-config', '3.7.4')
            library('night-config-toml', 'com.electronwill.night-config', 'toml').versionRef('night-config')
            library('night-config-core', 'com.electronwill.night-config', 'core').versionRef('night-config')
            bundle('night-config', ['night-config-toml', 'night-config-core'])

            // Jar in Jar FileSystem
            version('jarjar', '0.3.26')
            library('jarjar-fs',       'net.minecraftforge', 'JarJarFileSystems').versionRef('jarjar')
            library('jarjar-meta',     'net.minecraftforge', 'JarJarMetadata'   ).versionRef('jarjar')
            library('jarjar-selector', 'net.minecraftforge', 'JarJarSelector'   ).versionRef('jarjar')
            bundle('jarjar', ['jarjar-fs', 'jarjar-selector', 'jarjar-meta'])

            // These are libraries shipped by the MC launcher, try and keep them in sync with the manifest
            // but honestly if we don't it just means we ship them as normal libraries by adding them to the installer config in the forge project
            library('gson', 'com.google.code.gson:gson:2.11.0')
            library('guava', 'com.google.guava:guava:33.3.1-jre')
            library('failureaccess', 'com.google.guava:failureaccess:1.0.2')

            version('log4j', '2.24.3')
            library('log4j-api',  'org.apache.logging.log4j', 'log4j-api' ).versionRef('log4j')
            library('log4j-core', 'org.apache.logging.log4j', 'log4j-core').versionRef('log4j')
            bundle('log4j', ['log4j-api', 'log4j-core'])

            library('apache-commons', 'org.apache.commons:commons-lang3:3.17.0')
            library('mojang-logging', 'com.mojang:logging:1.5.10')
            library('jopt-simple', 'net.sf.jopt-simple:jopt-simple:5.0.4')
            library('commons-io', 'commons-io:commons-io:2.17.0')

            version('lwjgl', '3.3.3')
            library('lwjgl',        'org.lwjgl', 'lwjgl'       ).versionRef('lwjgl')
            library('lwjgl-glfw',   'org.lwjgl', 'lwjgl-glfw'  ).versionRef('lwjgl')
            library('lwjgl-opengl', 'org.lwjgl', 'lwjgl-opengl').versionRef('lwjgl')
            library('lwjgl-stb',    'org.lwjgl', 'lwjgl-stb'   ).versionRef('lwjgl')
            library('lwjgl-tinyfd', 'org.lwjgl', 'lwjgl-tinyfd').versionRef('lwjgl')
            bundle('lwjgl', ['lwjgl', 'lwjgl-glfw', 'lwjgl-opengl', 'lwjgl-stb', 'lwjgl-tinyfd'])
        }
    }
}

rootProject.name = 'ForgeRoot'

include 'fmlloader'
include 'fmlcore'
include 'mclanguage'
include 'javafmllanguage'
include 'lowcodelanguage'
include 'fmlearlydisplay'

include ':mcp'
project(":mcp").projectDir = file("projects/mcp")

include ':forge'
project(":forge").projectDir = file("projects/forge")
project(':forge').buildFileName = '../../build_forge.gradle'

if (false && !System.env.TEAMCITY_VERSION) {
    include ':clean'
    project(':clean').projectDir = file('projects/clean')
    project(':clean').buildFileName = '../../build_clean.gradle'
}