Ir para conteúdo
  • 0

[Resolvido] [Dúvida Cruel] Verificar se o mob é natural


Metalflame12

Pergunta

Olá! Eu estou com dificuldade para fazer o seguinte:

Verificar se o mob morto pelo player spawnou naturalmente, sem ser por spawner, ovo, etc...

 

Se puder passar o código agradeço, nunca fiz nada parecido antes e não sei onde buscar referencias para fazer meu próprio código :/

 

Obrigado!

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

5 respostass a esta questão

Posts Recomendados

@EventHandler
public void spawn(CreatureSpawnEvent event){
   SpawnReason spawnReason = event.getSpawnReason();
}

Esse spawnReason é o enum CreatureSpawnEvent.SpawnReason

por ele você sabe o motivo da entidade estar spawnando.

 

@Edit

 

fui interpretar corretamente depois, que você precisa dessa informação quando o player matar a entidade, no caso você pode adicionar uma metadata na entidade sempre que ela spawnar, com o próprio enum SpawnReason e quando o player matar essa entidade você apenas pega essa informação salva na metadata da entidade.

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

Olá! Eu estou com dificuldade para fazer o seguinte:

Verificar se o mob morto pelo player spawnou naturalmente, sem ser por spawner, ovo, etc...

 

Se puder passar o código agradeço, nunca fiz nada parecido antes e não sei onde buscar referencias para fazer meu próprio código :/

 

Obrigado!

 

Eai, já viu a resposta do cara ? conseguiu ?

Link para o comentário
Compartilhar em outros sites

@EventHandler
public void spawn(CreatureSpawnEvent event){
   SpawnReason spawnReason = event.getSpawnReason();
}

Esse spawnReason é o enum CreatureSpawnEvent.SpawnReason

por ele você sabe o motivo da entidade estar spawnando.

 

@Edit

 

fui interpretar corretamente depois, que você precisa dessa informação quando o player matar a entidade, no caso você pode adicionar uma metadata na entidade sempre que ela spawnar, com o próprio enum SpawnReason e quando o player matar essa entidade você apenas pega essa informação salva na metadata da entidade.

 

 

Obrigado! Nunca usei metadata antes, queria saber uma coisa:

mob.setMetadata("True", new FixedMetadataValue(Main.m, "issoehinutil?"));

A parte com "issoehinutil?" server pra quê?

 

 

 

Eai, já viu a resposta do cara ? conseguiu ?

Consegui sim, só fiquei com essa outra dúvida mesmo

Link para o comentário
Compartilhar em outros sites

Obrigado! Nunca usei metadata antes, queria saber uma coisa:

mob.setMetadata("True", new FixedMetadataValue(Main.m, "issoehinutil?"));

A parte com "issoehinutil?" server pra quê?

 

 

 

Consegui sim, só fiquei com essa outra dúvida mesmo

 

 

a parte do "issoehinutil?" é o valor da metadata, você pode por qualquer coisa ai, só precisa lembrar de fazer cast depois...

 

ex com a String:

String valor = mob.getMetadata("True").get(0).asString();
//valor = "issoehinutil?"

Obs: na parte do "True" fica a chave de indexação da metadata que você está setando...

Link para o comentário
Compartilhar em outros sites

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