eaglercraft-1.8/sources/main/java/net/lax1dude/eaglercraft/v1_8/EaglerXBungeeVersion.java

98 lines
3.0 KiB
Java
Raw Normal View History

package net.lax1dude.eaglercraft.v1_8;
import org.json.JSONObject;
/**
* Copyright (c) 2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
public class EaglerXBungeeVersion {
public static final String pluginFileEPK = "plugin_download.zip";
private static String pluginName = null;
private static String pluginVersion = null;
private static long pluginVersionLong = 0l;
private static String pluginButton = null;
private static String pluginFilename = null;
public static void initialize() {
String pluginVersionJson = EagRuntime.getResourceString("plugin_version.json");
if(pluginVersionJson == null) {
throw new RuntimeException("File \"plugin_version.json\" is missing in the epk!");
}
JSONObject json = new JSONObject(pluginVersionJson);
pluginName = json.getString("pluginName");
pluginVersion = json.getString("pluginVersion");
pluginVersionLong = getVersionAsLong(pluginVersion);
pluginButton = json.getString("pluginButton");
pluginFilename = json.getString("pluginFilename");
}
public static String getPluginName() {
return pluginName;
}
public static String getPluginVersion() {
return pluginVersion;
}
public static long getPluginVersionLong() {
return pluginVersionLong;
}
public static String getPluginButton() {
return pluginButton;
}
public static String getPluginFilename() {
return pluginFilename;
}
public static long getVersionAsLong(String vers) {
try {
String[] verz = vers.split("\\.");
long ret = 0;
long div = 1000000000000l;
for(int i = 0; i < verz.length; ++i) {
ret += div * Long.parseLong(verz[i]);
div /= 10000l;
}
return ret;
}catch(Throwable t) {
return -1l;
}
}
public static byte[] getPluginDownload() {
byte[] ret = EagRuntime.getResourceBytes(pluginFileEPK);
if(ret == null) {
throw new RuntimeException("File \"" + pluginFileEPK + "\" is missing in the epk!");
}
return ret;
}
public static void startPluginDownload() {
EagRuntime.downloadFileWithName(pluginFilename, getPluginDownload());
}
public static boolean isUpdateToPluginAvailable(String brand, String vers) {
if(pluginVersionLong == -1l || !pluginName.equals(brand)) {
return false;
}
long verz = getVersionAsLong(vers);
return verz != -1l && verz < pluginVersionLong;
}
}