Update LibsPremium check
This commit is contained in:
parent
8f398d798a
commit
dbe9073f33
@ -114,34 +114,14 @@ public class LibsPremium {
|
||||
try (URLClassLoader cl = new URLClassLoader(new URL[]{file.toURI().toURL()})) {
|
||||
Class c = cl.loadClass(LibsPremium.class.getName());
|
||||
|
||||
boolean oldJarFile = true;
|
||||
|
||||
try {
|
||||
// Error thrown if method doesn't exist
|
||||
c.getMethod("getUserID");
|
||||
// Method exists, is not older file
|
||||
oldJarFile = false;
|
||||
}
|
||||
catch (Exception ignored) {
|
||||
}
|
||||
|
||||
// Fetch the plugin.yml from the jar file
|
||||
YamlConfiguration config = ReflectionManager.getPluginYAML(file);
|
||||
YamlConfiguration config = ReflectionManager.getPluginYAMLEx(file);
|
||||
// No checks for null config as the correct error will be thrown on access
|
||||
|
||||
Boolean premium;
|
||||
String userId = null;
|
||||
String downloadId = null;
|
||||
String resourceId = null;
|
||||
|
||||
if (oldJarFile) {
|
||||
premium = (Boolean) c.getMethod("isPremium").invoke(null);
|
||||
} else {
|
||||
userId = (String) c.getMethod("getUserID").invoke(null);
|
||||
resourceId = (String) c.getMethod("getResourceID").invoke(null);
|
||||
downloadId = (String) c.getMethod("getDownloadID").invoke(null);
|
||||
premium = isPremium(resourceId, userId);
|
||||
}
|
||||
String userId = (String) c.getMethod("getUserID").invoke(null);
|
||||
String downloadId = (String) c.getMethod("getDownloadID").invoke(null);
|
||||
String resourceId = (String) c.getMethod("getResourceID").invoke(null);
|
||||
Boolean premium = isPremium(resourceId, userId);
|
||||
|
||||
String pluginBuildDate = "??/??/????";
|
||||
|
||||
@ -164,8 +144,7 @@ public class LibsPremium {
|
||||
|
||||
String pluginVersion = config.getString("version");
|
||||
|
||||
return new PluginInformation(file.length(), userId, resourceId, downloadId, premium, pluginVersion,
|
||||
pluginBuildNumber, pluginBuildDate);
|
||||
return new PluginInformation(file.length(), userId, resourceId, downloadId, premium, pluginVersion, pluginBuildNumber, pluginBuildDate);
|
||||
}
|
||||
}
|
||||
|
||||
@ -173,15 +152,18 @@ public class LibsPremium {
|
||||
File[] files = new File("plugins/LibsDisguises/").listFiles();
|
||||
boolean foundJar = false;
|
||||
|
||||
if (files == null)
|
||||
if (files == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (File file : files) {
|
||||
if (!file.isFile())
|
||||
if (!file.isFile()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!file.getName().endsWith(".jar"))
|
||||
if (!file.getName().endsWith(".jar")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foundJar = true;
|
||||
|
||||
@ -189,13 +171,11 @@ public class LibsPremium {
|
||||
|
||||
try {
|
||||
plugin = getInformation(file);
|
||||
}
|
||||
catch (ClassNotFoundException ex) {
|
||||
DisguiseUtilities.getLogger()
|
||||
.warning("Found an unrecognized jar in the LibsDisguises folder (" + file.getName() + ")");
|
||||
} catch (ClassNotFoundException | NoClassDefFoundError ex) {
|
||||
DisguiseUtilities.getLogger().warning("Found an unrecognized jar in the LibsDisguises folder (" + file.getName() +
|
||||
") - It may need replacing with a newer jar from SpigotMC");
|
||||
continue;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
DisguiseUtilities.getLogger().warning("Error while trying to handle the file " + file.getName());
|
||||
ex.printStackTrace();
|
||||
continue;
|
||||
@ -203,17 +183,14 @@ public class LibsPremium {
|
||||
|
||||
// Format into a string
|
||||
// v5.2.6, build #40, created 16/02/2019
|
||||
String fileInfo = String.format("v%s, build %s, created %s", plugin.getVersion(), plugin.getBuildNumber(),
|
||||
plugin.getBuildDate());
|
||||
String fileInfo = String.format("v%s, build %s, created %s", plugin.getVersion(), plugin.getBuildNumber(), plugin.getBuildDate());
|
||||
|
||||
if (plugin.isPremium()) {
|
||||
if (!isValidVersion(version, plugin.getVersion()) || plugin.getUserID() == null ||
|
||||
plugin.getDownloadID() == null || plugin.getUserID().equals("666666")) {
|
||||
DisguiseUtilities.getLogger().warning(
|
||||
"You have an old Lib's Disguises jar (" + file.getName() + " " + fileInfo +
|
||||
") in the LibsDisguises folder! For security purposes, please replace this with a" +
|
||||
" new " +
|
||||
"version from SpigotMC - https://www.spigotmc.org/resources/libs-disguises.32453/");
|
||||
if (!isValidVersion(version, plugin.getVersion()) || plugin.getUserID() == null || plugin.getDownloadID() == null ||
|
||||
plugin.getUserID().equals("666666")) {
|
||||
DisguiseUtilities.getLogger().warning("You have an old Lib's Disguises jar (" + file.getName() + " " + fileInfo +
|
||||
") in the LibsDisguises folder! For security purposes, please replace this with a" + " new " +
|
||||
"version from SpigotMC - https://www.spigotmc.org/resources/libs-disguises.32453/");
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -234,12 +211,10 @@ public class LibsPremium {
|
||||
} else {
|
||||
// You have a non-premium Lib's Disguises jar (LibsDisguises.jar v5.2.6, build #40, created
|
||||
// 16/02/2019) in the LibsDisguises folder!
|
||||
DisguiseUtilities.getLogger().warning(
|
||||
"You have a non-premium Lib's Disguises jar (" + file.getName() + " " + fileInfo +
|
||||
") in the LibsDisguises folder!");
|
||||
DisguiseUtilities.getLogger().warning(
|
||||
"Please place the premium jar downloaded from https://www.spigotmc" +
|
||||
".org/resources/libs-disguises.32453/ " + "in here!");
|
||||
DisguiseUtilities.getLogger()
|
||||
.warning("You have a non-premium Lib's Disguises jar (" + file.getName() + " " + fileInfo + ") in the LibsDisguises folder!");
|
||||
DisguiseUtilities.getLogger()
|
||||
.warning("Please place the premium jar downloaded from https://www.spigotmc" + ".org/resources/libs-disguises.32453/ " + "in here!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -251,9 +226,8 @@ public class LibsPremium {
|
||||
|
||||
thisPluginIsPaidFor = true;
|
||||
} else {
|
||||
DisguiseUtilities.getLogger().warning(
|
||||
"If you own the plugin, place the premium jar downloaded from https://www.spigotmc" +
|
||||
".org/resources/libs-disguises.32453/ in plugins/LibsDisguises/");
|
||||
DisguiseUtilities.getLogger().warning("If you own the plugin, place the premium jar downloaded from https://www.spigotmc" +
|
||||
".org/resources/libs-disguises.32453/ in plugins/LibsDisguises/");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -281,25 +255,21 @@ public class LibsPremium {
|
||||
|
||||
try {
|
||||
pluginInformation = getInformation(file);
|
||||
}
|
||||
catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
String pluginBuildDate = "??/??/????";
|
||||
|
||||
YamlConfiguration config = new YamlConfiguration();
|
||||
|
||||
try {
|
||||
try (InputStream stream = LibsDisguises.getInstance().getResource("plugin.yml")) {
|
||||
config.loadFromString(
|
||||
new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8)).lines()
|
||||
.collect(Collectors.joining("\n")));
|
||||
config.loadFromString(new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8)).lines().collect(Collectors.joining("\n")));
|
||||
}
|
||||
|
||||
// If plugin.yml contains a build-date
|
||||
if (config.contains("build-date")) {
|
||||
pluginBuildDate = config.getString("build-date");
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
@ -309,9 +279,8 @@ public class LibsPremium {
|
||||
buildNo = "#" + buildNo;
|
||||
}
|
||||
|
||||
pluginInformation = new PluginInformation(LibsDisguises.getInstance().getFile().length(), getUserID(),
|
||||
getResourceID(), getDownloadID(), isPremium(getResourceID(), getUserID()), version, buildNo,
|
||||
pluginBuildDate);
|
||||
pluginInformation = new PluginInformation(LibsDisguises.getInstance().getFile().length(), getUserID(), getResourceID(), getDownloadID(),
|
||||
isPremium(getResourceID(), getUserID()), version, buildNo, pluginBuildDate);
|
||||
}
|
||||
|
||||
if (!isPremium() || !LibsDisguises.getInstance().isReleaseBuild()) {
|
||||
@ -349,7 +318,7 @@ public class LibsPremium {
|
||||
|
||||
foundBetter = true;
|
||||
break;
|
||||
} catch (ClassNotFoundException e) {
|
||||
} catch (ClassNotFoundException | NoClassDefFoundError e) {
|
||||
DisguiseUtilities.getLogger().info("Ew, error about invalid Libs Disguises jar. Deleting " + f.getName());
|
||||
f.delete();
|
||||
} catch (Throwable e) {
|
||||
@ -362,17 +331,14 @@ public class LibsPremium {
|
||||
|
||||
FileUtil.copy(f, new File(LibsDisguises.getInstance().getDataFolder(), f.getName()));
|
||||
|
||||
DisguiseUtilities.getLogger().info("Copied " + f.getName() +
|
||||
" to the plugin folder! You can use dev builds with premium enabled!");
|
||||
DisguiseUtilities.getLogger().info("Copied " + f.getName() + " to the plugin folder! You can use dev builds with premium enabled!");
|
||||
}
|
||||
}
|
||||
|
||||
if (isPremium()) {
|
||||
boolean prem =
|
||||
getPaidInformation() == null ? getPluginInformation().isLegit() : getPaidInformation().isLegit();
|
||||
boolean prem = getPaidInformation() == null ? getPluginInformation().isLegit() : getPaidInformation().isLegit();
|
||||
|
||||
DisguiseUtilities.getLogger()
|
||||
.info("Premium enabled, thank you for supporting Lib's Disguises!" + (!prem ? "!" : ""));
|
||||
DisguiseUtilities.getLogger().info("Premium enabled, thank you for supporting Lib's Disguises!" + (!prem ? "!" : ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -429,6 +429,20 @@ public class ReflectionManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static YamlConfiguration getPluginYAMLEx(File file) throws Exception {
|
||||
String s = getResourceAsString(file, "plugin.yml");
|
||||
|
||||
if (s == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
YamlConfiguration config = new YamlConfiguration();
|
||||
|
||||
config.loadFromString(getResourceAsString(file, "plugin.yml"));
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
public static int getNewEntityId() {
|
||||
return getNewEntityId(true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user