diff --git a/Artifacts/SubServers.Bungee.Patcher.sh b/Artifacts/SubServers.Bungee.Patcher.sh index 0b1a4a28..1ba8d666 100644 --- a/Artifacts/SubServers.Bungee.Patcher.sh +++ b/Artifacts/SubServers.Bungee.Patcher.sh @@ -39,6 +39,9 @@ if [ $retvala -eq 0 ] if [ -f "LICENSE" ]; then rm -Rf LICENSE fi + if [ -f "META-INF/MANIFEST.MF" ]; then + cat META-INF/MANIFEST.MF | sed -e "/^\s*$/d" -e "/^Main-Class:.*$/d" -e "/^Implementation-Title:.*$/d" -e "/^Build-Jdk:.*$/d" -e "/^Created-By:.*$/d" -e "/^Built-By:.*$/d" > ../MANIFEST.MF + fi if [ -f "MODIFICATIONS" ]; then mv -f MODIFICATIONS ../MODIFICATIONS fi @@ -49,28 +52,33 @@ if [ $retvala -eq 0 ] if [ $retvalb -eq 0 ] then echo ">> Writing Changes..." - yes | cp -rf . ../Modded.jar - printf "\n " >> META-INF/MANIFEST.MF - if [ -f "MODIFICATIONS" ]; then - if [ -f "../MODIFICATIONS" ]; then - cat MODIFICATIONS >> ../MODIFICATIONS - else - mv -f MODIFICATIONS ../MODIFICATIONS + if [ -f "META-INF/MANIFEST.MF" ] + then + cat META-INF/MANIFEST.MF | sed -e "/^\s*$/d" -e "/^Manifest-Version:.*$/d" -e "/^Class-Path:.*$/d" >> ../MANIFEST.MF + else + if [ ! -d "META-INF" ]; then + mkdir META-INF fi fi + if [ -f "MODIFICATIONS" ]; then + cat MODIFICATIONS >> ../MODIFICATIONS + fi + yes | cp -rf . ../Modded.jar cd ../ + printf "Built-By: SubServers.Bungee.Patcher\n" >> MANIFEST.MF + cp -f MANIFEST.MF Modded.jar/META-INF if [ ! -f "MODIFICATIONS" ]; then printf "# SubServers.Bungee.Patcher generated difference list (may be empty if git is not installed)\n#\n" > MODIFICATIONS fi printf "@ `date`\n> git --no-pager diff --no-index --name-status BuildTools/Vanilla.jar BuildTools/Modded.jar\n" >> MODIFICATIONS git --no-pager diff --no-index --name-status Vanilla.jar Modded.jar | sed -e "s/\tVanilla.jar\//\t\//" -e "s/\tModded.jar\//\t\//" >> MODIFICATIONS - mv -f MODIFICATIONS Modded.jar + cp -f MODIFICATIONS Modded.jar cd Modded.jar echo ">> Recompiling..." if [ -f "../../SubServers.Patched.jar" ]; then rm -Rf ../../SubServers.Patched.jar fi - jar cvfm ../../SubServers.Patched.jar META-INF/MANIFEST.MF .; retvalc=$?; + jar cvfm ../../SubServers.Patched.jar ../MANIFEST.MF .; retvalc=$?; if [ $retvalc -eq 0 ] then echo ">> Cleaning Up..." diff --git a/Artifacts/SubServers.Bungee.jar b/Artifacts/SubServers.Bungee.jar index f6d281de..9ff87800 100644 Binary files a/Artifacts/SubServers.Bungee.jar and b/Artifacts/SubServers.Bungee.jar differ diff --git a/Artifacts/SubServers.Client.Bukkit.jar b/Artifacts/SubServers.Client.Bukkit.jar index 57ec462e..c70eb0e7 100644 Binary files a/Artifacts/SubServers.Client.Bukkit.jar and b/Artifacts/SubServers.Client.Bukkit.jar differ diff --git a/Artifacts/SubServers.Host.jar b/Artifacts/SubServers.Host.jar index 417f6936..62f6b6dc 100644 Binary files a/Artifacts/SubServers.Host.jar and b/Artifacts/SubServers.Host.jar differ diff --git a/Artifacts/SubServers.Sync.jar b/Artifacts/SubServers.Sync.jar index 3c33f21b..8f1e559f 100644 Binary files a/Artifacts/SubServers.Sync.jar and b/Artifacts/SubServers.Sync.jar differ diff --git a/Javadoc/SubServers.Bungee.jar b/Javadoc/SubServers.Bungee.jar index 0a956de5..30061123 100644 Binary files a/Javadoc/SubServers.Bungee.jar and b/Javadoc/SubServers.Bungee.jar differ diff --git a/Javadoc/SubServers.Bungee/index-all.html b/Javadoc/SubServers.Bungee/index-all.html index f902bdea..6725ff22 100644 --- a/Javadoc/SubServers.Bungee/index-all.html +++ b/Javadoc/SubServers.Bungee/index-all.html @@ -860,6 +860,10 @@
hosts
boolean
isPatched
YAMLConfig
langconfig
java.io.PrintStream
out
java.util.HashMap<java.lang.String,Proxy>
proxies
boolean
redis
long
resetDate
SubDataServer
subdata
SubServer
sudo
static Version
version
java.lang.String
getBungeeName()
+java.lang.String
getName()
java.util.Map<java.lang.String,net.md_5.bungee.api.config.ServerInfo>
getServers()
java.lang.String
getVersion()
-java.lang.Object
redis(java.lang.String method,
@@ -278,7 +282,7 @@ implements net.md_5.bungee.api.plugin.Listener
Methods inherited from class net.md_5.bungee.BungeeCord
-addConnection, broadcast, broadcast, broadcast, broadcast, constructServerInfo, createTitle, getChannels, getConfig, getConfigurationAdapter, getConnectionThrottle, getConsole, getConsoleReader, getDisabledCommands, getGameVersion, getInstance, getLogger, getOnlineCount, getPlayer, getPlayer, getPlayerByOfflineUUID, getPlayers, getPluginManager, getPluginsFolder, getProtocolVersion, getReconnectHandler, getScheduler, getServerInfo, getTranslation, matchPlayer, registerChannel, registerChannels, removeConnection, setConfigurationAdapter, setReconnectHandler, start, stop, stop, unregisterChannel
+addConnection, broadcast, broadcast, broadcast, broadcast, constructServerInfo, createTitle, getChannels, getConfig, getConfigurationAdapter, getConnectionThrottle, getConsole, getConsoleReader, getDisabledCommands, getGameVersion, getInstance, getLogger, getOnlineCount, getPlayer, getPlayer, getPlayerByOfflineUUID, getPlayers, getPluginManager, getPluginsFolder, getProtocolVersion, getReconnectHandler, getScheduler, getServerInfo, getTranslation, getVersion, matchPlayer, registerChannel, registerChannels, removeConnection, setConfigurationAdapter, setReconnectHandler, start, stop, stop, unregisterChannel
+
+
+
+
+-
+
isPatched
+public final boolean isPatched
+
+
@@ -528,19 +541,17 @@ implements net.md_5.bungee.api.plugin.Listener
-
+
-
-
getVersion
-public java.lang.String getVersion()
-Further override BungeeCord's signature when patched into the same jar
+getBungeeName
+public java.lang.String getBungeeName()
+Get the name from BungeeCord's original signature (for determining which fork is being used)
-- Overrides:
-getVersion
in class net.md_5.bungee.BungeeCord
- Returns:
-- Software Version
+- BungeeCord Software Name
diff --git a/Javadoc/SubServers.Client.Bukkit.jar b/Javadoc/SubServers.Client.Bukkit.jar
index 6b46a953..f01c5f85 100644
Binary files a/Javadoc/SubServers.Client.Bukkit.jar and b/Javadoc/SubServers.Client.Bukkit.jar differ
diff --git a/Javadoc/SubServers.Host.jar b/Javadoc/SubServers.Host.jar
index 99392c92..a6e15949 100644
Binary files a/Javadoc/SubServers.Host.jar and b/Javadoc/SubServers.Host.jar differ
diff --git a/Javadoc/SubServers.Sync.jar b/Javadoc/SubServers.Sync.jar
index 860f6b30..3a086247 100644
Binary files a/Javadoc/SubServers.Sync.jar and b/Javadoc/SubServers.Sync.jar differ
diff --git a/Javadoc/SubServers.Sync/index-all.html b/Javadoc/SubServers.Sync/index-all.html
index 577a99f7..b07c27a3 100644
--- a/Javadoc/SubServers.Sync/index-all.html
+++ b/Javadoc/SubServers.Sync/index-all.html
@@ -511,6 +511,10 @@
Get a Boolean List by Handle
+getBungeeName() - Method in class net.ME1312.SubServers.Sync.SubPlugin
+
+Get the name from BungeeCord's original signature (for determining which fork is being used)
+
getCaseInsensitively(Map<String, V>, String) - Static method in class net.ME1312.SubServers.Sync.Library.Util
Get an item from a map ignoring case
@@ -985,10 +989,6 @@
Get Packet Version
- getVersion() - Method in class net.ME1312.SubServers.Sync.SubPlugin
-
-Further override BungeeCord's signature when patched into the same jar
-
getWrapperVersion() - Method in class net.ME1312.SubServers.Sync.SubAPI
Gets the SubServers.Sync Version
@@ -1075,6 +1075,8 @@
Check if object is a Number
+ isPatched - Variable in class net.ME1312.SubServers.Sync.SubPlugin
+
isPermanent() - Method in class net.ME1312.SubServers.Sync.Event.SubEditServerEvent
Gets if the edit is permanent
diff --git a/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/SubPlugin.html b/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/SubPlugin.html
index a7708630..58adfac2 100644
--- a/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/SubPlugin.html
+++ b/Javadoc/SubServers.Sync/net/ME1312/SubServers/Sync/SubPlugin.html
@@ -156,26 +156,30 @@ implements net.md_5.bungee.api.plugin.Listener
dir
boolean
isPatched
long
lastReload
java.io.PrintStream
out
boolean
redis
java.util.Map<java.lang.String,Server>
servers
SubDataClient
subdata
static Version
version
java.lang.String
getBungeeName()
+java.lang.String
getName()
java.util.Map<java.lang.String,net.md_5.bungee.api.config.ServerInfo>
getServers()
java.lang.String
getVersion()
-java.lang.Boolean
merge(java.lang.String name,
@@ -274,7 +278,7 @@ implements net.md_5.bungee.api.plugin.Listener
Methods inherited from class net.md_5.bungee.BungeeCord
-addConnection, broadcast, broadcast, broadcast, broadcast, constructServerInfo, createTitle, getChannels, getConfig, getConfigurationAdapter, getConnectionThrottle, getConsole, getConsoleReader, getDisabledCommands, getGameVersion, getInstance, getLogger, getOnlineCount, getPlayer, getPlayer, getPlayerByOfflineUUID, getPlayers, getPluginManager, getPluginsFolder, getProtocolVersion, getReconnectHandler, getScheduler, getServerInfo, getTranslation, matchPlayer, registerChannel, registerChannels, removeConnection, setConfigurationAdapter, setReconnectHandler, start, stop, stop, unregisterChannel
+addConnection, broadcast, broadcast, broadcast, broadcast, constructServerInfo, createTitle, getChannels, getConfig, getConfigurationAdapter, getConnectionThrottle, getConsole, getConsoleReader, getDisabledCommands, getGameVersion, getInstance, getLogger, getOnlineCount, getPlayer, getPlayer, getPlayerByOfflineUUID, getPlayers, getPluginManager, getPluginsFolder, getProtocolVersion, getReconnectHandler, getScheduler, getServerInfo, getTranslation, getVersion, matchPlayer, registerChannel, registerChannels, removeConnection, setConfigurationAdapter, setReconnectHandler, start, stop, stop, unregisterChannel
-
@@ -376,6 +380,15 @@ implements net.md_5.bungee.api.plugin.Listener
public static final Version version
+
+
+
+
+-
+
isPatched
+public final boolean isPatched
+
+
@@ -450,19 +463,17 @@ implements net.md_5.bungee.api.plugin.Listener
-
+
-
-
getVersion
-public java.lang.String getVersion()
-Further override BungeeCord's signature when patched into the same jar
+getBungeeName
+public java.lang.String getBungeeName()
+Get the name from BungeeCord's original signature (for determining which fork is being used)
-- Overrides:
-getVersion
in class net.md_5.bungee.BungeeCord
- Returns:
-- Software Version
+- BungeeCord Software Name
diff --git a/SubServers.Bungee/src.jar b/SubServers.Bungee/src.jar
index 98b6667e..f64e20b8 100644
Binary files a/SubServers.Bungee/src.jar and b/SubServers.Bungee/src.jar differ
diff --git a/SubServers.Bungee/src/META-INF/MANIFEST.MF b/SubServers.Bungee/src/META-INF/MANIFEST.MF
index 898dd91a..015421c5 100644
--- a/SubServers.Bungee/src/META-INF/MANIFEST.MF
+++ b/SubServers.Bungee/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Class-Path: BungeeCord.jar Waterfall.jar
Main-Class: net.ME1312.SubServers.Bungee.Launch
-Implementation-Version: SubServers.Bungee
+Implementation-Title: SubServers.Bungee
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java
index e8de34b3..82a12b01 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java
@@ -24,7 +24,6 @@ public final class Launch {
System.setProperty("apple.laf.useScreenMenuBar", "true");
Container bungee = new Container(false);
- Container waterfall = new Container(false);
if (Util.isException(() -> bungee.set(Class.forName("net.md_5.bungee.BungeeCord") != null)) && !bungee.get()) {
System.out.println("");
System.out.println("*******************************************");
@@ -38,6 +37,8 @@ public final class Launch {
} else if (System.getProperty("RM.subservers", "true").equalsIgnoreCase("true")) {
Security.setProperty("networkaddress.cache.ttl", "30");
Security.setProperty("networkaddress.cache.negative.ttl", "10");
+ final boolean patched = net.md_5.bungee.BungeeCord.class.getPackage().getImplementationTitle() != null && net.md_5.bungee.BungeeCord.class.getPackage().getImplementationTitle().equals("SubServers.Bungee");
+
joptsimple.OptionParser parser = new joptsimple.OptionParser();
parser.allowsUnrecognizedOptions();
parser.accepts("v");
@@ -48,7 +49,7 @@ public final class Launch {
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() + ",");
+ System.out.println("BungeeCord" + ((patched)?" (Patched) ":" ") + net.md_5.bungee.Bootstrap.class.getPackage().getImplementationVersion() + ",");
System.out.println("SubServers.Bungee v" + SubPlugin.version.toExtendedString());
System.out.println("");
} else {
@@ -59,13 +60,13 @@ public final class Launch {
System.out.println("*** Please report all issues to ME1312, ***");
System.out.println("*** NOT the Spigot Team. Thank You! ***");
System.out.println("*******************************************");
- if (net.md_5.bungee.BungeeCord.class.getPackage().getImplementationVersion() == null || net.md_5.bungee.BungeeCord.class.getPackage().getImplementationVersion().equals("SubServers.Sync")) try {
+ 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())) {
- System.out.println("*** Warning: BungeeCord.jar is outdated ***");
+ System.out.println("*** Warning: BungeeCord is outdated ***");
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! ***");
@@ -74,24 +75,22 @@ public final class Launch {
} else throw new Exception();
} catch (Exception e) {
System.out.println("*** Problem checking BungeeCord version ***");
- System.out.println("*** BungeeCord.jar could be outdated. ***");
+ System.out.println("*** BungeeCord could be outdated. ***");
System.out.println("*** ***");
System.out.println("*** Errors may arise on older versions! ***");
System.out.println("*******************************************");
}
System.out.println("");
- Util.isException(() -> waterfall.set(Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole") != null));
-
- SubPlugin plugin = new SubPlugin(System.out);
+ SubPlugin plugin = new SubPlugin(System.out, patched);
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.getLogger().info("Enabled " + plugin.getBungeeName() + " version " + plugin.getVersion());
plugin.start();
if (!options.has("noconsole")) {
try {
- if (waterfall.get()) {
- plugin.canSudo = false;
+ Container proprietary = new Container(false);
+ if (!Util.isException(() -> proprietary.set(Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole") != null)) && proprietary.get()) {
Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null);
} else {
String line;
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java
index f1de99e9..15d34b34 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java
@@ -60,17 +60,19 @@ public final class SubPlugin extends BungeeCord implements Listener {
public SubServer sudo = null;
//public static final Version version = new Version("2.13a");
//public static final Version version = new Version(new Version("2.13a"), VersionType.BETA, 1); // TODO Beta Version Setting
- public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 3), VersionType.BETA, 4); // TODO Beta Version Setting
+ public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 3), VersionType.BETA, 5); // TODO Beta Version Setting
public boolean redis = false;
public boolean canSudo = true;
+ public final boolean isPatched;
public long resetDate = 0;
private boolean running = false;
private boolean posted = false;
private static BigInteger lastSignature = BigInteger.valueOf(-1);
@SuppressWarnings("unchecked")
- protected SubPlugin(PrintStream out) throws IOException {
+ protected SubPlugin(PrintStream out, boolean isPatched) throws IOException {
+ this.isPatched = isPatched;
System.out.println("SubServers > Loading SubServers.Bungee v" + version.toString() + " Libraries (for Minecraft " + api.getGameVersion()[api.getGameVersion().length - 1] + ")");
this.out = out;
@@ -618,17 +620,16 @@ public final class SubPlugin extends BungeeCord implements Listener {
*/
@Override
public String getName() {
- return (super.getVersion()).equals("SubServers.Bungee")?"SubServers.Bungee":super.getName();
+ return (isPatched)?"SubServers.Bungee":super.getName();
}
/**
- * Further override BungeeCord's signature when patched into the same jar
+ * Get the name from BungeeCord's original signature (for determining which fork is being used)
*
- * @return Software Version
+ * @return BungeeCord Software Name
*/
- @Override
- public String getVersion() {
- return (super.getVersion().equals("SubServers.Bungee"))?version.toString():super.getVersion();
+ public String getBungeeName() {
+ return super.getName();
}
/**
diff --git a/SubServers.Client/Bukkit/src.jar b/SubServers.Client/Bukkit/src.jar
index c98247b5..86df5716 100644
Binary files a/SubServers.Client/Bukkit/src.jar and b/SubServers.Client/Bukkit/src.jar differ
diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java
index e18be18f..4b4d5219 100644
--- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java
+++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java
@@ -48,7 +48,7 @@ public final class SubPlugin extends JavaPlugin {
super();
//version = new Version(getDescription().getVersion());
//version = new Version(new Version(getDescription().getVersion()), VersionType.BETA, 1); // TODO Beta Version Setting
- version = new Version(new Version(new Version(getDescription().getVersion()), VersionType.PRE_RELEASE, 3), VersionType.BETA, 4); // TODO Beta Version Setting
+ version = new Version(new Version(new Version(getDescription().getVersion()), VersionType.PRE_RELEASE, 3), VersionType.BETA, 5); // TODO Beta Version Setting
}
/**
diff --git a/SubServers.Host/src.jar b/SubServers.Host/src.jar
index 7b3d0027..78e017ee 100644
Binary files a/SubServers.Host/src.jar and b/SubServers.Host/src.jar differ
diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java
index 98e3df32..a68b15ac 100644
--- a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java
+++ b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java
@@ -53,7 +53,7 @@ public final class ExHost {
//public final Version version = new Version("2.13a");
//public final Version version = new Version(new Version("2.13a"), VersionType.BETA, 1); // TODO Beta Version Setting
- public final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 3), VersionType.BETA, 4); // TODO Beta Version Setting
+ public final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 3), VersionType.BETA, 5); // TODO Beta Version Setting
public final SubAPI api = new SubAPI(this);
private ConsoleReader jline;
diff --git a/SubServers.Sync/src.jar b/SubServers.Sync/src.jar
index 35769bf3..db6e659c 100644
Binary files a/SubServers.Sync/src.jar and b/SubServers.Sync/src.jar differ
diff --git a/SubServers.Sync/src/META-INF/MANIFEST.MF b/SubServers.Sync/src/META-INF/MANIFEST.MF
index dfc63f6f..da7d5eb9 100644
--- a/SubServers.Sync/src/META-INF/MANIFEST.MF
+++ b/SubServers.Sync/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Class-Path: BungeeCord.jar Waterfall.jar
Main-Class: net.ME1312.SubServers.Sync.Launch
-Implementation-Version: SubServers.Sync
+Implementation-Title: SubServers.Sync
diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java
index 48d64ba8..9234e964 100644
--- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java
+++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java
@@ -24,7 +24,6 @@ public final class Launch {
System.setProperty("apple.laf.useScreenMenuBar", "true");
Container bungee = new Container(false);
- Container waterfall = new Container(false);
if (Util.isException(() -> bungee.set(Class.forName("net.md_5.bungee.BungeeCord") != null)) && !bungee.get()) {
System.out.println("");
System.out.println("*******************************************");
@@ -38,6 +37,8 @@ public final class Launch {
} else {
Security.setProperty("networkaddress.cache.ttl", "30");
Security.setProperty("networkaddress.cache.negative.ttl", "10");
+ final boolean patched = net.md_5.bungee.BungeeCord.class.getPackage().getImplementationTitle() != null && net.md_5.bungee.BungeeCord.class.getPackage().getImplementationTitle().equals("SubServers.Sync");
+
joptsimple.OptionParser parser = new joptsimple.OptionParser();
parser.allowsUnrecognizedOptions();
parser.accepts("v");
@@ -48,7 +49,7 @@ public final class Launch {
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() + ",");
+ System.out.println("BungeeCord" + ((patched)?" (Patched) ":" ") + net.md_5.bungee.Bootstrap.class.getPackage().getImplementationVersion() + ",");
System.out.println("SubServers.Sync v" + SubPlugin.version.toExtendedString());
System.out.println("");
} else {
@@ -59,13 +60,13 @@ public final class Launch {
System.out.println("*** Please report all issues to ME1312, ***");
System.out.println("*** NOT the Spigot Team. Thank You! ***");
System.out.println("*******************************************");
- if (net.md_5.bungee.BungeeCord.class.getPackage().getImplementationVersion() == null || net.md_5.bungee.BungeeCord.class.getPackage().getImplementationVersion().equals("SubServers.Sync")) try {
+ 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())) {
- System.out.println("*** Warning: BungeeCord.jar is outdated ***");
+ System.out.println("*** Warning: BungeeCord is outdated ***");
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! ***");
@@ -74,23 +75,22 @@ public final class Launch {
} else throw new Exception();
} catch (Exception e) {
System.out.println("*** Problem checking BungeeCord Version ***");
- System.out.println("*** BungeeCord.jar could be outdated. ***");
+ System.out.println("*** BungeeCord could be outdated. ***");
System.out.println("*** ***");
System.out.println("*** Errors may arise on older versions! ***");
System.out.println("*******************************************");
}
System.out.println("");
- Util.isException(() -> waterfall.set(Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole") != null));
-
- SubPlugin plugin = new SubPlugin(System.out);
+ SubPlugin plugin = new SubPlugin(System.out, patched);
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.getLogger().info("Enabled " + plugin.getBungeeName() + " version " + plugin.getVersion());
plugin.start();
if (!options.has("noconsole")) {
try {
- if (waterfall.get()) {
+ Container proprietary = new Container(false);
+ if (!Util.isException(() -> proprietary.set(Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole") != null)) && proprietary.get()) {
Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null);
} else {
String line;
diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java
index 6f75d51a..b16960ea 100644
--- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java
+++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java
@@ -50,13 +50,14 @@ public final class SubPlugin extends BungeeCord implements Listener {
public SubDataClient subdata = null;
//public static final Version version = new Version("2.13a");
//public static final Version version = new Version(new Version("2.13a"), VersionType.BETA, 1); // TODO Beta Version Setting
- public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 3), VersionType.BETA, 4); // TODO Beta Version Setting
-
+ public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 3), VersionType.BETA, 5); // TODO Beta Version Setting
+ public final boolean isPatched;
public long lastReload = -1;
private boolean posted = false;
- protected SubPlugin(PrintStream out) throws IOException {
+ protected SubPlugin(PrintStream out, boolean isPatched) throws IOException {
+ this.isPatched = isPatched;
System.out.println("SubServers > Loading SubServers.Sync v" + version.toString() + " Libraries (for Minecraft " + api.getGameVersion()[api.getGameVersion().length - 1] + ")");
this.out = out;
@@ -184,17 +185,16 @@ public final class SubPlugin extends BungeeCord implements Listener {
*/
@Override
public String getName() {
- return (super.getVersion()).equals("SubServers.Sync")?"SubServers.Sync":super.getName();
+ return (isPatched)?"SubServers.Sync":super.getName();
}
/**
- * Further override BungeeCord's signature when patched into the same jar
+ * Get the name from BungeeCord's original signature (for determining which fork is being used)
*
- * @return Software Version
+ * @return BungeeCord Software Name
*/
- @Override
- public String getVersion() {
- return (super.getVersion().equals("SubServers.Sync"))?version.toString():super.getVersion();
+ public String getBungeeName() {
+ return super.getName();
}
/**