summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew <pugmatt@gmail.com>2022-01-01 13:20:07 -0500
committerMatthew <pugmatt@gmail.com>2022-01-01 13:20:07 -0500
commit4e6956556e0dd48681c2479ad9e77efaa6d6dd97 (patch)
treeb09666d8c0d5faeba679ca9b8ea90cee380da21b
parent707c127474b5eeb8060f0ec7a8f6ab6f47b6c79d (diff)
downloadBedrockConnect-1.13.tar.gz
BedrockConnect-1.13.tar.bz2
BedrockConnect-1.13.zip
Add option to use hard-coded featured server ips1.13
As some people's setups use the DNS on their host machines, or through their router, this gives the option for those people who can't use the IP fetcher.
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java47
-rw-r--r--serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java14
2 files changed, 55 insertions, 6 deletions
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java
index 8cea6ca..86ac199 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java
@@ -3,6 +3,9 @@ package main.com.pyratron.pugmatt.bedrockconnect;
import main.com.pyratron.pugmatt.bedrockconnect.sql.Data;
import main.com.pyratron.pugmatt.bedrockconnect.sql.MySQL;
import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
import java.io.*;
import java.net.*;
@@ -29,8 +32,11 @@ public class BedrockConnect {
public static boolean kickInactive = true;
public static boolean userServers = true;
public static boolean featuredServers = true;
+ public static boolean fetchFeaturedIps = true;
public static File whitelistfile;
+ public static HashMap<String, String> featuredServerIps;
+
public static void main(String[] args) {
System.out.println("-= BedrockConnect =-");
paletteManager = new PaletteManager();
@@ -117,6 +123,9 @@ public class BedrockConnect {
if (str.startsWith("featured_servers=")) {
featuredServers = getArgValue(str, "featured_servers").toLowerCase().equals("true");
}
+ if (str.startsWith("fetch_featured_ips=")) {
+ fetchFeaturedIps = getArgValue(str, "fetch_featured_ips").toLowerCase().equals("true");
+ }
if (str.startsWith("whitelist=")) {
try {
whitelistfile = new File(getArgValue(str, "whitelist"));
@@ -142,6 +151,44 @@ public class BedrockConnect {
if (Whitelist.hasWhitelist()) {
System.out.printf("There are %d whitelisted players\n", Whitelist.getWhitelist().size());
}
+
+ if(!fetchFeaturedIps) {
+ try {
+ featuredServerIps = new HashMap<>();
+
+ // If the file doesn't already exist, create a configuration file containing the hard-coded IPs
+ // for the featured servers if fetching the featured ips is set to disabled
+ File ipFile = new File("featured_server_ips.json");
+ if (ipFile.createNewFile()) {
+ featuredServerIps.put("hivebedrock.network", "167.114.81.89");
+ featuredServerIps.put("mco.mineplex.com", "108.178.12.125");
+ featuredServerIps.put("mco.lbsg.net", "142.44.240.96");
+ featuredServerIps.put("play.inpvp.net", "52.234.130.241");
+ featuredServerIps.put("play.galaxite.net", "51.222.8.223");
+ featuredServerIps.put("play.pixelparadise.gg", "40.87.84.106");
+
+ JSONObject jo = new JSONObject();
+ for (Map.Entry server : featuredServerIps.entrySet()) {
+ jo.put(server.getKey(), server.getValue());
+ }
+
+ PrintWriter pw = new PrintWriter("featured_server_ips.json");
+ pw.write(jo.toJSONString());
+ pw.flush();
+ pw.close();
+ } else {
+ Object obj = new JSONParser().parse(new FileReader("featured_server_ips.json"));
+
+ JSONObject jo = (JSONObject) obj;
+ for (Object server : jo.keySet()) {
+ featuredServerIps.put((String) server, (String) jo.get(server));
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("An error occurred.");
+ e.printStackTrace();
+ }
+ }
if(!noDB) {
MySQL = new MySQL(hostname, database, username, password);
diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
index ef28bda..56c4d81 100644
--- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
+++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java
@@ -8,6 +8,7 @@ import com.nimbusds.jwt.SignedJWT;
import com.nukkitx.math.vector.Vector3f;
import com.nukkitx.nbt.NbtUtils;
import com.nukkitx.network.util.Preconditions;
+import com.nukkitx.protocol.bedrock.Bedrock;
import com.nukkitx.protocol.bedrock.BedrockClient;
import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
import com.nukkitx.protocol.bedrock.data.AttributeData;
@@ -66,15 +67,16 @@ public class PacketHandler implements BedrockPacketHandler {
public static String getIP(String hostname) {
try {
- InetAddress host = InetAddress.getByName(hostname);
- String IP = host.getHostAddress().toString();
- //System.out.println(IP);
- return IP;
+ if(BedrockConnect.fetchFeaturedIps) {
+ InetAddress host = InetAddress.getByName(hostname);
+ return host.getHostAddress();
+ } else {
+ return BedrockConnect.featuredServerIps.get(hostname);
+ }
} catch (UnknownHostException ex) {
ex.printStackTrace();
- String IP = "0.0.0.0";
- return IP;
}
+ return "0.0.0.0";
}
@Override