Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
PT-BR - Spigot Plugin para Minecraft Edição Java
Highest Rated
Rating: 5.0 out of 5(10 ratings)
52 students

PT-BR - Spigot Plugin para Minecraft Edição Java

O maior curso de plugins de Minecraft do Brasil
Last updated 6/2025
Portuguese

What you'll learn

  • Baixar e instalar Minecraft original no computador
  • Criar um projeto de plugin de Minecraft no IntellijIDEA
  • O aluno aprenderá detalhadamente a parte de código utilizado na api do Bukkit e Spigot
  • Aprenderá criar um plugin completo
  • Verá como é possível usar um outro plugin como dependência do seu

Course content

1 section56 lectures21h 48m total length
  • 00 - Introdução, baixando e instalando o jogo48:17

    Nesta aula, faço uma introdução básica do curso, ensino a baixar e instalar o cliente do Minecraft, e o servidor oficial vanilla; além de falar sobre a diferença entre vanilla, craftbukkit, spigot e paper.

  • 01 - Instalando Optifine, Git e BuildTools para obter o Spigot, Instalando Paper34:35

    Aqui, instalamos o mod optifine para melhor desempenho ao executar o jogo, instalamos também o Git e obtemos o Spigot através de sua BuildTools; por fim baixamos e configuramos o paper para ser o servidor de desenvolvimento definitivo até o final do curso.

  • 02 - Baixando e instalando a IDE IntellijIDEA, configurando um projeto de plugin34:44

    Mostro nessa aula como escolher, baixar e instalar a melhor IDE para desenvolver em Java, além de mostrar como configurar do zero, o projeto de um plugin spigot, utilizando sua api servidor.

  • 03 - Substituição da dependência para api disponibilizada, Spigot API shaded38:08

    Começamos aqui a ver mais detalhadamente as instruções que podemos usar para programar nosso primeiro plugin.

  • 04 - Aprendendo sobre Player, Entity e eventos33:23

    Nesta aula aprendemos sobre Player, Entity e eventos como: PlayerJoinEvent e BlockBreakEvent.

  • 05 - Discord presence no IntellijIDEA, Player Inventory, ItemStack32:07

    Nesta aula apresento o inventário do player e pilha de itens, além de instalarmos um plugin do IntellijIDEA que possibilita apresentar a atividade da IDE no discord.

  • 06 - Apresentando os comandos do Minecraft, criando um comando personalizado37:27

    Apresento comandos do Minecraft, implementamos CommandExecutor para criarmos um comando personalizado; definimos que nosso comando irá localizar baús.

  • 07 - Chunks e BlockState; javadoc da API Spigot30:14

    Nesta aula vimos o básico de chunks, blockstate, e aprendemos como podemos utilizar a documentação do Spigot API quando temos dúvida sobre os objetos Java, Interfaces, Sub Interfaces e outros.

  • 08 - Argumentos em comandos, filtrar Blockstate através do Material do bloco.35:52

    Nesta aula mostro como utilizar comandos com argumentos, lógica e solução de problemas que podem aparecer no código.

  • 09 - Completar comando com dado predefinido apertando TAB16:22

    Vemos sobre a Interface TabCompleter, para nos auxiliar nos argumentos de nossos comando.

  • 10 - Relacionamento entre objetos, herança e polimorfismo22:49

    Nesta aula é apresentado como podemos  identificar um BlockState como sendo um Chest através do polimorfismo, expliquei também que uma interface pode estender outras interfaces sem problemas, mas não é permitido que uma interface implemente uma outra interface.

  • 11 - Filtrando baús, comparando os baús cheios e mais próximos do jogador12:14

    Concluímos nesta aula a filtragem de Chests entre BlockStates, além de filtrar para que o comando retorne apenas a localização de baús, e a prioridade é manter a localização de baús não vazios e mais próximos do jogador, fizemos isso usando a ordenação da lista comparando o conteúdo do inventário do baú (vazio ou não) e comparando com a distancia do baú até o jogador.

  • 12 - Ajuste do Complete conforme as letras digitadas no argumento19:19

    Fazemos aqui alguns ajustes para nosso comando, dessa forma o complete retornará as opções de acordo com as letras que estamos digitando para esse argumento.

  • 13 - Introdução a arquivo de configuração36:54

    Nesta aula, apresento o arquivo de configuração config.yml do nosso PrimeiroPlugin, além de falar sobre algumas regras para definição dos dados no arquivo YAML.

  • 14 - Placeholder; e apelido para comandos (Aliases)8:08

    Aqui, mostro como podemos criar um placeholder o qual irá armazenar um dado variável, podemos utilizar esse dado nas mensagens do plugin; criamos um apelido para nosso comando chestlocate.

  • 15 - Serialização, gravar um objeto e seu estado em forma de String no arquivo.20:00

    Nesta vídeo-aula, serializamos alguns objetos no arquivo config.yml, posteriormente desserializamos e adicionamos os objetos ao inventário do jogador.

  • 16 - Como criar arquivos de configuração personalizados15:21

    Nesta aula, mostro-lhes como criar pastas e arquivos para serem utilizados no nosso plugin, utilizando código Java.

  • 17 - Arquivos de configuração personalizados para nosso PrimeiroPlugin17:05

    Nesta vídeo-aula, fizemos de nossos arquivos e pastas personalizados, arquivos de configuração do nosso spigot plugin PrimeiroPlugin, além de implementarmos uma lógica simples para alternar o idioma do plugin em suas mensagens.

  • 18 - Tradução das mensagens do plugin10:18

    Nesta aula, vimos como usar diferentes arquivos de configuração para disponibilizar mensagens em diferentes idiomas no plugin.

  • 19 - Comando reload para recarregar o plugin e seus arquivos de configuração10:41

    Aqui, aprendemos que não é preciso recarregar o servidor todo para que mudanças no nosso plugin entrem em vigor, então criamos um comando reload o qual recarrega os arquivos do plugin.

  • 20 - Introdução a permissões18:36

    Vimos que as vezes não queremos dar para todos os jogadores todas permissões, então fizemos uma introdução sobre como validar se determinado jogador tem a permissão necessária para fazer algo, vimos também como adicionar tal permissão ao jogador.

  • 21 - Criando grupos, e atribuindo permissões para jogadores41:14

    Nesta aula aprendemos como as permissões são atribuídas aos jogadores através do PermissionAttachment, fizemos nosso próprio plugin de permissões, para adicionar ou remover permissões através do arquivo de permissões o qual criamos com CustomConfig.

  • 22 - Definir permissões e jogadores usando comandos36:36

    Renomeamos a classe Reload para Commands e adicionamos dois novos comandos ao prefixo pp, definir jogadores para o grupo dado e definir permissões para o mesmo; tarefa do aluno é implementar tabcomplete para estes comandos, testá-lo e descobrir possíveis erros, como por exemplo: argumento nulo, e corrigi-lo, além de criar as devidas mensagens nos arquivos de localization.

  • 23 - Instalação de um plugin de permissões16:16

    Nesta aula baixamos e instalamos o LuckPerms, este plugin de permissões amplamente utilizado pela comunidade bukkit/spigot, vimos como criar grupos, permissões e adicioná-los aos jogadores.

  • 24 - Scoreboard e Teams12:33

    Aqui, mostro-lhes como utilizar o Scoreboard e Teams, para exibir informações de estatísticas dos jogadores no tablist e sidebar.

  • 25 - Runnable e Sidebar com Scoreboard personalizado30:12

    Nesta aula mostro o funcionamento de uma BukkitRunnable para criarmos um sidebar que atualiza os dados em um período de tempo fixo.

  • 26 - As 15 Entradas no Sidebar com Teams26:25

    Nesta aula criamos um loop for para inserir todas as linhas no Sidebar, e definimos um tipo de dado para cada uma delas a serem exibidos no Scoreboard do jogador.

  • 27 - Definindo entradas do sidebar no arquivo de configuração16:29

    Nesta aula mostro como criar um arquivo para nele passarmos os dados que queremos mostrar no scoreboard do player no display sidebar; criação de placeholders para nosso plugin.

  • 28 - Usando 2 clientes Minecraft simultaneamente15:52

    Aprendemos fazer a instalação do java 8 e do Tlauncher, para ser possível abrir mais de uma instância do Minecraft ao mesmo tempo, isso vai nos ajudar a desenvolver e depurar nosso código de forma mais precisa.

  • 29 - Atualizando os dados no Sidebar para todos os jogadores26:38

    Nesta aula, fizemos uma melhoria ao rodarmos apenas 1 tarefa (BukkitRunnable) para atualizar os dados dos sidebars em todos os scoreboards de todos os jogadores online.

  • 30 - Usando PlaceholderAPI para configurar o Sidebar; criando um placeholder.27:19

    Aqui, mostro como usar o PlaceholderAPI para buscarmos dados relacionados aos jogadores ou não, também aprendemos como criar um placeholder personalizado, o qual retornará um dado específico quando requerido.

  • 31 - Implementando o nosso placeholder da lua45:48

    Nesta aula, complementamos nosso placeholder personalizado o qual exibe a fase da lua no mundo atual do jogador.

  • 32 - Exibindo ping do jogador no Tablist17:37

    Nesta aula, criamos um objetivo o qual irá armazenar a latência do jogador no Tablist de todos os jogadores, sendo possível ver o ping de todos os jogadores que estão no servidor.

  • 33 - Introdução ao Writer para escrever nos arquivos18:23

    Aqui, aprendemos como utilizar um Writer e escrever nos arquivos .yml do nosso plugin, passando para o writer o conteúdo em string e configurando para a codificação UTF-8.

  • 34 - Método para facilitar a cópia de conteúdo entre arquivos22:11

    Nesta aula criamos um método para facilitar a cópia do conteúdo de arquivos no projeto para os arquivos .yml do nosso plugin no servidor.

  • 35 - Criando arquivos de configuração dinamicamente7:03

    Aqui, melhoramos o método responsável pela criação e escrita de arquivos utilizando um vetor.

  • 36 - Sistema de proteção de baús - PARTE 133:03

    Nesta aula mostro como restringir de outros jogadores o acesso a seus baús, gravando em arquivo as informações dos mesmos.

  • 37 - Continuação do sistema de proteção de baús; corrigindo algumas coisas31:54

    Continuamos aqui com a segunda parte o sistema de proteção de baús, fizemos algumas correções e alterações no código baseado na convenção Java.

  • 38 - Classe Protection para representar nossa proteção31:38

    Aqui mostro como utilizar uma classe para representar nosso objeto proteção, podendo assim criar os atributos que quisermos e serializar esses objetos para quando reiniciarmos o servidor sermos capazes de recuperá-los.

  • 39 - Dar permissão de acesso às proteções para outros jogadores41:44

    Estamos implementado a lógica para permitir dar acesso às nossas proteções para outro jogadores de nossa confiança e tratar possíveis erros e exceções.

  • 40 - Usar a proteção em todos os contêineres19:34

    Nesta aula explico como aplicar nossa proteção não apenas em baús, mas em todos os blocos que forem um contêiner.

  • 41 - Remover permissão de acesso às proteções21:16

    Aqui mostro como podemos revogar a permissão de um jogador em nossa proteção.

  • 42 - Atualizando nosso ambiente de desenvolvimento13:44

    Nesta aula mostro como atualizar as versões do cliente e servidor de Minecraft além de baixarmos a api do spigot na versão mais recente e utilizá-la como dependência.

  • 43 - Baixando e instalando optifine e shaders no Minecraft alternativo15:12

    Aqui vimos como baixar e instalar optifine e shaders no Minecraft.

  • 44 - Desafio do aluno para proteção de contêiners11:06

    Desafio do aluno é implementar uma adição ao sistema e proteção de contêiners à evitar que seja possível a extração de itens desde o contêiner para um funil e assim previnir o furto de itens por jogadores mau-intencionados.

  • 45 - Introdução à hologramas11:40

    Aqui vemos como usar o spawn de entidade para criar um holograma.

  • 46 - Comando sethologram para gerar holograma na localização fornecida.19:00

    Nesta aula, mostro como usar comando para criar um holograma personalizado na coordenada fornecida pelo jogador.

  • 47 - Introdução à título12:24

    Apresento nessa aula os títulos; mensagens grandes na tela do jogador, consiste em título e subtítulo, os quais podem enviar informações para os jogadores que estão online.

  • 48 - Título para boas vindas ao servidor24:27

    Nesta vídeo aula mostro como manipular o título e criar uma mensagem de boas vindas para todos que entrarem no servidor.

  • 49 - Criando projeto com Maven20:50

    Nesta vídeo aula criamos um projeto de plugin utilizando o gerenciador de dependência Apache Maven.

  • 50 - Configurando o plugin maven-shade16:48

    Dicas sobre como utilizar plugins no maven a fim de dar um build no projeto e criar o artefato contendo as dependências ou não.

  • 51 - Criando projeto com Gradle10:36

    Nesta vídeo aula criamos um projeto de plugin utilizando o gerenciador de dependência Gradle, o qual eu recomendo usar em seus projetos Java.

  • 52 - Configurando o plugin gradle shadowJar13:28

    Como utilizar o plugin shadowJar para fazer um build no projeto criando um artefato que contém as dependências, alterar nome do artefato, alterar local de saída do artefato.

  • 53 - Introdução à ofuscação de código Java com Proguard27:55

    Nesta aula vamos ter uma introdução de como é feita a ofuscação de código, para dificultar o processo de engenharia reversa.

  • 54 - Mais opções de ofuscação de código Java com Proguard30:19

    Nesta aula exploramos mais opções do proguard.

  • 55 - Dica para geração de strings usadas na ofuscação com Proguard8:53

    Nesta aula você vai aprender uma dica de como usar caracteres de outros alfabetos para que seja possível gerarmos arquivos ofuscados com o "mesmo" nome, bem como nomes de classes, métodos, campos e pacotes "idênticos".

Requirements

  • Saber o básico de linguagem de programação Java
  • Usar um computador com no mínimo 8GB de memória ram
  • Ter acesso a internet no computador

Description

Neste curso de criação de plugins de Minecraft Java edition, explico desde a mais básica tarefa de como instalar o jogo, até como depurar o servidor de Minecraft, usar maven e/ou gradle, git e github; o aluno aprenderá passo à passo e detalhadamente todos os procedimentos para se criar um plugin de Minecraft completo, com banco de dados, arquivos de configuração, comandos, permissões, etc; além de aprender toda a parte relacionada à api do Bukkit/Spigot, aqueles mais iniciantes não terão muitos problemas pois é explicado também a parte da linguagem de programação Java, relacionamento entre objetos, interfaces, banco de dados, os porquês serão respondidos conforme forem aparecendo. Disponibilizo um servidor do discord dedicado ao saneamento de dúvidas, críticas, sugestões e ajuda.

Requisitos mínimos:

  • Saber o básico da linguagem Java

  • Ter acesso a internet no computador durante o curso

  • É recomendado utilizar um computador com no mínimo 8GB de memória ram

  • Ter ou adquirir o jogo Minecraft Java Edition

Ao término do curso o aluno estará apto a criar seus próprios plugins e além disso não terá dificuldade em manter ou estender outros plugins; poderá solicitar uma prova prática onde eu irei esboçar um projeto, o qual o aluno implementará com o conhecimento adquirido no curso. (Opcional)

Who this course is for:

  • Àqueles que gostam de estudar, tem vontade de aprender, perseverança, não desistem facilmente
  • Para quem quer personalizar a experiência de jogo, ao jogar num servidor de Minecraft com amigos