package com.w67clement.mineapi.utils; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.InetSocketAddress; import java.net.Socket; public class AdvancedUtils { /** * Method for getting a server data * * @param ip IP address of the target server. * @param port Port of the target server. * * @return Data given by the server. * * @author Master */ public static String[] getServerData(String ip, int port) { String[] data; try { Socket socket = new Socket(); socket.connect(new InetSocketAddress(ip, port), 5); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); DataInputStream in = new DataInputStream(socket.getInputStream()); out.write(0xFE); StringBuilder sb = new StringBuilder(); int b; while ((b = in.read()) != -1) { if (b != 0 && b > 16 && b != 255 && b != 23 && b != 24) { sb.append((char) b); } } data = sb.toString().split("ยง"); socket.close(); } catch (Exception e) { data = new String[]{"Server down.", "Down.", "Down."}; } return data; } public static String getServerStatus(String ip, int port) { String c; String[] data = getServerData(ip, port); if (data[1].equals("Down.") && data[2].equals("Down.")) { c = "Down."; } else { c = data[1] + "/" + data[2]; } return c; } /** * Gets the motd of an minecraft server. * * @param ip Ip of the server. * @param port Port of the server. * * @return The motd! And if the server was down, return: "Server down." */ public static String getServerMotd(String ip, int port) { return getServerData(ip, port)[0]; } }