Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''nms''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Comunidade
    • Informações Importantes
    • Anúncios
    • Membros
    • Lista negra
    • Eventos
  • Minecraft
    • Seu servidor hospedado no lugar certo!
    • Servidores
    • Construções
    • Plugins
    • Skripts
    • Serviços
    • Geral
  • FiveM
    • Servidores
    • Desenvolvimento
    • Serviços
    • Outros
  • Programação
    • Geral
    • Java
    • Web & Desktop
    • Discord
    • Servidores dedicados para grandes projetos.
  • Sistemas operacionais
    • Windows
    • Linux
    • Celular
  • Fóruns
    • Invision Power Services (IPS)
    • XenForo
    • Legacy IPB
    • Outros
  • Design
    • Pedidos
    • Dúvidas
    • Exposição
    • Tutoriais
    • Recursos
  • Jornalismo
    • Notícias
    • Entrevistas
    • Eventos
    • Outros
  • Jogos
    • Geral
    • Novidades
    • Tutoriais
    • Gêneros
    • Outros Jogos
  • Outros
    • Tutoriais Gerais
    • Mercado
    • Assuntos diversos
    • Barzinho
    • Arquivos

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Discord


Instagram


X (Ex-Twitter)


WhatsApp


GitHub


Localização


Nick do Minecraft

Encontrado 1 registro

  1. NMS é a abreviação do pacote net.minecraft.server. Neste pacote estão as classes responsáveis pelo servidor e pela conexão entre o jogador e o servidor. É possível fazer várias coisas utilizando NMS, como enviar packets para jogadores, criar entidades customizadas, otimização no código, etc. Os packets são classes que contêm dados sobre o que está acontencendo no servidor. É a partir dessas classes que o servidor sabe quando um jogador mata um porco. Mas como você pode mandar seus próprios packets para um jogador? Acessando este link você verá todos os packets disponíveis atualmente. Irei dar um exemplo com o packet PacketPlayOutTitle, que é usado para enviar títulos e subtítulos. // A leitura pode ficar ficar um pouco comprometida com as barras invertidas: // {"text": "Tutorial NMS"} IChatBaseComponent titleText = ChatSerializer.a("{\"text\": \"Tutorial NMS\"}"); // Aqui estamos criando um novo packet, nota-se que esta classe tem vários construtores // Parâmetros: // EnumTitleAction - Tipo de título que será enviado (TITLE, SUBTITLE, etc) // titleText - // 20 - Tempo que o título levará para aparecer (em ticks) // 15 - Tempo que o título ficará na tela (em ticks) // 10 - Tempo que o título levará para sumir completamente (em ticks) PacketPlayOutTitle packet = new PacketPlayOutTitle(EnumTitleAction.TITLE, titleText, 20, 15, 10); Packet criado, mas como enviar ele para o jogador? Nós iremos utilizar o método CraftPlayer#getHandle(); CraftPlayer, é uma classe que implementa Player. Esta classe funciona como um intermediador entre o Bukkit e o EntityPlayer(do NMS). Então o que o método getHandle faz é retornar a classe EntityPlayer, desta maneira podemos acessar diretamente o PlayerConnection(conexão do jogador com o servidor) e enviar o packet: // Transformamos a classe player em EntityPlayer atráves // do método getHandle() EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); // Depois basta acessar o playerConnection e enviar o packet entityPlayer.playerConnection.sendPacket(packet); Apesar do NMS aparentar ser extremamente útil, existe um pequeno problema que o torna um pouco inviável. A compatibilidade. O que isso quer dizer? A cada versão do minecraft, o pacote do NMS é alterado: net.minecraft.server.v1_8_R3 [1.8.8] net.minecraft.server.v1_9_R2 [1.9.4] Existe algumas maneiras de burlar esse problema de incompatibildade, como utilizando reflection ou abstração. Mas eu não irei focar nisso por enquanto, pois não é o objetivo desse tópico em questão. Este tutorial foi apenas para introduzir o NMS para aqueles que não conheciam. Mais para frente eu irei fazer tutoriais mais avançados. Vale lembrar que se você utiliza maven, para ter acesso às classes do NMS e do CraftBukkit você terá que utilizar o BuildTools para trabalhar com as classes em seu repositório local.
×
×
  • Criar Novo...