DaviDEV Postado Junho 5, 2015 Denunciar Compartilhar Postado Junho 5, 2015 Eu fiz um servidor que abre um GUI e fala o motd de tal server usando socket Porem o motd esta aparecendo que sta no server.properties e não do meu plugins que modifica o motd Oque farei? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 (editado) Tem como pegar exatamente o motd? String url = "http://mcping.net/api/5.cookiehosting.net:25568/motd"; HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); StringBuilder builder = new StringBuilder(); for (String line = null; (line = reader.readLine()) != null;) { builder.append(line); } JsonElement jsonElement = new JsonParser().parse(builder.toString().replace("\\u00a7", "§")); JsonObject jsonObject = jsonElement.getAsJsonObject(); System.out.println(jsonObject.get("motd")); "§e§lWorld§b§lHG §e-> §7torneio inicia em§c§l 1 §7minutos" Editado Junho 7, 2015 por leonardosc 1 Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 6, 2015 Denunciar Compartilhar Postado Junho 6, 2015 Posta o código que tu ta usando, não tem como adivinhar né cara. Link para o comentário Compartilhar em outros sites More sharing options...
Guest zBlack_Skull Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 Posta o código que tu ta usando, não tem como adivinhar né cara. Link para o comentário Compartilhar em outros sites More sharing options...
Lucca. Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 Posta o código que tu ta usando, não tem como adivinhar né cara. Link para o comentário Compartilhar em outros sites More sharing options...
DaviDEV Postado Junho 7, 2015 Autor Denunciar Compartilhar Postado Junho 7, 2015 try { Socket socket = new Socket(); socket.connect(new InetSocketAddress(<Nao irei falar a IP>, 25566), 1 * 1000); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); DataInputStream in = new DataInputStream(socket.getInputStream()); out.write(0xFE); StringBuilder str = new StringBuilder(); int b; while ((b = in.read()) != -1) { if (b != 0 && b > 16 && b != 255 && b != 23 && b != 24) { str.append((char) b); } } String[] data = str.toString().split("§"); String motd = data[0]; int onlinePlayers = Integer.valueOf(data[1]); int maxPlayers = Integer.valueOf(data[2]); if (motd.equalsIgnoreCase("Aberto")) { sign.setLine(0, "§a§l[Aberto]"); } else if (motd.equalsIgnoreCase("Cheio")) { sign.setLine(0, "§e§l[VIP]"); } else if (motd.equalsIgnoreCase("EmJogo")) { sign.setLine(0, "§4§l[Em Jogo]"); } else { sign.setLine(0, motd); } sign.setLine(1, "§e§l"+name); sign.setLine(2, "§b§l"+onlinePlayers + "§f/§b§l" + maxPlayers); sign.setLine(3, "§6§lBoloCraft"); socket.close(); } catch (Exception e) { sign.setLine(0, "§4§l████████"); sign.setLine(1, "§4§lReiniciando..."); sign.setLine(2, "§4§lAguarde..."); sign.setLine(3, "§4§l████████"); }Porém o motd que ele está pegando está vindo do server.properties e não do plugin que modifica o motd Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 Passa o ip do servidor, pode ser por mp pra mim ver o que eu posso fazer. Link para o comentário Compartilhar em outros sites More sharing options...
DaviDEV Postado Junho 7, 2015 Autor Denunciar Compartilhar Postado Junho 7, 2015 Passa o ip do servidor, pode ser por mp pra mim ver o que eu posso fazer. Ok to usando o ip do craftcubegames Craftcubegames.com Só para testar Mais se eu botar um ip hamachi acho que nao vai por isto to usando para teste o craftcubegames Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 Testei com isso Socket socket = new Socket(); socket.connect(new InetSocketAddress("Craftcubegames.com", 25565), 1 * 1000); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); DataInputStream in = new DataInputStream(socket.getInputStream()); out.write(0xFE); StringBuilder str = new StringBuilder(); int b; while ((b = in.read()) != -1) { if (b != 0 && b > 16 && b != 255 && b != 23 && b != 24) { str.append((char) b); } } String[] data = str.toString().split("§"); String motd = data[0]; int onlinePlayers = Integer.valueOf(data[1]); int maxPlayers = Integer.valueOf(data[2]); System.out.println(motd); Saiu isso CraftCubeGames - BETA Se não conseguir usa essa api http://mcping.net/api/craftcubegames.com:25565/motd Link para o comentário Compartilhar em outros sites More sharing options...
DaviDEV Postado Junho 7, 2015 Autor Denunciar Compartilhar Postado Junho 7, 2015 (editado) Tenta esta IP: socket.connect(new InetSocketAddress("5.cookiehosting.net", 25568), 1 * 1000);resultado: A minecraft serverno minecraft: http://prntscr.com/7ebtlr e nao sei mexer com regex! Editado Junho 7, 2015 por DaviG4mer Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 (editado) Usa isso String url = "http://mcping.net/api/5.cookiehosting.net:25568/motd"; HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); StringBuilder builder = new StringBuilder(); for (String line = null; (line = reader.readLine()) != null;) { builder.append(line); } System.out.println(builder.toString().replace("\\u00a7", "§")); Resultado { "motd": "§e§lWorld§b§lHG §e-> §7O Torneio ja Iniciou §c§lVisite:§7worldhardcoregames.buycraft.net"} Editado Junho 7, 2015 por leonardosc Link para o comentário Compartilhar em outros sites More sharing options...
DaviDEV Postado Junho 7, 2015 Autor Denunciar Compartilhar Postado Junho 7, 2015 (editado) Usa isso String url = "http://mcping.net/api/5.cookiehosting.net:25568/motd"; HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); StringBuilder builder = new StringBuilder(); for (String line = null; (line = reader.readLine()) != null;) { builder.append(line); } System.out.println(builder.toString().replace("\\u00a7", "§")); Resultado { "motd": "§e§lWorld§b§lHG §e-> §7O Torneio ja Iniciou §c§lVisite:§7worldhardcoregames.buycraft.net"} Tem como pegar exatamente o motd? @EDIT as aspas da pra tirar System.out.println(builder.toString().replace("\\u00a7", "§").replace("{ ", "").replaceAll("}", "")); Editado Junho 7, 2015 por DaviG4mer Link para o comentário Compartilhar em outros sites More sharing options...
DaviDEV Postado Junho 7, 2015 Autor Denunciar Compartilhar Postado Junho 7, 2015 String url = "http://mcping.net/api/5.cookiehosting.net:25568/motd"; HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); StringBuilder builder = new StringBuilder(); for (String line = null; (line = reader.readLine()) != null;) { builder.append(line); } JsonElement jsonElement = new JsonParser().parse(builder.toString().replace("\\u00a7", "§")); JsonObject jsonObject = jsonElement.getAsJsonObject(); System.out.println(jsonObject.get("motd")); "§e§lWorld§b§lHG §e-> §7torneio inicia em§c§l 1 §7minutos" Obrigado Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 (editado) Código melhorado. String url = "http://mcping.net/api/5.cookiehosting.net:25568/motd"; HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); StringBuilder builder = new StringBuilder(); for (String line = null; (line = reader.readLine()) != null;) { builder.append(line); } JsonElement jsonElement = new JsonParser().parse(builder.toString()); JsonObject jsonObject = jsonElement.getAsJsonObject(); System.out.println(jsonObject.get("motd").getAsString().replaceAll("\\u00a7[a-z0-9]", "")); Resultado WorldHG -> O Torneio ja Iniciou Visite:worldhardcoregames.buycraft.net Caso queira com cores, tire essa parte. .replaceAll("\\u00a7[a-z0-9]", "") Editado Junho 7, 2015 por leonardosc Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Junho 7, 2015 Denunciar Compartilhar Postado Junho 7, 2015 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board 1 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DaviDEV
Eu fiz um servidor que abre um GUI e fala o motd de tal server usando socket
Porem o motd esta aparecendo que sta no server.properties e não do meu plugins que modifica o motd
Oque farei?
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados