Ir para conteúdo

Bem-vindo ao Fórum InstaMC
Cadastre-se agora para obter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações de status, criar o seu perfil e muito mais. Se você já possui uma conta ou quer criar clique nos botões abaixo.
Entrar Cadastre-se

Fechar/Abrir shoutbox Seja bem-vindo ao nosso fórum!

@  BaN_PoSeiDoN : (Hoje, 02:49 ) Servidor sendo administrado apenas pelos coordenadores, nenhum membro da direção entra... que legal ^^
@  BaN_PoSeiDoN : (Hoje, 02:48 ) Nem ferrando que até o Lyty pulou do barco? http://prntscr.com/mmicdz
@  Thiff123 : (Há 3 horas) Pensava que tu era um jogador do Pixelmon
@  Thiff123 : (Há 3 horas) Descobri agora que tu é o davessauro lol
@  Davi. : (Há 5 horas) @Thiff123 jura?
@  Thiff123 : (Há 6 horas) se nenhum dos 2 entrar, não terá como tirar
@  Thiff123 : (Há 6 horas) Só a sub-direção ou a direção tem autorização para por e tirar tag
@  Thiff123 : (Há 6 horas) Claro
@  Davi. : (Há 8 horas) Também tenho perm nos formulários, e olha que deixei de ser adm no ano passado
@  Davi. : (Há 8 horas) Eu tenho minha tag in-game (pelo que sei), Pandora e KNazinha também
@  Davi. : (Há 8 horas) @GuhS2 É complicado
@  Anúncio : (Há 8 horas)

» Acesse nosso canal no Youtube - www.youtube.com/InstaMCNetworkTV

@  Thiff123 : (Há 11 horas) nuss
@  Ligeirinho : (Há 13 horas) ta em choque liga pro batman
@  gudivaibis : (Há 13 horas) CHAMA ALGUEM
@  gudivaibis : (Há 13 horas) ATAQUE DE BOT ALGUEM AJUUDA
@  GuiS2 : (Há 14 horas) @Thiff123 Elas saíram, até porque não tem a data de entrada no tópico \o/
@  GuhS2 : (Há 15 horas) @Thiff123 Na real é pq ngm entrou pra tirar mesmo... (o Davi ainda tem tag no sv, por exemplo)
@  gudivaibis : (Há 15 horas) até o forum kkkkkkkkkkkkk
@  Thiff123 : (Há 16 horas) @GuhS2 Eles ainda permanecem com a tag, deve estar bugado
@  GuhS2 : (Há um dia) @Thiff123 Dãã...
@  Thiff123 : (Há um dia) n aparece os nomes
@  Thiff123 : (Há um dia) https://www.instamc....c-◄/#entry21294
@  Thiff123 : (Há um dia) Os coord saíram?
@  Ligeirinho : (Há um dia) collide
@  Ligeirinho : (Há um dia) supernova, we'll fuse when we
@  Ligeirinho : (Há 2 dias) lost in the echo
@  gudivaibis : (Há 2 dias) parabéns pelo trabalho equipe instamc tô impressionado
@  gudivaibis : (Há 2 dias) de 10 minigames temos 3 jogáveis
@  Thiff123 : (Há 2 dias) @Snooopy Caso queira o link do form dos designers, https://goo.gl/iodhRR
@  Anúncio : (Há 2 dias) » Entre em nosso TeamSpeak 3: ts.instamc.com.br
@  Thiff123 : (Há 2 dias) manda os seus trabalhos para o form de designer
@  Thiff123 : (Há 2 dias) @Snooopy Vira designer
@  Poleto324 : (Há 2 dias) @gudivaibis Não estava em casa no momento, vou tentar ficar mais Online nesses horários que ele costuma atacar.
@  Snooopy : (Há 2 dias) https://www.instamc....c/43356-avatar/ Vejam meu tópico e comentem, caso tenham interesse em algum avatar.
@  Snooopy : (Há 2 dias) eae
@  Ligeirinho : (Há 2 dias) is lonely and grey
@  Ligeirinho : (Há 2 dias) this sky
@  gudivaibis : (Há 3 dias) quem é esse cara alguem sabe
@  gudivaibis : (Há 3 dias) da uma força la leonardo se tu puder
@  gudivaibis : (Há 3 dias) os bot tá floodando no lobby n da nem pra se mexer
@  gudivaibis : (Há 3 dias) tem mais de 100 bot no server e tá copm 115 players
@  gudivaibis : (Há 3 dias) mano ta tendo ataque no sv
@  Ligeirinho : (Há 3 dias) pra mostrar a estabilidade e status de conexão do sv e seus derivados
@  Thiff123 : (Há 3 dias) @Ligeirinho Tu sabe pra que serve o uptime?
@  Ligeirinho : (Há 3 dias) take it higher
@  GuiS2 : (Há 4 dias) @Thiff123 não precisa explicar que você criou tal evento ou corrigiu tal punição. Tendo os fatos e a defesa à vista, a avaliação cabe aos superiores.
@  Thiff123 : (Há 4 dias) @Poleto324 O que ouve?
@  Poleto324 : (Há 4 dias) Glr, esse cara tá atacando o servidor com Bots faz uns 8 dias, mesmo não adiantando muito, sempre que estou online bano conta por conta pra não lagar muito o servidor, mas ficar banindo depois que já aconteceu não adianta mais nada.
@  Thiff123 : (Há 4 dias) @gudivaibis Mesmo assim, eu gostaria de entrar novamente

Foto

[Tutorial] - Criando seu plugin #1: Eventos


  • Por favor, faça o login para responder
10 respostas neste tópico

#1
_Arkasher

_Arkasher

    Membro Experiente

  • Membros
  • 57 posts
    • Tempo Online: 5d 19h 9m 27s
  • Localização: Moderador do EpicSurvival
  • Nick: _Arkasher
  • Clan:STAFF

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...oads/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


  • Femmi, TheHammerKeeper, Italo324 e 1 outro curtiram isso
Assinatura >

#2
jgmo

jgmo

    Membro Experiente

  • VIP
  • 397 posts
    • Tempo Online: 12d 3h 31m 25s
  • Localização: Morro Do Alemao
  • Nick: jgmo
  • Clan:FV

Otimo topico sempre quis aprender a criar plugins , sei configuralos mais criar nao !!


Assinatura >

#3
Yuu-Senpai

Yuu-Senpai

    ㅤㅤㅤㅤㅤ

  • Banidos
  • 423 posts
  • Localização: ㅤㅤㅤㅤㅤ
  • Nick: ㅤㅤㅤㅤㅤ
  • Clan:ㅤㅤㅤㅤㅤ

eu tenho q aprender oq é plugin para fazelo ;-;


  • Tomori Chan >.< curtiu isso

#4
_Arkasher

_Arkasher

    Membro Experiente

  • Membros
  • 57 posts
    • Tempo Online: 5d 19h 9m 27s
  • Localização: Moderador do EpicSurvival
  • Nick: _Arkasher
  • Clan:STAFF

eu tenho q aprender oq é plugin para fazelo ;-;

huahsuasuh

 

Otimo topico sempre quis aprender a criar plugins , sei configuralos mais criar nao !!

Vlw! :D Depois que aprende o básico fica mais simples aprender o resto.


Assinatura >

#5
_Arkasher

_Arkasher

    Membro Experiente

  • Membros
  • 57 posts
    • Tempo Online: 5d 19h 9m 27s
  • Localização: Moderador do EpicSurvival
  • Nick: _Arkasher
  • Clan:STAFF

@UP!


Assinatura >

#6
Hugoo

Hugoo

    Liga 081 😝🔥

  • VIP
  • 1.871 posts
    • Tempo Online: 45d 12m 27s
  • Localização: Recife - PE
Eu sei um pouco sobre plugins, belo tópico...

#7
_Arkasher

_Arkasher

    Membro Experiente

  • Membros
  • 57 posts
    • Tempo Online: 5d 19h 9m 27s
  • Localização: Moderador do EpicSurvival
  • Nick: _Arkasher
  • Clan:STAFF

Eu sei um pouco sobre plugins, belo tópico...

Não sei se foi ironia,até porque o tópico está bem feio mesmo,não sou bom em fazer tópicos :P

 

De qualquer forma,vlw!


  • Hugoo curtiu isso
Assinatura >

#8
_Arkasher

_Arkasher

    Membro Experiente

  • Membros
  • 57 posts
    • Tempo Online: 5d 19h 9m 27s
  • Localização: Moderador do EpicSurvival
  • Nick: _Arkasher
  • Clan:STAFF

@UP!


Assinatura >

#9
_Arkasher

_Arkasher

    Membro Experiente

  • Membros
  • 57 posts
    • Tempo Online: 5d 19h 9m 27s
  • Localização: Moderador do EpicSurvival
  • Nick: _Arkasher
  • Clan:STAFF

@UP


Assinatura >

#10
ribamar

ribamar

    Novato

  • Membros
  • 1 posts
    • Tempo Online: 1s
  • Nick: ribamar

gostei do tema plugin me intereça muito.

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



#11
zChromaGamer

zChromaGamer

    Jogador de Futebol

  • VIP
  • 503 posts
    • Tempo Online: 19d 9h 36m 55s
  • Localização: ...
  • Nick: JavawCHEATER
  • Clan:1Kilo

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.


Assinatura >




0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos