This commit is contained in:
Brian Neumann-Fopiano
2026-04-13 17:06:29 -04:00
parent bf207b7062
commit 568fb07f66
8 changed files with 47 additions and 26 deletions
+3 -3
View File
@@ -15,17 +15,17 @@ Consider supporting our development by buying Iris on spigot! We work hard to ma
### Command Line Builds ### Command Line Builds
1. Install [Java JDK 21](https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html) 1. Install [Java JDK 25](https://adoptium.net/temurin/releases/?version=25)
2. Set the JDK installation path to `JAVA_HOME` as an environment variable. 2. Set the JDK installation path to `JAVA_HOME` as an environment variable.
* Windows * Windows
1. Start > Type `env` and press Enter 1. Start > Type `env` and press Enter
2. Advanced > Environment Variables 2. Advanced > Environment Variables
3. Under System Variables, click `New...` 3. Under System Variables, click `New...`
4. Variable Name: `JAVA_HOME` 4. Variable Name: `JAVA_HOME`
5. Variable Value: `C:\Program Files\Java\jdk-21.0.1` (verify this exists after installing java don't just copy 5. Variable Value: `C:\Program Files\Java\jdk-25` (verify this exists after installing java don't just copy
the example text) the example text)
* MacOS * MacOS
1. Run `/usr/libexec/java_home -V` and look for Java 21 1. Run `/usr/libexec/java_home -V` and look for Java 25
2. Run `sudo nano ~/.zshenv` 2. Run `sudo nano ~/.zshenv`
3. Add `export JAVA_HOME=$(/usr/libexec/java_home)` as a new line 3. Add `export JAVA_HOME=$(/usr/libexec/java_home)` as a new line
4. Use `CTRL + X`, then Press `Y`, Then `ENTER` 4. Use `CTRL + X`, then Press `Y`, Then `ENTER`
+19 -8
View File
@@ -75,12 +75,22 @@ nmsBindings.each { key, value ->
apply plugin: JavaPlugin apply plugin: JavaPlugin
def nmsConfig = new Config() def nmsConfig = new Config()
nmsConfig.jvm = 21 nmsConfig.jvm = 25
nmsConfig.version = value nmsConfig.version = value
nmsConfig.type = Enum.valueOf(nmsTypeClass, 'DIRECT') nmsConfig.type = Enum.valueOf(nmsTypeClass, 'DIRECT')
extensions.extraProperties.set('nms', nmsConfig) extensions.extraProperties.set('nms', nmsConfig)
plugins.apply(NMSBinding) plugins.apply(NMSBinding)
TaskProvider<Download> updateSpecialSource = tasks.register('updateSpecialSource', Download) {
src('https://repo1.maven.org/maven2/net/md-5/SpecialSource/1.11.6/SpecialSource-1.11.6-shaded.jar')
dest(layout.buildDirectory.file('tools/SpecialSource-1.11.4.jar'))
overwrite(true)
}
tasks.named('remap').configure {
dependsOn(updateSpecialSource)
}
dependencies { dependencies {
compileOnly(project(':core')) compileOnly(project(':core'))
compileOnly(volmLibCoordinate) { compileOnly(volmLibCoordinate) {
@@ -169,7 +179,7 @@ allprojects {
java { java {
toolchain { toolchain {
languageVersion = JavaLanguageVersion.of(21) languageVersion = JavaLanguageVersion.of(25)
} }
} }
@@ -200,6 +210,7 @@ allprojects {
options.compilerArgs.add('-parameters') options.compilerArgs.add('-parameters')
options.encoding = 'UTF-8' options.encoding = 'UTF-8'
options.debugOptions.debugLevel = 'none' options.debugOptions.debugLevel = 'none'
options.release.set(25)
} }
tasks.named('javadoc').configure { tasks.named('javadoc').configure {
@@ -219,18 +230,18 @@ allprojects {
} }
} }
if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_25)) {
System.err.println() System.err.println()
System.err.println('=========================================================================================================') System.err.println('=========================================================================================================')
System.err.println('You must run gradle on Java 21 or newer. You are using ' + JavaVersion.current()) System.err.println('You must run gradle on Java 25 or newer. You are using ' + JavaVersion.current())
System.err.println() System.err.println()
System.err.println('=== For IDEs ===') System.err.println('=== For IDEs ===')
System.err.println('1. Configure the project for Java 21 toolchain') System.err.println('1. Configure the project for Java 25 toolchain')
System.err.println('2. Configure the bundled gradle to use Java 21+ in settings') System.err.println('2. Configure the bundled gradle to use Java 25+ in settings')
System.err.println() System.err.println()
System.err.println('=== For Command Line (gradlew) ===') System.err.println('=== For Command Line (gradlew) ===')
System.err.println('1. Install JDK 21 from https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html') System.err.println('1. Install JDK 25 from https://adoptium.net/temurin/releases/?version=25')
System.err.println('2. Set JAVA_HOME environment variable to the new jdk installation folder such as C:\\Program Files\\Java\\jdk-21.0.4') System.err.println('2. Set JAVA_HOME environment variable to the new jdk installation folder such as C:\\Program Files\\Java\\jdk-25')
System.err.println('3. Open a new command prompt window to get the new environment variables if need be.') System.err.println('3. Open a new command prompt window to get the new environment variables if need be.')
System.err.println('=========================================================================================================') System.err.println('=========================================================================================================')
System.err.println() System.err.println()
+1 -1
View File
@@ -6,7 +6,7 @@ plugins {
java { java {
toolchain { toolchain {
languageVersion = JavaLanguageVersion.of(21) languageVersion = JavaLanguageVersion.of(25)
} }
} }
+1 -1
View File
@@ -1,5 +1,5 @@
public class Config { public class Config {
public int jvm = 21; public int jvm = 25;
public NMSBinding.Type type = NMSBinding.Type.DIRECT; public NMSBinding.Type type = NMSBinding.Type.DIRECT;
public String version; public String version;
} }
+15 -5
View File
@@ -45,6 +45,8 @@ def lib = 'art.arcane.iris.util'
String volmLibCoordinate = providers.gradleProperty('volmLibCoordinate') String volmLibCoordinate = providers.gradleProperty('volmLibCoordinate')
.orElse('com.github.VolmitSoftware:VolmLib:master-SNAPSHOT') .orElse('com.github.VolmitSoftware:VolmLib:master-SNAPSHOT')
.get() .get()
String sentryAuthToken = findProperty('sentry.auth.token') as String ?: System.getenv('SENTRY_AUTH_TOKEN')
boolean hasSentryAuthToken = sentryAuthToken != null && !sentryAuthToken.isBlank()
/** /**
* Dependencies. * Dependencies.
@@ -79,7 +81,7 @@ dependencies {
compileOnly(libs.multiverseCore) compileOnly(libs.multiverseCore)
// Shaded // Shaded
implementation('de.crazydev22.slimjar.helper:spigot:2.1.5') implementation('de.crazydev22.slimjar.helper:spigot:2.1.9')
implementation(volmLibCoordinate) { implementation(volmLibCoordinate) {
changing = true changing = true
transitive = false transitive = false
@@ -123,14 +125,14 @@ dependencies {
java { java {
toolchain { toolchain {
languageVersion = JavaLanguageVersion.of(21) languageVersion = JavaLanguageVersion.of(25)
} }
} }
kotlin { kotlin {
jvmToolchain(21) jvmToolchain(25)
compilerOptions { compilerOptions {
jvmTarget.set(JvmTarget.JVM_21) jvmTarget.set(JvmTarget.fromTarget('25'))
} }
} }
@@ -141,7 +143,7 @@ sentry {
org = 'sentry' org = 'sentry'
projectName = 'iris' projectName = 'iris'
authToken = findProperty('sentry.auth.token') as String ?: System.getenv('SENTRY_AUTH_TOKEN') authToken = sentryAuthToken
} }
slimJar { slimJar {
@@ -271,6 +273,14 @@ tasks.named('generateSentryBundleIdJava').configure {
dependsOn(generateTemplates) dependsOn(generateTemplates)
} }
tasks.matching { Task task ->
task.name.startsWith('sentry') || task.name.startsWith('generateSentry')
}.configureEach {
onlyIf {
hasSentryAuthToken
}
}
rootProject.tasks.matching { rootProject.tasks.matching {
it.name == 'prepareKotlinBuildScriptModel' it.name == 'prepareKotlinBuildScriptModel'
}.configureEach { }.configureEach {
@@ -156,19 +156,19 @@ public final class Tasks {
private static final Task JAVA = Task.of("java", () -> { private static final Task JAVA = Task.of("java", () -> {
int version = Iris.getJavaVersion(); int version = Iris.getJavaVersion();
if (version == 21) { if (version == 25) {
return withDiagnostics(Mode.STABLE); return withDiagnostics(Mode.STABLE);
} }
if (version > 21) { if (version > 25) {
return withDiagnostics(Mode.STABLE, return withDiagnostics(Mode.STABLE,
Diagnostic.Logger.INFO.create("Java Runtime"), Diagnostic.Logger.INFO.create("Java Runtime"),
Diagnostic.Logger.INFO.create("- Running Java " + version + ". Iris is tested primarily on Java 21.")); Diagnostic.Logger.INFO.create("- Running Java " + version + ". Iris is tested primarily on Java 25."));
} }
return withDiagnostics(Mode.WARNING, return withDiagnostics(Mode.WARNING,
Diagnostic.Logger.WARN.create("Unsupported Java version"), Diagnostic.Logger.WARN.create("Unsupported Java version"),
Diagnostic.Logger.WARN.create("- Java 21+ is recommended. Current runtime: Java " + version)); Diagnostic.Logger.WARN.create("- Java 25+ is recommended. Current runtime: Java " + version));
}); });
private static final List<Task> TASKS = List.of( private static final List<Task> TASKS = List.of(
+3 -3
View File
@@ -5,14 +5,14 @@
[versions] [versions]
# Plugins # Plugins
shadow = "9.0.0-rc1" # https://plugins.gradle.org/plugin/com.gradleup.shadow shadow = "9.0.0-rc1" # https://plugins.gradle.org/plugin/com.gradleup.shadow
slimjar = "2.1.5" # https://plugins.gradle.org/plugin/de.crazydev22.slimjar slimjar = "2.1.9" # https://plugins.gradle.org/plugin/de.crazydev22.slimjar
download = "5.6.0" # https://plugins.gradle.org/plugin/de.undercouch.download download = "5.6.0" # https://plugins.gradle.org/plugin/de.undercouch.download
runPaper = "2.3.1" # https://plugins.gradle.org/plugin/xyz.jpenilla.run-paper runPaper = "2.3.1" # https://plugins.gradle.org/plugin/xyz.jpenilla.run-paper
sentryPlugin = "5.8.0" # https://github.com/getsentry/sentry-android-gradle-plugin sentryPlugin = "5.8.0" # https://github.com/getsentry/sentry-android-gradle-plugin
grgit = "5.3.2" # https://github.com/ajoberstar/grgit grgit = "5.3.2" # https://github.com/ajoberstar/grgit
# Core Libraries # Core Libraries
lombok = "1.18.38" lombok = "1.18.44"
spigot = "1.21.11-R0.1-SNAPSHOT" # https://hub.spigotmc.org/nexus/repository/snapshots/org/spigotmc/spigot-api/maven-metadata.xml spigot = "1.21.11-R0.1-SNAPSHOT" # https://hub.spigotmc.org/nexus/repository/snapshots/org/spigotmc/spigot-api/maven-metadata.xml
log4j = "2.19.0" # https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-api log4j = "2.19.0" # https://central.sonatype.com/artifact/org.apache.logging.log4j/log4j-api
adventure-api = "4.24.0" # https://github.com/KyoriPowered/adventure adventure-api = "4.24.0" # https://github.com/KyoriPowered/adventure
@@ -40,7 +40,7 @@ dom4j = "2.2.0" # https://central.sonatype.com/artifact/org.dom4j/dom4j
jaxen = "2.0.0" # https://central.sonatype.com/artifact/jaxen/jaxen jaxen = "2.0.0" # https://central.sonatype.com/artifact/jaxen/jaxen
# Kotlin Runtime # Kotlin Runtime
kotlin = "2.2.0" kotlin = "2.3.0"
kotlin-coroutines = "1.10.2" kotlin-coroutines = "1.10.2"
# Third Party Integrations # Third Party Integrations
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME