mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-01-27 01:14:46 +00:00
Merge branch 'mc-1.18.x' into mc-1.19.x
This commit is contained in:
commit
92c613a7a2
@ -35,7 +35,8 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation fg.deobf("org.squiddev:cc-tweaked-${mc_version}:${cct_version}")
|
compileOnly fg.deobf("org.squiddev:cc-tweaked-${mc_version}:${cct_version}:api")
|
||||||
|
runtimeOnly fg.deobf("org.squiddev:cc-tweaked-${mc_version}:${cct_version}")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
249
build.gradle
249
build.gradle
@ -1,30 +1,19 @@
|
|||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
maven { url = "https://maven.minecraftforge.net" }
|
|
||||||
maven { url = 'https://maven.parchmentmc.org' }
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'net.minecraftforge.gradle:ForgeGradle:5.1.+'
|
|
||||||
classpath "org.spongepowered:mixingradle:0.7.+"
|
|
||||||
classpath 'org.parchmentmc:librarian:1.+'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id "checkstyle"
|
id "checkstyle"
|
||||||
id "jacoco"
|
id "jacoco"
|
||||||
id "maven-publish"
|
id "maven-publish"
|
||||||
id "com.github.hierynomus.license" version "0.16.1"
|
id "org.cadixdev.licenser" version "0.6.1"
|
||||||
id "com.matthewprenger.cursegradle" version "1.4.0"
|
id "com.matthewprenger.cursegradle" version "1.4.0"
|
||||||
id "com.github.breadmoirai.github-release" version "2.2.12"
|
id "com.github.breadmoirai.github-release" version "2.2.12"
|
||||||
id "org.jetbrains.kotlin.jvm" version "1.6.0"
|
id "org.jetbrains.kotlin.jvm" version "1.7.0"
|
||||||
id "com.modrinth.minotaur" version "1.2.1"
|
id "com.modrinth.minotaur" version "2.+"
|
||||||
|
id "net.minecraftforge.gradle" version "5.1.+"
|
||||||
|
id "org.spongepowered.mixin" version "0.7.+"
|
||||||
|
id "org.parchmentmc.librarian.forgegradle" version "1.+"
|
||||||
|
id "com.github.johnrengelman.shadow" version "7.1.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'net.minecraftforge.gradle'
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
apply plugin: "org.spongepowered.mixin"
|
|
||||||
apply plugin: 'org.parchmentmc.librarian.forgegradle'
|
|
||||||
|
|
||||||
version = mod_version
|
version = mod_version
|
||||||
|
|
||||||
@ -39,12 +28,7 @@ java {
|
|||||||
|
|
||||||
withSourcesJar()
|
withSourcesJar()
|
||||||
withJavadocJar()
|
withJavadocJar()
|
||||||
}
|
registerFeature("extraMods") { usingSourceSet(sourceSets.main) }
|
||||||
|
|
||||||
tasks.withType(JavaExec).configureEach {
|
|
||||||
javaLauncher = javaToolchains.launcherFor {
|
|
||||||
languageVersion = javaVersion
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@ -64,6 +48,7 @@ minecraft {
|
|||||||
|
|
||||||
property 'forge.logging.markers', 'REGISTRIES'
|
property 'forge.logging.markers', 'REGISTRIES'
|
||||||
property 'forge.logging.console.level', 'debug'
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
forceExit = false
|
||||||
|
|
||||||
mods {
|
mods {
|
||||||
computercraft {
|
computercraft {
|
||||||
@ -108,6 +93,8 @@ minecraft {
|
|||||||
gameTestServer {
|
gameTestServer {
|
||||||
workingDirectory project.file('test-files/server')
|
workingDirectory project.file('test-files/server')
|
||||||
|
|
||||||
|
property("forge.logging.console.level", "info")
|
||||||
|
|
||||||
mods {
|
mods {
|
||||||
cctest {
|
cctest {
|
||||||
source sourceSets.testMod
|
source sourceSets.testMod
|
||||||
@ -133,6 +120,10 @@ mixin {
|
|||||||
add sourceSets.main, 'computercraft.mixins.refmap.json'
|
add sourceSets.main, 'computercraft.mixins.refmap.json'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reobf {
|
||||||
|
shadowJar {}
|
||||||
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
maven {
|
maven {
|
||||||
@ -142,7 +133,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
shade
|
shade { transitive = false }
|
||||||
implementation.extendsFrom shade
|
implementation.extendsFrom shade
|
||||||
|
|
||||||
cctJavadoc
|
cctJavadoc
|
||||||
@ -158,21 +149,19 @@ dependencies {
|
|||||||
minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
|
minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}"
|
||||||
annotationProcessor 'org.spongepowered:mixin:0.8.4:processor'
|
annotationProcessor 'org.spongepowered:mixin:0.8.4:processor'
|
||||||
|
|
||||||
compileOnly fg.deobf("mezz.jei:jei-1.19-forge-api:11.0.0.206")
|
extraModsCompileOnly fg.deobf("mezz.jei:jei-1.19-forge-api:11.0.0.206")
|
||||||
compileOnly fg.deobf("mezz.jei:jei-1.19-common-api:11.0.0.206")
|
extraModsCompileOnly fg.deobf("mezz.jei:jei-1.19-common-api:11.0.0.206")
|
||||||
runtimeOnly fg.deobf("mezz.jei:jei-1.19-forge:11.0.0.206")
|
extraModsRuntimeOnly fg.deobf("mezz.jei:jei-1.19-forge:11.0.0.206")
|
||||||
|
|
||||||
shade 'org.squiddev:Cobalt:0.5.5'
|
shade 'org.squiddev:Cobalt:0.5.5'
|
||||||
shade('io.netty:netty-codec-http:4.1.76.Final') {
|
shade 'io.netty:netty-codec-http:4.1.76.Final'
|
||||||
exclude group: "*"
|
|
||||||
}
|
|
||||||
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.0'
|
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.0'
|
||||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
|
||||||
testImplementation 'org.hamcrest:hamcrest:2.2'
|
testImplementation 'org.hamcrest:hamcrest:2.2'
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0'
|
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0'
|
||||||
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
|
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.2'
|
||||||
|
|
||||||
testModImplementation sourceSets.main.output
|
testModImplementation sourceSets.main.output
|
||||||
testModExtra('org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0') {
|
testModExtra('org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0') {
|
||||||
@ -184,15 +173,19 @@ dependencies {
|
|||||||
|
|
||||||
// Compile tasks
|
// Compile tasks
|
||||||
|
|
||||||
compileTestModJava {
|
|
||||||
dependsOn(compileJava)
|
|
||||||
}
|
|
||||||
|
|
||||||
javadoc {
|
javadoc {
|
||||||
include "dan200/computercraft/api/**/*.java"
|
include "dan200/computercraft/api/**/*.java"
|
||||||
}
|
}
|
||||||
|
|
||||||
task luaJavadoc(type: Javadoc) {
|
def apiJar = tasks.register("apiJar", Jar.class) {
|
||||||
|
archiveClassifier.set("api")
|
||||||
|
from(sourceSets.main.output) {
|
||||||
|
include "dan200/computercraft/api/**/*"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assemble.dependsOn(apiJar)
|
||||||
|
|
||||||
|
def luaJavadoc = tasks.register("luaJavadoc", Javadoc.class) {
|
||||||
description "Generates documentation for Java-side Lua functions."
|
description "Generates documentation for Java-side Lua functions."
|
||||||
group "documentation"
|
group "documentation"
|
||||||
|
|
||||||
@ -210,6 +203,9 @@ task luaJavadoc(type: Javadoc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
|
finalizedBy("reobfJar")
|
||||||
|
|
||||||
|
archiveClassifier.set("slim")
|
||||||
manifest {
|
manifest {
|
||||||
attributes([
|
attributes([
|
||||||
"Specification-Title" : "computercraft",
|
"Specification-Title" : "computercraft",
|
||||||
@ -218,20 +214,29 @@ jar {
|
|||||||
"Implementation-Title" : "CC: Tweaked",
|
"Implementation-Title" : "CC: Tweaked",
|
||||||
"Implementation-Version" : "${mod_version}",
|
"Implementation-Version" : "${mod_version}",
|
||||||
"Implementation-Vendor" : "SquidDev",
|
"Implementation-Vendor" : "SquidDev",
|
||||||
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
|
||||||
,
|
|
||||||
"MixinConfigs" : "computercraft.mixins.json",
|
"MixinConfigs" : "computercraft.mixins.json",
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
duplicatesStrategy(DuplicatesStrategy.WARN)
|
|
||||||
|
|
||||||
from configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jar.finalizedBy('reobfJar')
|
shadowJar {
|
||||||
|
finalizedBy("reobfShadowJar")
|
||||||
|
|
||||||
[compileJava, compileTestJava, compileTestModJava].forEach {
|
archiveClassifier.set("")
|
||||||
|
configurations = [project.configurations.shade]
|
||||||
|
relocate("org.squiddev.cobalt", "cc.tweaked.internal.cobalt")
|
||||||
|
relocate("io.netty.handler.codec.http", "cc.tweaked.internal.netty")
|
||||||
|
minimize()
|
||||||
|
}
|
||||||
|
|
||||||
|
assemble.dependsOn("shadowJar")
|
||||||
|
|
||||||
|
[
|
||||||
|
tasks.named("compileJava", JavaCompile.class),
|
||||||
|
tasks.named("compileTestJava", JavaCompile.class),
|
||||||
|
tasks.named("compileTestModJava", JavaCompile.class)
|
||||||
|
].forEach {
|
||||||
it.configure {
|
it.configure {
|
||||||
options.compilerArgs << "-Xlint" << "-Xlint:-processing"
|
options.compilerArgs << "-Xlint" << "-Xlint:-processing"
|
||||||
}
|
}
|
||||||
@ -295,17 +300,11 @@ sourcesJar {
|
|||||||
|
|
||||||
// Web tasks
|
// Web tasks
|
||||||
|
|
||||||
|
|
||||||
import com.hierynomus.gradle.license.tasks.LicenseCheck
|
|
||||||
import com.hierynomus.gradle.license.tasks.LicenseFormat
|
|
||||||
import com.modrinth.minotaur.TaskModrinthUpload
|
|
||||||
import org.apache.tools.ant.taskdefs.condition.Os
|
|
||||||
|
|
||||||
List<String> mkCommand(String command) {
|
List<String> mkCommand(String command) {
|
||||||
return Os.isFamily(Os.FAMILY_WINDOWS) ? ["cmd", "/c", command] : ["sh", "-c", command]
|
return Os.isFamily(Os.FAMILY_WINDOWS) ? ["cmd", "/c", command] : ["sh", "-c", command]
|
||||||
}
|
}
|
||||||
|
|
||||||
task rollup(type: Exec) {
|
def rollup = tasks.register("rollup", Exec.class) {
|
||||||
group = "build"
|
group = "build"
|
||||||
description = "Bundles JS into rollup"
|
description = "Bundles JS into rollup"
|
||||||
|
|
||||||
@ -318,9 +317,10 @@ task rollup(type: Exec) {
|
|||||||
commandLine mkCommand('"node_modules/.bin/rollup" --config rollup.config.js')
|
commandLine mkCommand('"node_modules/.bin/rollup" --config rollup.config.js')
|
||||||
}
|
}
|
||||||
|
|
||||||
task illuaminateDocs(type: Exec, dependsOn: [rollup, luaJavadoc]) {
|
def illuaminateDocs = tasks.register("illuaminateDocs", Exec.class) {
|
||||||
group = "build"
|
group = "documentation"
|
||||||
description = "Generates docs using Illuaminate"
|
description = "Generates docs using Illuaminate"
|
||||||
|
dependsOn(rollup, luaJavadoc)
|
||||||
|
|
||||||
inputs.files(fileTree("doc")).withPropertyName("docs")
|
inputs.files(fileTree("doc")).withPropertyName("docs")
|
||||||
inputs.files(fileTree("src/main/resources/data/computercraft/lua/rom")).withPropertyName("lua rom")
|
inputs.files(fileTree("src/main/resources/data/computercraft/lua/rom")).withPropertyName("lua rom")
|
||||||
@ -333,9 +333,10 @@ task illuaminateDocs(type: Exec, dependsOn: [rollup, luaJavadoc]) {
|
|||||||
commandLine mkCommand('"bin/illuaminate" doc-gen')
|
commandLine mkCommand('"bin/illuaminate" doc-gen')
|
||||||
}
|
}
|
||||||
|
|
||||||
task jsxDocs(type: Exec, dependsOn: [illuaminateDocs]) {
|
def jsxDocs = tasks.register("jsxDocs", Exec) {
|
||||||
group = "build"
|
group = "documentation"
|
||||||
description = "Post-processes documentation to statically render some dynamic content."
|
description = "Post-processes documentation to statically render some dynamic content."
|
||||||
|
dependsOn(illuaminateDocs)
|
||||||
|
|
||||||
inputs.files(fileTree("src/web")).withPropertyName("sources")
|
inputs.files(fileTree("src/web")).withPropertyName("sources")
|
||||||
inputs.file("src/generated/export/index.json").withPropertyName("export")
|
inputs.file("src/generated/export/index.json").withPropertyName("export")
|
||||||
@ -347,7 +348,11 @@ task jsxDocs(type: Exec, dependsOn: [illuaminateDocs]) {
|
|||||||
commandLine mkCommand('"node_modules/.bin/ts-node" --esm src/web/transform.tsx')
|
commandLine mkCommand('"node_modules/.bin/ts-node" --esm src/web/transform.tsx')
|
||||||
}
|
}
|
||||||
|
|
||||||
task docWebsite(type: Copy, dependsOn: [jsxDocs]) {
|
def docWebsite = tasks.register("docWebsite", Copy.class) {
|
||||||
|
group = "documentation"
|
||||||
|
description = "Copy additional assets to the website directory."
|
||||||
|
dependsOn(jsxDocs)
|
||||||
|
|
||||||
from('doc') {
|
from('doc') {
|
||||||
include 'logo.png'
|
include 'logo.png'
|
||||||
include 'images/**'
|
include 'images/**'
|
||||||
@ -382,94 +387,75 @@ jacocoTestReport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
check.dependsOn jacocoTestReport
|
test.finalizedBy("jacocoTestReport")
|
||||||
|
|
||||||
license {
|
license {
|
||||||
mapping("java", "SLASHSTAR_STYLE")
|
header = file('config/license/main.txt')
|
||||||
strictCheck true
|
lineEnding = '\n'
|
||||||
|
newLine = false
|
||||||
|
|
||||||
ext.year = Calendar.getInstance().get(Calendar.YEAR)
|
properties {
|
||||||
}
|
year = Calendar.getInstance().get(Calendar.YEAR)
|
||||||
|
}
|
||||||
|
|
||||||
[licenseMain, licenseFormatMain].forEach {
|
include("**/*.java") // We could apply to Kotlin, but for now let's not
|
||||||
it.configure {
|
matching("dan200/computercraft/api/**") {
|
||||||
include("**/*.java")
|
header = file('config/license/api.txt')
|
||||||
exclude("dan200/computercraft/api/**")
|
|
||||||
header file('config/license/main.txt')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[licenseTest, licenseFormatTest, licenseTestMod, licenseFormatTestMod].forEach {
|
check.dependsOn("licenseCheck")
|
||||||
it.configure {
|
|
||||||
include("**/*.java")
|
|
||||||
header file('config/license/main.txt')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gradle.projectsEvaluated {
|
def testServerClassDumpDir = new File(buildDir, "jacocoClassDump/runTestServer")
|
||||||
tasks.withType(LicenseFormat) {
|
|
||||||
outputs.upToDateWhen { false }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
def testServer = tasks.register("testServer", JavaExec.class) {
|
||||||
task licenseAPI(type: LicenseCheck)
|
group("In-game tests")
|
||||||
task licenseFormatAPI(type: LicenseFormat)
|
description("Runs tests on a temporary Minecraft instance.")
|
||||||
[licenseAPI, licenseFormatAPI].forEach {
|
dependsOn("cleanTestServer")
|
||||||
it.configure {
|
finalizedBy("jacocoTestServerReport")
|
||||||
source = sourceSets.main.java
|
|
||||||
include("dan200/computercraft/api/**")
|
|
||||||
header file('config/license/api.txt')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register("testServer", JavaExec.class).configure {
|
|
||||||
it.group('In-game tests')
|
|
||||||
it.description("Runs tests on a temporary Minecraft instance.")
|
|
||||||
it.dependsOn("prepareRunGameTestServer", "cleanTestServer", 'compileTestModJava')
|
|
||||||
|
|
||||||
// Copy from runTestServer. We do it in this slightly odd way as runTestServer
|
// Copy from runTestServer. We do it in this slightly odd way as runTestServer
|
||||||
// isn't created until the task is configured (which is no good for us).
|
// isn't created until the task is configured (which is no good for us).
|
||||||
JavaExec exec = tasks.getByName("runGameTestServer")
|
JavaExec exec = tasks.getByName("runGameTestServer")
|
||||||
|
dependsOn(exec.getDependsOn())
|
||||||
exec.copyTo(it)
|
exec.copyTo(it)
|
||||||
it.setClasspath(exec.getClasspath())
|
setClasspath(exec.getClasspath())
|
||||||
it.mainClass = exec.mainClass
|
mainClass = exec.mainClass
|
||||||
it.setArgs(exec.getArgs())
|
javaLauncher = exec.javaLauncher
|
||||||
|
setArgs(exec.getArgs())
|
||||||
|
|
||||||
// Jacoco and modlauncher don't play well together as the classes loaded in-game don't
|
// Jacoco and modlauncher don't play well together as the classes loaded in-game don't
|
||||||
// match up with those written to disk. We get Jacoco to dump all classes to disk, and
|
// match up with those written to disk. We get Jacoco to dump all classes to disk, and
|
||||||
// use that when generating the report.
|
// use that when generating the report.
|
||||||
def coverageOut = new File(buildDir, "jacocoClassDump/testServer")
|
|
||||||
jacoco.applyTo(it)
|
jacoco.applyTo(it)
|
||||||
it.jacoco.setIncludes(["dan200.computercraft.*"])
|
it.jacoco.setIncludes(["dan200.computercraft.*"])
|
||||||
it.jacoco.setClassDumpDir(coverageOut)
|
it.jacoco.setClassDumpDir(testServerClassDumpDir)
|
||||||
it.outputs.dir(coverageOut)
|
outputs.dir(testServerClassDumpDir)
|
||||||
// Older versions of modlauncher don't include a protection domain (and thus no code
|
// Older versions of modlauncher don't include a protection domain (and thus no code
|
||||||
// source). Jacoco skips such classes by default, so we need to explicitly include them.
|
// source). Jacoco skips such classes by default, so we need to explicitly include them.
|
||||||
it.jacoco.setIncludeNoLocationClasses(true)
|
it.jacoco.setIncludeNoLocationClasses(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register("jacocoTestServerReport", JacocoReport.class).configure {
|
tasks.register("jacocoTestServerReport", JacocoReport.class) {
|
||||||
it.group('In-game')
|
group("In-game tests")
|
||||||
it.description("Generate coverage reports for testServer")
|
description("Generate coverage reports for testServer")
|
||||||
it.dependsOn("testServer")
|
dependsOn(testServer)
|
||||||
|
|
||||||
it.executionData(new File(buildDir, "jacoco/testServer.exec"))
|
executionData(new File(buildDir, "jacoco/testServer.exec"))
|
||||||
it.sourceDirectories.from(sourceSets.main.allJava.srcDirs)
|
sourceDirectories.from(sourceSets.main.allJava.srcDirs)
|
||||||
it.classDirectories.from(new File(buildDir, "jacocoClassDump/testServer"))
|
classDirectories.from(testServerClassDumpDir)
|
||||||
|
|
||||||
it.reports {
|
reports {
|
||||||
xml.enabled true
|
xml.enabled true
|
||||||
html.enabled true
|
html.enabled true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
check.dependsOn("jacocoTestServerReport")
|
check.dependsOn(testServer)
|
||||||
|
|
||||||
|
|
||||||
// Upload tasks
|
// Upload tasks
|
||||||
|
|
||||||
task checkRelease {
|
def checkRelease = tasks.register("checkRelease") {
|
||||||
group "upload"
|
group "upload"
|
||||||
description "Verifies that everything is ready for a release"
|
description "Verifies that everything is ready for a release"
|
||||||
|
|
||||||
@ -507,7 +493,7 @@ task checkRelease {
|
|||||||
if (!ok) throw new IllegalStateException("Could not check release")
|
if (!ok) throw new IllegalStateException("Could not check release")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
check.dependsOn checkRelease
|
check.dependsOn(checkRelease)
|
||||||
|
|
||||||
def isStable = false
|
def isStable = false
|
||||||
|
|
||||||
@ -517,36 +503,28 @@ curseforge {
|
|||||||
id = '282001'
|
id = '282001'
|
||||||
releaseType = isStable ? 'release' : 'alpha'
|
releaseType = isStable ? 'release' : 'alpha'
|
||||||
changelog = "Release notes can be found on the GitHub repository (https://github.com/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
|
changelog = "Release notes can be found on the GitHub repository (https://github.com/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
|
||||||
|
mainArtifact(shadowJar)
|
||||||
|
|
||||||
addGameVersion "${mc_version}"
|
addGameVersion "${mc_version}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register('publishModrinth', TaskModrinthUpload.class).configure {
|
modrinth {
|
||||||
dependsOn('assemble', 'reobfJar')
|
|
||||||
onlyIf {
|
|
||||||
project.hasProperty('modrinthApiKey')
|
|
||||||
}
|
|
||||||
|
|
||||||
token = project.hasProperty('modrinthApiKey') ? project.getProperty('modrinthApiKey') : ''
|
token = project.hasProperty('modrinthApiKey') ? project.getProperty('modrinthApiKey') : ''
|
||||||
projectId = 'gu7yAYhd'
|
projectId = 'gu7yAYhd'
|
||||||
versionNumber = "${project.mc_version}-${project.mod_version}"
|
versionNumber = "${project.mc_version}-${project.mod_version}"
|
||||||
uploadFile = jar
|
versionType = isStable ? 'release' : 'alpha'
|
||||||
versionType = isStable ? 'RELEASE' : 'ALPHA'
|
uploadFile = shadowJar
|
||||||
addGameVersion(project.mc_version)
|
gameVersions = [project.mc_version]
|
||||||
changelog = "Release notes can be found on the [GitHub repository](https://github.com/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
|
changelog = "Release notes can be found on the [GitHub repository](https://github.com/cc-tweaked/CC-Tweaked/releases/tag/v${mc_version}-${mod_version})."
|
||||||
addLoader('forge')
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.withType(GenerateModuleMetadata) {
|
|
||||||
// We can't generate metadata as that includes Forge as a dependency.
|
|
||||||
enabled = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
maven(MavenPublication) {
|
maven(MavenPublication) {
|
||||||
from components.java
|
from components.java
|
||||||
|
artifact(apiJar)
|
||||||
|
fg.component(it)
|
||||||
|
|
||||||
pom {
|
pom {
|
||||||
name = 'CC: Tweaked'
|
name = 'CC: Tweaked'
|
||||||
@ -565,11 +543,9 @@ publishing {
|
|||||||
licenses {
|
licenses {
|
||||||
license {
|
license {
|
||||||
name = 'ComputerCraft Public License, Version 1.0'
|
name = 'ComputerCraft Public License, Version 1.0'
|
||||||
url = 'https://github.com/cc-tweaked/CC-Tweaked/blob/mc-1.15.x/LICENSE'
|
url = 'https://github.com/cc-tweaked/CC-Tweaked/blob/mc-1.16.x/LICENSE'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
withXml { asNode().remove(asNode().get("dependencies")) }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -617,10 +593,11 @@ githubRelease {
|
|||||||
prerelease !isStable
|
prerelease !isStable
|
||||||
}
|
}
|
||||||
|
|
||||||
def uploadTasks = ["publish", "curseforge", "publishModrinth", "githubRelease"]
|
def uploadTasks = ["publish", "curseforge", "modrinth", "githubRelease"]
|
||||||
uploadTasks.forEach { tasks.getByName(it).dependsOn checkRelease }
|
uploadTasks.forEach { tasks.named(it) { dependsOn(checkRelease) } }
|
||||||
|
|
||||||
task uploadAll(dependsOn: uploadTasks) {
|
tasks.register("uploadAll") {
|
||||||
group "upload"
|
group = "upload"
|
||||||
description "Uploads to all repositories (Maven, Curse, Modrinth, GitHub release)"
|
description = "Uploads to all repositories (Maven, Curse, Modrinth, GitHub release)"
|
||||||
|
dependsOn(uploadTasks)
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
org.gradle.jvmargs=-Xmx3G
|
org.gradle.jvmargs=-Xmx3G
|
||||||
|
kotlin.stdlib.default.dependency=false
|
||||||
|
|
||||||
# Mod properties
|
# Mod properties
|
||||||
mod_version=1.100.7
|
mod_version=1.100.8
|
||||||
|
|
||||||
# Minecraft properties (update mods.toml when changing)
|
# Minecraft properties (update mods.toml when changing)
|
||||||
mc_version=1.19
|
mc_version=1.19
|
||||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
@ -1 +0,0 @@
|
|||||||
rootProject.name = "cc-tweaked-${mc_version}"
|
|
17
settings.gradle.kts
Normal file
17
settings.gradle.kts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
gradlePluginPortal()
|
||||||
|
maven("https://maven.minecraftforge.net")
|
||||||
|
maven("https://maven.parchmentmc.org")
|
||||||
|
}
|
||||||
|
resolutionStrategy {
|
||||||
|
eachPlugin {
|
||||||
|
if (requested.id.id == "org.spongepowered.mixin") {
|
||||||
|
useModule("org.spongepowered:mixingradle:${requested.version}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val mc_version: String by settings
|
||||||
|
rootProject.name = "cc-tweaked-${mc_version}"
|
@ -13,8 +13,8 @@ import dan200.computercraft.shared.computer.core.ClientComputerRegistry;
|
|||||||
import dan200.computercraft.shared.computer.core.ServerComputerRegistry;
|
import dan200.computercraft.shared.computer.core.ServerComputerRegistry;
|
||||||
import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer;
|
import dan200.computercraft.shared.peripheral.monitor.MonitorRenderer;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.slf4j.Logger;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -81,7 +81,7 @@ public final class ComputerCraft
|
|||||||
public static final ServerComputerRegistry serverComputerRegistry = new ServerComputerRegistry();
|
public static final ServerComputerRegistry serverComputerRegistry = new ServerComputerRegistry();
|
||||||
|
|
||||||
// Logging
|
// Logging
|
||||||
public static final Logger log = LogManager.getLogger( MOD_ID );
|
public static final Logger log = LoggerFactory.getLogger( MOD_ID );
|
||||||
|
|
||||||
public ComputerCraft()
|
public ComputerCraft()
|
||||||
{
|
{
|
||||||
|
@ -58,7 +58,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory
|
|||||||
}
|
}
|
||||||
|
|
||||||
Component customName;
|
Component customName;
|
||||||
private LockCode lockCode;
|
private LockCode lockCode = LockCode.NO_LOCK;
|
||||||
|
|
||||||
private final Map<IComputerAccess, MountInfo> computers = new HashMap<>();
|
private final Map<IComputerAccess, MountInfo> computers = new HashMap<>();
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ public final class TilePrinter extends TileGeneric implements DefaultSidedInvent
|
|||||||
private static final int[] SIDE_SLOTS = new int[] { 0 };
|
private static final int[] SIDE_SLOTS = new int[] { 0 };
|
||||||
|
|
||||||
Component customName;
|
Component customName;
|
||||||
private LockCode lockCode;
|
private LockCode lockCode = LockCode.NO_LOCK;
|
||||||
|
|
||||||
private final NonNullList<ItemStack> inventory = NonNullList.withSize( SLOTS, ItemStack.EMPTY );
|
private final NonNullList<ItemStack> inventory = NonNullList.withSize( SLOTS, ItemStack.EMPTY );
|
||||||
private final SidedCaps<IItemHandler> itemHandlerCaps =
|
private final SidedCaps<IItemHandler> itemHandlerCaps =
|
||||||
|
@ -21,6 +21,6 @@ CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles a
|
|||||||
[[dependencies.computercraft]]
|
[[dependencies.computercraft]]
|
||||||
modId="forge"
|
modId="forge"
|
||||||
mandatory=true
|
mandatory=true
|
||||||
versionRange="[41.0.6,42)"
|
versionRange="[41.0.38,42)"
|
||||||
ordering="NONE"
|
ordering="NONE"
|
||||||
side="BOTH"
|
side="BOTH"
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
|
# New features in CC: Tweaked 1.100.8
|
||||||
|
|
||||||
|
Several bug fixes:
|
||||||
|
* Fix NPE within disk drive and printer code.
|
||||||
|
|
||||||
# New features in CC: Tweaked 1.100.7
|
# New features in CC: Tweaked 1.100.7
|
||||||
|
|
||||||
* Fix failing to launch outside of a dev environment.
|
* Fix failing to launch outside of a dev environment.
|
||||||
|
|
||||||
|
|
||||||
# New features in CC: Tweaked 1.100.6
|
# New features in CC: Tweaked 1.100.6
|
||||||
|
|
||||||
* Various documentation improvements (MCJack123, FayneAldan).
|
* Various documentation improvements (MCJack123, FayneAldan).
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
New features in CC: Tweaked 1.100.7
|
New features in CC: Tweaked 1.100.8
|
||||||
|
|
||||||
* Fix failing to launch outside of a dev environment.
|
Several bug fixes:
|
||||||
|
* Fix NPE within disk drive and printer code.
|
||||||
|
|
||||||
Type "help changelog" to see the full version history.
|
Type "help changelog" to see the full version history.
|
||||||
|
Loading…
Reference in New Issue
Block a user