Skip to content

Commit

Permalink
Added server build checks
Browse files Browse the repository at this point in the history
  • Loading branch information
jonafanho committed Jan 4, 2023
1 parent d25e80c commit 8e332d2
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 17 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,7 @@ common/src/main/resources/data/minecraft/
common/src/main/resources/data/mtr/
fabric/src/main/resources
forge/src/main/resources
fabric/server
forge/server

.architectury-transformer/
22 changes: 11 additions & 11 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ def patreon_api_key = rootProject.properties.containsKey("patreonApiKey") ? root
def is_1_19_3 = minecraft_version == "1.19.3"
def parchment_version = getXml("https://ldtteam.jfrog.io/artifactory/parchmentmc-internal/org/parchmentmc/data/parchment-${minecraft_version}/maven-metadata.xml").versioning.release

rootProject.ext.fabric_loader_version = getJson("https://meta.fabricmc.net/v2/versions/loader/" + minecraft_version)[0]["loader"]["version"]
rootProject.ext.fabric_loader_version = [minecraft_version, getJson("https://meta.fabricmc.net/v2/versions/loader/" + minecraft_version)[0]["loader"]["version"]]
rootProject.ext.forge_version = minecraft_version + "-" + getJson("https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json")["promos"][minecraft_version + "-latest"]
rootProject.ext.fabric_api_version = getModrinthVersion("fabric", minecraft_version, "fabric-api")
rootProject.ext.mod_menu_version = getModrinthVersion("fabric", minecraft_version, "modmenu")
rootProject.ext.architectury_version = getModrinthVersion("forge", minecraft_version, "architectury-api").split("\\+")[0]
rootProject.ext.fabric_api_data = getModrinthData("fabric", minecraft_version, "fabric-api")
rootProject.ext.mod_menu_data = getModrinthData("fabric", minecraft_version, "modmenu")
rootProject.ext.architectury_data = getModrinthData("forge", minecraft_version, "architectury-api")

rootProject.ext.architectury_id = minecraft_main_version == 16 ? "me.shedaniel" : "dev.architectury"
rootProject.ext.variation = rootProject.properties.containsKey("variation") ? rootProject.getProperties().get("variation").toString() : "normal"
Expand Down Expand Up @@ -80,11 +80,11 @@ subprojects {
}

task setupFiles() {
System.out.println("Fabric Loader: " + rootProject.fabric_loader_version)
System.out.println("Fabric Loader: " + rootProject.fabric_loader_version[1])
System.out.println("Forge: " + rootProject.forge_version)
System.out.println("Fabric API: " + rootProject.fabric_api_version)
System.out.println("Mod Menu: " + rootProject.mod_menu_version)
System.out.println("Architectury: " + rootProject.architectury_version)
System.out.println("Fabric API: " + rootProject.fabric_api_data[0])
System.out.println("Mod Menu: " + rootProject.mod_menu_data[0])
System.out.println("Architectury: " + rootProject.architectury_data[0].split("\\+")[0])
System.out.println("Parchment: " + parchment_version)

download {
Expand Down Expand Up @@ -264,14 +264,14 @@ allprojects {
}
}

static String getModrinthVersion(String loader, String minecraftVersion, String projectId) {
static String[] getModrinthData(String loader, String minecraftVersion, String projectId) {
def versionsArray = getJson("https://api.modrinth.com/v2/project/" + projectId + "/version")
for (def versionElement : versionsArray) {
if (versionElement["loaders"].contains(loader) && versionElement["game_versions"].contains(minecraftVersion)) {
return versionElement["version_number"]
return [versionElement["version_number"], versionElement["files"][0]["url"]]
}
}
return ""
return ["", ""]
}

static Object getJson(String url) {
Expand Down
4 changes: 2 additions & 2 deletions common/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
dependencies {
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modApi "${rootProject.architectury_id}:architectury:${rootProject.architectury_version}"
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version[1]}"
modApi "${rootProject.architectury_id}:architectury:${rootProject.architectury_data[0].split("\\+")[0]}"
}

architectury {
Expand Down
36 changes: 33 additions & 3 deletions fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ configurations {
}

dependencies {
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}"
modApi "com.terraformersmc:modmenu:${rootProject.mod_menu_version}"
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version[1]}"
modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_data[0]}"
modApi "com.terraformersmc:modmenu:${rootProject.mod_menu_data[0]}"

common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false }
Expand Down Expand Up @@ -80,6 +80,36 @@ task moveFabricBuilds() {
}
}

task testServer {
doLast {
if (rootProject.variation == "normal") {
copy {
from "../build/latest"
into "server/mods"
include "MTR-fabric-*-latest.jar"
rename "(.+)", "MTR.jar"
}
download {
src rootProject.fabric_api_data[1]
dest "fabric/server/mods/fabric-api.jar"
overwrite true
retries - 1
}
download {
src "https://meta.fabricmc.net/v2/versions/loader/${rootProject.fabric_loader_version[0]}/${rootProject.fabric_loader_version[1]}/0.11.1/server/jar"
dest "fabric/server/fabric-server.jar"
overwrite true
retries - 1
}
javaexec {
mainClass = "-jar"
args = ["fabric-server.jar"]
workingDir = "server"
}
}
}
}

afterEvaluate {
for (def task in it.tasks) {
if (task == tasks.build) {
Expand Down
47 changes: 46 additions & 1 deletion forge/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import org.apache.tools.ant.taskdefs.condition.Os

loom {
forge {
mixinConfig "mtr.mixins.json"
Expand All @@ -19,7 +21,7 @@ configurations {

dependencies {
forge "net.minecraftforge:forge:${rootProject.forge_version}"
modApi "${rootProject.architectury_id}:architectury-forge:${rootProject.architectury_version}"
modApi "${rootProject.architectury_id}:architectury-forge:${rootProject.architectury_data[0].split("\\+")[0]}"

common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false }
Expand Down Expand Up @@ -87,6 +89,49 @@ task moveForgeBuilds() {
}
}

task testServer {
doLast {
if (rootProject.variation == "normal") {
copy {
from "../build/latest"
into "server/mods"
include "MTR-forge-*-latest.jar"
rename "(.+)", "MTR.jar"
}
download {
src rootProject.architectury_data[1]
dest "forge/server/mods/architectury.jar"
overwrite true
retries - 1
}
download {
src "https://maven.minecraftforge.net/net/minecraftforge/forge/${rootProject.forge_version}/forge-${rootProject.forge_version}-installer.jar"
dest "forge/server/forge-installer.jar"
overwrite true
retries - 1
}
javaexec {
mainClass = "-jar"
args = ["forge-installer.jar", "--installServer"]
workingDir = "server"
}

if (new File("server/forge-${rootProject.forge_version}.jar").exists()) {
javaexec {
mainClass = "-jar"
args = ["forge-${rootProject.forge_version}.jar", "nogui"]
workingDir = "server"
}
} else {
javaexec {
mainClass = "@libraries/net/minecraftforge/forge/${rootProject.forge_version}/${Os.isFamily(Os.FAMILY_WINDOWS) ? "win" : "unix"}_args.txt"
workingDir = "server"
}
}
}
}
}

afterEvaluate {
for (def task in it.tasks) {
if (task == tasks.build) {
Expand Down

0 comments on commit 8e332d2

Please sign in to comment.