1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
plugins {
id 'java'
id 'eclipse'
alias libs.plugins.forgeGradle
alias libs.plugins.gitVersion
alias libs.plugins.checkerFramework
alias libs.plugins.shadow
}
version = gitVersion()
group = 'ftbsc'
archivesBaseName = 'bscv'
def shortVersion = (version as String).split('-')[0].replaceAll(".dirty", "")
project.ext {
deployJarDo = getProjectProperty("deployJar.do", "false")
deployJarTargetDir = getProjectProperty("deployJar.targetDir", ".")
}
def getProjectProperty(String property, String fallback) { //allows for custom gradle.properties while retaining default fallback values
return (project.hasProperty(property)) ? project.property(property) : fallback
}
java.toolchain.languageVersion = JavaLanguageVersion.of(8)
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
minecraft {
mappings channel: 'official', version: libs.versions.minecraft.get()
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
mods {
bscv.source sourceSets.main
}
}
data {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
args '--mod', 'bsvc', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
mods {
bscv.source sourceSets.main
}
}
}
}
sourceSets.main.resources { srcDir 'src/generated/resources' }
repositories {
mavenCentral()
maven { url = 'https://maven.fantabos.co' }
}
dependencies {
minecraft libs.minecraftForge
implementation libs.lillero
implementation libs.lilleroProcessor
implementation libs.autoServiceAnnotations
implementation libs.luaJava
implementation libs.luaJit
runtimeOnly libs.luaNatives.get().toString() + ":natives-desktop" //lol
annotationProcessor libs.lilleroProcessor
annotationProcessor libs.autoService
}
compileJava { //mappings for lillero-processor
options.compilerArgs << '-AmappingsFile=https://data.fantabos.co/1.16.5.tsrg'
}
def simpleFileName = "${jar.archiveBaseName.get()}-${shortVersion}.${jar.archiveExtension.get()}"
jar {
archiveFileName = simpleFileName
}
shadowJar {
archiveFileName = simpleFileName
relocate('com.badlogicgames.gdx', 'b') { //needed for luajava
include 'com.badlogicgames.gdx.utils.SharedLibraryLoad*'
}
dependencies {
include(
dependency {
it.moduleGroup == 'party.iroiro.luajava'
|| it.moduleGroup == 'com.badlogicgames.gdx'
}
)
}
manifest {
attributes([
"Specification-Title": "bscv",
"Specification-Vendor": "ftbsc",
"Specification-Version": "1", // We are version 1 of ourselves
"Implementation-Title": project.name,
"Implementation-Version": project.version,
"Implementation-Vendor" :"ftbsc",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
}
reobf {
jar {
dependsOn shadowJar
}
shadowJar {
dependsOn jar
}
}
//copy jar from build/libs to the forge mod folder
tasks.register('deployJar', Copy) {
if (!project.ext.deployJarDo.toBoolean()) return
from project.jar
into project.ext.deployJarTargetDir
}
build {
finalizedBy deployJar
}
|