Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[Tutorial]Fazendo um plugin
+7
ToON
PЯIMΣ
mataturbo
ϟ Nunnes
•SR Anormais•
Monster Killer
ϟмαℓsкєy™
11 participantes
Universal Fórum :: UNIVERSO GEEK :: Outros Games :: LIVRE
Página 1 de 1
[Tutorial]Fazendo um plugin
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:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Espero ter ajudado.
Antes de tudo, voce precisa do Netbeans ou Eclipse. Para plugins do bukkit eu pessoalmente gosto de netbeans:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Espero ter ajudado.
ϟмαℓsкєy™- Membro Bronze
- Mensagens : 389
Reputação : 39
Pontos : 5138
Re: [Tutorial]Fazendo um plugin
Pena que eu nao jogo mais , mais bom tutorial
Monster Killer- Membro Avançado
- Mensagens : 2697
Reputação : 407
Pontos : 9270
Re: [Tutorial]Fazendo um plugin
obrigado por compartilhar
eu parei de joga pq meu procesador e orrivel
eu parei de joga pq meu procesador e orrivel
•SR Anormais•- Membro Avançado
- Mensagens : 2617
Reputação : 103
Pontos : 5827
Re: [Tutorial]Fazendo um plugin
Obrigado Por Compartilhar Conosco Este Tutorial
mataturbo- Membro Silver
- Mensagens : 706
Reputação : 28
Pontos : 5000
Re: [Tutorial]Fazendo um plugin
Obrigado por compartilhar
PЯIMΣ- Membro Bronze
- Mensagens : 561
Reputação : 3
Pontos : 5111
Re: [Tutorial]Fazendo um plugin
Obrigado Por compartilhar
ToON- Membro Bronze
- Mensagens : 316
Reputação : 150
Pontos : 5082
Re: [Tutorial]Fazendo um plugin
Obrigado por compartilhar conosco.
N£ym@₢- Membro Bronze
- Mensagens : 530
Reputação : 23
Pontos : 5177
Re: [Tutorial]Fazendo um plugin
MODERAÇÃO
Membro: Neymar
Ocorrências: 3
Motivo: Reviveu o tópico
Não cometa mais este erro, [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Membro: Neymar
Ocorrências: 3
Motivo: Reviveu o tópico
Não cometa mais este erro, [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Re: [Tutorial]Fazendo um plugin
Obrigado Por Compartilhar Conosco!
____________________________________________________________________
Minha Meta:
____________________________________________________________________
Minha Meta:
Firstmyth- Membro
- Mensagens : 258
Reputação : 155
Pontos : 4944
Re: [Tutorial]Fazendo um plugin
o Moderador Joker Não fechou o Tópico !
então irei Fechar .
Tópico Bloqueado
então irei Fechar .
Tópico Bloqueado
Galaxy- Membro Avançado
- Mensagens : 2581
Reputação : 1164
Pontos : 4046
Cash : 145
Tópicos semelhantes
» [Tutorial]Editando um plugin
» [Tutorial]Editando um plugin de Minecraft.
» [Tutorial] Colocando e Tirando Plugin
» [Tutorial] Fazendo Vários Resetes
» Minecraft: Qual o nome do Plugin?
» [Tutorial]Editando um plugin de Minecraft.
» [Tutorial] Colocando e Tirando Plugin
» [Tutorial] Fazendo Vários Resetes
» Minecraft: Qual o nome do Plugin?
Universal Fórum :: UNIVERSO GEEK :: Outros Games :: LIVRE
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Sáb Ago 24, 2024 9:59 am por Civilization
» [UF] Reinauguração da Universal Fórum
Seg Jul 08, 2024 8:54 pm por Reset
» Reencontro Mensal
Sex Nov 24, 2023 5:04 pm por -Destruidor
» O que VOCÊ faz hoje em dia
Ter Set 05, 2023 11:49 pm por αvαsŧ™
» mais um ano xD
Ter Ago 22, 2023 11:16 am por SouthPark.
» Retorno do Droops.
Qui Mar 09, 2023 6:32 pm por , WallMaster
» 10 anos de Universal Fórum
Ter maio 10, 2022 4:47 pm por Reset
» Saudades rs'
Qui Mar 17, 2022 11:24 pm por HeaD
» Saudades de vocês
Sáb Fev 05, 2022 3:52 pm por -Gui
» Sim... é mais um post de um antigo usuário com saudade do fórum
Qua Nov 17, 2021 9:35 pm por HeaD