Ir para conteúdo

[Tutorial] - Criando seu plugin #1: Eventos


_Arkasher

Postagens Recomendadas

Olá pessoas,tudo beleza? Bem,vi que essa área é bem desanimada,apesar de ser uma área que pode ajudar muita gente...

 

 

Bem,não sou muito bom em explicar,mais vou tentar! =)

 

 

Observação > Eu vou usar o NETBEANS como Plataforma.

Observação 2 > Editei as prints com o paint kkkkk

 

De que precisa para iniciar o desenvolvimento?

 

1 - NetBeans ou Eclipse (Eu sugiro Eclipse,apesar de eu usar NetBeans,pois acho mais simples)

Links >

NetBeans: https://netbeans.org/downloads/index.html

Eclipse: https://www.eclipse.org/downloads/

 

2 - craftbukkit ou Spigot (Sugiro Spigot,pois possui algumas correções de Bugs)

Links >

Spigot/craftbukkit: https://getspigot.org/

 

 

Após ter baixado os programas,você irá abrir a plataforma de sua escolha (*ESTOU USANDO NETBEANS COMO PLATAFORMA*)

 

Após ter aberto,você irá procurar na parte superior esquerda,uma pasta amarela,ou pode apertar CTRL+SHIFT+N para criar um novo projeto.

 

Print > http://prntscr.com/aeaqno

 

Logo em seguida,Irá clicar em Java > Aplicação java > e dar Próximo.

 

Irá aparecer uma tela,no qual você deverá colocar o nome de seu projeto e clicar em finalizar. No meu caso,coloquei "Tutorial".

 

Print > http://prntscr.com/aearlq

 

Após ter feito isso,seu projeto estará criado,agora nós temos que adicionar a API na lib(biblioteca) do projeto.

 

Você vai ter que clicar em seu projeto (onde está o +), e clicar com o botão direito em "Bibliotecas".

 

Print > http://prntscr.com/aeat3m

 

Logo em seguida,clique em "Adicionar JAR/Pasta", e irá abrir uma interface. Nesta interface,você irá procurar onde está o seu Spigot/craftbukkit, e clicar em "Abrir" no canto inferior direito da interface.

 

 

Feito isso,estamos prontos para começar o desenvolvimento do plugin =)

 

Procure por > 

public class Tutorial {

Em sua classe,(lembrando que "Tutorial" é o nome da CLASSE) e deixe assim > 

public class Tutorial extends JavaPlugin implements Listener {

Na classe de seu plugin(lembrando que no eclipse você tem que criar a classe,no netbeans ele cria automaticamente),você irá colocar o seguinte código:

public void onEnable() {

}

public void onDisable() {

}

Lembrando que,ele precisa estar entre os chaves principais da classe,para explicar melhor,vai umas prints.

 

Print 1 > http://prntscr.com/aeayf1

 

Print 2 > http://prntscr.com/aeaykd

 

Print 3 > http://prntscr.com/aeaypa

 

 

Bem,agora vou explicar o que é "onEnable" e "onDisable".

 

 

Bem,o onEnable,ele serve para indicar quando o plugin foi ativado,fazendo assim,você registrar eventos,comandos e entre outras coisas :)

 

Já o onDisable,ele serve para indicar quando o plugin foi desativado.

 

 

 

Muito bem,então vamos enviar uma mensagem para o "Console" para indicar quando o plugin foi ativado ou desativado? =)

 

Nós iremos colocar o seguinte código no onEnable:

Bukkit.getConsoleSender().sendMessage("§3[§aTutorial§3] §6> §fPlugin habilitado com sucesso!");

Observação > A Mensagem que está entre os "" você coloca de acordo com sua escolha. para fazer o símbolo "§",você precisa apertar:

CTRL+ALT+ +.

 

Observação 2 > O § é usado para fazer cores (Se colocar "&" não irá funcionar)!

 

Observação 3 > Não é obrigado a enviar a mensagem,então se não quiser,apenas não coloque isso.

 

Print > http://prntscr.com/aeb24p

 

Veja que há uma linha vermelha sublinhada, isso é porque nós não importamos o Bukkit. Então como resolvo isso?

Para resolver,você pode clicar na lâmpada com um X ao lado da linha e clicar em "Adicionar importação para org.bukkit.Bukkit"

 

Print > http://prntscr.com/aeb3cc

 

 

Agora,como vocês viram no titulo do tópico,neste tutorial,vou ensinar a usarem um Evento! (Não é evento gladiador,e os outros que vocês conhecem.)

 

Então,nós vamos colocar o seguinte código (Fora dos chaves do onEnable e onDisable e dentro dos chaves principais da classe)

Vamos setar a mensagem de entrada:

@EventHandler
public void onJoin(PlayerJoinEvent e) {

}

Da mesma forma que adicionamos as importações do Bukkit,iremos adicionar o do @EventHandler e o do PlayerJoinEvent

 

Print > http://prntscr.com/aeb65c

 

Explicando para que serve o @EventHandler.

Bem,basicamente,ele faz o seu evento funcionar,se não colocar ele acima de seu evento,o evento não irá funcionar. E ele também serve para avisar ao plugin que esse "Método" é um evento.

 

No "public void onJoin", em onJoin,você pode colocar QUALQUER coisa. Apenas coloquei onJoin para facilitar o entendimento.

Em "PlayerJoinEvent e",onde está "e" você também pode colocar qualquer coisa.

 

 

Agora,entre os chaves do onJoin,nós vamos editar a mensagem de quando o player entra no servidor.

 

Coloque assim >

e.setJoinMessage(null);
Bukkit.broadcastMessage("§4§l[§a§l+§4§l] §f"+e.getPlayer().getName());

Irá ficar assim > 

@EventHandler
    public void onJoin(PlayerJoinEvent e) {
     e.setJoinMessage(null);
     Bukkit.broadcastMessage("§4§l[§a§l+§4§l] §f"+e.getPlayer().getName());
    }

Explicando:

 

O e.setJoinMessage(null), ele cancela a mensagem de JOIN. Você também poderia colocar assim ao invés de null >

e.setJoinMessage("§4§l[§a§l+§4§l] §f"+e.getPlayer().getName());

e remover o Bukkit.broadcastMessage,porém eu prefiro fazer do jeito que mostrei mesmo.

 

Mas... Para que serve o "Bukkit.broadcastMessage("§4§l[§a§l+§4§l] §f"+e.getPlayer().getName());"?

 

Bem,ele serve para enviar uma mensagem global para o servidor.

Onde está > 

"§4§l[§a§l+§4§l] §f"

É a mensagem que irá enviar,lembrando que ela precisa estar entre as aspas.

 

Onde está > 

e.getPlayer().getName()

Isso serve para identificar o nick do jogador que entrou. 

Observação > Onde está "e".getPlayer,o "e" é o que você definiu no

public void onJoin(PlayerJoinEvent <o que você definiu aqui>) {

 

Onde está o + (Aqui > "§4§l[§a§l+§4§l] §f"   +    e.getPlayer().getName()) ele serve para você "Juntar" as mensagens e formar uma só.

 

Agora,nós vamos setar a mensagem de saída:

 

Coloque o seguinte código >

@EventHandler
    public void onQuit(PlayerQuitEvent e) {
     e.setQuitMessage(null);
     Bukkit.broadcastMessage("§4§l[§a§l-§4§l] §f"+e.getPlayer().getName());
    }

Observação > Lembre-se de colocar fora dos chaves do PlayerJoinEvent.

 

Adicione apenas a importação do PlayerQuitEvent,pois o @EventHandler já está importado.

 

Explicando >

 

Em "e.setQuitMessage(null);",é a mesma coisa do setJoinMessage,só que ao invés de setar a mensagem de entrada como nula,estamos setando a mensagem de saída como nula.

 

 

Feito isso,as suas mensagens de entrada e saída estão prontas!

Mas agora,precisamos registrar o evento,para que funcione!

 

Isso é simples,apenas vá no onEnable() e entre os chaves dele,coloque o seguinte código:

Bukkit.getPluginManager().registerEvents(this, this);

Print > http://prntscr.com/aebefe

 

 

 

Bem,então nossa classe está pronta.

 

Print > http://prntscr.com/aebev8

 

 

Agora,vamos para o MAIS importante! Vamos criar nossa plugin.yml.

 

Mais o que é essa plugin.yml? Bem,ela é o principal de nosso plugin,sem ela o plugin não funciona. Nela nós declaramos o nome do plugin,classe principal e os comandos (Como esse plugin que criamos não possui comandos,não vamos declarar nenhum comando).

 

Para cria-la,vamos em > Menu iniciar > Documentos > NetBeansProjects

 

Em "NetBeansProjects",você irá procurar a pasta no qual está o nome de seu plugin

 

Print > http://prntscr.com/aebgqz

 

Agora,clique em "src". Após entrar na pasta src,clique com o botão direito em um lugar vazio > Novo > Documento de texto 

 

Print > http://prntscr.com/aebhi7

 

Agora,abra o documento (Não precisa renomear) e coloque o seguinte > 

name: Tutorial
version: 1.0
main: tutorial.Tutorial
commands:

Em "name:" coloque o nome do seu plugin.

Em "version:" coloque a versão do seu plugin.

Em "main:" coloque a classe principal do seu plugin (Se seguiu exatamente o que eu fiz no tutorial, irá ficar > tutorial.Tutorial (Primeiro tutorial minusculo e segundo com T maiúsculo).

Em "commands:" não precisa colocar nada.

 

Agora,vamos transformar isso em uma yml.

Clique em > Arquivo (Você precisa ter o NotePad++) > Salvar Como.

 

Print > http://prntscr.com/aebkaq

Irá abrir uma interface,lá você irá colocar em "Nome" o seguinte > plugin.yml e clique em Salvar

 

Print > http://prntscr.com/aebkui

 

Feito isso,pode excluir a "Novo documento de texto".

 

Agora,vamos mandar o nosso plugin para uma .jar (Bem simples,apenas seguir os passos)!

 

Vá no seu projeto > Clique com o botão direito no nome dele > e clique em "Construir"

 

Print > http://prntscr.com/aebmuo

 

Print 2 > http://prntscr.com/aebn0f

 

Feito isso,é só você ir no Menu iniciar,e pesquisar por "Nomedoseuplugin.jar" (Sem os aspas e no meu caso, Tutorial.jar), colocar no seu servidor e pronto ! Sua mensagem de entrada e saída está feita!

 

 

Bem,é isso galera,esse foi o primeiro tutorial,pretendo fazer outros. Deu bastante trabalho fazer o tópico(Apesar de ele estar meio sem cor e tal,ficou bem grande),então um like não cuta nada né? :P

 

 

 

Se quiser comprar algum plugin,me chame no skype > yan.broetto1

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...
  • 2 anos depois...

gostei do tema plugin me intereça muito.

como seria o desenvolvimento de um plugin para captura de vídeos ?

 

Não é possível, um plugin realiza funções variadas do que é possível dentro do minecraft, no caso, a captura de vídeo é realizada fora do minecraft e por um programa.

Link para o comentário
Compartilhar em outros sites

Junte-se à conversa

Você pode postar agora e registrar-se mais tarde. Se você tiver uma conta, logue agora para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...