Ir para conteúdo
  • 0

[DUVIDA] Como faço se o jogador estiver no /v, não funcionar o LegendChat local


yLR111

Pergunta

15 respostass a esta questão

Posts Recomendados

  • 0

Vlw, funfou, tu sabe tbm pra cancelar o evento de enviar tell quem estiver de /v

Só usar o evento PrivateMessageEvent

@EventHandler
public void onTell(PrivateMessageEvent e) {
	if (va.contains(e.getReceiver()) {
		e.setCancelled(true);
		e.getSender().sendMessage("Jogador não encontrado");
	}
}
Link para o comentário
Compartilhar em outros sites

  • 0

 

Isso é fácil... você tem 2 opções:

  1. Editar o LegendChat, implementar a API do seu plugin de Vanish;
  2. No plugin de Vanish, use o evento do LegendChat... talvez funcione.

 

como posso fazer usando o legendchat em meu plugin de vanish?

Link para o comentário
Compartilhar em outros sites

  • 0

como posso fazer usando o legendchat em meu plugin de vanish?

Pelo ChatMessageEvent(acho que é esse o evento do LC), mas dai vc verifica se quem recebeu a msg está na ArrayList e ai se estiver, você cancela.

Link para o comentário
Compartilhar em outros sites

  • 0

Pelo ChatMessageEvent(acho que é esse o evento do LC), mas dai vc verifica se quem recebeu a msg está na ArrayList e ai se estiver, você cancela.

Ok, sei que e chato ficar pedindo e que nunca mexi com legendchat, tem como dar exemplo como ficaria?

Link para o comentário
Compartilhar em outros sites

  • 0
@EventHandler
public void onChat(ChatMessageEvent e){

    if ( /* checa se está com vanish */) {
        e.setCancelled(true);
        e.getSender().sendMessage("Você está oculto, não pode falar no chat.");
     }

}

Fiz este código aqui mesmo no tópico, então podem haver métodos errados, mas esta é a base.

Link para o comentário
Compartilhar em outros sites

  • 0
@EventHandler
public void onChat(ChatMessageEvent e){

    if ( /* checa se está com vanish */) {
        e.setCancelled(true);
        e.getSender().sendMessage("Você está oculto, não pode falar no chat.");
     }

}

Fiz este código aqui mesmo no tópico, então podem haver métodos errados, mas esta é a base.

 

Não funcionou fiz isso -> http://prntscr.com/jpm4y2

Link para o comentário
Compartilhar em outros sites

  • 0

Você quer que quando alguém fale perto de algém no modo vanish, mostre para quem enviou que este alguém não recebeu a mensagem, mas ele receba mesmo assim? Você pode tentar algo assim:

@EventHandler
public void onChat(ChatMessageEvent e) {
	if (e.getChannel().getName().equals("local")) { // Verifica se foi no chat local
		for (String player : va) { // Inicia um laço de repetição com os jogadores no modo vanish
                        if (e.getRecipients().contains(Bukkit.getPlayer(player)) { // Verifica se o jogador está na lista de quem receberá a mensagem
				e.getRecipients().remove(Bukkit.getPlayer(player()); // Remove o jogador da lista de quem receberá a mensagem
                                Bukkit.getPlayer(player).sendMessage(e.getSender().getName() + ": " + e.getMessage()); // Envia a mensagem
                        }
		}
	}
}
Editado por Out of Orbit
Link para o comentário
Compartilhar em outros sites

  • 0

 

Você quer que quando alguém fale perto de algém no modo vanish, mostre para quem enviou que este alguém não recebeu a mensagem, mas ele receba mesmo assim? Você pode tentar algo assim:

@EventHandler
public void onChat(ChatMessageEvent e) {
	if (e.getChannel().getName().equals("local")) { // Verifica se foi no chat local
		for (String player : va) { // Inicia um laço de repetição com os jogadores no modo vanish
                        if (e.getRecipients().contains(Bukkit.getPlayer(player)) { // Verifica se o jogador está na lista de quem receberá a mensagem
				e.getRecipients().remove(Bukkit.getPlayer(player()); // Remove o jogador da lista de quem receberá a mensagem
                                Bukkit.getPlayer(player).sendMessage(e.getSender().getName() + ": " + e.getMessage()); // Envia a mensagem
                        }
		}
	}
}

Está com erro - http://prntscr.com/jq00ey http://prntscr.com/jq00kr- codigo https://pastebin.com/URxh3LBi

Link para o comentário
Compartilhar em outros sites

  • 0

Sua lista guarda player e quer fazer um foreach com String? LOOOOOOL 

vanish.forEach(a -> faça suas coisas aqui =d, pega o nome do player com a.getName());

Link para o comentário
Compartilhar em outros sites

  • 0

Ah, foi mal. Pensei que sua ArrayList guardava strings. Só usar este código aqui então:

@EventHandler
public void onChat(ChatMessageEvent e) {
	if (e.getChannel().getName().equals("local")) {
		for (Player player : va) {
                        if (e.getRecipients().contains(player) {
				e.getRecipients().remove(player);
                                player.sendMessage(e.getSender().getName() + ": " + e.getMessage());
                        }
		}
	}
}
Link para o comentário
Compartilhar em outros sites

  • 0

 

Ah, foi mal. Pensei que sua ArrayList guardava strings. Só usar este código aqui então:

@EventHandler
public void onChat(ChatMessageEvent e) {
	if (e.getChannel().getName().equals("local")) {
		for (Player player : va) {
                        if (e.getRecipients().contains(player) {
				e.getRecipients().remove(player);
                                player.sendMessage(e.getSender().getName() + ": " + e.getMessage());
                        }
		}
	}
}

Vlw, funfou, tu sabe tbm pra cancelar o evento de enviar tell quem estiver de /v

Link para o comentário
Compartilhar em outros sites

  • 0

 

Só usar o evento PrivateMessageEvent

@EventHandler
public void onTell(PrivateMessageEvent e) {
	if (va.contains(e.getReceiver()) {
		e.setCancelled(true);
		e.getSender().sendMessage("Jogador não encontrado");
	}
}

Muito obriado!!! vlw mesmo

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...