Ir para conteúdo

leonardosc

Membros VIP
  • Total de itens

    2.229
  • Registro em

  • Última visita

Respostas na Comunidade

  1. leonardosc's postagem in [Resolvido] Garbage Collector was marked as the answer   
    A coleção de lixo é feita automaticamente, você pode chamar o System.gc(), mas não é recomendado.
  2. leonardosc's postagem in [Resolvido] Duvida criptografia was marked as the answer   
    MessageDigest md = MessageDigest.getInstance("SHA-256"); String senha = "123"; String hash = new String(md.digest(senha.getBytes(StandardCharsets.UTF_8))); // Coloca na db Tem vários outros tipos de hash além do sha256...
  3. leonardosc's postagem in [Resolvido] Java super was marked as the answer   
    Só da pra chamar os da classe Mae.
  4. leonardosc's postagem in [Resolvido] Packets + Reflection was marked as the answer   
    Ué, se tu for usar Reflection é só verificar a versão que ele ta usando e fazer '-'
    if (version.startsWith("v1_7")) {     // faz as coisa pra 1.7 } else if (version.startsWith("v1_8")) {    // faz as coisa pra 1.8 } // .... Aki da pra ver como pega a versão... https://github.com/BktLib/BktLib/blob/master/src/main/java/io/github/bktlib/misc/BukkitUtil.java#L37-L38
  5. leonardosc's postagem in [Resolvido] [CRIAÇÃO DE PLUGIN] Warning bukkkit color was marked as the answer   
    Esse warning é pra avisar que esse import não está sendo usando.
     
    Remove essa linha.
  6. leonardosc's postagem in [Resolvido] [Dúvida] Item + inventario was marked as the answer   
    Claro fera tu nunca ta parando o loop, caso todos os slots estejam vazios ele vai setar em todos.
    ItemStack bootNB = new ItemStack(Material.IRON_BOOTS); bootNB.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 4); for(int i = 0 ; i < s.getSize() ; i++) { ItemStack item = s.getItem(i); if(item == null || item.getType() == Material.AIR){ s.setItem(i, bootNB); break; // <------------------------------------------ } } Ou
    int emptySlot = inventario.firstEmpty(); if (emptySlot == -1) { player.sendMessage("Você nao tem um slot vazio."); } else { inventario.setItem(emptySlot, bootNB); }
  7. leonardosc's postagem in [Resolvido] Como pego quantos jogadores tem? was marked as the answer   
    Depende da versão, se tu tiver usando uma versão mais recente use 
     
    Bukkit.getOnlinePlayers().size();
     
    Senão use
     
    Bukkit.getOnlinePlayers().length
  8. leonardosc's postagem in [Resolvido] [Dúvida] Slot was marked as the answer   
    Compara o tipo.................
     
    if (inv.getItem(10).getType() == Material.BREAD)
  9. leonardosc's postagem in [Resolvido] Erro estranho no console was marked as the answer   
    Isso não é um erro, é uma warn, diz que o handle disconnection foi chamado 2 vezes, aqui também aparece isso quando uso o /kick
  10. leonardosc's postagem in [Resolvido] [Dúvida] Mensagem StringList was marked as the answer   
    Fiz uma classe em 10.5 segundos, testa ai, não testei.
     
    Java puro
    public class MessageBroadcaster extends BukkitRunnable { private List<String> messages; private int current; public MessageBroadcaster(List<String> messages) { this.messages = new ArrayList<>(messages); // Pra assegurar que vai ser uma ArrayList pq eu vo acessar pelo index } @Override public void run() { if (current >= messages.size()) { current = 0; } Bukkit.broadcastMessage(messages.get(current++));//Já pega e ja incrementa. } } Guava
    public class MessageBroadcaster extends BukkitRunnable { private Iterator<String> messages; public MessageBroadcaster(List<String> messages) { this.messages = Iterables.cycle(messages).iterator(); } @Override public void run() { Bukkit.broadcastMessage(messages.next()); } } new MessageBroadcaster(getConfig().getStringList("@%&#036;#~&amp;I")).runTaskTimer(plugin, 20, 20);
  11. leonardosc's postagem in [Resolvido] [Dúvida] Kit Delay + MiliSeconds was marked as the answer   
    Poh vei é só pensar, delay é o DELAY, tipo aquele (20 * 1000) 
  12. leonardosc's postagem in [Resolvido] Tag colorida; was marked as the answer   
    Pattern p = Pattern.compile("(§\\w)");
    Matcher m = p.matcher("§3Ta§bG"); // <- getColorTag
     
    boolean found = m.find();
    String color;
     
    if (found) {
    color = m.group();
    } else {
    // nao conseguiu encontrar
    color = "§a"; // Cor padrão
    }

  13. leonardosc's postagem in [Resolvido] [BukkitAPI] Bloquear X IP que está na config! was marked as the answer   
    Tu testou? Adiciona eu teu ip ai pra tu ver...
     
    Eu testei.
  14. leonardosc's postagem in [Resolvido] [Duvida] Arquivo.db was marked as the answer   
    É SQLite
  15. leonardosc's postagem in [Resolvido] WorldGuard - Checar flag de build - Duvida was marked as the answer   
    o getFlag ta depreciado, troca pro queryValue, e o queryValue precisa de uma associação. Exemplo
     
    rg.queryValue(Associables.constant(Association.NON_MEMBER), DefaultFlag.BUILD) // pega o valor para não membros
    rg.queryValue(Associables.constant(Association.OWNER), DefaultFlag.BUILD) // pega o valor para o dono
     
    Exemplo
    ApplicableRegionSet rg = WGBukkit.getPlugin().getRegionManager(p.getWorld()).getApplicableRegions(p.getLocation()); StateFlag.State state = rg.queryValue(Associables.constant(Association.NOT_MEMBER), DefaultFlag.BUILD); System.out.println(state); if (state == null || state == StateFlag.State.DENY) { p.sendMessage("vc nao pode construir aki"); }
    https://github.com/sk89q/WorldGuard/blob/master/worldguard-legacy/src/main/java/com/sk89q/worldguard/protection/ApplicableRegionSet.java#L110-L133





    Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.


    Atenciosamente,
    Gamer's Board
  16. leonardosc's postagem in [Resolvido] [Dúvida] Inventário GUI was marked as the answer   
    A maneira mais facil(eu acho) usar o PlayerChatEvent, e uma lista pra colocar os "jogadores" que clicaram,
    ai tu checa, caso o jogador que falou no chat esteja na lista tu pega oq ele falou e usa,...
     
    Da pra fazer assim tbm (jeito mais hardcore, usando nms e packet)
    // Quando o cara clicar final Player p = ...; p.sendMessage("Digite seu skype no chat."); CraftPlayer cp = (CraftPlayer) p; ChannelPipeline pipeline = ((CraftPlayer) p).getHandle().playerConnection.networkManager.channel.pipeline(); pipeline.addBefore("packet_handler", "edit_skype", new ChannelDuplexHandler() { @Override public void channelRead(ChannelHandlerContext ctx, Object packet) throws Exception { if (packet instanceof PacketPlayInChat) { String text = ((PacketPlayInChat) packet).a(); p.sendMessage("Skype definido para " + text); pipeline.remove(this); return; } super.channelRead(ctx, packet); } }); Se não me engano só funciona do cb 1.8 r3 pra cima.
     
    Assim eu acho que é melhor pois ele vai adicionar o canal na "conexão" do jogador e vai pegar a proxima msg que o jogador editar e vai tirar o canal... já no evento que eu disse ali em cima ele vai ficar verificando as mensagens de todos os jogadores pra sempre.
  17. leonardosc's postagem in [Resolvido] Erro ao selecionar dados da tabela was marked as the answer   
    Então significa que ele não encontrou.
     
    Da um print na variavel nome_programador pra ver se ta certo.
  18. leonardosc's postagem in [Resolvido] Como pegar boolean via web? was marked as the answer   
    Usando guava:
    import com.google.common.io.Resources; String rawBoolean = Resources.toString(new URL("http://www.google.com/"), Charset.forName("UTF-8")); boolean bool = Boolean.parseBoolean(rawBoolean);
    Logicamente, ali onde ta http://www.google.com/tu coloca a sua URL.
  19. leonardosc's postagem in [Resolvido] Pegar A Hora Do Brasil was marked as the answer   
    É só to ficar pegando a hora e colocando no scoreboard '-'
  20. leonardosc's postagem in [Resolvido] [Inativo][Dúvida] EnchantmentTable&Anvil Events was marked as the answer   
    Não é difícil.
     
    Achei isso https://bukkit.org/threads/inventory-anvil-events.142990/
     
    Testa ai.
  21. leonardosc's postagem in [Resolvido] [BungeeCord] Teleportar para outro servidor. was marked as the answer   
    Esse erro é por que tu ta tentando acessar o argumento 0, mas quando tu executou o comando tu não passou nenhum argumento.
     
    Tu deve checar os argumentos ates...
     
    E muda o "Conectar" pra "Connect"
     
    https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
    https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
    https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
  22. leonardosc's postagem in [Resolvido] SQL例外 was marked as the answer   
    CREATE TABLE IF NOT EXISTS `accounts` (`username`  VARCHAR(18), `password`  TINYTEXT NULL, `isLoggedIn`  VARCHAR(5),`registeredSince`  DATETIME, `lastLogin`  DATETIME)
     
    Troca os ' por ` e remove os () dos 2 DATETIME
  23. leonardosc's postagem in [Resolvido] [Inativo]Dúvida Boolean was marked as the answer   
    config.set("valor", !config.getBoolean("valor"));
  24. leonardosc's postagem in [Resolvido] Como fasso teleport aleatorio ? was marked as the answer   
    Tenta assim
    public void randomBetween(int a, int b) { Random r = new Random(); int max = Math.max(a, b), min = Math.min(a, b); return rand.nextInt((max - min) + 1) + min; } Location p1 = new Location(1, 2, 3);// ponto 1 Location p2 = new Location(1, 2, 3);// ponto 2 Location lrnd = new Location( randomBetween(l1.getBlockX(), l2.getBlockX()), randomBetween(l1.getBlockY(), l2.getBlockY()), randomBetween(l1.getBlockZ(), l2.getBlockZ()) ); // Localização randomica //Ai player.teleport(lrnd); Fiz tudo aqui, pode ser q tenha erro
  25. leonardosc's postagem in [Resolvido] Como faço um ranking.. de TOP.. tal tal tal?? was marked as the answer   
    Como disse, as 2 estão incompletas.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    Vou dar o exemplo mais simples que consegui pensar.   Toda vez que o cara pegar o mito você vai salvando na configuração (ou cria um cache e salva de tempo em tempo) por exemplo int valorAnterior = fileConfiguration.get("rank." + nomeDoJogador); fileConfiguration.set(String.format("rank.%s.%d", nomeDoJogador, valorAnterior + 1));   Beleza, ai no /mito rank você pega esses dados armazenados e ordena.   final FileConfiguration fc = getConfig(); // Eu to usando a config, mas tu pode usar outro arquivo. final Map<String, Integer> rank = new HashMap<>(); for (String k : fc.getConfigurationSection("rank").getKeys(true)) { rank.put(k, fc.getInt("rank." + k)); } List<Map.Entry<String, Integer>> list = new ArrayList<>( rank.entrySet() ); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); for (Map.Entry<String, Integer> entry : list) { player.sendMessage(entry.getKey() + ": " + entry.getValue()); } Seria legal fazer um cache disso, pra não ficar fazendo isso toda hora, mas vai da sua escolha.   A arquivo ficaria assim   rank:     player1: 2     player2: 1     player3: 4     player4: 22     player5: 7
×
×
  • Criar Novo...