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 @@
Get the Build Options for this Template
+
getBungeeName() - Method in class net.ME1312.SubServers.Bungee.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.Bungee.Library.Util
Get an item from a map ignoring case
@@ -1746,10 +1750,6 @@
Get Packet Version
-
getVersion() - Method in class net.ME1312.SubServers.Bungee.SubPlugin
-
-
Further override BungeeCord's signature when patched into the same jar
-
getWrapperVersion() - Method in class net.ME1312.SubServers.Bungee.SubAPI
Gets the SubServers Version
@@ -2028,6 +2028,8 @@
Check if object is a Number
+
isPatched - Variable in class net.ME1312.SubServers.Bungee.SubPlugin
+
 
isPermanent() - Method in class net.ME1312.SubServers.Bungee.Event.SubEditServerEvent
Gets if the edit is permanent
diff --git a/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/SubPlugin.html b/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/SubPlugin.html index 94414bfb..fe41d683 100644 --- a/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/SubPlugin.html +++ b/Javadoc/SubServers.Bungee/net/ME1312/SubServers/Bungee/SubPlugin.html @@ -168,34 +168,38 @@ implements net.md_5.bungee.api.plugin.Listener 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  @@ -223,22 +227,22 @@ implements net.md_5.bungee.api.plugin.Listener java.lang.String +getBungeeName() +
Get the name from BungeeCord's original signature (for determining which fork is being used)
+ + + +java.lang.String getName()
Further override BungeeCord's signature when patched into the same jar
- + java.util.Map<java.lang.String,net.md_5.bungee.api.config.ServerInfo> getServers()
Emulate BungeeCord's getServers()
- -java.lang.String -getVersion() -
Further override BungeeCord's signature when patched into the same jar
- - 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 + + + + @@ -528,19 +541,17 @@ implements net.md_5.bungee.api.plugin.Listener - + 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  @@ -211,22 +215,22 @@ implements net.md_5.bungee.api.plugin.Listener java.lang.String +getBungeeName() +
Get the name from BungeeCord's original signature (for determining which fork is being used)
+ + + +java.lang.String getName()
Further override BungeeCord's signature when patched into the same jar
- + java.util.Map<java.lang.String,net.md_5.bungee.api.config.ServerInfo> getServers()
Emulate BungeeCord's getServers()
- -java.lang.String -getVersion() -
Further override BungeeCord's signature when patched into the same jar
- - 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 + + + +
    +
  • +

    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(); } /**