Ir para conteúdo

leonardosc

Membros VIP
  • Total de itens

    2.229
  • Registro em

  • Última visita

Tudo que leonardosc postou

  1. Sim, ambos são hospedados em sites enormes que não iram ficar offline tão cedo.
  2. Não é um programa, é uma biblioteca. A unica coisa que você pode rodar, sem programar, são os exemplos: - https://leonardosnt.github.io/jar-string-editor/(Usado pra traduzir plugins) - https://rawgit.com/leonardosnt/java-class-tools/master/examples/browser.html(Você deve escolher um arquivo .class, ai os métodos e variáveis serão mostrados)
  3. java-class-tools é uma biblioteca simples e direta para manipulação de arquivos .class (Arquivo .java compilado). Escrita inteiramente em javascript, roda tanto no browser quanto no node. Com ela você pode ler, modificar e salvar qualquer propriedade de uma classe, como modificadores de acesso ou o bytecode de algum método. Source: https://github.com/leonardosnt/java-class-tools Exemplo de projeto usando ela: https://leonardosnt.github.io/jar-string-editor/
  4. huasuhsadhuasuhdasuhduhasduhasuhdasudasuhduasudh
  5. Ficou maneirão!! O único "problema" que eu vi é que as fontes demoram meio segundo (~500ms) pra carregar, ai os textos não aparecem, fica meio feio. Acho que você deveria arrumar o cache das fontes. (Colocar os headers pra cachear, pq não ta cacheando)
  6. Ta parecendo os yt fazendo click bait. Deu de criar esses tópicos, né?
  7. // 2 pra cima // 2 pra baixo // 2 pra +X // 2 pra -X // 2 pra +Z // 2 pra -Z int radius = 2; Location loc = e.getBlock().getLocation(); int x1 = loc.getBlockX() - radius; int z1 = loc.getBlockZ() - radius; int y1 = loc.getBlockY() - radius; int x2 = loc.getBlockX() + radius; int z2 = loc.getBlockZ() + radius; int y2 = loc.getBlockY() + radius; int startX = Math.min(x1, x2); int startY = Math.min(y1, y2); int startZ = Math.min(z1, z2); int endX = Math.max(x1, x2); int endY = Math.max(y1, y2); int endZ = Math.max(z1, z2); for (int x = startX; x <= endX; x++) { for (int y = startY; y <= endY; y++) { for (int z = startZ; z <= endZ; z++) { if (loc.getWorld().getBlockAt(x, y, z).getType() == Material.SPONGE) { e.getPlayer().sendMessage("§cSe n pode colocar aki " + System.currentTimeMillis()); e.setCancelled(true); } } } } @Edit Corrigi uns bug loko
  8. Você pode comparar o tipo e o nome do item, creio que seja a maneira mais simples de fazer. Examplo: ItemStack naMao = player.getItemInHand(); ItemMeta meta = naMao.getItemMeta(); // você pode (ou deve) verificar se é nulo ou usar o ItemStack#hasItemMeta // Da pra diminuir pra isso // if (naMao.getType() == Material.PAPER && "§eNome do item?".equals(meta.getDisplayName())) // if (naMao.getType() == Material.PAPER && meta.hasDisplayName() && meta.getDisplayName().equals("§eNome do item?")) { // faz alguma coisa aqui } @Edit Fiz aqui mesmo, não testei.
  9. Tira isso cooldowns.remove(cooldown); deixa só o iterator.remove() pq ele já ta removendo do "cooldowns". Faz o mesmo no toRemove, deixa só o iterator.remove()
  10. Saca só minha gambiarra https://youtu.be/ZDggKPoZ8ac
  11. Um jeito bem mais simples seria StringBuilder sb = new StringBuilder("My name is Allen"); sb.insert(10, " Barry");
  12. Seria pra converter as string em um item... Pra pegar a lista de items é só usar o getStringList(), ai fazer um foreach e transformar pra item usando esse código que eu mostrei.
  13. Da uma olhada https://gist.github.com/leonardosnt/ea205f7e4f1bfaf841af639985054761
  14. Pra usar o "Messaging Channel" do bungee, precisa ter pelo menos 1 jogador online, você precisa verificar antes de enviar....
  15. N precisa deixar estático, até pq qnd isso for carregado o main.instance vai ser nulo (é isso que causa o erro); Quando você for usar é só colocar BungeeChannelApi.of(main.instance) em uma variável local mesmo.
  16. Redis é mais usado pra cache. Não faz sentido usar Redis e todo seu poder pra uma coisa simples dessa.
  17. só colocar "output.toByteArray()" Ele vai "atualizar" toda vez que você enviar uma informação. Você pode enviar o numero de jogadores quando um jogador entrar, ai vc atualiza a placa. Por exemplo, ali no listener: if (acao.equals("ATUALIZAR_JOGADORES")) { int jogadores = in.readInt(); // atualiza placa } Ai no servidor de HG, quando um jogador entrar (ou cria uma task pra atualizar de tempo em tempo) ByteArrayDataOutput output = ByteStreams.newDataOutput(); output.writeUTF("ATUALIZAR_JOGADORES"); output.writeInt(Bukkit.getOnlinePlayers().size()); api.forward bla bla bla
  18. BungeeChannelApi api = BungeeChannelApi.of(this); // this = Plugin instance. // Fica no plugin de HG ByteArrayDataOutput output = ByteStreams.newDataOutput(); // escreve os dados no output, como por exemplo, o estado atual do servidor, quantidade de jogadores e etc api.forward("nome do servidor do lobby ou ALL pra todos servidores", "nome_do_canal", output); // Fica no plugin pra lobby api.registerForwardListener("nome_do_Canal", (channelName, player, data) -> { ByteArrayDataInput in = ByteStreams.newDataInput(message); // le as informaçoes enviadas }); Fiz aqui mesmo, pode ter erros. outro exemplo // Fica no plugin de HG ByteArrayDataOutput output = ByteStreams.newDataOutput(); // quando uma sala de HG ficar disponivel output.writeUTF("SALA_DISPONIVEL"); // Coloquei uma string só pra ficar didático, recomendo usar um int pra identificar o estado. // quando jogo iniciar output.writeUTF("JOGO_INICIOU"); // Envia o output api.forward("nome do servidor ou ALL pra todos servidores", "nome_do_canal", output); // Fica no plugin pra lobby api.registerForwardListener("nome_do_canal", (channelName, player, data) -> { ByteArrayDataInput in = ByteStreams.newDataInput(message); String acao = in.readUTF(); // ação, como se fosse o ID de um Packet if (acao.equals("SALA_DISPONIVEL")) { // atualiza uma placa e etc } else if (acao.equals("JOGO_INICIOU")) { // atualiza a placa dnv } });
  19. Apoio. Ta cheio da área abandonada agora, como a de Desenvolvimento, que tem vários tópicos resolvidos que não foram fechados. Antigamente isso não acontecia.
×
×
  • Criar Novo...