mirror of
https://github.com/ME1312/SubServers-2.git
synced 2024-09-27 13:02:35 +02:00
Use the same java version for child processes
This commit is contained in:
parent
51d3c31220
commit
6e116763c1
@ -19,6 +19,10 @@ public class Executable {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String[] parse(String gitbash, String exec) {
|
public static String[] parse(String gitbash, String exec) {
|
||||||
|
if (exec.startsWith("java ")) {
|
||||||
|
exec = '\"' + System.getProperty("java.home") + File.separator + "bin" + File.separator + "java" + '\"' + exec.substring(4);
|
||||||
|
}
|
||||||
|
|
||||||
String[] cmd;
|
String[] cmd;
|
||||||
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
|
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
|
||||||
if (gitbash != null && (exec.toLowerCase().startsWith("bash ") || exec.toLowerCase().startsWith("sh ")))
|
if (gitbash != null && (exec.toLowerCase().startsWith("bash ") || exec.toLowerCase().startsWith("sh ")))
|
||||||
|
@ -203,14 +203,15 @@ public class ExternalHost extends Host implements ClientHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean forceRemoveSubServer(UUID player, String name) {
|
public boolean forceRemoveSubServer(UUID player, String name) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
if (Util.isNull(name)) throw new NullPointerException();
|
||||||
String server = servers.get(name.toLowerCase()).getName();
|
String server = servers.get(name.toLowerCase()).getName();
|
||||||
|
|
||||||
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, getSubServer(server));
|
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, getSubServer(server));
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (getSubServer(server).isRunning()) {
|
if (getSubServer(server).isRunning()) {
|
||||||
getSubServer(server).terminate();
|
getSubServer(server).stop();
|
||||||
|
getSubServer(server).waitFor();
|
||||||
}
|
}
|
||||||
queue(new PacketExRemoveServer(server, data -> {
|
queue(new PacketExRemoveServer(server, data -> {
|
||||||
if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
|
if (data.getInt(0x0001) == 0 || data.getInt(0x0001) == 1) {
|
||||||
|
@ -131,13 +131,14 @@ public class InternalHost extends Host {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean forceRemoveSubServer(UUID player, String name) {
|
public boolean forceRemoveSubServer(UUID player, String name) throws InterruptedException {
|
||||||
if (Util.isNull(name)) throw new NullPointerException();
|
if (Util.isNull(name)) throw new NullPointerException();
|
||||||
String server = servers.get(name.toLowerCase()).getName();
|
String server = servers.get(name.toLowerCase()).getName();
|
||||||
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, getSubServer(server));
|
SubRemoveServerEvent event = new SubRemoveServerEvent(player, this, getSubServer(server));
|
||||||
plugin.getPluginManager().callEvent(event);
|
plugin.getPluginManager().callEvent(event);
|
||||||
if (getSubServer(server).isRunning()) {
|
if (getSubServer(server).isRunning()) {
|
||||||
getSubServer(server).terminate();
|
getSubServer(server).stop();
|
||||||
|
getSubServer(server).waitFor();
|
||||||
}
|
}
|
||||||
if (UPnP.isUPnPAvailable() && UPnP.isMappedTCP(getSubServer(server).getAddress().getPort()))
|
if (UPnP.isUPnPAvailable() && UPnP.isMappedTCP(getSubServer(server).getAddress().getPort()))
|
||||||
UPnP.closePortTCP(getSubServer(server).getAddress().getPort());
|
UPnP.closePortTCP(getSubServer(server).getAddress().getPort());
|
||||||
|
@ -111,6 +111,7 @@ public class InternalSubCreator extends SubCreator {
|
|||||||
try {
|
try {
|
||||||
Logger.get(prefix).info("Loading Template: " + template.getDisplayName());
|
Logger.get(prefix).info("Loading Template: " + template.getDisplayName());
|
||||||
Util.copyDirectory(template.getDirectory(), dir);
|
Util.copyDirectory(template.getDirectory(), dir);
|
||||||
|
var.put("java", System.getProperty("java.home") + File.separator + "bin" + File.separator + "java");
|
||||||
var.put("mode", (update == null)?"CREATE":"UPDATE");
|
var.put("mode", (update == null)?"CREATE":"UPDATE");
|
||||||
var.put("name", name);
|
var.put("name", name);
|
||||||
var.put("host", host.getName());
|
var.put("host", host.getName());
|
||||||
|
@ -144,9 +144,11 @@ public class InternalSubLogger extends SubLogger {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public void stop() {
|
||||||
|
try {
|
||||||
if (out != null) out.interrupt();
|
if (out != null) out.interrupt();
|
||||||
if (err != null) err.interrupt();
|
if (err != null) err.interrupt();
|
||||||
destroy();
|
destroy();
|
||||||
|
} catch (NullPointerException e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -122,6 +122,7 @@ public class InternalSubServer extends SubServerContainer {
|
|||||||
started = false;
|
started = false;
|
||||||
try {
|
try {
|
||||||
ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.getCreator().getBashDirectory(), executable)).directory(directory);
|
ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.getCreator().getBashDirectory(), executable)).directory(directory);
|
||||||
|
pb.environment().put("java", System.getProperty("java.home") + File.separator + "bin" + File.separator + "java");
|
||||||
pb.environment().put("name", getName());
|
pb.environment().put("name", getName());
|
||||||
pb.environment().put("host", host.getName());
|
pb.environment().put("host", host.getName());
|
||||||
pb.environment().put("address", host.getAddress().getHostAddress());
|
pb.environment().put("address", host.getAddress().getHostAddress());
|
||||||
|
@ -7,6 +7,10 @@ if [[ -z "$mcf_version" ]] || [[ -z "$sp_version" ]]
|
|||||||
rm -Rf "$0"
|
rm -Rf "$0"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "$java" ]]
|
||||||
|
then
|
||||||
|
export java="java"
|
||||||
|
fi
|
||||||
function __DL() {
|
function __DL() {
|
||||||
if [[ -x "$(command -v wget)" ]]; then
|
if [[ -x "$(command -v wget)" ]]; then
|
||||||
wget -O "$1" "$2"; return $?
|
wget -O "$1" "$2"; return $?
|
||||||
@ -18,7 +22,7 @@ echo Downloading the Minecraft Forge Installer...
|
|||||||
__DL "forge-$mcf_version-installer.jar" "http://files.minecraftforge.net/maven/net/minecraftforge/forge/$mcf_version/forge-$mcf_version-installer.jar"; __RETURN=$?
|
__DL "forge-$mcf_version-installer.jar" "http://files.minecraftforge.net/maven/net/minecraftforge/forge/$mcf_version/forge-$mcf_version-installer.jar"; __RETURN=$?
|
||||||
if [[ $__RETURN -eq 0 ]]; then
|
if [[ $__RETURN -eq 0 ]]; then
|
||||||
echo Installing Minecraft Forge...
|
echo Installing Minecraft Forge...
|
||||||
java -jar "forge-$mcf_version-installer.jar" --installServer; __RETURN=$?
|
"$java" -jar "forge-$mcf_version-installer.jar" --installServer; __RETURN=$?
|
||||||
if [[ $__RETURN -eq 0 ]]; then
|
if [[ $__RETURN -eq 0 ]]; then
|
||||||
echo Cleaning Up...
|
echo Cleaning Up...
|
||||||
if [[ -f "Forge.jar" ]]; then
|
if [[ -f "Forge.jar" ]]; then
|
||||||
|
@ -7,6 +7,10 @@ if [[ -z "$version" ]]
|
|||||||
rm -Rf "$0"
|
rm -Rf "$0"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "$java" ]]
|
||||||
|
then
|
||||||
|
export java="java"
|
||||||
|
fi
|
||||||
function __DL() {
|
function __DL() {
|
||||||
if [[ -x "$(command -v wget)" ]]; then
|
if [[ -x "$(command -v wget)" ]]; then
|
||||||
wget -O "$1" "$2"; return $?
|
wget -O "$1" "$2"; return $?
|
||||||
@ -29,7 +33,7 @@ if [[ -z "$cache" ]] || [[ ! -f "$cache/Spigot-$version.jar" ]] || [[ "$mode" ==
|
|||||||
export HOME="$cache"
|
export HOME="$cache"
|
||||||
fi
|
fi
|
||||||
export MAVEN_OPTS="-Xms2G"
|
export MAVEN_OPTS="-Xms2G"
|
||||||
java -Xms2G -jar ../Buildtools.jar --rev "$version"; __RETURN=$?
|
"$java" -Xms2G -jar ../Buildtools.jar --rev "$version"; __RETURN=$?
|
||||||
if [[ ! -z "$cache" ]] && [[ ! -z "$__HOME" ]] && [[ "$cache" == "$HOME" ]]; then
|
if [[ ! -z "$cache" ]] && [[ ! -z "$__HOME" ]] && [[ "$cache" == "$HOME" ]]; then
|
||||||
export HOME="$__HOME"
|
export HOME="$__HOME"
|
||||||
fi
|
fi
|
||||||
|
@ -7,6 +7,10 @@ if [[ -z "$version" ]]
|
|||||||
rm -Rf "$0"
|
rm -Rf "$0"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "$java" ]]
|
||||||
|
then
|
||||||
|
export java="java"
|
||||||
|
fi
|
||||||
function __DL() {
|
function __DL() {
|
||||||
if [[ -x "$(command -v wget)" ]]; then
|
if [[ -x "$(command -v wget)" ]]; then
|
||||||
wget -O "$1" "$2"; return $?
|
wget -O "$1" "$2"; return $?
|
||||||
@ -24,7 +28,7 @@ if [[ -z "$cache" ]] || [[ ! -f "$cache/Vanilla-$version.jar" ]]; then
|
|||||||
if [[ $__RETURN -eq 0 ]]; then
|
if [[ $__RETURN -eq 0 ]]; then
|
||||||
cd VanillaCord
|
cd VanillaCord
|
||||||
echo Launching VanillaCord
|
echo Launching VanillaCord
|
||||||
java -jar VanillaCord.jar "$version"; __RETURN=$?;
|
"$java" -jar VanillaCord.jar "$version"; __RETURN=$?;
|
||||||
if [[ $__RETURN -eq 0 ]]; then
|
if [[ $__RETURN -eq 0 ]]; then
|
||||||
echo Copying Finished Jar...
|
echo Copying Finished Jar...
|
||||||
cd ../
|
cd ../
|
||||||
|
@ -20,6 +20,10 @@ public class Executable {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String[] parse(String gitbash, String exec) {
|
public static String[] parse(String gitbash, String exec) {
|
||||||
|
if (exec.startsWith("java ")) {
|
||||||
|
exec = '\"' + System.getProperty("java.home") + File.separator + "bin" + File.separator + "java" + '\"' + exec.substring(4);
|
||||||
|
}
|
||||||
|
|
||||||
String[] cmd;
|
String[] cmd;
|
||||||
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
|
if (System.getProperty("os.name").toLowerCase().startsWith("windows")) {
|
||||||
if (gitbash != null && (exec.toLowerCase().startsWith("bash ") || exec.toLowerCase().startsWith("sh ")))
|
if (gitbash != null && (exec.toLowerCase().startsWith("bash ") || exec.toLowerCase().startsWith("sh ")))
|
||||||
|
@ -260,6 +260,7 @@ public class SubCreatorImpl {
|
|||||||
log.logger.info.println("Loading Template: " + template.getDisplayName());
|
log.logger.info.println("Loading Template: " + template.getDisplayName());
|
||||||
((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketOutExLogMessage(address, "Loading Template: " + template.getDisplayName()));
|
((SubDataClient) SubAPI.getInstance().getSubDataNetwork()[0]).sendPacket(new PacketOutExLogMessage(address, "Loading Template: " + template.getDisplayName()));
|
||||||
Util.copyDirectory(template.getDirectory(), dir);
|
Util.copyDirectory(template.getDirectory(), dir);
|
||||||
|
var.put("java", System.getProperty("java.home") + File.separator + "bin" + File.separator + "java");
|
||||||
var.put("mode", (update == null)?"CREATE":"UPDATE");
|
var.put("mode", (update == null)?"CREATE":"UPDATE");
|
||||||
var.put("name", name);
|
var.put("name", name);
|
||||||
if (SubAPI.getInstance().getSubDataNetwork()[0] != null) var.put("host", SubAPI.getInstance().getName());
|
if (SubAPI.getInstance().getSubDataNetwork()[0] != null) var.put("host", SubAPI.getInstance().getName());
|
||||||
|
@ -178,9 +178,11 @@ public class SubLoggerImpl {
|
|||||||
* Stop Logger
|
* Stop Logger
|
||||||
*/
|
*/
|
||||||
public void stop() {
|
public void stop() {
|
||||||
|
try {
|
||||||
if (out != null) out.interrupt();
|
if (out != null) out.interrupt();
|
||||||
if (err != null) err.interrupt();
|
if (err != null) err.interrupt();
|
||||||
destroy();
|
destroy();
|
||||||
|
} catch (NullPointerException e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void destroy() {
|
private void destroy() {
|
||||||
|
@ -109,6 +109,7 @@ public class SubServerImpl {
|
|||||||
allowrestart = true;
|
allowrestart = true;
|
||||||
try {
|
try {
|
||||||
ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.host.getRawString("Git-Bash"), executable)).directory(directory);
|
ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.host.getRawString("Git-Bash"), executable)).directory(directory);
|
||||||
|
pb.environment().put("java", System.getProperty("java.home") + File.separator + "bin" + File.separator + "java");
|
||||||
pb.environment().put("name", getName());
|
pb.environment().put("name", getName());
|
||||||
if (SubAPI.getInstance().getSubDataNetwork()[0] != null) pb.environment().put("host", SubAPI.getInstance().getName());
|
if (SubAPI.getInstance().getSubDataNetwork()[0] != null) pb.environment().put("host", SubAPI.getInstance().getName());
|
||||||
pb.environment().put("address", host.config.get().getMap("Settings").getRawString("Server-Bind"));
|
pb.environment().put("address", host.config.get().getMap("Settings").getRawString("Server-Bind"));
|
||||||
|
Loading…
Reference in New Issue
Block a user