From 384d1e4085b725efa137232bec24b64ed9970f6e Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Tue, 21 May 2019 23:52:50 -0500 Subject: [PATCH] [BUGFIX] Fixed deprecation warnings --- src/main/java/org/parabot/core/Core.java | 106 ++++++++++-------- .../core/asm/adapters/AddCallbackAdapter.java | 2 +- .../core/asm/adapters/AddDebugAdapter.java | 17 ++- .../core/asm/adapters/AddInvokerAdapter.java | 4 +- 4 files changed, 72 insertions(+), 57 deletions(-) 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("[")) {