#31 Add environment variables to SubCreator scripts

This commit is contained in:
ME1312 2019-01-13 19:52:44 -05:00
parent 6218b873ca
commit 9b01aebd87
No known key found for this signature in database
GPG Key ID: FEFFE2F698E88FA8
25 changed files with 135 additions and 177 deletions

View File

@ -54,7 +54,7 @@ public class ExternalSubCreator extends SubCreator {
templates.clear();
if (new UniversalFile(host.plugin.dir, "SubServers:Templates").exists()) for (File file : new UniversalFile(host.plugin.dir, "SubServers:Templates").listFiles()) {
try {
if (file.isDirectory()) {
if (file.isDirectory() && !file.getName().endsWith(".x")) {
YAMLSection config = (new UniversalFile(file, "template.yml").exists())?new YAMLConfig(new UniversalFile(file, "template.yml")).get().getSection("Template", new YAMLSection()):new YAMLSection();
ServerTemplate template = new ServerTemplate(file.getName(), config.getBoolean("Enabled", true), config.getRawString("Icon", "::NULL::"), file, config.getSection("Build", new YAMLSection()), config.getSection("Settings", new YAMLSection()));
templates.put(file.getName().toLowerCase(), template);

View File

@ -62,7 +62,7 @@ public class InternalSubCreator extends SubCreator {
private YAMLSection build(File dir, ServerTemplate template, List<ServerTemplate> history) throws SubCreatorException {
YAMLSection server = new YAMLSection();
Version version = this.version;
List<String> args = new LinkedList<String>();
HashMap<String, String> var = new HashMap<String, String>();
boolean error = false;
if (history.contains(template)) throw new IllegalStateException("Template Import loop detected");
history.add(template);
@ -86,6 +86,11 @@ public class InternalSubCreator extends SubCreator {
try {
System.out.println(name + File.separator + "Creator > Loading Template: " + template.getDisplayName());
Util.copyDirectory(template.getDirectory(), dir);
var.put("name", name);
var.put("template", template.getName());
var.put("type", template.getType().toString().toUpperCase());
var.put("version", version.toString());
var.put("port", Integer.toString(port));
switch (template.getType()) {
case SPONGE:
case FORGE:
@ -108,12 +113,10 @@ public class InternalSubCreator extends SubCreator {
Version mcfversion = new Version(spprofile.getSection("dependencies").getRawString("minecraft") + '-' + spprofile.getSection("dependencies").getRawString("forge"));
System.out.println(name + File.separator + "Creator > Found \"forge-" + mcfversion.toString() + '"');
args.add(mcfversion.toString());
var.put("mcf_version", mcfversion.toString());
}
args.add(spversion.toString());
var.put("sp_version", spversion.toString());
break;
default:
args.add(version.toString());
}
} catch (Exception e) {
e.printStackTrace();
@ -124,14 +127,11 @@ public class InternalSubCreator extends SubCreator {
if (template.getBuildOptions().getBoolean("Use-Cache", true)) {
cache = new UniversalFile(host.plugin.dir, "SubServers:Cache:Templates:" + template.getName());
cache.mkdirs();
args.add('\"' + cache.toString().replace(File.separatorChar, '/') + '\"');
var.put("cache", cache.toString().replace(File.separatorChar, '/'));
} else {
cache = null;
}
String command = "bash \"" + template.getBuildOptions().getRawString("Shell-Location") + '\"';
for (String arg : args) command += ' ' + arg;
if (!System.getProperty("os.name").toLowerCase().startsWith("windows") && template.getBuildOptions().contains("Permission")) {
try {
Process process = Runtime.getRuntime().exec("chmod " + template.getBuildOptions().getRawString("Permission") + ' ' + template.getBuildOptions().getRawString("Shell-Location"), null, dir);
@ -147,7 +147,9 @@ public class InternalSubCreator extends SubCreator {
try {
System.out.println(name + File.separator + "Creator > Launching " + template.getBuildOptions().getRawString("Shell-Location"));
process = Runtime.getRuntime().exec(Executable.parse(gitBash, command), null, dir);
ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(gitBash, "bash \"" + template.getBuildOptions().getRawString("Shell-Location") + '\"')).directory(dir);
pb.environment().putAll(var);
process = pb.start();
log.file = new File(dir, "SubCreator-" + template.getName() + "-" + version.toString() + ".log");
log.process = process;
log.start();
@ -292,7 +294,7 @@ public class InternalSubCreator extends SubCreator {
if (new UniversalFile(host.plugin.dir, "SubServers:Templates").exists())
for (File file : new UniversalFile(host.plugin.dir, "SubServers:Templates").listFiles()) {
try {
if (file.isDirectory()) {
if (file.isDirectory() && !file.getName().endsWith(".x")) {
YAMLSection config = (new UniversalFile(file, "template.yml").exists()) ? new YAMLConfig(new UniversalFile(file, "template.yml")).get().getSection("Template", new YAMLSection()) : new YAMLSection();
ServerTemplate template = new ServerTemplate(file.getName(), config.getBoolean("Enabled", true), config.getRawString("Icon", "::NULL::"), file, config.getSection("Build", new YAMLSection()), config.getSection("Settings", new YAMLSection()));
templates.put(file.getName().toLowerCase(), template);

View File

@ -177,8 +177,10 @@ public class InternalSubLogger extends SubLogger {
int l = (int) Math.floor((("---------- LOG START \u2014 " + name + " ----------").length() - 9) / 2);
String s = "";
while (s.length() < l) s += '-';
writer.println(s + " LOG END " + s);
writer.close();
if (writer != null) {
writer.println(s + " LOG END " + s);
writer.close();
}
}
}
}

View File

@ -4,7 +4,6 @@ import net.ME1312.SubServers.Bungee.Library.ExtraDataHandler;
import net.ME1312.SubServers.Bungee.Library.NamedContainer;
import net.ME1312.SubServers.Bungee.Network.ClientHandler;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.util.Collection;
import java.util.List;
@ -106,14 +105,6 @@ public interface Server extends ServerInfo, ClientHandler, ExtraDataHandler {
*/
Collection<UUID> getWhitelist();
/**
* See if a player is whitelisted
*
* @param player Player to check
* @return Whitelisted Status
*/
boolean isWhitelisted(ProxiedPlayer player);
/**
* See if a player is whitelisted
*
@ -122,13 +113,6 @@ public interface Server extends ServerInfo, ClientHandler, ExtraDataHandler {
*/
boolean isWhitelisted(UUID player);
/**
* Add a player to the whitelist (for use with restricted servers)
*
* @param player Player to add
*/
void whitelist(ProxiedPlayer player);
/**
* Add a player to the whitelist (for use with restricted servers)
*
@ -136,13 +120,6 @@ public interface Server extends ServerInfo, ClientHandler, ExtraDataHandler {
*/
void whitelist(UUID player);
/**
* Remove a player to the whitelist
*
* @param player Player to remove
*/
void unwhitelist(ProxiedPlayer player);
/**
* Remove a player to the whitelist
*

View File

@ -172,21 +172,11 @@ public class ServerContainer extends BungeeServerInfo implements Server {
return (player instanceof ProxiedPlayer && whitelist.contains(((ProxiedPlayer) player).getUniqueId())) || super.canAccess(player);
}
@Override
public boolean isWhitelisted(ProxiedPlayer player) {
return isWhitelisted(player.getUniqueId());
}
@Override
public boolean isWhitelisted(UUID player) {
return whitelist.contains(player);
}
@Override
public void whitelist(ProxiedPlayer player) {
whitelist(player.getUniqueId());
}
@Override
public void whitelist(UUID player) {
if (Util.isNull(player)) throw new NullPointerException();
@ -194,11 +184,6 @@ public class ServerContainer extends BungeeServerInfo implements Server {
for (Proxy proxy : SubAPI.getInstance().getProxies().values()) if (proxy.getSubData() != null) proxy.getSubData().sendPacket(new PacketOutExUpdateWhitelist(getName(), true, player));
}
@Override
public void unwhitelist(ProxiedPlayer player) {
unwhitelist(player.getUniqueId());
}
@Override
public void unwhitelist(UUID player) {
if (Util.isNull(player)) throw new NullPointerException();

View File

@ -4,6 +4,7 @@ import com.google.common.io.Resources;
import net.ME1312.SubServers.Bungee.Library.UniversalFile;
import net.ME1312.SubServers.Bungee.SubAPI;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.net.URL;
import java.net.URLClassLoader;
@ -51,16 +52,17 @@ public class JNA {
e.printStackTrace();
}
}
if (jna.exists()) {
if (jna.exists() && platform.exists()) {
if (announced) System.out.println(">> Loading JNA Library");
try {
JNA = new URLClassLoader(new URL[]{jna.toURI().toURL(), platform.toURI().toURL()});
} catch (Throwable e) {
System.out.println(">> Could not load JNA Library:");
e.printStackTrace();
throw new IllegalArgumentException("Could not load JNA Library");
}
} else {
throw new IllegalArgumentException("Could not find JNA Library");
System.out.println(">> Could not load JNA Library:");
new FileNotFoundException().printStackTrace();
}
}
return JNA;

View File

@ -919,12 +919,15 @@ public final class SubCommand extends CommandX {
public NamedContainer<String, List<String>> suggestArguments(CommandSender sender, String[] args) {
if (args.length <= 1) {
String last = (args.length > 0)?args[args.length - 1].toLowerCase():"";
List<String> list = new ArrayList<String>();
if (last.length() == 0) {
return new NamedContainer<>(null, new LinkedList<>(plugin.getServers().keySet()));
for (Server server : plugin.api.getServers().values()) {
if (!server.isHidden()) list.add(server.getName());
}
return new NamedContainer<>(null, new LinkedList<>(list));
} else {
List<String> list = new ArrayList<String>();
for (String server : plugin.getServers().keySet()) {
if (server.toLowerCase().startsWith(last)) list.add(server);
for (Server server : plugin.api.getServers().values()) {
if (server.getName().toLowerCase().startsWith(last) && !server.isHidden()) list.add(server.getName());
}
return new NamedContainer<>((list.size() <= 0)?plugin.api.getLang("SubServers", "Bungee.Server.Invalid").replace("$str$", args[0]):null, list);
}

View File

@ -121,23 +121,23 @@ public final class SubPlugin extends BungeeCord implements Listener {
Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new UniversalFile(dir, "Templates"));
System.out.println("SubServers > Created ~/SubServers/Templates/Sponge");
} else {
if (new UniversalFile(dir, "Templates:Vanilla:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Vanilla:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13a/rv3+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Vanilla").toPath(), new UniversalFile(dir, "Templates:Vanilla.old" + Math.round(Math.random() * 100000)).toPath());
if (new UniversalFile(dir, "Templates:Vanilla:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Vanilla:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13.2c+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Vanilla").toPath(), new UniversalFile(dir, "Templates:Vanilla.old" + Math.round(Math.random() * 100000) + ".x").toPath());
Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new UniversalFile(dir, "Templates"));
System.out.println("SubServers > Updated ~/SubServers/Templates/Vanilla");
}
if (new UniversalFile(dir, "Templates:Spigot:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Spigot:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13a/rv2+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Spigot").toPath(), new UniversalFile(dir, "Templates:Spigot.old" + Math.round(Math.random() * 100000)).toPath());
if (new UniversalFile(dir, "Templates:Spigot:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Spigot:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13.2c+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Spigot").toPath(), new UniversalFile(dir, "Templates:Spigot.old" + Math.round(Math.random() * 100000) + ".x").toPath());
Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new UniversalFile(dir, "Templates"));
System.out.println("SubServers > Updated ~/SubServers/Templates/Spigot");
}
if (new UniversalFile(dir, "Templates:Forge:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Forge:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13a/rv3+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Forge").toPath(), new UniversalFile(dir, "Templates:Forge.old" + Math.round(Math.random() * 100000)).toPath());
if (new UniversalFile(dir, "Templates:Forge:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Forge:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13.2c+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Forge").toPath(), new UniversalFile(dir, "Templates:Forge.old" + Math.round(Math.random() * 100000) + ".x").toPath());
Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/forge.zip"), new UniversalFile(dir, "Templates"));
System.out.println("SubServers > Updated ~/SubServers/Templates/Forge");
}
if (new UniversalFile(dir, "Templates:Sponge:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Sponge:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13a/rv3+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Sponge").toPath(), new UniversalFile(dir, "Templates:Sponge.old" + Math.round(Math.random() * 100000)).toPath());
if (new UniversalFile(dir, "Templates:Sponge:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Sponge:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13.2c+"))) != 0) {
Files.move(new UniversalFile(dir, "Templates:Sponge").toPath(), new UniversalFile(dir, "Templates:Sponge.old" + Math.round(Math.random() * 100000) + ".x").toPath());
Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new UniversalFile(dir, "Templates"));
System.out.println("SubServers > Updated ~/SubServers/Templates/Sponge");
}

View File

@ -4,7 +4,6 @@ import net.ME1312.SubServers.Client.Bukkit.Library.Config.YAMLSection;
import net.ME1312.SubServers.Client.Bukkit.Library.NamedContainer;
import net.ME1312.SubServers.Client.Bukkit.Network.Packet.PacketDownloadServerInfo;
import net.ME1312.SubServers.Client.Bukkit.SubAPI;
import org.bukkit.OfflinePlayer;
import java.net.InetSocketAddress;
import java.util.*;
@ -133,16 +132,6 @@ public class Server {
return raw.getUUIDList("whitelist");
}
/**
* See if a player is whitelisted
*
* @param player Player to check
* @return Whitelisted Status
*/
public boolean isWhitelisted(OfflinePlayer player) {
return isWhitelisted(player.getUniqueId());
}
/**
* See if a player is whitelisted
*

View File

@ -4,7 +4,6 @@ import net.ME1312.SubServers.Client.Sponge.Library.Config.YAMLSection;
import net.ME1312.SubServers.Client.Sponge.Library.NamedContainer;
import net.ME1312.SubServers.Client.Sponge.Network.Packet.PacketDownloadServerInfo;
import net.ME1312.SubServers.Client.Sponge.SubAPI;
import org.spongepowered.api.entity.living.player.User;
import java.net.InetSocketAddress;
import java.util.*;
@ -133,16 +132,6 @@ public class Server {
return raw.getUUIDList("whitelist");
}
/**
* See if a player is whitelisted
*
* @param player Player to check
* @return Whitelisted Status
*/
public boolean isWhitelisted(User player) {
return isWhitelisted(player.getUniqueId());
}
/**
* See if a player is whitelisted
*

View File

@ -49,6 +49,7 @@ public final class ConsoleWindow implements SubLogFilter {
private int fontSize = 12;
private File file = null;
private FileOutputStream filewriter = null;
private List<Runnable> spost = new LinkedList<Runnable>();
private ByteArrayOutputStream scache = new ByteArrayOutputStream();
private AnsiUIOutputStream stream = AnsiUIOutputStream.wrap(new OutputStream() {
@ -63,16 +64,6 @@ public final class ConsoleWindow implements SubLogFilter {
scache.write(b);
if (b == '\n') {
try {
int lines;
String content;
while (log.getSelectionStart() == log.getSelectionEnd() && (lines = countLines(content = log.getDocument().getText(0, log.getDocument().getLength()))) > MAX_SCROLLBACK) {
int lineBreak = 1;
for (lines -= MAX_SCROLLBACK; lines > 0; lines--) lineBreak = content.indexOf('\n', lineBreak + 1);
if (lineBreak >= 2 && log.getSelectionStart() == log.getSelectionEnd()) {
log.getDocument().remove(2, lineBreak);
} else break;
}
} catch (Exception e) {} try {
HTMLEditorKit kit = (HTMLEditorKit) log.getEditorKit();
HTMLDocument doc = (HTMLDocument) log.getDocument();
kit.insertHTML(doc, doc.getLength() - 2, new String(scache.toByteArray(), "UTF-8"), 0, 0, null);
@ -82,7 +73,21 @@ public final class ConsoleWindow implements SubLogFilter {
hScroll();
}
});
} catch (Exception e) {} try {
int lines;
String content;
if (log.getSelectionStart() == log.getSelectionEnd() && (lines = countLines(content = log.getDocument().getText(0, log.getDocument().getLength()))) > MAX_SCROLLBACK + 2) {
int lineBreak = 1;
for (lines -= MAX_SCROLLBACK; lines > 0; lines--) lineBreak = content.indexOf('\n', lineBreak + 1);
if (lineBreak <= log.getDocument().getLength() - 2 && log.getSelectionStart() == log.getSelectionEnd()) {
log.getDocument().remove(0, lineBreak);
}
}
} catch (Exception e) {}
for (Runnable post : spost) try {
post.run();
} catch (Throwable e) {}
spost.clear();
scache = new ByteArrayOutputStream();
}
}
@ -833,22 +838,32 @@ public final class ConsoleWindow implements SubLogFilter {
@Override
protected void processEraseScreen(int mode) throws IOException {
if (ansi) log.setText(RESET_VALUE);
if (ansi) spost.add(new Runnable() {
@Override
public void run() {
log.setText(RESET_VALUE);
}
});
}
@Override
protected void processDeleteLine(int amount) throws IOException {
if (ansi) try {
String content = log.getDocument().getText(0, log.getDocument().getLength());
while (amount > 0) {
int lastLineBreak = content.lastIndexOf('\n');
int length = log.getDocument().getLength() - lastLineBreak - 2;
if (lastLineBreak >= 0 && length > 0) {
log.getDocument().remove(lastLineBreak, length);
}
amount--;
protected void processDeleteLine(final int amount) throws IOException {
if (ansi) spost.add(new Runnable() {
@Override
public void run() {
try {
String content = log.getDocument().getText(0, log.getDocument().getLength());
int lineBreak = log.getDocument().getLength() - 2;
for (int lines = 0; lines < amount; lines++) lineBreak = content.lastIndexOf('\n', lineBreak - 1);
if (lineBreak < 2) lineBreak = 2;
int length = log.getDocument().getLength() - lineBreak - 2;
if (length > 0) {
while (log.getSelectionStart() != log.getSelectionEnd()) Thread.sleep(100);
log.getDocument().remove(lineBreak, length);
}
} catch (Exception e) {}
}
} catch (Exception e) {}
});
}
@Override

View File

@ -1,8 +1,7 @@
# SubCreator Sponge Forge Build Script
# Usage: "bash build.sh <forge version> <sponge version>"
#
#!/usr/bin/env bash
if [ -z "$1" ] || [ -z "$2" ]
if [ -z "$mcf_version" ] || [ -z "$sp_version" ]
then
echo ERROR: No Build Version Supplied
rm -Rf "$0"
@ -16,20 +15,20 @@ function __DL() {
fi
}
echo Downloading the Minecraft Forge Installer...
__DL "forge-$1-installer.jar" "http://files.minecraftforge.net/maven/net/minecraftforge/forge/$1/forge-$1-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
echo Installing Minecraft Forge...
java -jar "forge-$1-installer.jar" --installServer; __RETURN=$?
java -jar "forge-$mcf_version-installer.jar" --installServer; __RETURN=$?
if [ $__RETURN -eq 0 ]; then
echo Cleaning Up...
rm -Rf "forge-$1-installer.jar"
rm -Rf "forge-$1-installer.jar.log"
mv -f "forge-$1-universal.jar" Forge.jar
rm -Rf "forge-$mcf_version-installer.jar"
rm -Rf "forge-$mcf_version-installer.jar.log"
mv -f "forge-$mcf_version-universal.jar" Forge.jar
if [ ! -d "mods" ]; then
mkdir mods
fi
echo Downloading SpongeForge...
__DL mods/Sponge.jar "https://repo.spongepowered.org/maven/org/spongepowered/spongeforge/$2/spongeforge-$2.jar"; __RETURN=$?
__DL mods/Sponge.jar "https://repo.spongepowered.org/maven/org/spongepowered/spongeforge/$sp_version/spongeforge-$sp_version.jar"; __RETURN=$?
if [ $__RETURN -eq 0 ]; then
echo Cleaning Up...
rm -Rf "$0"
@ -41,8 +40,8 @@ if [ $__RETURN -eq 0 ]; then
fi
else
echo ERROR: The Installer exited with an error. Please try again
rm -Rf "forge-$1-installer.jar"
rm -Rf "forge-$1-installer.jar.log"
rm -Rf "forge-$mcf_version-installer.jar"
rm -Rf "forge-$mcf_version-installer.jar.log"
rm -Rf "$0"
exit 4
fi

View File

@ -1,4 +1,4 @@
Version: '2.13a/rv3+'
Version: '2.13.2c+'
Template:
Enabled: true
Icon: 'anvil'

View File

@ -1,8 +1,7 @@
# SubCreator Spigot Build Script
# Usage: "bash build.sh <version> [cache]"
#
#!/usr/bin/env bash
if [ -z "$1" ]
if [ -z "$version" ]
then
echo ERROR: No Build Version Supplied
rm -Rf "$0"
@ -15,7 +14,7 @@ function __DL() {
curl -o "$1" "$2"; return $?
fi
}
if [ -z "$2" ] || [ ! -f "$2/Spigot-$1.jar" ]; then
if [ -z "$cache" ] || [ ! -f "$cache/Spigot-$version.jar" ]; then
echo Downloading Buildtools...
__DL Buildtools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar; __RETURN=$?
if [ $__RETURN -eq 0 ]; then
@ -25,20 +24,20 @@ if [ -z "$2" ] || [ ! -f "$2/Spigot-$1.jar" ]; then
mkdir Buildtools
cd "Buildtools"
echo Launching Buildtools
if [ ! -z "$2" ] && [ -d "$2" ]; then
if [ ! -z "$cache" ] && [ -d "$cache" ]; then
export __HOME="$HOME"
export HOME="$2"
export HOME="$cache"
fi
export MAVEN_OPTS="-Xms2G"
java -Xms2G -jar ../Buildtools.jar --rev "$1"; __RETURN=$?
if [ ! -z "$2" ] && [ ! -z "$__HOME" ] && [ "$2" == "$HOME" ]; then
java -Xms2G -jar ../Buildtools.jar --rev "$version"; __RETURN=$?
if [ ! -z "$cache" ] && [ ! -z "$__HOME" ] && [ "$cache" == "$HOME" ]; then
export HOME="$__HOME"
fi
cd ../
if [ $__RETURN -eq 0 ]; then
echo Copying Finished Jar...
if [ ! -z "$2" ] && [ -d "$2" ]; then
cp Buildtools/spigot-*.jar "$2/Spigot-$1.jar"
if [ ! -z "$cache" ] && [ -d "$cache" ]; then
cp Buildtools/spigot-*.jar "$cache/Spigot-$version.jar"
fi
cp Buildtools/spigot-*.jar Spigot.jar
echo Cleaning Up...
@ -60,7 +59,7 @@ if [ -z "$2" ] || [ ! -f "$2/Spigot-$1.jar" ]; then
fi
else
echo Copying Cached Jar...
cp "$2/Spigot-$1.jar" Spigot.jar
cp "$cache/Spigot-$version.jar" Spigot.jar
echo Cleaning Up...
rm -Rf "$0"
exit 0

View File

@ -1,4 +1,4 @@
Version: '2.13a/rv2+'
Version: '2.13.2c+'
Template:
Enabled: true
Icon: 'lava_bucket'

View File

@ -1,8 +1,7 @@
# SubCreator Sponge Build Script
# Usage: "bash build.sh <sponge version>"
#
#!/usr/bin/env bash
if [ -z "$1" ]
if [ -z "$sp_version" ]
then
echo ERROR: No Build Version Supplied
rm -Rf "$0"
@ -16,7 +15,7 @@ function __DL() {
fi
}
echo Downloading SpongeVanilla...
__DL Sponge.jar "https://repo.spongepowered.org/maven/org/spongepowered/spongevanilla/$1/spongevanilla-$1.jar"; __RETURN=$?
__DL Sponge.jar "https://repo.spongepowered.org/maven/org/spongepowered/spongevanilla/$sp_version/spongevanilla-$sp_version.jar"; __RETURN=$?
if [ $__RETURN -eq 0 ]; then
echo Cleaning Up...
rm -Rf "$0"

View File

@ -1,4 +1,4 @@
Version: '2.13a/rv3+'
Version: '2.13.2c+'
Template:
Enabled: true
Icon: 'sponge'

View File

@ -1,8 +1,7 @@
# SubCreator Vanilla Build Script
# Usage: "bash build.sh <version> [cache]"
#
#!/usr/bin/env bash
if [ -z "$1" ]
if [ -z "$version" ]
then
echo ERROR: No Build Version Supplied
rm -Rf "$0"
@ -15,7 +14,7 @@ function __DL() {
curl -o "$1" "$2"; return $?
fi
}
if [ -z "$2" ] || [ ! -f "$2/Vanilla-$1.jar" ]; then
if [ -z "$cache" ] || [ ! -f "$cache/Vanilla-$version.jar" ]; then
if [ -d "VanillaCord" ]; then
rm -Rf VanillaCord
fi
@ -25,14 +24,14 @@ if [ -z "$2" ] || [ ! -f "$2/Vanilla-$1.jar" ]; then
if [ $__RETURN -eq 0 ]; then
cd VanillaCord
echo Launching VanillaCord
java -jar VanillaCord.jar "$1"; __RETURN=$?;
java -jar VanillaCord.jar "$version"; __RETURN=$?;
if [ $__RETURN -eq 0 ]; then
echo Copying Finished Jar...
cd ../
if [ ! -z "$2" ] && [ -d "$2" ]; then
cp "VanillaCord/out/$1-bungee.jar" "$2/Vanilla-$1.jar"
if [ ! -z "$cache" ] && [ -d "$cache" ]; then
cp "VanillaCord/out/$version-bungee.jar" "$cache/Vanilla-$version.jar"
fi
cp "VanillaCord/out/$1-bungee.jar" Vanilla.jar
cp "VanillaCord/out/$version-bungee.jar" Vanilla.jar
echo Cleaning Up...
rm -Rf VanillaCord
rm -Rf "$0"
@ -51,7 +50,7 @@ if [ -z "$2" ] || [ ! -f "$2/Vanilla-$1.jar" ]; then
fi
else
echo Copying Cached Jar...
cp "$2/Vanilla-$1.jar" Vanilla.jar
cp "$cache/Vanilla-$version.jar" Vanilla.jar
echo Cleaning Up...
rm -Rf "$0"
exit 0

View File

@ -1,4 +1,4 @@
Version: '2.13a/rv3+'
Version: '2.13.2c+'
Template:
Enabled: true
Icon: 'bukkit:grass'

View File

@ -20,7 +20,7 @@
<dependency>
<groupId>net.ME1312.Galaxi</groupId>
<artifactId>GalaxiEngine</artifactId>
<version>19w02e</version>
<version>19w02f</version>
<scope>compile</scope>
</dependency>
<dependency>

View File

@ -204,7 +204,7 @@ public class SubCreator {
private YAMLSection build(File dir, ServerTemplate template, List<ServerTemplate> history) throws SubCreatorException {
YAMLSection server = new YAMLSection();
Version version = this.version;
List<String> args = new LinkedList<String>();
HashMap<String, String> var = new HashMap<String, String>();
boolean error = false;
if (history.contains(template)) throw new IllegalStateException("Template Import loop detected");
history.add(template);
@ -231,6 +231,11 @@ public class SubCreator {
log.logger.info.println("Loading Template: " + template.getDisplayName());
host.subdata.sendPacket(new PacketOutExLogMessage(address, "Loading Template: " + template.getDisplayName()));
Util.copyDirectory(template.getDirectory(), dir);
var.put("name", name);
var.put("template", template.getName());
var.put("type", template.getType().toString().toUpperCase());
var.put("version", version.toString());
var.put("port", Integer.toString(port));
switch (template.getType()) {
case SPONGE:
case FORGE:
@ -256,12 +261,10 @@ public class SubCreator {
log.logger.info.println("Found \"forge-" + mcfversion.toString() + '"');
host.subdata.sendPacket(new PacketOutExLogMessage(address, "Found \"forge-" + mcfversion.toString() + '"'));
args.add(mcfversion.toString());
var.put("mcf_version", mcfversion.toString());
}
args.add(spversion.toString());
var.put("sp_version", spversion.toString());
break;
default:
args.add(version.toString());
}
} catch (Exception e) {
log.logger.error.println(e);
@ -272,14 +275,11 @@ public class SubCreator {
if (template.getBuildOptions().getBoolean("Use-Cache", true)) {
cache = new UniversalFile(GalaxiEngine.getInstance().getRuntimeDirectory(), "Cache:Templates:" + template.getName());
cache.mkdirs();
args.add("\"" + cache.toString().replace(File.separatorChar, '/') + '\"');
var.put("cache", cache.toString().replace(File.separatorChar, '/'));
} else {
cache = null;
}
String command = "bash \"" + template.getBuildOptions().getRawString("Shell-Location") + '\"';
for (String arg : args) command += ' ' + arg;
if (!System.getProperty("os.name").toLowerCase().startsWith("windows") && template.getBuildOptions().contains("Permission")) {
try {
Process process = Runtime.getRuntime().exec("chmod " + template.getBuildOptions().getRawString("Permission") + ' ' + template.getBuildOptions().getRawString("Shell-Location"), null, dir);
@ -298,7 +298,9 @@ public class SubCreator {
try {
log.logger.info.println("Launching " + template.getBuildOptions().getRawString("Shell-Location"));
host.subdata.sendPacket(new PacketOutExLogMessage(address, "Launching " + template.getBuildOptions().getRawString("Shell-Location")));
process = Runtime.getRuntime().exec(Executable.parse(host.host.getRawString("Git-Bash"), command), null, dir);
ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.host.getRawString("Git-Bash"), "bash \"" + template.getBuildOptions().getRawString("Shell-Location") + '\"')).directory(dir);
pb.environment().putAll(var);
process = pb.start();
log.file = new File(dir, "SubCreator-" + template.getName() + "-" + version.toString().replace(" ", "@") + ".log");
log.process = process;
log.start();

View File

@ -152,8 +152,10 @@ public class SubLogger {
int l = (int) Math.floor((("---------- LOG START \u2014 " + name + " ----------").length() - 9) / 2);
String s = "";
while (s.length() < l) s += '-';
writer.println(s + " LOG END " + s);
writer.close();
if (writer != null) {
writer.println(s + " LOG END " + s);
writer.close();
}
}
}
}

View File

@ -4,6 +4,7 @@ import net.ME1312.Galaxi.Galaxi;
import net.ME1312.Galaxi.Library.Log.Logger;
import net.ME1312.Galaxi.Library.UniversalFile;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
@ -54,16 +55,17 @@ public class JNA {
log.error.println(e);
}
}
if (jna.exists()) {
if (jna.exists() && platform.exists()) {
if (announced) log.info.println("Loading JNA Library");
try {
JNA = new URLClassLoader(new URL[]{jna.toURI().toURL(), platform.toURI().toURL()});
} catch (Throwable e) {
log.error.println("Could not load JNA Library:");
log.error.println(e);
throw new IllegalArgumentException("Could not load JNA Library");
}
} else {
throw new IllegalArgumentException("Could not find JNA Library");
log.error.println("Could not load JNA Library:");
log.error.println(new FileNotFoundException());
}
}
return JNA;

View File

@ -4,7 +4,6 @@ import net.ME1312.SubServers.Sync.Library.Config.YAMLSection;
import net.ME1312.SubServers.Sync.Library.NamedContainer;
import net.ME1312.SubServers.Sync.Network.Packet.PacketDownloadServerInfo;
import net.ME1312.SubServers.Sync.SubAPI;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.net.InetSocketAddress;
import java.util.*;
@ -133,16 +132,6 @@ public class Server {
return raw.getUUIDList("whitelist");
}
/**
* See if a player is whitelisted
*
* @param player Player to check
* @return Whitelisted Status
*/
public boolean isWhitelisted(ProxiedPlayer player) {
return isWhitelisted(player.getUniqueId());
}
/**
* See if a player is whitelisted
*

View File

@ -918,12 +918,15 @@ public final class SubCommand extends CommandX {
public NamedContainer<String, List<String>> suggestArguments(CommandSender sender, String[] args) {
if (args.length <= 1) {
String last = (args.length > 0)?args[args.length - 1].toLowerCase():"";
List<String> list = new ArrayList<String>();
if (last.length() == 0) {
return new NamedContainer<>(null, new LinkedList<>(plugin.getServers().keySet()));
for (ServerContainer server : plugin.servers.values()) {
if (!server.isHidden()) list.add(server.getName());
}
return new NamedContainer<>(null, new LinkedList<>(list));
} else {
List<String> list = new ArrayList<String>();
for (String server : plugin.getServers().keySet()) {
if (server.toLowerCase().startsWith(last)) list.add(server);
for (ServerContainer server : plugin.servers.values()) {
if (server.getName().toLowerCase().startsWith(last) && !server.isHidden()) list.add(server.getName());
}
return new NamedContainer<>((list.size() <= 0)?plugin.api.getLang("SubServers", "Bungee.Server.Invalid").replace("$str$", args[0]):null, list);
}