Ir para conteúdo
  • 0

[Resolvido] Como limpar mobs? java..


Guest Gostosão do fórum SrKerwin

Pergunta

Guest Gostosão do fórum SrKerwin

Eu tenho um task, mais não faço a minima ideia de como limpar os mobs de todos os comandos do servidor..

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

Usa assim:

       public void killAllEntities(){
		for (World w:Bukkit.getServer().getWorlds()){
			for (Entity ent:w.getEntities()){
				if (ent instanceof Player){
					continue;
				}
				//checar se eh entitade viva e não armor stands e item frames
				if (ent instanceof LivingEntity){
					((LivingEntity)ent).remove();
				}
			}
		}
	}
Link para o comentário
Compartilhar em outros sites

Guest Ramon Dornelles

Tenta assim:

for(World w : Bukkit.getWorlds()){
for(Entity en : w.getEntities()){
en.remove();
}}

Fiz aqui no fórum, se ficar alguma coisa vermelha tenta ver as sugestões do seu IDE.

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin
  Em 13/04/2016 em 20:41, Ramon Dornelles disse:

Tenta assim:

for(World w : Bukkit.getWorlds()){
for(Entity en : w.getEntities()){
en.remove();
}}

Fiz aqui no fórum, se ficar alguma coisa vermelha tenta ver as sugestões do seu IDE.

		boolean LimpMobs = true;
		int repetir;
        
		public void newTask() {
		    repetir = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
		        public void run() {
		            if (!(LimpMobs)) {
		                Bukkit.getScheduler().cancelTask(repetir);
		                repetir = -1;
		            return;
		            }
		            Bukkit.broadcastMessage("§3Todos os mobs foram limpados..");
		            for(World w : Bukkit.getWorlds()){
		            	for(Entity en : w.getEntities()){
		            	en.remove();
		            	}
		            }
		        }
		    }, 20 * 20L, 20 * 5L);
		}

Não está limpando os mobs nem nada.. está no máximo mandando o broadcast.. mais não e isso que eu quero!

Editado por Gostosão do fórum SrKerwin
Link para o comentário
Compartilhar em outros sites

  Em 13/04/2016 em 20:41, Ramon Dornelles disse:

Tenta assim:

for(World w : Bukkit.getWorlds()){
for(Entity en : w.getEntities()){
en.remove();
}}

Fiz aqui no fórum, se ficar alguma coisa vermelha tenta ver as sugestões do seu IDE.

Player também é uma Entity, fazendo isso, irá "remover" os players do servidor

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin
  Em 13/04/2016 em 20:52, ƒσƒασ disse:

Player também é uma Entity, fazendo isso, irá "remover" os players do servidor

Eu tinha notado isso, só puis o código achando que poderia funcionar.. mais não funcionou.. "os jogadores travam sem usar comandos nem nada"!

Poderia me ajudar com algum outro método?

Link para o comentário
Compartilhar em outros sites

Guest Ramon Dornelles
  Em 13/04/2016 em 20:49, RuanBR13 disse:
		boolean LimpMobs = true;
		int repetir;
        
		public void newTask() {
		    repetir = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
		        public void run() {
		            if (!(LimpMobs)) {
		                Bukkit.getScheduler().cancelTask(repetir);
		                repetir = -1;
		            return;
		            }
		            Bukkit.broadcastMessage("§3Todos os mobs foram limpados..");
		            for(World w : Bukkit.getWorlds()){
		            	for(Entity en : w.getEntities()){
		            	en.remove();
		            	}
		            }
		        }
		    }, 20 * 20L, 20 * 5L);
		}

Não está limpando os mobs nem nada.. está no máximo mandando o broadcast.. mais não e isso que eu quero!

 

Quando eu entrar no pc eu vejo se consigo te ajudar melhor.

  Em 13/04/2016 em 20:52, ƒσƒασ disse:

Player também é uma Entity, fazendo isso, irá "remover" os players do servidor

Creio que o void "remove" não é instanciado para jogador, mas pra evitar dúvidas, basta adicionar isso no código:

if(en instanceof Player){
continue;
}
Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin
  Em 13/04/2016 em 20:55, Ramon Dornelles disse:

Quando eu entrar no pc eu vejo se consigo te ajudar melhor.

Vai demorar? precisaria do código com urgencia.. mais se e uma opção única eu espero :p

Link para o comentário
Compartilhar em outros sites

Guest Ramon Dornelles
  Em 13/04/2016 em 20:57, RuanBR13 disse:

Vai demorar? precisaria do código com urgencia.. mais se e uma opção única eu espero :p

Add skype: ramonxd131, assim que add me avisa que eu logo lá

Link para o comentário
Compartilhar em outros sites

Guest Gostosão do fórum SrKerwin
  Em 13/04/2016 em 20:58, Ramon Dornelles disse:

Add skype: ramonxd131, assim que add me avisa que eu logo lá

Vou adicionar quando poder ;)

Link para o comentário
Compartilhar em outros sites

  Em 13/04/2016 em 21:30, FabioZumbi12 disse:

 

 

Usa assim:

public void killAllEntities(){
		for (World w:Bukkit.getServer().getWorlds()){
			for (Entity ent:w.getEntities()){
				if (ent instanceof Player){
					continue;
				}
				//checar se eh entitade viva e não armor stands e item frames
				if (ent instanceof LivingEntity){
					((LivingEntity)ent).remove();
				}
			}
		}
	}

Por que fez Cast em ent?

Link para o comentário
Compartilhar em outros sites

  Em 13/04/2016 em 21:57, RoinujNosde disse:

Por que fez Cast em ent?

Não precisa mesmo! Procurei kill em livingEntity mas n tem, dai eskeci de tirar, mas n interfere em nd nao ^^ 

logo-forum.png

 

 

Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.

 

 

Atenciosamente,

Gamer's Board

Link para o comentário
Compartilhar em outros sites

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