Compare commits

...

2 commits

Author SHA1 Message Date
1c993f6a57 Switch to the MCPHackers launchwrapper 2024-03-17 02:00:25 -07:00
291e0e7d6a Update build script! 2024-03-16 13:33:09 -07:00
4 changed files with 84 additions and 32 deletions

View file

@ -1,9 +1,5 @@
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.5/userguide/building_java_projects.html in the Gradle documentation.
*/
import org.gradle.internal.os.OperatingSystem
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
@ -12,6 +8,31 @@ plugins {
id 'java'
}
project.ext.lwjglVersion = "2.9.3"
project.ext.set('nativeLibsDir', "$buildDir/libs/natives")
switch (OperatingSystem.current()) {
case OperatingSystem.LINUX:
project.ext.lwjglNatives = "natives-linux"
def osArch = System.getProperty("os.arch")
if (osArch.startsWith("arm") || osArch.startsWith("aarch64")) {
project.ext.lwjglNatives += osArch.contains("64") || osArch.startsWith("armv8") ? "-arm64" : "-arm32"
} else if (osArch.startsWith("ppc")) {
project.ext.lwjglNatives += "-ppc64le"
} else if (osArch.startsWith("riscv")) {
project.ext.lwjglNatives += "-riscv64"
}
break
case OperatingSystem.MAC_OS:
project.ext.lwjglNatives = "natives-macos"
break
case OperatingSystem.WINDOWS:
project.ext.lwjglNatives = "natives-windows"
break
}
configurations {
provided
natives
@ -27,21 +48,27 @@ configurations {
repositories {
// Use Maven Central for resolving dependencies.
maven {
url = "https://maven.zontreck.dev/repository/internal"
url = "https://maven.zontreck.com/repository/internal"
name = "Aria's Creations Caches"
}
maven {
url = "https://maven.zontreck.dev/repository/zontreck"
url = "https://maven.zontreck.com/repository/zontreck"
name = "Aria's Creations"
}
}
dependencies {
provided ("net.java.jinput:jinput-platform:2.0.7")
provided platform("net.java.jinput:jinput-platform:2.0.7")
provided ("net.java.jutils:jutils:1.0.0")
provided ("org.lwjgl.lwjgl:lwjgl:2.9.3")
provided ("org.lwjgl.lwjgl:lwjgl_util:2.9.3")
provided ("org.lwjgl.lwjgl:lwjgl-platform:2.9.3")
provided "org.lwjgl.lwjgl:lwjgl:$lwjglVersion"
provided "org.lwjgl.lwjgl:lwjgl_util:$lwjglVersion"
provided platform("org.lwjgl.lwjgl:lwjgl-platform:$lwjglVersion-$lwjglNatives")
provided 'org.mcphackers:launchwrapper:1.0'
}
// Apply a specific Java toolchain to ease working on different environments.
@ -53,16 +80,18 @@ java {
application {
// Define the main class for the application.
mainClass = 'com.mojang.minecraft.Minecraft'
mainClass = 'org.mcphackers.launchwrapper.Launch'
}
jar {
duplicatesStrategy = "exclude"
manifest {
attributes (
'Main-Class': application.mainClass,
'Multi-Release': 'true',
'Class-Path': configurations.provided.files.collect{"lib/${it.name}"}.join(' ')
'Multi-Release': 'true'
)
}from {
configurations.provided.collect { it.isDirectory() ? it : zipTree(it)}
}
}
@ -73,7 +102,7 @@ task copyToLib(type: Copy) {
}
task copyNatives(type: Copy) {
into "${buildDir}/libs/natives"
into project.nativeLibsDir
duplicatesStrategy = "exclude"
configurations.provided.asFileTree.each {
if(it.isFile())
@ -86,13 +115,13 @@ task jarjar(type: Jar) {
'Main-Class': application.mainClass,
'Multi-Release': 'true'
)
}from {
configurations.provided.collect { it.isDirectory() ? it : zipTree(it)}
}
archiveClassifier = "AIO"
duplicatesStrategy = "exclude"
from { configurations.provided.collect { it.isDirectory() ? it : zipTree(it) } }
exclude 'META-INF/*'
exclude 'META-INF/*'
exclude 'META-INF/*'
with jar
@ -100,6 +129,34 @@ task jarjar(type: Jar) {
with copyNatives
}
run {
jvmArgs ["-Djava.library.path=${project.nativeLibsDir}",]
}
jar.finalizedBy(jarjar)
jar.finalizedBy(copyToLib)
jar.finalizedBy(copyNatives)
jar.finalizedBy(copyNatives)
task buildServer(type: Jar){
manifest {
attributes(
'Main-Class': "com.mojang.minecraft.server.MinecraftServer",
"Multi-Release": 'true'
)
} from {
configurations.provided.collect { it.isDirectory() ? it : zipTree(it)}
}
archiveClassifier = "server"
duplicatesStrategy = "exclude"
from {configurations.provided.collect {it.isDirectory()?it:zipTree(it)}}
exclude 'META-INF/*'
with jarjar
}
jar.finalizedBy(buildServer)

8
run.sh Normal file
View file

@ -0,0 +1,8 @@
#!/bin/bash
./gradlew build
pushd build/libs
java -Djava.library.path=natives -jar Minecraft-AIO.jar
popd

View file

@ -1,10 +1,3 @@
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
* For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.5/userguide/building_swift_projects.html in the Gradle documentation.
*/
plugins {
// Apply the foojay-resolver plugin to allow automatic download of JDKs
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0'

View file

@ -1078,10 +1078,4 @@ public final class Minecraft implements Runnable {
System.gc();
}
public static void main(String[] args) throws LWJGLException {
Minecraft minecraft = new Minecraft((Canvas)null, 854, 480, false);
(new Thread(minecraft)).start();
}
}