-
Total de itens
10 -
Registro em
-
Última visita
Tudo que Skizz postou
-
Um problema que estava é o ServerSocket tava dentro do while, consegui resolver essa parte mas estou com outro problema. O servidor so recebe a mensagem do cliente quando ele se conecta e manda a mensagem, depois ele não recebe mais. Consegui resolver, vlw. O erro principal é que o ServerSocket tava tendo do while(true) não tinha visto aquilo. Burrice nivel 1000
-
Estava tentando trocar informações com proxy do bungeecord usando sockets, porem está dando alguns erros. Erro: 14:41:37 [GRAVE] java.net.BindException: Address already in use: JVM_Bind 14:41:37 [GRAVE] at java.net.TwoStacksPlainSocketImpl.socketBind(Native Method) 14:41:37 [GRAVE] at java.net.TwoStacksPlainSocketImpl.socketBind(Unknown Source) 14:41:37 [GRAVE] at java.net.AbstractPlainSocketImpl.bind(Unknown Source) 14:41:37 [GRAVE] at java.net.TwoStacksPlainSocketImpl.bind(Unknown Source) 14:41:37 [GRAVE] at java.net.PlainSocketImpl.bind(Unknown Source) 14:41:37 [GRAVE] at java.net.ServerSocket.bind(Unknown Source) 14:41:37 [GRAVE] at java.net.ServerSocket.<init>(Unknown Source) 14:41:37 [GRAVE] at java.net.ServerSocket.<init>(Unknown Source) 14:41:37 [GRAVE] at Java.ProxyClient.run(ProxyClient.java:13) 14:41:37 [GRAVE] at java.lang.Thread.run(Unknown Source) Codigo: package Java; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class ProxyClient implements Runnable { @Override public void run() { while(true){ try { ServerSocket server = new ServerSocket(10000);//Linha 13 System.out.println("[Proxy] Esperando servidor se conectar!"); System.out.println("[Proxy] IP: " + server.getInetAddress().getHostAddress() + ":" + server.getLocalPort()); Socket socket = server.accept(); new Thread(new ProxyManagerClient(socket), "ProxyManager").start();; } catch (IOException e) { e.printStackTrace(); } } } } ProxyManagerClient package Java; import java.io.IOException; import java.net.Socket; import java.util.Scanner; public class ProxyManagerClient implements Runnable { private Socket socket; public ProxyManagerClient(Socket socket) { this.socket = socket; } @Override public void run() { try { Scanner scanner = new Scanner(socket.getInputStream()); String text = scanner.nextLine(); scanner.close(); String[] data = text.split("-"); String name = data[0]; String ip = data[1]; Status action = Status.valueOf(data[2]); int max = Integer.valueOf(data[3]); Server server = Servers.get(name); if(server == null){ server = new Server(name, ip.split(":")[0], Integer.parseInt(ip.split(":")[1])); } server.setStatus(action); server.setMaxPlayers(max); Servers.register(server); System.out.println("[Servidor] O servidor " + name + " foi " + action.toString() + " agora!" ); System.out.println("[Servidor] IP: " + ip); } catch (IOException | IllegalArgumentException e) { e.printStackTrace(); } } } Classe que envia o socket: package Bukkit.Network; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; public class Network { private Socket socket; private PrintWriter pw; public Network(){ try{ socket = new Socket("0.0.0.0", 10000); pw = new PrintWriter(socket.getOutputStream()); }catch(IOException e){ e.printStackTrace(); } } public void send(String msg){ pw.println(msg); } } Procurei na internet e vi que isso pode ser que a porta esteja sendo usada, porem coloquei uma porta muito alto e continua dando erro. Ja até reiniciei o PC para saber se era um erro no windows mas permanece esse erro.
-
Tentei fazer isso, mas não consegui Erro: 19:21:25 [GRAVE] mai 07, 2017 7:21:25 PM io.netty.util.concurrent.DefaultPromise notifyListener0 ADVERT?NCIA: An exception was thrown by net.md_5.bungee.BungeeServerInfo$1.operationComplete() java.lang.NullPointerException at Bungee.Utils.Connect$2.done(Connect.java:54) at Bungee.Utils.Connect$2.done(Connect.java:1) at net.md_5.bungee.BungeeServerInfo$1.operationComplete(BungeeServerInfo.java:139) at net.md_5.bungee.BungeeServerInfo$1.operationComplete(BungeeServerInfo.java:130) at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507) at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500) at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479) at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420) at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:327) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:343) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:612) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:559) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:476) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at java.lang.Thread.run(Unknown Source) Codigo: public void connect(String server){ AtomicBoolean ab = new AtomicBoolean(false); Iterator<ServerInfo> i = Main.pl.getProxy().getServers().values().iterator(); while (i.hasNext() && !ab.get()){ ServerInfo sv = i.next(); sv.ping(new Callback<ServerPing>() { @Override public void done(ServerPing ping, Throwable error) { if(error != null){ if(ping.getPlayers().getOnline() < ping.getPlayers().getMax()){ p.connect(sv); ab.set(true); } } } }); }
-
Toda vez que o jogar entrar no servidor e fizer o login vai ser executado isso. Mas a principal questão é quando ele não acha um servidor para conectar o player, enche o console de erros. Eu queria kickar o jogar com uma mensagem, mas o for continua rolando e o primeiro callback não terminou.
-
Estou tentando fazer um mini sistema para levar os players para outro servidor. Codigo: if(server.contains("-"))return; for(ServerInfo sv : Main.pl.getProxy().getServers().values()){ if(sv.getName().split("-")[0].equalsIgnoreCase(server)){ sv.ping(new Callback<ServerPing>() { @Override public void done(ServerPing ping, Throwable error) { if(error != null){ if(ping.getPlayers().getOnline() < ping.getPlayers().getMax()){ //O que chegar aqui vai ser o servidor que o player vai conectar } } } }); } } Alguma coisas como os splits são como o meu servidor vai ficar organizado. Eu apenas queria que alguem pudesse me ajudar a pegar o servidor que chegar primeiro na ultima verificação, olhando pela internet parece que tenho que usar CompletableFuture, so que não entendi a logica dele. OBS: Sou muito ruim para explicar as coisas.
-
Nas mensagens no chat eu uso e TextComponent.fromLegacy() e no HoverEvent eu quebro ele com \n e insiro a cor logo depois do "\n" e ate hoje não apresentou erro.
-
Use TextComponent.fromLegacy(String msg);
-
Posta a src no github que dou uma star e vai ajudar muita gente. E parabens pelo plugin, fez algo bom sem cobrar nada.
-
resolvido [DÚVIDA] COMO ADICIONAR DELAY NISSO?
pergunta respondeu ao Lelfe de Skizz em Dúvidas resolvidas
Use o tempo da maquina ao seu favor para fazer isto. A lógica é bem facil, crie uma map com a uuid do player e o tempo, adicione na map a uuid com tempo da maquina mais o tempo que você quer para usar no delay. Map<UUID, Long> cooldown = new Map<>(); public void putcooldown(Player p, int time){ cooldown.put(p.getUniqueId, System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(time)); } public boolean hasCooldown(Player p){ if(cooldown.get(p.getUniqueId) == null)return false; if(cooldown.get(p.getUniqueId) < System.currentTimeMillis())return true; return false; } -
Provavelmente você esta rodando tudo em uma mesma thread, crie outra thread e rode simultaneamente ao servidor. Não conheço muito sobre bukkit API mais quando minhas aplicações em java "pesadas" travavam era por que estava faltando processamento. Provavelmente você esta rodando tudo em uma mesma thread, crie outra thread e rode simultaneamente ao servidor. Não conheço muito sobre bukkit API mais quando minhas aplicações em java "pesadas" travavam era por que estava faltando processamento. Provavelmente você esta rodando tudo em uma mesma thread, crie outra thread e rode simultaneamente ao servidor. Não conheço muito sobre bukkit API mais quando minhas aplicações em java "pesadas" travavam era por que estava faltando processamento. Provavelmente você esta rodando tudo em uma mesma thread, crie outra thread e rode simultaneamente ao servidor. Não conheço muito sobre bukkit API mais quando minhas aplicações em java "pesadas" travavam era por que estava faltando processamento. Provavelmente você esta rodando tudo em uma mesma thread, crie outra thread e rode simultaneamente ao servidor. Não conheço muito sobre bukkit API mais quando minhas aplicações em java "pesadas" travavam era por que estava faltando processamento. Provavelmente você esta rodando tudo em uma mesma thread, crie outra thread e rode simultaneamente ao servidor. Não conheço muito sobre bukkit API mais quando minhas aplicações em java "pesadas" travavam era por que estava faltando processamento.