diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java
index 0688108..c4cbef5 100644
--- a/src/main/java/org/parabot/core/Core.java
+++ b/src/main/java/org/parabot/core/Core.java
@@ -35,7 +35,7 @@ public class Core {
private static boolean loadLocal; //Loads both local and public scripts/servers
private static boolean validate = true;
- private static boolean secure = true;
+ private static boolean secure = true;
private static Version currentVersion = Configuration.BOT_VERSION;
@@ -140,46 +140,13 @@ public class Core {
}
/**
- * Checks the version of the bot using a checksum of the jar comparison against checksum given by the website
+ * Prints a debug line to the Logger and System PrintStream
+ * Meant for the debug adapter within hooks
*
- * @return true if no new version is found, otherwise false.
+ * @param line
*/
- private static boolean checksumValid() {
- File f = new File(Landing.class.getProtectionDomain().getCodeSource().getLocation().getFile());
- if (f.isFile()) {
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- File location = new File(Landing.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
- if (location.exists()) {
- FileInputStream fis = new FileInputStream(location);
- byte[] dataBytes = new byte[1024];
-
- int nread;
-
- while ((nread = fis.read(dataBytes)) != -1) {
- md.update(dataBytes, 0, nread);
- }
-
- byte[] mdbytes = md.digest();
-
- StringBuilder sb = new StringBuilder("");
- for (byte mdbyte : mdbytes) {
- sb.append(Integer.toString((mdbyte & 0xff) + 0x100, 16).substring(1));
- }
-
- String result;
- if ((result = WebUtil.getContents(String.format(Configuration.COMPARE_CHECKSUM_URL, "client", currentVersion.get()), "checksum=" + URLEncoder.encode(sb.toString(), "UTF-8"))) != null) {
- JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(result);
- boolean upToDate = (boolean) object.get("result");
- Core.verbose("Local checksum: " + URLEncoder.encode(sb.toString(), "UTF-8") + ". " + (upToDate ? "This matches BDN and is up to date." : "BDN mismatch, must be Out Of Date."));
- return upToDate;
- }
- }
- } catch (NoSuchAlgorithmException | ParseException | IOException | URISyntaxException e) {
- e.printStackTrace();
- }
- }
- return true;
+ public static void debug(final String line) {
+ System.out.println(line);
}
/**
@@ -194,7 +161,7 @@ public class Core {
try {
if (br != null) {
JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(br);
- boolean latest = (Boolean) object.get("result");
+ boolean latest = (Boolean) object.get("result");
if (!latest) {
Directories.clearCache();
}
@@ -216,14 +183,6 @@ public class Core {
return true;
}
- /**
- * Method that removes the cache contents after 3 days
- */
- private static void validateCache() {
- // Already handled by Directories initiating
- // Method will be used once BDN V3 has a functionality for this
- }
-
public static void downloadNewVersion() {
UILog.log(TranslationHelper.translate("UPDATES"),
TranslationHelper.translate("DOWNLOAD_UPDATE_PARABOT_AT")
@@ -268,4 +227,55 @@ public class Core {
public static int newVersionAlert() {
return UILog.alert("Parabot Update", "There's a new version of Parabot! \nDo you wish to download it?\n\nThe current version could have some problems!", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
}
+
+ /**
+ * Checks the version of the bot using a checksum of the jar comparison against checksum given by the website
+ *
+ * @return true if no new version is found, otherwise false.
+ */
+ private static boolean checksumValid() {
+ File f = new File(Landing.class.getProtectionDomain().getCodeSource().getLocation().getFile());
+ if (f.isFile()) {
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ File location = new File(Landing.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
+ if (location.exists()) {
+ FileInputStream fis = new FileInputStream(location);
+ byte[] dataBytes = new byte[1024];
+
+ int nread;
+
+ while ((nread = fis.read(dataBytes)) != -1) {
+ md.update(dataBytes, 0, nread);
+ }
+
+ byte[] mdbytes = md.digest();
+
+ StringBuilder sb = new StringBuilder("");
+ for (byte mdbyte : mdbytes) {
+ sb.append(Integer.toString((mdbyte & 0xff) + 0x100, 16).substring(1));
+ }
+
+ String result;
+ if ((result = WebUtil.getContents(String.format(Configuration.COMPARE_CHECKSUM_URL, "client", currentVersion.get()), "checksum=" + URLEncoder.encode(sb.toString(), "UTF-8"))) != null) {
+ JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(result);
+ boolean upToDate = (boolean) object.get("result");
+ Core.verbose("Local checksum: " + URLEncoder.encode(sb.toString(), "UTF-8") + ". " + (upToDate ? "This matches BDN and is up to date." : "BDN mismatch, must be Out Of Date."));
+ return upToDate;
+ }
+ }
+ } catch (NoSuchAlgorithmException | ParseException | IOException | URISyntaxException e) {
+ e.printStackTrace();
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Method that removes the cache contents after 3 days
+ */
+ private static void validateCache() {
+ // Already handled by Directories initiating
+ // Method will be used once BDN V3 has a functionality for this
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/parabot/core/asm/adapters/AddCallbackAdapter.java b/src/main/java/org/parabot/core/asm/adapters/AddCallbackAdapter.java
index 8b26227..3cc10f8 100644
--- a/src/main/java/org/parabot/core/asm/adapters/AddCallbackAdapter.java
+++ b/src/main/java/org/parabot/core/asm/adapters/AddCallbackAdapter.java
@@ -57,7 +57,7 @@ public class AddCallbackAdapter implements Injectable, Opcodes {
}
inject.add(new MethodInsnNode(INVOKESTATIC,
this.invokeClass, this.invokeMethod,
- this.desc));
+ this.desc, false));
if (this.conditional) {
LabelNode ln = new LabelNode(new Label());
inject.add(new JumpInsnNode(IFEQ, ln));
diff --git a/src/main/java/org/parabot/core/asm/adapters/AddDebugAdapter.java b/src/main/java/org/parabot/core/asm/adapters/AddDebugAdapter.java
index e6c14f7..9fa7c17 100644
--- a/src/main/java/org/parabot/core/asm/adapters/AddDebugAdapter.java
+++ b/src/main/java/org/parabot/core/asm/adapters/AddDebugAdapter.java
@@ -5,7 +5,7 @@ import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.*;
public class AddDebugAdapter {
- private ClassNode owner;
+ private ClassNode owner;
private MethodNode mn;
public AddDebugAdapter(ClassNode owner, MethodNode mn) {
@@ -19,14 +19,19 @@ public class AddDebugAdapter {
public void inject() {
InsnList inject = new InsnList();
- Label l0 = new Label();
+ Label l0 = new Label();
inject.add(new LabelNode(l0));
- String callString = owner.name + "." + mn.name + " " + mn.desc;
- LdcInsnNode ldc = new LdcInsnNode(callString);
+ String callString = owner.name + "." + mn.name + " " + mn.desc;
+ LdcInsnNode ldc = new LdcInsnNode(callString);
- MethodInsnNode methodNode = new MethodInsnNode(Opcodes.INVOKESTATIC, "org/parabot/core/Core", "debug",
- "(Ljava/lang/String;)V");
+ MethodInsnNode methodNode = new MethodInsnNode(
+ Opcodes.INVOKESTATIC,
+ "org/parabot/core/Core",
+ "debug",
+ "(Ljava/lang/String;)V",
+ false
+ );
inject.add(ldc);
inject.add(methodNode);
diff --git a/src/main/java/org/parabot/core/asm/adapters/AddInvokerAdapter.java b/src/main/java/org/parabot/core/asm/adapters/AddInvokerAdapter.java
index 74f5a54..d0fbf54 100644
--- a/src/main/java/org/parabot/core/asm/adapters/AddInvokerAdapter.java
+++ b/src/main/java/org/parabot/core/asm/adapters/AddInvokerAdapter.java
@@ -94,9 +94,9 @@ public class AddInvokerAdapter implements Opcodes, Injectable {
}
if (isInterface) {
- m.visitMethodInsn(INVOKEINTERFACE, instanceCast, mName, mDesc);
+ m.visitMethodInsn(INVOKEINTERFACE, instanceCast, mName, mDesc, true);
} else {
- m.visitMethodInsn(isStatic ? INVOKESTATIC : INVOKEVIRTUAL, methodLocation.name, mn.name, mn.desc);
+ m.visitMethodInsn(isStatic ? INVOKESTATIC : INVOKEVIRTUAL, methodLocation.name, mn.name, mn.desc, false);
}
if (this.returnDesc.contains("L")) {
if (!this.returnDesc.contains("[")) {