summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/spigotmc/builder/Builder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/spigotmc/builder/Builder.java')
-rw-r--r--src/main/java/org/spigotmc/builder/Builder.java34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/main/java/org/spigotmc/builder/Builder.java b/src/main/java/org/spigotmc/builder/Builder.java
index 9d96d8b..d864956 100644
--- a/src/main/java/org/spigotmc/builder/Builder.java
+++ b/src/main/java/org/spigotmc/builder/Builder.java
@@ -1,6 +1,7 @@
package org.spigotmc.builder;
import com.google.common.base.Charsets;
+import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.base.Throwables;
import com.google.common.collect.Iterables;
@@ -120,6 +121,7 @@ public class Builder
OptionParser parser = new OptionParser();
OptionSpec<Void> disableCertFlag = parser.accepts( "disable-certificate-check" );
+ OptionSpec<Void> disableJavaCheck = parser.accepts( "disable-java-check" );
OptionSpec<Void> dontUpdateFlag = parser.accepts( "dont-update" );
OptionSpec<Void> skipCompileFlag = parser.accepts( "skip-compile" );
OptionSpec<Void> generateSourceFlag = parser.accepts( "generate-source" );
@@ -252,7 +254,7 @@ public class Builder
Git spigotGit = Git.open( spigot );
Git buildGit = Git.open( buildData );
- BuildInfo buildInfo = new BuildInfo( "Dev Build", "Development", 0, new BuildInfo.Refs( "master", "master", "master", "master" ) );
+ BuildInfo buildInfo = new BuildInfo( "Dev Build", "Development", 0, null, new BuildInfo.Refs( "master", "master", "master", "master" ) );
if ( !dontUpdate )
{
@@ -281,6 +283,36 @@ public class Builder
System.err.println( "**** Your BuildTools is out of date and will not build the requested version. Please grab a new copy from https://www.spigotmc.org/go/buildtools-dl" );
System.exit( 1 );
}
+
+ if ( !options.has( disableJavaCheck ) )
+ {
+ if ( buildInfo.getJavaVersions() == null )
+ {
+ buildInfo.setJavaVersions( new int[]
+ {
+ JavaVersion.JAVA_7.getVersion(), JavaVersion.JAVA_8.getVersion()
+ } );
+ }
+
+ Preconditions.checkArgument( buildInfo.getJavaVersions().length == 2, "Expected only two Java versions, got %s", JavaVersion.printVersions( buildInfo.getJavaVersions() ) );
+
+ JavaVersion curVersion = JavaVersion.getCurrentVersion();
+ JavaVersion minVersion = JavaVersion.getByVersion( buildInfo.getJavaVersions()[0] );
+ JavaVersion maxVersion = JavaVersion.getByVersion( buildInfo.getJavaVersions()[1] );
+
+ if ( minVersion == JavaVersion.UNKNOWN || maxVersion == JavaVersion.UNKNOWN )
+ {
+ System.err.println( "*** This BuildTools doesn't know how to use Java versions " + JavaVersion.printVersions( buildInfo.getJavaVersions() ) + ", please update" );
+ System.exit( 1 );
+ }
+
+ if ( curVersion.getVersion() < minVersion.getVersion() || curVersion.getVersion() > maxVersion.getVersion() )
+ {
+ System.err.println( "*** The version you have requested to build requires Java versions between " + JavaVersion.printVersions( buildInfo.getJavaVersions() ) + ", but you are using " + curVersion );
+ System.err.println( "*** Please rerun BuildTools using an appropriate Java version. For obvious reasons outdated MC versions do not support Java versions that did not exist at their release." );
+ System.exit( 1 );
+ }
+ }
}
pull( buildGit, buildInfo.getRefs().getBuildData() );