Enforce a minimum Intelij version of 2021.1.
2021.1 is required for Java 16 and older versions have been known to cause crashes.
This commit is contained in:
		
							parent
							
								
									a73696a83f
								
							
						
					
					
						commit
						b4ac68825f
					
				
					 1 changed files with 17 additions and 0 deletions
				
			
		|  | @ -15,8 +15,10 @@ import org.gradle.util.GradleVersion; | |||
| public class LoomGradlePluginBootstrap implements Plugin<PluginAware> { | ||||
| 	private static final int MIN_SUPPORTED_MAJOR_GRADLE_VERSION = 7; | ||||
| 	private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 16; | ||||
| 	private static final int MIN_SUPPORTED_MAJOR_IDEA_VERSION = 2021; | ||||
| 
 | ||||
| 	private static final String PLUGIN_CLASS_NAME = "net.fabricmc.loom.LoomGradlePlugin"; | ||||
| 	private static final String IDEA_VERSION_PROP_KEY = "idea.version"; | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void apply(PluginAware project) { | ||||
|  | @ -41,6 +43,10 @@ public class LoomGradlePluginBootstrap implements Plugin<PluginAware> { | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		if (!isValidIdeaRuntime()) { | ||||
| 			errors.add(String.format("You are using an outdated version of intellij idea (%s). Intellij idea %d or higher is required.", System.getProperty(IDEA_VERSION_PROP_KEY), MIN_SUPPORTED_MAJOR_IDEA_VERSION)); | ||||
| 		} | ||||
| 
 | ||||
| 		if (!errors.isEmpty()) { | ||||
| 			throw new UnsupportedOperationException(String.join("\n", errors)); | ||||
| 		} | ||||
|  | @ -57,6 +63,17 @@ public class LoomGradlePluginBootstrap implements Plugin<PluginAware> { | |||
| 		return getMajorGradleVersion() >= MIN_SUPPORTED_MAJOR_GRADLE_VERSION; | ||||
| 	} | ||||
| 
 | ||||
| 	private static boolean isValidIdeaRuntime() { | ||||
| 		String version = System.getProperty(IDEA_VERSION_PROP_KEY); | ||||
| 
 | ||||
| 		if (version == null) { | ||||
| 			return true; | ||||
| 		} | ||||
| 
 | ||||
| 		int ideaYear = Integer.parseInt(version.substring(0, version.indexOf("."))); | ||||
| 		return ideaYear >= MIN_SUPPORTED_MAJOR_IDEA_VERSION; | ||||
| 	} | ||||
| 
 | ||||
| 	private static int getMajorGradleVersion() { | ||||
| 		String version = GradleVersion.current().getVersion(); | ||||
| 		return Integer.parseInt(version.substring(0, version.indexOf("."))); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue