this code working but have conflict when the player and killed by another player like this Code:java Arrow arrow = (Arrow) damager;Entity killershooter = arrow.getShooter();if(killershooter instanceof Skeleton) {event.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]"+ ChatColor.WHITE + " killed by skeleton ");} if (playerInstance.getKiller() instanceof Player){event.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]"+ ChatColor.WHITE + " killed by " + player.getKiller().getDisplayName() + " skeleton ");} Can help me please?
if(killer instanceof Arrow){ Arrow a = (Arrow)killer; }else if(killer instanceof Player){ Player p = (Player)killer; } Get the point?
here I did it for you Code: public void onPlayerDeath(PlayerDeathEvent ev){ Player player = (Player) ev.getEntity(); if(player.getKiller() instanceof Arrow){ LivingEntity shooter = ((Arrow)player.getKiller()).getShooter(); if(shooter instanceof Skeleton){ ev.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]" + ChatColor.WHITE + " killed by skeleton "); }else if(shooter instanceof Player){ ev.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]" + ChatColor.WHITE + " killed by " + player.getKiller().getDisplayName()); } } } Or maybe this works Code: public void onPlayerDeath2(PlayerDeathEvent ev){ Player player = (Player) ev.getEntity(); if(player.getKiller() instanceof Player){ ev.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]" + ChatColor.WHITE + " killed by " + player.getKiller().getDisplayName()); }else if(player.getKiller() instanceof Skeleton){ ev.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]" + ChatColor.WHITE + " killed by skeleton "); } } EDIT by Moderator: merged posts, please use the edit button instead of double posting.
i need when player dead by player say message but have conflict with player death by skeleton plz help me guys! EDIT by Moderator: merged posts, please use the edit button instead of double posting.
i need when player dead by player say message killled by $nameplayer but have conflict with player death by skeleton please guys help me =( EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Threads like this are very quickly identified as lost causes. To detect when a player is killed you need to listen to the EntityDamageByEntityEvent and then check the entities health, if it's 0 they're dead so you need to get the entity that damaged them. If the entity is a player then a player killed a player, else it was something else. With this information you should be able to do your own research and plugin development. If not then you need to understand either Java or Bukkit API better. :/
this is my code but not working when i die by skeleton have error Code:java @EventHandlerpublic void onPlayerDeath(PlayerDeathEvent event) {Player playerInstance = (Player) event.getEntity();EntityDamageEvent damageEvent = playerInstance.getLastDamageCause();if(!(damageEvent instanceof EntityDamageByEntityEvent))return; Entity damager = ((EntityDamageByEntityEvent)damageEvent).getDamager();Arrow arrow = (Arrow) damager;Entity killershooter = arrow.getShooter();if(killershooter instanceof Skeleton) {event.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]"+ ChatColor.WHITE + " killed by skeleton ");} if (playerInstance.getKiller() instanceof Player){event.setDeathMessage("[NOTICE]" + ChatColor.RED + "[" + player + "]"+ ChatColor.WHITE + " killed by " + player.getKiller().getDisplayName());}}
And the error is? Very few people will look at one part of your code and fix every issue with it. Tell us the error and then we might be able to help solve each individual issue at a time.
when i die by skeleton Code:java [SEVERE] Could not pass event PlayerDeathEvent to myPlugin v1.0org.bukkit.event.EventExceptionat org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:332)at net.minecraft.server.v1_4_R1.EntityPlayer.die(EntityPlayer.java:256)at net.minecraft.server.v1_4_R1.EntityLiving.damageEntity(EntityLiving.java:758)at net.minecraft.server.v1_4_R1.EntityHuman.damageEntity(EntityHuman.java:616)at net.minecraft.server.v1_4_R1.EntityPlayer.damageEntity(EntityPlayer.java:309)at net.minecraft.server.v1_4_R1.EntityArrow.j_(EntityArrow.java:226)at net.minecraft.server.v1_4_R1.World.entityJoinedWorld(World.java:1332)at net.minecraft.server.v1_4_R1.WorldServer.entityJoinedWorld(WorldServer.java:548)at net.minecraft.server.v1_4_R1.World.playerJoinedWorld(World.java:1313)at net.minecraft.server.v1_4_R1.World.tickEntities(World.java:1191)at net.minecraft.server.v1_4_R1.WorldServer.tickEntities(WorldServer.java:445)at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:580)at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)Caused by: java.lang.NullPointerExceptionat myPlugin.game.Main.onPlayerDeath(Main.java:1263)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)... 19 more[INFO] Mother__ was shot by Skeleton when i die by player Code:java [SEVERE] Could not pass event PlayerDeathEvent to myPlugin v1.0org.bukkit.event.EventExceptionat org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:332)at net.minecraft.server.v1_4_R1.EntityPlayer.die(EntityPlayer.java:256)at net.minecraft.server.v1_4_R1.EntityLiving.damageEntity(EntityLiving.java:758)at net.minecraft.server.v1_4_R1.EntityHuman.damageEntity(EntityHuman.java:616)at net.minecraft.server.v1_4_R1.EntityPlayer.damageEntity(EntityPlayer.java:309)at net.minecraft.server.v1_4_R1.EntityHuman.attack(EntityHuman.java:805)at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:1116)at net.minecraft.server.v1_4_R1.Packet7UseEntity.handle(SourceFile:36)at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer cannot be cast to org.bukkit.entity.Arrowat myPlugin.game.Main.onPlayerDeath(Main.java:1280)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)... 20 more[INFO] Mother__ was slain by Mother__2