iGames


Participe do fórum, é rápido e fácil

iGames
iGames
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[Tutorial] Fazendo um plugin

Ver o tópico anterior Ver o tópico seguinte Ir para baixo Mensagem [Página 1 de 1]

#1[Tutorial] Fazendo um plugin Empty [Tutorial] Fazendo um plugin Sáb Nov 03, 2012 9:18 pm

Avançado I
Sr.Dener
Sr.Dener
Vou descrever aqui, um tutorial bem basico de como fazer um plugin.

Antes de tudo, voce precisa do Netbeans ou Eclipse. Para plugins do bukkit eu pessoalmente gosto de netbeans:

http://netbeans.org/downloads/start.html...ion=javase

Primeiro, abra o netbeans, crie um projeto Java > Java Application (Apicação/Aplicativo Java) chamado MeuProjeto.

Ele vai criar um projeto, com um pacote (o desenho da caixinha), com o nome do seu projeto, e uma classe chamada Main la dentro. A classe Main vai estar no arquivo Main.java, cada .java é uma classe (quase sempre )

Voce deverá primeiro, ir em Bibliotecas, em baixo do pacote (caixinha) do seu projeto, Adicionar Jar/Pasta, e selecionar o jar do craftbukkit, aquele mesmo que voce usa pra rodar o servidor. Assim seu projeto poderá usar as coisas do bukkit.

Pra ficar supimpa, deverá ter ficado assim seu projeto: (o resto é resto nao fechei pq dps da trabalho abrir tudo denovo)


Agora, voce ja está ligando seu codigo ao bukkit, então vamos começar a parte legal: O java !

Abra a classe Main. Voce verá isso:

Codigo

O que está deopis de // (em cinza ou verde na pagina aí) é comentário e não faz parte do programa, é comentário, então agente pode deletar todos estes comentários.

Agora, renomeie o nome o arquivo Main.java para meuPlugin.java , e cole isto no codigo dele:

Codigo

Agora, vou ensinar pra voces, a arte de programar sem programar. O netbeans faz tudo pra voce.

Voce criou uma classe chamada meuPlugin que herda a classe JavaPlugin do bukkit (tem tudo q ela tem). Essa é a clase principal do plugin.

Agora, nós temos que colocar algo dentro da nossa classe. Para faze-la funcionar no bukkit, toda classe que é extends JavaPlugin precisa ter 2 métodos. Explicando muito simplesmente, um método é como se fosse uma ação da classe.
Os metodos que a classe que extends JavaPlugin devem ter é: onDisable e onEnable, que são executados automaticamente pelo bukkit quando o plugin desliga / liga

Codigo

Certo, agora agente poderia fazer o plugin inicializar o que ele deve inicializar dentro do onEnable, para o plugin funcionar de verdade.

Agora vamos criar a classe que cuida dos eventos. Tudo é um evento, o jogador quebrar o bloco é um evento, o jogador andar é outro, um monstro morrer é outro, um raio cair é outro, um chunk carregar é outro. Quando se faz plugins, voce faz ações para estes eventos. Ex. 'quando o jogador quebrar um bloco, acontecer coisa tal'.

Vamos fazer um simples plugin, de quando o jogador matar um monstro, agente verificar se o monstro é um Zumbi. Se for um zumbi, o jogador vai ganhar 1 bacon por matar o zumbi !

Vamos fazer a classe de eventos então. Crie uma classe chamada Eventos, dentro do mesmo pacote meuprojeto que voce criou. Lá que a magía acontece. Vamos criar um método para ser executado quando alguem morre , para fazer o que queremos fazer. Alguem morrer se refere ao evento EntityDeathEvent.

Codigo

Para voce saber quais eventos voce pde usar, o modo mais fácil é ir la em cima do codigo onde ficam os imports e digitar:

import org.bukkit.event

Depois de digitar isto, digite um ponto ( . ) depois do event, vai aparecer as listas de eventos que voce pode usar.

Ok, agora voce tem o metodo de quando o bixo morre. Como fazer ele saber se é um zumbi, e dropar um bacon ?

Agora vou explicar um conceito de Java.
Ai voce tem a classe EntityDeathEvent, chamada event. Dentro dessa classe EntityDeathEvent tem varios metodos (como esse public void bla bla bla) e variaaas outras classes, com mais metodos dentro. Sempre que voce quer saber o que tem dentro da outra classe, poe o ponto ( . ). Por exemplo, vai no miolo do método que agente criou, e digita evento. , vai aparecer tudo que tem dentro dessa classe EntityDeathEvent que agente chamou de evento

Agora, digitando event. voce devera procurar getEntity(). Isto vai retornar a classe Entity do evento, ou seja, a classe que representa a entidade do evento, no caso a criatura que acabou de morrer !!

deopis do getEntity(), digite outro ., veja as opções. Agora são as opções da classe Entity, que ta dentro da classe EntityDeathEvent.

Voce não irá usar opções do entity, voce simplesmente usará o codigo decorado do java 'instanceof', que significa em palavras de boa 'é um'. Voce quer saber se o entity é um zumbi, então vai ter que fazer um if. Um if é um 'se', uma condição. Google isto pra aprender mais logica basica de programação.

A classe deverá ficar assim:

Codigo

Bom, agora, se o zumbi morrer, vai dropar um bacon... legal...mas... certeza ?
Não ! Falta agente dizer ao bukkit para passar eventos para nossa classe Eventos !! E isto fazemos la no onEnable da nossa outra classe !

Desta vez , invez de postar o codigo pronto, vou explicar como fazer e voces vão atraz.

Vá la para a classe principal que extends JavaPlugin. Vá no método onEnable, e digite

this. (this ponto)

this significa referencia a propria classe. Quando voce digitar isto vai aparecer todas opções da classe. Estas opções vem da classe JavaPlugin que voce deu extends, afinal sua classe nao tem nada ainda.

Procure por getServer(), isto vai te retornar o servidor rodando.
Depois do getServer(), digite outro ponto, e procure por getPluginManager(). Agora voce terá o manolo que controla os plugins, vamos dizer a ele usar nossos eventos. Procure o metodo registerEvents. Pra executar este metodo voce precisa de um Listener, e um JavaPlugin. Nós temos nosso listener ! Então só dar um 'new Eventos()' nele (que significa criar a classe na memoria de verdade pra ser usada), e também temos um JavaPlugin, que ja ta na memoria, que é esta propria classe, ou seja, this !

No final, voce deverá ter esta linha dentro do onEnable
this.getServer().getPluginManager().registerEvents(new Eventos(), this);

Agora, selecione o pacote onde ta tudo e aperte f9 para compilar. Se deu erro, voce fez algo errado, repita o tutorial e poste duvidas. Erros ficam na barra da esquerda como lampadas. Muitas vezes clicando nela ela ja te da a opção de como corrigir.

Se compilou, abra um .jar de um plugin, e tire tudo menos o plugin.yml. Na pasta dos projetos do netbeans, ache seu projeto/build/classes

pegue esta pasta do pacote (que está dentro de classes), e jogue no jar.
Agora, cole isto dentro do plugin.yml:

Code:
name: meuPlugin
version: 1
main: meuProjeto.meuPlugin
authors: Mallesco

Pronto, se voce fez tudo certo, voce tem seu 1o plugin. Só jogar na pasta do bukkit e se deliciar matando Zumbis.

Se voce quiser aprender mais sobre java, como sintaxes e dominar mesmo, voce precisará dar uma boa estudada.

Recomendo uma apostila: http://www.k19.com.br/downloads/apostilas-java

Espero ter ajudado.

Ver o tópico anterior Ver o tópico seguinte Ir para o topo Mensagem [Página 1 de 1]


Permissões neste sub-fórum
Não podes responder a tópicos