Ir para conteúdo
  • 0

[Resolvido] Sempre escondido.


iVictor777z

Pergunta

Bom, estava fazendo um plugin de vanish, e queria saber como faço para QUALQUER um que logar no servidor não ver o jogador que está no modo vanish. Mesmo se ele entrar depois e não ver no TAB também (sem o setPlayerList algo assim no tab).

 

exemplo:

 

dou /v, ninguém mais me vê nem a pau, só comigo desativando (sem pot de inv ;-;) se o cara logar depois, pois se eu usar o for (Player js : bukkit.getOnlinePlayers(s)) {

    js.hidePlayer(p);

 

só vai esconder para quem ta online, se chegar um cara depois, irá mostrar.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

Adiciona os cara que estão de /v em uma ArrayList e depois deixa eles invisiveis no no listener PlayerJoinEvent

@EventHandler
private void onJoin(PlayerJoinEvent e){
  Player p = e.getPlayer();
  for(Player all : Bukkit.getOnlinePlayers()){
      if(vanish.contains(all.getName()){
        p.hidePlayer(all)
      }
  }
}

Fiz aqui no fórum mesmo, pode ter erros na sintaxe.

 

@Edit

Recomendo mudar o tipo da sua ArrayList, você armazena muito dado desnecessário no tipo Player, sendo que só precisa do nickname ou uuid.

Editado por TequilAxBr
Link para o comentário
Compartilhar em outros sites

não sei se vai lagar mas faça um schedule pra ficar escondendo sla

Pode dar um exemplo? Nunca mexi com repeating =/

 

Código:

@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		if (!(sender instanceof Player)) {
			return true;
		}
		Player p = (Player) sender;
		if (command.getName().equalsIgnoreCase("vanish")) {
			if (vanish.contains(p)) {
				vanish.remove(p);
				p.sendMessage("§cVocê não está mais invisível.");
				for (Player s : Bukkit.getOnlinePlayers()) {
					s.showPlayer(p);
				}
			} else {
				vanish.add(p);
				p.sendMessage("§aAgora você está invisível.");
				for (Player s : Bukkit.getOnlinePlayers()) {
					s.hidePlayer(p);
					if (s.hasPermission("vanish.ver")) {
						s.showPlayer(p);
					}
				}
			}
		}
		return false;
	}

Bota pra quando um player entrar esconde um cara que esta na arraylist

Tentei isso mas da o erro no eclipse mandou adicionar cast player dai adicionei fico sem erro no eclipse mas da o erro no console dessa linha.

e.getPlayer().hidePlayer((Player) vanish);
Link para o comentário
Compartilhar em outros sites

Adiciona os cara que estão de /v em uma ArrayList e depois deixa eles invisiveis no no listener PlayerJoinEvent

@EventHandler
private void onJoin(PlayerJoinEvent e){
  Player p = e.getPlayer();
  for(Player all : Bukkit.getOnlinePlayers()){
      if(vanish.contains(all.getName()){
        p.hidePlayer(all)
      }
  }
}

Fiz aqui no fórum mesmo, pode ter erros na sintaxe.

 

 

foi isso que acabei de falar kkkk

Link para o comentário
Compartilhar em outros sites

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