mirror of
https://github.com/2006-Scape/Parabot.git
synced 2026-07-05 16:49:41 +00:00
Fixed issue where some clients used #getNetworkInterfaces
This commit is contained in:
@@ -182,7 +182,7 @@ public class Context {
|
|||||||
gameApplet.setSize(appletSize);
|
gameApplet.setSize(appletSize);
|
||||||
panel.add(gameApplet);
|
panel.add(gameApplet);
|
||||||
panel.validate();
|
panel.validate();
|
||||||
|
|
||||||
gameApplet.init();
|
gameApplet.init();
|
||||||
gameApplet.start();
|
gameApplet.start();
|
||||||
java.util.Timer t = new java.util.Timer();
|
java.util.Timer t = new java.util.Timer();
|
||||||
|
|||||||
@@ -1,9 +1,17 @@
|
|||||||
package org.parabot.core;
|
package org.parabot.core;
|
||||||
|
|
||||||
|
import org.parabot.Landing;
|
||||||
import org.parabot.environment.api.utils.WebUtil;
|
import org.parabot.environment.api.utils.WebUtil;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.security.DigestInputStream;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The core of parabot
|
* The core of parabot
|
||||||
@@ -88,18 +96,62 @@ public class Core {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for updates.
|
* Checks the version of the bot using a checksum of the jar comparison against checksum given by the website
|
||||||
*
|
* @return <b>true</b> if no new version is found, otherwise <b>false</b>.
|
||||||
* @return <b>true</b> if no update is required, otherwise <b>false</b>.
|
|
||||||
*/
|
*/
|
||||||
public static boolean isValid() {
|
private static boolean checksumValid(){
|
||||||
Core.verbose("Checking for updates...");
|
String checksum = "";
|
||||||
|
|
||||||
|
File f = new File(Landing.class.getProtectionDomain().getCodeSource().getLocation().getFile());
|
||||||
|
if (f.isFile()) {
|
||||||
|
try {
|
||||||
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||||
|
try (InputStream is = Files.newInputStream(Paths.get(f.getAbsolutePath()))) {
|
||||||
|
DigestInputStream dis = new DigestInputStream(is, md);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
byte[] digest = md.digest();
|
||||||
|
|
||||||
|
for (byte aDigest : digest) {
|
||||||
|
checksum += Integer.toString((aDigest & 0xff) + 0x100, 16).substring(1);
|
||||||
|
}
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO Get checksum from BDN and verify
|
||||||
|
// BufferedReader br = WebUtil.getReader(Configuration.GET_BOT_VERSION);
|
||||||
|
// try {
|
||||||
|
// double version = Double.parseDouble(br.readLine());
|
||||||
|
// if (Configuration.BOT_VERSION != version) {
|
||||||
|
// Core.verbose("Updates available...");
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// } catch (NumberFormatException | IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } finally {
|
||||||
|
// try {
|
||||||
|
// br.close();
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks the version of the bot using a variable comparison from the bot code and the Parabot website
|
||||||
|
* @return <b>true</b> if no new version is found, otherwise <b>false</b>.
|
||||||
|
*/
|
||||||
|
private static boolean versionValid(){
|
||||||
BufferedReader br = WebUtil.getReader(Configuration.GET_BOT_VERSION);
|
BufferedReader br = WebUtil.getReader(Configuration.GET_BOT_VERSION);
|
||||||
try {
|
try {
|
||||||
double version = Double.parseDouble(br.readLine());
|
double version = Double.parseDouble(br.readLine());
|
||||||
if (Configuration.BOT_VERSION >= version) {
|
if (Configuration.BOT_VERSION < version) {
|
||||||
Core.verbose("No updates available.");
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
} catch (NumberFormatException | IOException e) {
|
} catch (NumberFormatException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -110,8 +162,25 @@ public class Core {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Core.verbose("Updates available...");
|
|
||||||
return false;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks for updates.
|
||||||
|
*
|
||||||
|
* @return <b>true</b> if no update is required, otherwise <b>false</b>.
|
||||||
|
*/
|
||||||
|
public static boolean isValid() {
|
||||||
|
Core.verbose("Checking for updates...");
|
||||||
|
|
||||||
|
if (versionValid() && checksumValid()){
|
||||||
|
Core.verbose("No updates available.");
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
Core.verbose("Updates available...");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void debug(int i) {
|
public static void debug(int i) {
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package org.parabot.core.network;
|
|||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.SocketException;
|
import java.net.SocketException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
public class NetworkInterface {
|
public class NetworkInterface {
|
||||||
public static byte[] mac = new byte[] { 11, 11, 11, 11, 11, 11 };
|
public static byte[] mac = new byte[] { 11, 11, 11, 11, 11, 11 };
|
||||||
@@ -19,6 +22,27 @@ public class NetworkInterface {
|
|||||||
return mac;
|
return mac;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Enumeration<NetworkInterface> getNetworkInterfaces()
|
||||||
|
throws SocketException {
|
||||||
|
final ArrayList<NetworkInterface> netifs = new ArrayList<>();
|
||||||
|
|
||||||
|
return new Enumeration<NetworkInterface>() {
|
||||||
|
private int i = 0;
|
||||||
|
public NetworkInterface nextElement() {
|
||||||
|
if (i < netifs.size()) {
|
||||||
|
NetworkInterface netif = netifs.get(i++);
|
||||||
|
return netif;
|
||||||
|
} else {
|
||||||
|
throw new NoSuchElementException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasMoreElements() {
|
||||||
|
return (i < netifs.size());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public static byte[] getRealHardwareAddress() throws SocketException{
|
public static byte[] getRealHardwareAddress() throws SocketException{
|
||||||
if (realMac != null)
|
if (realMac != null)
|
||||||
return realMac;
|
return realMac;
|
||||||
|
|||||||
Reference in New Issue
Block a user