2016-12-24 05:55:17 +01:00
|
|
|
package net.ME1312.SubServers.Bungee;
|
2016-12-05 04:21:04 +01:00
|
|
|
|
2017-01-08 03:30:03 +01:00
|
|
|
import net.ME1312.SubServers.Bungee.Library.Container;
|
|
|
|
import net.ME1312.SubServers.Bungee.Library.Util;
|
|
|
|
|
2016-12-05 04:21:04 +01:00
|
|
|
import java.security.Security;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.Calendar;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
/**
|
2017-01-30 21:22:36 +01:00
|
|
|
* SubServers/BungeeCord Launch Class
|
2016-12-05 04:21:04 +01:00
|
|
|
*/
|
|
|
|
public final class Launch {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Launch SubServers/BungeeCord
|
|
|
|
*
|
2017-01-08 03:30:03 +01:00
|
|
|
* @param args Launch Arguments
|
2016-12-05 04:21:04 +01:00
|
|
|
* @throws Exception
|
|
|
|
*/
|
2016-12-15 22:04:39 +01:00
|
|
|
@SuppressWarnings("deprecation")
|
2016-12-05 04:21:04 +01:00
|
|
|
public static void main(String[] args) throws Exception {
|
2017-01-09 20:37:57 +01:00
|
|
|
System.setProperty("apple.laf.useScreenMenuBar", "true");
|
|
|
|
|
2017-01-08 03:30:03 +01:00
|
|
|
final Container<Boolean> bungee = new Container<Boolean>(false);
|
|
|
|
if (Util.isException(() -> {
|
|
|
|
if (Class.forName("net.md_5.bungee.BungeeCord") != null) bungee.set(true);
|
|
|
|
}) && !bungee.get()) {
|
|
|
|
System.out.println("");
|
|
|
|
System.out.println("*******************************************");
|
|
|
|
System.out.println("*** Error: BungeeCord.jar Doesn't Exist ***");
|
|
|
|
System.out.println("*** ***");
|
|
|
|
System.out.println("*** Please download a build from: ***");
|
|
|
|
System.out.println("*** http://ci.md-5.net/job/BungeeCord ***");
|
|
|
|
System.out.println("*******************************************");
|
|
|
|
System.out.println("");
|
2017-01-08 20:42:40 +01:00
|
|
|
System.exit(1);
|
2017-08-22 15:02:23 +02:00
|
|
|
} else if (System.getProperty("RM.subservers", "true").equalsIgnoreCase("true")) {
|
2017-01-08 03:30:03 +01:00
|
|
|
Security.setProperty("networkaddress.cache.ttl", "30");
|
|
|
|
Security.setProperty("networkaddress.cache.negative.ttl", "10");
|
|
|
|
joptsimple.OptionParser parser = new joptsimple.OptionParser();
|
|
|
|
parser.allowsUnrecognizedOptions();
|
|
|
|
parser.accepts("v");
|
|
|
|
parser.accepts("version");
|
|
|
|
parser.accepts("noconsole");
|
|
|
|
joptsimple.OptionSet options = parser.parse(args);
|
|
|
|
if(options.has("version") || options.has("v")) {
|
|
|
|
System.out.println("");
|
|
|
|
System.out.println(System.getProperty("os.name") + " " + System.getProperty("os.version") + ",");
|
|
|
|
System.out.println("Java " + System.getProperty("java.version") + ",");
|
|
|
|
System.out.println("BungeeCord " + net.md_5.bungee.Bootstrap.class.getPackage().getImplementationVersion() + ",");
|
2018-03-14 04:38:26 +01:00
|
|
|
System.out.println("SubServers.Bungee v" + SubPlugin.version.toExtendedString());
|
2017-01-08 03:30:03 +01:00
|
|
|
System.out.println("");
|
|
|
|
} else {
|
2017-01-08 20:42:40 +01:00
|
|
|
System.out.println("");
|
|
|
|
System.out.println("*******************************************");
|
2017-07-21 22:45:41 +02:00
|
|
|
System.out.println("*** Warning: this build is unofficial ***");
|
2017-01-08 20:42:40 +01:00
|
|
|
System.out.println("*** ***");
|
|
|
|
System.out.println("*** Please report all issues to ME1312, ***");
|
|
|
|
System.out.println("*** NOT the Spigot Team. Thank You! ***");
|
|
|
|
System.out.println("*******************************************");
|
2017-01-08 03:30:03 +01:00
|
|
|
try {
|
|
|
|
if (net.md_5.bungee.BungeeCord.class.getPackage().getSpecificationVersion() != null) {
|
|
|
|
Date date = (new SimpleDateFormat("yyyyMMdd")).parse(net.md_5.bungee.BungeeCord.class.getPackage().getSpecificationVersion());
|
|
|
|
Calendar line = Calendar.getInstance();
|
|
|
|
line.add(3, -4);
|
|
|
|
if (date.before(line.getTime())) {
|
2017-01-30 21:22:36 +01:00
|
|
|
System.out.println("*** Warning: BungeeCord.jar is outdated ***");
|
2017-01-08 03:30:03 +01:00
|
|
|
System.out.println("*** Please download a new build from: ***");
|
|
|
|
System.out.println("*** http://ci.md-5.net/job/BungeeCord ***");
|
|
|
|
System.out.println("*** Errors may arise on older versions! ***");
|
|
|
|
System.out.println("*******************************************");
|
|
|
|
}
|
|
|
|
} else throw new Exception();
|
|
|
|
} catch (Exception e) {
|
2017-07-21 22:45:41 +02:00
|
|
|
System.out.println("*** Problem checking BungeeCord version ***");
|
2017-01-30 21:22:36 +01:00
|
|
|
System.out.println("*** BungeeCord.jar could be outdated. ***");
|
2017-01-08 03:30:03 +01:00
|
|
|
System.out.println("*** ***");
|
|
|
|
System.out.println("*** Errors may arise on older versions! ***");
|
|
|
|
System.out.println("*******************************************");
|
|
|
|
}
|
2016-12-05 04:21:04 +01:00
|
|
|
System.out.println("");
|
|
|
|
|
2017-01-08 03:30:03 +01:00
|
|
|
SubPlugin plugin = new SubPlugin(System.out);
|
|
|
|
net.md_5.bungee.api.ProxyServer.class.getMethod("setInstance", net.md_5.bungee.api.ProxyServer.class).invoke(null, plugin);
|
|
|
|
plugin.getLogger().info("Enabled BungeeCord version " + plugin.getVersion());
|
|
|
|
plugin.start();
|
2016-12-05 04:21:04 +01:00
|
|
|
|
2017-01-08 03:30:03 +01:00
|
|
|
if (!options.has("noconsole")) {
|
|
|
|
String line;
|
|
|
|
while (plugin.isRunning && (line = plugin.getConsoleReader().readLine(">")) != null) {
|
2017-08-15 11:58:48 +02:00
|
|
|
if (plugin.sudo == null) {
|
|
|
|
if (!plugin.getPluginManager().dispatchCommand(net.md_5.bungee.command.ConsoleCommandSender.class.cast(net.md_5.bungee.command.ConsoleCommandSender.class.getMethod("getInstance").invoke(null)), line)) {
|
|
|
|
plugin.getConsole().sendMessage(net.md_5.bungee.api.ChatColor.RED + "Command not found");
|
|
|
|
}
|
2017-08-18 11:58:06 +02:00
|
|
|
} else if (line.equalsIgnoreCase("exit")) {
|
2017-08-15 11:58:48 +02:00
|
|
|
plugin.sudo = null;
|
|
|
|
System.out.println("SubServers > Reverting to the BungeeCord Console");
|
|
|
|
} else {
|
|
|
|
plugin.sudo.command(line);
|
2017-01-08 03:30:03 +01:00
|
|
|
}
|
2016-12-05 04:21:04 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-08-18 11:58:06 +02:00
|
|
|
} else {
|
|
|
|
System.out.println("");
|
|
|
|
System.out.println("*******************************************");
|
|
|
|
System.out.println("*** SubServers code has been disallowed ***");
|
|
|
|
System.out.println("*** to work on this machine. Check with ***");
|
|
|
|
System.out.println("*** your provider for more information. ***");
|
|
|
|
System.out.println("*** Attempting re-launch as BungeeCord. ***");
|
|
|
|
System.out.println("*******************************************");
|
|
|
|
System.out.println("");
|
|
|
|
net.md_5.bungee.BungeeCordLauncher.class.getMethod("main", String[].class).invoke(null, (Object) args);
|
2016-12-05 04:21:04 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|