API(ptBR)
API
Quer mudar algo dentro do Legendchat? Ou fazer um player parar de receber mensagens? Ou impedir uma mensagem de ser enviada? Está bem! Você pode fazer isso!
PS: Eu recomendo que leia a parte "Colocar valor em tag". Pode ser muito interessante.
Eventos
ChatMessageEvent
Evento chamado quando qualquer mensagem é enviada por um canal (exceto no canal do BungeeCord).
Lista de métodos disponíveis:
Método | Retorna | Descrição |
---|---|---|
getMessage() | String | Pega a mensagem |
setMessage(String msg) | void | Muda a mensagem |
getFormat() | String | Pega a formatação do canal (config.yml) |
setFormat(String format) | void | Muda a formatação |
getSender() | Player | Pega quem enviou |
setSender(Player p) | void | Muda quem enviou |
getRecipients() | Set<Player> | Pega a lista de quem receberá a mensagem |
getChannel() | Channel | Pega o canal |
getBukkitFormat() | String | Pega a formatação do Bukkit |
getBaseFormat() | String | Pega a formatação base do canal (<channel>.yml) |
getTags() | List<String> | Pega todas as tags na formatação |
getTagValue(String tag) | String | Pega o valor de uma tag |
setTagValue(String tag,String value) | void | Muda o valor de uma tag |
addTag(String tag,String value) | void | Adiciona uma nova tag |
isCancelled() | boolean | Evento está cancelado? |
setCancelled(boolean c) | void | Cancela o evento |
PrivateMessageEvent
Evento chamado quando enviam uma mensagem privada.
Lista de método disponíveis:
Método | Retorna | Descrição |
---|---|---|
getSender() | Player | Pega quem enviou |
setSender(Player p) | void | Muda quem enviou |
getReceiver() | Player | Pega quem vai receber |
setReceiver(Player p) | void | Muda quem vai receber |
getMessage() | String | Pega a mensagem |
setMessage(String msg) | void | Muda a mensagem |
isCancelled() | boolean | Evento está cancelado? |
setCancelled(boolean b) | void | Cancela o evento |
BungeecordChatMessageEvent
Evento chamado quando uma mensagem é enviada pelo canal do BungeeCord.
Os métodos desse evento são os mesmos do ChatMessageEvent, retirando getSender(), setSender() e getBukkitFormat().
Você pode pegar o nome dentro da tag 'sender' ou 'plainsender'.
Observação: Esquematização do envio da mensagem do BungeeCord:
Player diz algo no canal => ChatMessageEvent (server de quem enviou) => Manda mensagem para o BungeeCord => BungeeCord manda a mensagem para os outros servidores => BungeecordChatMessageEvent (outros servidores) => Outros players recebem a mensagem
Dentro do Legendchat
Métodos
Você pode mudar várias coisas dentro do Legendchat.
Para ligar com o Legendchat você deve usar Legendchat.
Exemplo:
public void onEnable() { ChannelManager channelManager = Legendchat.getChannelManager(); }
Lista de métodos (Vou escrever o que cada 'manager' faz):
Método | Retorna | Descrição |
---|---|---|
getChannelManager() | ChannelManager | Pega o ChannelManager |
getPlayerManager() | PlayerManager | Pega o PlayerManager |
getMessageManager() | MessageManager | Pega o MessageManager |
getIgnoreManager() | IgnoreManager | Pega o IgnoreManager |
getPrivateMessageManager() | PrivateMessageManager | Pega o PrivateMessageManager |
getDelayManager() | DelayManager | Pega o DelayManager |
getMuteManager() | MuteManager | Pega o MuteManager |
getCensorManager() | CensorManager | Pega o CensorManager |
getLogManager() | LogManager | Pega o LogManager |
getConfigManager() | ConfigManager | Pega o ConfigManager |
getTemporaryChannelManager() | TemporaryChannelManager | Pega o TemporaryChannelManager |
getAfkManager() | AfkManager | Pega o AfkManager |
getDefaultChannel() | Channel | Pega o canal padrão |
getBungeecordChannel() | Channel | Pega o canal do BungeeCord |
getLanguage() | String | Pega a linguagem do plugin (como: en) |
blockRepeatedTags() | boolean | Config.yml |
showNoOneHearsYou() | boolean | Config.yml |
forceRemoveDoubleSpacesFromBukkit() | boolean | Config.yml |
sendFakeMessageToChat() | boolean | Config.yml |
logToFile() | boolean | Config.yml |
getLogToFileTime() | int | Config.yml |
textToTag() | HashMap<String,String> | Config.yml |
blockShortcutsWhenCancelled() | boolean | Config.yml |
useAsyncChat() | boolean | Config.yml |
maintainSpyMode() | boolean | Config.yml |
isBungeecordActive() | boolean | Config.yml |
getPlugin() | Plugin | Pega a instância do plugin |
getFormat(String base_format) | String | Pega o formato format (ex.: default) |
format(String msg) | String | Muda um base_format para format |
getPrivateMessageFormat(String format) | String | Pega o formato de uma mensagem privada |
load() | void | Recarrega a classe do Legendchat |
Lista de 'managers'
ChannelManager
Contêm: Todos os canais.
Métodos para: Criar, deletar e pegar canais.
PlayerManager
Contêm: Canais dos players, espiões e players escondidos.
Métodos para: Pega e muda o canal de um player, pega e muda espiões, pega e muda players escondidos.
MessageManager
Contêm: Todas as mensagens carregadas.
Métodos para: Pega uma mensagem.
IgnoreManager
Contêm: Todos os players que ignoraram alguém.
Métodos para: Pega e muda os players ignorados por um player.
PrivateMessageManager
Contêm: Todos os métodos de controle do sistema de mensagem privada.
Métodos para: Manda mensagens privadas, responde mensagens privadas, começa e para conversas.
DelayManager
Contêm: Todos os métodos para mudar delay.
Métodos para: Adicionar, remover e pegar delays (o delay é por canal).
MuteManager
Contêm: Todos os métodos para mutar players e o server.
Métodos para: Adicionar, remover e pegar players mutados e mudar o estado do chat do server.
CensorManager
Contêm: Todos os métodos para censurar palavras.
Métodos para: Adicionar, remover e pegar palavras censuradas.
TemporaryChannelManager
Contêm: Todos os métodos para canais temporários.
Métodos para: Adicionar, remover e pegar canais temporários.
ConfigManager
Contêm: Todos os métodos para acessar arquivos de configuração.
Métodos para: Ler arquivos de configuração.
LogManager
Contêm: Todos os métodos para os logs.
Métodos para: Administrar o cache de mensagens.
AfkManager
Contêm: Todos os métodos para acessar o sistema AFK.
Métodos para: Adicionar, remover e mudar motivo do afk.
Exemplos
Exemplos com os eventos
Bloquear mensagem contendo algo
@EventHandler private void onChat(ChatMessageEvent e) { if(e.getMessage().contains("algo")) e.setCancelled(true); }
Bloquear alguém de receber mensagens
@EventHandler private void onChat(ChatMessageEvent e) { if(e.getRecipients().contains(player)) e.getRecipients().remove(player); }
Colocar valor em tag
//Observação: a formatação do canal (config.yml) deve conter {minhatag} (como {prefix}) @EventHandler private void onChat(ChatMessageEvent e) { if(e.getTags().contains("minhatag")) e.setTagValue("minhatag","&6[MinhaTag] "); }
Exemplos com a classe do Legendchat
Desmutar player
public void meuMetodo(Player p) { MuteManager mm = Legendchat.getMuteManager(); if(mm.isPlayerMuted(p.getName())) mm.unmutePlayer(p.getName()); }
Mudar canal de player
public void meuMetodo(Player p, String nome_canal) { Channel c = Legendchat.getChannelManager().getChannelByName(nome_canal); Legendchat.getPlayerManager().setPlayerChannel(p,c,/*mandar mensagem?*/ true); }
Desmutar servidor
public void meuMetodo() { Legendchat.getMuteManager().unmuteServer(); }