[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.

Inscreva-se agora!
Status
Não está aberto para novas respostas.

imperiius

Craftlandiano
VIP
Entrou
Mar 4, 2014
Mensagens
4,088
Cubos
0
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
 
iBieel disse:
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.
Vlw pela dica
 
Realmente gostei dessa sua iniciativa de ensinar um pouco sobre JavaPlugin para os players, continue.
 
Between disse:
Realmente gostei dessa sua iniciativa de ensinar um pouco sobre JavaPlugin para os players, continue.
Vlw, vou continuar a ensinar e aprender mais tambem
 
Nice bom topico e muito informativo

Enviado de meu TR71 usando Tapatalk
 
Between disse:
Evento de particulas seria uma otima ideia pra se ensinar tambem !
Se refere aquele sisteme de server minigame que tem varios efeitos diferentes que onde você vai o efeito vai junto?
 
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
 
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.

Users who are viewing this thread

Voltar
Topo