Commits
md_5 authored 76c6f0b6f90
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() ) |