123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- buildscript {
- repositories {
- maven { url = 'https://maven.minecraftforge.net' }
- maven { url = 'https://maven.blamejared.com' }
- maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
- mavenCentral()
- }
- dependencies {
- classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
- classpath 'gradle.plugin.com.matthewprenger:CurseGradle:1.4.0'
- classpath group: 'com.blamejared', name: 'ModTemplate', version: '2.+', changing: true
- classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
- }
- }
- apply plugin: 'java'
- apply plugin: 'net.minecraftforge.gradle'
- apply plugin: 'com.blamejared.modtemplate'
- apply plugin: 'eclipse'
- apply plugin: 'org.spongepowered.mixin'
- apply plugin: 'maven-publish'
- apply plugin: 'com.matthewprenger.cursegradle'
- import com.blamejared.modtemplate.Utils
- archivesBaseName = "${mod_name}-forge-${minecraft_version}"
- version = Utils.updatingVersion(mod_version)
- mixin {
- add sourceSets.main, "${mod_id}.refmap.json"
- config "${mod_id}.mixins.json"
- config "${mod_id}.forge.mixins.json"
- }
- minecraft {
- mappings channel: 'official', version: minecraft_version
- if (project.hasProperty('forge_ats_enabled') && project.findProperty('forge_ats_enabled').toBoolean()) {
- // This location is hardcoded in Forge and can not be changed.
- // https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123
- accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
- project.logger.debug('Forge Access Transformers are enabled for this project.')
- }
- runs {
- client {
- workingDirectory project.file('run')
- ideaModule "${rootProject.name}.${project.name}.main"
- taskName 'Client'
- args "-mixin.config=${mod_id}.mixins.json", "-mixin.config=${mod_id}.forge.mixins.json"
- mods {
- modClientRun {
- source sourceSets.main
- source project(":Common").sourceSets.main
- }
- }
- }
- server {
- workingDirectory project.file('run')
- ideaModule "${rootProject.name}.${project.name}.main"
- taskName 'Server'
- args "-mixin.config=${mod_id}.mixins.json", "-mixin.config=${mod_id}.forge.mixins.json"
- mods {
- modServerRun {
- source sourceSets.main
- source project(":Common").sourceSets.main
- }
- }
- }
- data {
- workingDirectory project.file('run')
- ideaModule "${rootProject.name}.${project.name}.main"
- args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
- taskName 'Data'
- args "-mixin.config=${mod_id}.mixins.json", "-mixin.config=${mod_id}.forge.mixins.json"
- mods {
- modDataRun {
- source sourceSets.main
- source project(":Common").sourceSets.main
- }
- }
- }
- }
- }
- modTemplate {
- mcVersion minecraft_version
- curseHomepage curse_homepage
- displayName mod_name
- modLoader "Forge"
- changelog {
- enabled true
- firstCommit git_first_commit
- repo git_repo
- }
- versionTracker {
- enabled true
- author mod_author
- projectName mod_name
- }
- webhook {
- enabled true
- curseId curse_project_id
- avatarUrl mod_avatar
- }
- }
- sourceSets.main.resources.srcDir 'src/generated/resources'
- dependencies {
- minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
- compileOnly project(":Common")
- annotationProcessor 'org.spongepowered:mixin:0.8.4-SNAPSHOT:processor'
- }
- tasks.withType(JavaCompile) {
- source(project(":Common").sourceSets.main.allSource)
- }
- processResources {
- from project(":Common").sourceSets.main.resources
- filesMatching('*.mixins.json') {
- expand "refmap_target": "${mod_id}."
- }
- }
- jar {
- manifest {
- attributes([
- "Specification-Title" : mod_name,
- "Specification-Vendor" : mod_author,
- "Specification-Version" : "1",
- "Implementation-Title" : project.name,
- "Implementation-Version" : project.jar.archiveVersion,
- "Implementation-Vendor" : mod_author,
- "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
- "MixinConfigs" : "controlling.mixins.json"
- ])
- }
- }
- jar.finalizedBy('reobfJar')
- publishing {
- publications {
- mavenJava(MavenPublication) {
- groupId project.group
- artifactId project.archivesBaseName
- version project.version
- artifact jar
- }
- }
- repositories {
- maven {
- url "file://" + System.getenv("local_maven")
- }
- }
- }
- curseforge {
- apiKey = findProperty('curseforge_api_token') ?: 0
- project {
- id = curse_project_id
- releaseType = 'release'
- changelog = file("changelog.md")
- changelogType = 'markdown'
- addGameVersion "Forge"
- addGameVersion minecraft_version
- }
- }
|