diff options
| author | Matthew <pugmatt@gmail.com> | 2022-01-01 13:20:07 -0500 |
|---|---|---|
| committer | Matthew <pugmatt@gmail.com> | 2022-01-01 13:20:07 -0500 |
| commit | 4e6956556e0dd48681c2479ad9e77efaa6d6dd97 (patch) | |
| tree | b09666d8c0d5faeba679ca9b8ea90cee380da21b | |
| parent | 707c127474b5eeb8060f0ec7a8f6ab6f47b6c79d (diff) | |
| download | BedrockConnect-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.java | 47 | ||||
| -rw-r--r-- | serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/listeners/PacketHandler.java | 14 |
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 |
