1.7.10 NPB's Utility 0.0.10-SNAPSHOT

~imagine aqui algum slogan empolgante~

Watchers:
This resource is being watched by 1 user.
  1. Foxx Games
    Versão do Minecraft:
    Testado: 1.7.10; 1.10.2
    NPB's Utility é um pequeno plugin que estou desenvolvendo com o intuito de apenas aprender Bukkit, mas acabei gostando do resultado e resolvi trazer pra ca. Ele adiciona alguns poucos comandos para administradores (op) e um sistema de airdrops, estou constantemente expandindo ele.

    Comandos:
    /explodir: Explode o jogador alvo.

    Sintaxe: /explodir <nick> <mostrar|ocultar> <motivo>
    EX: /explodir NathanPB mostrar trosha
    Na parte <mostrar|ocultar> é definido se o motivo (obviamente, digitado em motivo) vai aparecer no chat do jogo publicamente ou não. Mesmo se for marcado como ocultar, vai aparecer no console e nos logs do servidor.

    /fome: Altera os valores da barra de fome do jogador alvo.
    Sintaxe: /fome <nick> <diminuir|definir|adicionar> <quantidade>
    EX: /fome NathanPB adicionar 10
    Isso vai adicionar 10 pontos de fome ao meu jogador (5 coxinhas). Pode-se usar:
    • Adicionar: Adiciona o valor de fome
    • Definir: Define o valor de fome
    • Diminuir: Diminui o valor de fome
    /saude: Funciona EXATAMENTE da mesma forma do comando acima, desnecessário explicar.

    /espiar: O mais útil, mas também mais complicado de fazer. Este comando permite "espionar" o jogador alvo.
    Sintaxe: /espiar <nick | ~voltar>
    EX: /espiar NathanPB
    Quando se "espia" alguém, você é teleporado para o jogador em que quer espiar, fica invisível (incluindo no TAB), não pode pegar itens do chão e pode voar. Para parar de espiar alguém, digite /espiar ~voltar e será teleportado novamente para o lugar em que estava quando começou a espiar, e perde todas as hábilidades que se tem quando está espiando alguém.

    /airdrop: Permite sumonar um airdrop na sua localização com o argumento "summon" ou pegar uma Flare com o argumento "getFlare". Este comando é para DEBUG, provavelmente ele não é definitivo.

    /npbsregister: Comando usado para administrar o NPBsRegister (ferramenta que registra informações dos jogadores, feita por mim).
    Sintaxe: /npbsregister <refresh|load> <nick>

    • EX: /npbsregister load NathanPB
      • Carrega as informações do jogador NathanPB (eu), pode ser utilizado mesmo com o jogador offline, mas ele precisa ter entrado no servidor ao menos uma vez para que o plugin possa registra-lo.
    • EX: /npbsregister refresh NathanPB
      • Atualiza as informações do jogador NathanPB (eu), só pode ser usado se o jogador estiver online.
    Recursos:
    Airdrop: Airdrops são baús que "caem do céu", podem ser sumonados usando uma Flare ou por comandos. Eles contém loots semi-aleatórios, são inspirados nos airdrops do jogo Rust (legacy, por favor).

    NPBsRegister: Ferramenta que registra informações básicas e comandos lançados pelo jogador, o registro é feito para todos os players do servidor. Informações como UUID, tempo jogado ou coisas assim podem ser carregadas ingame, já logger de comandos precisa ser abrindo o arquivo.
    (/NPBsRegister/<nick>/cmdlogger.npb)


    Bugs conhecidos:

    NENHUM :grin:

    Planos para o plugin:

    • Implementar uma forma de poder atravessar paredes quando estiver no modo espião (na 1.7 não tem /gamemode 3);
    • Corrigir todos os bugs conhecidos;
    • Implementar novas funções (deixem sugestões, por favor).
    Versões do CraftBukkit compativeis:
    Testado em:
    • 1.7.10-R0.1-20140808.005431-8
    • 1.10.2-8e5e90d
    Desenvolvido em:
    • 1.7.10-R0.1-20140817.175650-8
    Agradeço ao @Heyzeer0, @lucaszainko e @natan12_ por me ajudarem em algumas partes, e ao @kakeenho por me deixar testar (explodir) no personagem dele :grin:

    Source:
    Tem uma pequena coisinha me empedindo de postar no Github:
    [​IMG]
    Então vou enviar os arquivos mesmo: NPBUtility - SOURCE - Google Drive
    kakeenho, TheKingBR e Prime curtiram isso.

Atualizações Recentes

  1. I'm beck
  2. Quase sem bugs
  3. Correção de erros
  1. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Código (Forge Crash):
    public static boolean find(String name, String[] array){
    for(int i = 0; i < array.lenght; i++){
    if(array[i] == name){
    return true;
    }
    return false;
    }
    Não estou usando hashmaps pra guardar os nicknames, e sim uma array
     

  2. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    esse código não funciona muito bem, para qualquer coisa não-primitiva tem que usar o .equals()

    Código (Java):

    public static boolean find(String name, String[] array){
    for(int i = 0; i < array.lenght; i++){
    if(array[i] != null && array[i].equals(name)){
    return true;
    }
    return false;
    }

     
    E usar mapas vai ser bem mais fácil que ficar usando arrays diretamente
     
  3. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    A uns dias atrás eu tentei fazer esse sistema com hashmaps, o resultado foi uma tarde perdida e o sistema nem perto de funcionar, algum outro dia eu tento aprender a mexer com isso novamente. Quando ao .equals(), quando eu escrevi isso tava me perguntando qual deveria usar, achei que não tinha muita diferença :p
     

  4. Cael
    Offline

    Cael Veterano Veterano VIP Sabotador.com

    Afiliado:
    Setembro 8, 2014
    Mensagens:
    945
    Sexo:
    Masculino
    Avaliações:
    +1,241 / -45
    Apelido no Minecraft:
    Cael
    Código (Java):

    public static boolean find(String name, String[] array){
       for(int i = 0; i < array.lenght; i++){
         return array[i].equals(name) ? true : false;
       }
    }
     
     
    • Útil Útil x 1
  5. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    Pra qualquer coisa que não seja primitivo (byte, char, short, int, float, long, double ou boolean), o "==" testa se ponta para o mesmo local na memória (se são o mesmo objeto), então
    Código (Java):

    System.out.println("abcde" == "abcde");
     
    printa "false". Pra objeto é melhor usar o .equals()
    --- Post duplo mesclado, Novembro 19, 2016 ---
    Código (Java):

    find("a", new String[]{null, null, "a"});
     
    NullPointerException
     
    • Informativo Informativo x 1
  6. Cael
    Offline

    Cael Veterano Veterano VIP Sabotador.com

    Afiliado:
    Setembro 8, 2014
    Mensagens:
    945
    Sexo:
    Masculino
    Avaliações:
    +1,241 / -45
    Apelido no Minecraft:
    Cael
    Código (Java):

    public static boolean find(String name, String[] array){
       for(int i = 0; i < array.lenght; i++){
         return array[i] != null ? array[i].equals(name) ? true : false;
       }
    }
     
    não sei se funciona em java, mas em lua funciona :v
     
    • Informativo Informativo x 1
  7. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Isso vai retornar false logo na primeira tentativa, se name não estiver lá, não vai percorrer todas as posições da array até encontrar
     

  8. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    em java nem compila (ta faltando um ": <qualquer coisa>" no final)
     
  9. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Bug resolvido, ficou assim:
    Código (Forge Crash):
    public static boolean isHere(String name, String[] array){
            for(int i = 0; i < array.length; i++){
                if(array[i] != null){
                    if(array[i].contains(name)){
                        return true;
                    }
                }
            }
            return false;
        }
     

  10. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    Código (Java):

    System.out.println(isHere("a", new String[]{"cba", "abc"}));
     
    Ainda não vai dar
     
  11. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Funciona perfeitamente .-.
     

  12. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    Se tiver 2 players, um chamado "a" e outro "ab", se tiver "ab" no array e testar se tem o "a" la, vai retornar true esse seu codigo
     
  13. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Eu tentei gravar um vídeo pra mostrar na prática como o problema não existe (ou ao menos não aparece), mas o gravador deu pau com o cinnamon. Em fim tentei de várias maneiras, com várias ordens diferentes e não apareceu nenhum problema :p
     

  14. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    Aqui:

    Código (Java):

    public class Main
    {
        static boolean find(String name, String... array)
        {
            for(String s : array)
            {
                if(s != null && s.contains(name))
                {
                    System.out.println("Encontrado em \"" + s + "\"");
                    return true;
                }
            }
            return false;
        }
       
        public static void main(String[] args)
        {
            System.out.println(find("a", "aaa", "bba"));
        }
    }
     
    ele printa

    Código (Forge Crash):

    Encontrado em "aaa"
    true
     
     
  15. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Foxx Games atualizou NPB's Utility com uma nova versão:

    Correção de erros

    Leia mais sobre esta atualização...
    --- Post duplo mesclado, Novembro 19, 2016, Data da postagem original Novembro 19, 2016 ---
    Cara, teimo em dizer que funciona :p Aqui ta pegando perfeitamente
    [​IMG]

    [​IMG]
    [​IMG]
    [​IMG]
     

  16. StupPlayer
    Offline

    StupPlayer Membro Ativo VIP Industrial

    Afiliado:
    Outubro 17, 2015
    Mensagens:
    549
    Sexo:
    Masculino
    Avaliações:
    +413 / -12
    Apelido no Minecraft:
    StupPlayer
    coloca equals em vez de contains?
     
    • Vencedor Vencedor x 1
  17. natan12_
    Offline

    natan12_ Membro Conhecido VIP Industrial

    Afiliado:
    Fevereiro 22, 2014
    Mensagens:
    981
    Sexo:
    Masculino
    Avaliações:
    +335 / -0
    Apelido no Minecraft:
    natan12_
    tenta checar por "Jog", deveria retornar false, mas vai retornar true
    --- Post duplo mesclado, Novembro 19, 2016 ---
    é o que eu falei pra ele, isso ai é só pra mostrar que o .contains() pode dar falsos positivos
     
    • Útil Útil x 1
  18. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Não tinha visto essa parte :/ Achei que você tava viajando mesmo, acabou que eu tava (fale logo que o problema era o .contains() e.e) .-.
     

  19. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Foxx Games atualizou NPB's Utility com uma nova versão:

    Quase sem bugs

    Leia mais sobre esta atualização...
     

  20. Foxx Games
    Offline

    Foxx Games Membro Conhecido Resource Owner VIP Industrial

    Afiliado:
    Abril 30, 2014
    Mensagens:
    1,146
    Sexo:
    Masculino
    Avaliações:
    +728 / -0
    Apelido no Minecraft:
    NathanPB
    Foxx Games atualizou NPB's Utility com uma nova versão:

    I'm beck

    Leia mais sobre esta atualização...