Ir para conteúdo
  • 0

[Resolvido] Ajuda plugin de morte, está com erro, insuportável.


Guest MisterPvP

Pergunta

Erro:

2015-11-29 00:04:30 [SEVERE] Could not pass event PlayerDeathEvent to MrFIXs v0.1
org.bukkit.event.EventException
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
	at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
	at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:361)
	at net.minecraft.server.v1_5_R3.EntityPlayer.die(EntityPlayer.java:294)
	at net.minecraft.server.v1_5_R3.EntityLiving.damageEntity(EntityLiving.java:764)
	at net.minecraft.server.v1_5_R3.EntityHuman.damageEntity(EntityHuman.java:684)
	at net.minecraft.server.v1_5_R3.EntityPlayer.damageEntity(EntityPlayer.java:359)
	at net.minecraft.server.v1_5_R3.EntityLiving.a(EntityLiving.java:992)
	at net.minecraft.server.v1_5_R3.EntityHuman.a(EntityHuman.java:1295)
	at net.minecraft.server.v1_5_R3.Entity.a(Entity.java:789)
	at net.minecraft.server.v1_5_R3.EntityLiving.a(EntityLiving.java:250)
	at net.minecraft.server.v1_5_R3.EntityPlayer.b(EntityPlayer.java:464)
	at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:430)
	at net.minecraft.server.v1_5_R3.Packet10Flying.handle(SourceFile:136)
	at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:215)
	at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:115)
	at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
	at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnection.java:72)
	at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:583)
	at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
	at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
	at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
	at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Caused by: java.lang.NullPointerException
	at me.misterpvp.fixs.Main.onDeath(Main.java:133)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
	... 25 more

Código da parte do erro:

        	Player killer = e.getEntity().getKiller();
        	Player dead = e.getEntity();
        	String mensagem = getConfig().getString("Mensagem").replace("&", "§").replace("@matou", killer.getName()).replace("@morreu", dead.getName());
        	Bukkit.broadcastMessage(mensagem);

Eu sei porque o erro acontece, como acontece porém não sei como resolver, simplesmente o plugin funciona normal, quando a pessoa morre ela manda a mensagem, porém quando a pessoa "se mata, e morta por um animal" ou outra coisa do gênero ele da esse erro.

 

Gostaria de saber como eu adiciono outros tipos de mortes(creio eu que só assim para resolver).

Eu já usei todos os priority=EventPriority, e nunca da certo.

Alguém sabe como eu resolvo?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

Eu já usei:

		@EventHandler(priority=EventPriority.NORMAL)
		private void onEventNormal(PlayerDeathEvent e) {
		    e.setCancelled(null);
	    }

e deu em nada, eu já usei HIGHT também

que viaji é essa cara? pra que isso, faz o que eu falei, o coloca o método que ta o codigo que to mostro  no topico.

Link para o comentário
Compartilhar em outros sites

Se ela se mata o killer vai ser nulo, ai quando tu for pegar o nome dele "killer.getName()" vai lançar esse nullpointer... é só verificar a causa da morte ou se o killer é nulo

Eu já usei:

		@EventHandler(priority=EventPriority.NORMAL)
		private void onEventNormal(PlayerDeathEvent e) {
		    e.setCancelled(null);
	    }

e deu em nada, eu já usei HIGHT também

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

Como verifico se killer e nulo?

Poh vei '-'

 

if (killer == null)

{

    // é nulo

}

 

Ficaria +- assim

Player killer = e.getEntity().getKiller();

if (killer != null) /* verifica se o killer NÃO é nulo */
{
    Player dead = e.getEntity();
    String mensagem = getConfig().getString("Mensagem").replace("&", "§").replace("@matou", killer.getName()).replace("@morreu", dead.getName());
    Bukkit.broadcastMessage(mensagem);
}

Link para o comentário
Compartilhar em outros sites

 

Poh vei '-'

 

if (killer == null)

{

    // é nulo

}

 

Ficaria +- assim

Player killer = e.getEntity().getKiller();

if (killer != null) /* verifica se o killer NÃO é nulo */
{
    Player dead = e.getEntity();
    String mensagem = getConfig().getString("Mensagem").replace("&", "§").replace("@matou", killer.getName()).replace("@morreu", dead.getName());
    Bukkit.broadcastMessage(mensagem);
}

Ata vlw, e eu já tava preparando 50 linhas '='

Link para o comentário
Compartilhar em outros sites

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