Commits

md_5 authored 76c6f0b6f90
Check for required BuildTools version when building specific versions.
No tags

src/main/java/org/spigotmc/builder/Builder.java

Modified
65 65 public static final File CWD = new File( "." );
66 66 public static final String MC_VERSION = "1.8";
67 67 private static boolean dontUpdate;
68 68 private static boolean skipCompile;
69 69 private static boolean generateSource;
70 70 private static boolean generateDocs;
71 71 private static boolean dev;
72 72
73 73 public static void main(String[] args) throws Exception
74 74 {
75 + // May be null
76 + String buildVersion = Builder.class.getPackage().getImplementationVersion();
77 + int buildNumber = -1;
78 + if ( buildVersion != null )
79 + {
80 + String[] split = buildVersion.split( "-" );
81 + if ( split.length == 4 )
82 + {
83 + try
84 + {
85 + buildNumber = Integer.parseInt( split[3] );
86 + } catch ( NumberFormatException ex )
87 + {
88 + }
89 + }
90 + }
91 + System.out.println( "Loading BuildTools version: " + buildVersion + " (#" + buildNumber + ")" );
92 +
75 93 OptionParser parser = new OptionParser();
76 94 OptionSpec<Void> disableCertFlag = parser.accepts( "disable-certificate-check" );
77 95 OptionSpec<Void> dontUpdateFlag = parser.accepts( "dont-update" );
78 96 OptionSpec<Void> skipCompileFlag = parser.accepts( "skip-compile" );
79 97 OptionSpec<Void> generateSourceFlag = parser.accepts( "generate-source" );
80 98 OptionSpec<Void> generateDocsFlag = parser.accepts( "generate-docs" );
81 99 OptionSpec<Void> devFlag = parser.accepts( "dev" );
82 100
83 101 OptionSet options = parser.parse( args );
84 102
165 183 unzip( mvnTemp, new File( "." ) );
166 184 }
167 185
168 186 String mvn = maven.getAbsolutePath() + "/bin/mvn";
169 187
170 188 Git bukkitGit = Git.open( bukkit );
171 189 Git craftBukkitGit = Git.open( craftBukkit );
172 190 Git spigotGit = Git.open( spigot );
173 191 Git buildGit = Git.open( buildData );
174 192
175 - BuildInfo buildInfo = new BuildInfo( "Dev Build", "Development", new BuildInfo.Refs( "master", "master", "master", "master" ) );
193 + BuildInfo buildInfo = new BuildInfo( "Dev Build", "Development", 0, new BuildInfo.Refs( "master", "master", "master", "master" ) );
176 194
177 195 if ( !dontUpdate )
178 196 {
179 197 if ( !dev )
180 198 {
181 199 System.out.println( "Checking for latest version:" );
182 200
183 201 String verInfo;
184 202 try
185 203 {
186 204 verInfo = get( "https://hub.spigotmc.org/versions/latest.json" );
187 205 } catch ( IOException ex )
188 206 {
189 207 System.err.println( "Could not get latest version" );
190 208 ex.printStackTrace();
191 209 return;
192 210 }
193 211 System.out.println( "Found latest version" );
194 212 System.out.println( verInfo );
195 213
196 214 buildInfo = new Gson().fromJson( verInfo, BuildInfo.class );
215 +
216 + if ( buildNumber != -1 && buildInfo.getToolsVersion() != -1 && buildNumber < buildInfo.getToolsVersion() )
217 + {
218 + System.err.println( "**** Your BuildTools is out of date and will not build the requested version. Please grab a new copy from http://www.spigotmc.org/" );
219 + System.exit( 1 );
220 + }
197 221 }
198 222
199 223 pull( buildGit, buildInfo.getRefs().getBuildData() );
200 224 pull( bukkitGit, buildInfo.getRefs().getBukkit() );
201 225 pull( craftBukkitGit, buildInfo.getRefs().getCraftBukkit() );
202 226 pull( spigotGit, buildInfo.getRefs().getSpigot() );
203 227 }
204 228
205 229 File vanillaJar = new File( workDir, "minecraft_server." + MC_VERSION + ".jar" );
206 230 if ( !vanillaJar.exists() )

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut