Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| /* | |
| Copyright 2009 Hauke Rehfeld | |
| This file is part of QuakeInjector. | |
| QuakeInjector is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU General Public License as published by | |
| the Free Software Foundation, either version 3 of the License, or | |
| (at your option) any later version. | |
| QuakeInjector is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU General Public License for more details. | |
| You should have received a copy of the GNU General Public License | |
| along with QuakeInjector. If not, see <http://www.gnu.org/licenses/>. | |
| */ | |
| package de.haukerehfeld.quakeinjector; | |
| import java.io.File; | |
| import java.util.ArrayList; | |
| public class EngineStarter { | |
| private File quakeDir; | |
| private File quakeExe; | |
| private String quakeCmdline; | |
| public EngineStarter(File quakeDir, File quakeExe, String quakeCmdline) { | |
| this.quakeDir = quakeDir; | |
| this.quakeExe = quakeExe; | |
| this.quakeCmdline = quakeCmdline; | |
| } | |
| public void start(String mapCmdline, String startmap) throws java.io.IOException { | |
| ArrayList<String> cmd = new ArrayList<String>(5); | |
| cmd.add(quakeExe.getAbsolutePath()); | |
| //processbuilder doesn't like arguments with spaces | |
| if (quakeCmdline != null) { | |
| for (String s: quakeCmdline.split(" ")) { cmd.add(s); } | |
| } | |
| if (mapCmdline != null) { | |
| for (String s: mapCmdline.split(" ")) { cmd.add(s); } | |
| } | |
| cmd.add("+map"); | |
| cmd.add(startmap); | |
| ProcessBuilder pb = new ProcessBuilder(cmd); | |
| pb.directory(quakeDir); | |
| System.out.println(cmd); | |
| Process p = pb.start(); | |
| } | |
| public void setQuakeDirectory(File dir) { | |
| this.quakeDir = dir; | |
| } | |
| public void setQuakeExecutable(File exe) { | |
| this.quakeExe = exe; | |
| } | |
| public void setQuakeCommandline(String cmdline) { | |
| this.quakeCmdline = cmdline; | |
| } | |
| public boolean checkPaths() { | |
| return (quakeExe.exists() | |
| && !quakeExe.isDirectory() | |
| && quakeExe.canRead() | |
| && quakeExe.canExecute()); | |
| } | |
| } |