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(); }