[Java #3] Tags no chat

Bem-vindo!

Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.

Registrar agora!
  • PROMOÇÃO DE NATAL NO AR



Status
Não está aberto para novas respostas.
Entrou
Mar 4, 2014
Mensagens
4,106
Pontuação de reação
928
Cubos
20
Estou aqui para dar continuidade nos ensinamentos de programação de plugins
Para quem não leu meus últimos tópicos recomendo olhar
Hoje irei criar um novo código

Java #1: http://forum.craftlandia.com.br/ipb/index.php?/topic/810407-java-criando-um-comando-basico/#entry7065173
java #2: http://forum.craftlandia.com.br/ipb/index.php?/topic/810686-java-2-itens-e-primeiro-evento/#entry7067010

===============================================================================

Hoje irei ensinar como criar tags para chat

Primeiro devemos criar uma nova classe no mesmo projeto
Se você não sabe como criar uma classe é por que não leu o primeiro tópico

Bois bem a unica coisa que iremos modificar na hora de criar uma nova classes
alem do nome é claro
Vamos adicionar uma interface "Listener" que servira para que possamos criar eventos em outras classes para fazer isso
basta estar na janela de criação de classes e clicar em "Add"

8K9LV5Y.png

Apos feito isso só dar um Finish

E pronto agora temos uma nova classes para criar nossos eventos
e o evento que vamos usar hoje sera o

AsyncPlayerChatEvent

Evento de quando o Player falar no chat então vamos começar com o bassicos


Código:
public void onChat(AsyncPlayerChatEvent e) {
Player p = e.getPlayer();
}


Ok definido nosso player e nosso evento

agora vamos para as confirmações

vou dar exemplo de duas tags aqui
vocês podem fazer quantas quiser só seguir a mesma logica

então vamos a primeira verificação



Código:
if(p.hasPermission("tag.membro")) {
}

Aqui o plugin vai verificar se o Player tem a permissão "tag.membro"
Para isso vocês vão ter que configurar as permissões do servidor e adicionar os grupos permissões etc
recomendo que usem o permissions ex

Se for de interesse posso tentar fazer um tópico explicando o basico dele

continuando

Abaixo da verificação vamos colocar


Código:
e.setFormat("");



Aqui vamos falar para o plugin modificar a mensagem que o jogador enviou
e a mensagem sera modificada para oque estiver dentro dos parênteses

Ex

Código:
e.setFormat("§7[MEMBRO]§a" + p.getName() + "§f: §8" + e.getMessage());


ok vamos explicar

primeiro esse caractere "§" serve para modificar as cores de mensagens
para fazer ele é só apertar ALT Gr + "="

koHBz2I.png

Código:
p.getname


Server para que o plugin pegue o nome do player

Código:
e.getMenssage


Server par ao plugin pegar a mensagem enviada

Quando fomos colocar uma captura de valores por meio de variáveis para que sejam exibidas em mensagens devemos deixá-los fora dos aspas ""

e adicionar um "+" antes dele e casso tenha mais coisa depois da variável outro "+" depois dele assim como podem ver na exemplo que dei

Então vou só dar mais um exemplo


Código:
if(p.hasPermission("diretor.tag")) {
e.setFormat("§9[Diretor]§c" + p.getName() + "§f: §d " + e.getMessage());
}


Aqui vamos dar uma tag de diretor e chat rosa para o player que tiver a permissão "diretor.tag"

Como ficou os meus chats
2000b6758ea843519f0e538747f404af.png

ee56a4cba5664b5ea86be6e90f5ba6bd.png


Por fim só voltar no onEnable da sua classe main e registrar o evento



Código:
getServer().getPluginManager().registerEvents(new NOME DA SUA CLASSE (), this);


Sem isso para registrar eventos de outras classes o plugin vai basicamente ignorar oque você fez

então é isso agora só exportar e testar :D

Bom esse foi um tutorial mais curto por esse sistema ser mais simples

E se vocês quiserem que eu tente passar alguma coisa sobre PEX
comenta no tópico

Para finalizar nosso código ficou assim


Código:
package com.imperiius.tutorial;
 
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
 
public class Chat implements Listener {
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
Player p = e.getPlayer();
 
if(p.hasPermission("tag.membro")) {
e.setFormat("§7[MEMBRO]§a" + p.getName() + "§f: §8" + e.getMessage());
 
 
}
if(p.hasPermission("diretor.tag")) {
e.setFormat("§9[Diretor]§c" + p.getName() + "§f: §d " + e.getMessage());
}
 
}
 
}






Sugestões, pedidos, criticas, duvidas Mande um MP
ou comente ai no tópico

Vlw e até o próxima aula
 
Legal a iniciativa :).

Dica: use [ code] [/code ] (sem os espaços) para colocar linhas de códigos em seu tópico, deixa muito mais organizado e legível.
 
Realmente gostei dessa sua iniciativa de ensinar um pouco sobre JavaPlugin para os players, continue.
 
Evento de particulas seria uma otima ideia pra se ensinar tambem !
 
Nice bom topico e muito informativo

Enviado de meu TR71 usando Tapatalk
 
GamerToddynho disse:
Nuss vai ajudar a staff a fazer otimos trabalhos com os servers era legal mudar as cores do nome do player da forma como queremos tlgd , otima inciativa !

Enviado do meu GT-I8190 através de Tapatalk
Primeiro esse tipo de coisa teria que ter a aceitação da staff
alem de que a staff que cuida dos plugins sabe 1000x mais que eu
 
Status
Não está aberto para novas respostas.

Usuários que estão visualizando este tópico

Voltar
Topo