[SPIGOT-2458] EntityDamageEvent fired twice Created: 27/Jun/16 Updated: 27/Jun/16 Resolved: 27/Jun/16 |
|
Status: | Resolved |
Project: | Spigot |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Bug | Priority: | Minor |
Reporter: | AverageBloke | Assignee: | Unassigned |
Resolution: | Cannot Reproduce | Votes: | 0 |
Labels: | 1.10, 1.10.2, spigot |
Attachments: |
![]() |
Plugin: | - |
Description |
EntityDamageEvent and EntityDamageByEntityEvent are being fired twice. |
Comments |
Comment by AverageBloke [ 27/Jun/16 ] |
Thank you for your helpful assistance, it turns out I've registered the listeners multiple times, like you said, sorry for the trouble! |
Comment by md_5 [ 27/Jun/16 ] |
I think you are double registering your listeners. Note how the events are the same hash code. |
Comment by AverageBloke [ 27/Jun/16 ] |
My bad and sorry for annoying. [10:09:28 INFO]: org.bukkit.event.entity.EntityDamageByEntityEvent@79315a72[damager=CraftPlayer {name=GamePayers},modifiers={BASE=7.0, BLOCKING=-0.0, ARMOR=-0.0, RESISTANCE=-0.0, MAGIC=-0.0, ABSORPTION=-0.0},modifierFunctions={BASE=constant(-0.0), BLOCKING=net.minecraft.server.v1_10_R1.EntityLiving$2@55ca1481, ARMOR=net.minecraft.server.v1_10_R1.EntityLiving$3@2dfbe56f, RESISTANCE=net.minecraft.server.v1_10_R1.EntityLiving$4@7296ee67, MAGIC=net.minecraft.server.v1_10_R1.EntityLiving$5@107d88d, ABSORPTION=net.minecraft.server.v1_10_R1.EntityLiving$6@46cba30},originals={BASE=7.0, BLOCKING=-0.0, ARMOR=-0.0, RESISTANCE=-0.0, MAGIC=-0.0, ABSORPTION=-0.0},cancelled=false,cause=ENTITY_ATTACK,entity=CraftPlayer{name=McRonalds},name=<null>,async=false][10:09:28 INFO]: org.bukkit.event.entity.EntityDamageByEntityEvent@79315a72[damager=CraftPlayer{name=GamePayers} ,modifiers= {BASE=7.0, BLOCKING=-0.0, ARMOR=-0.0, RESISTANCE=-0.0, MAGIC=-0.0, ABSORPTION=-0.0},modifierFunctions={BASE=constant(-0.0), BLOCKING=net.minecraft.server.v1_10_R1.EntityLiving$2@55ca1481, ARMOR=net.minecraft.server.v1_10_R1.EntityLiving$3@2dfbe56f, RESISTANCE=net.minecraft.server.v1_10_R1.EntityLiving$4@7296ee67, MAGIC=net.minecraft.server.v1_10_R1.EntityLiving$5@107d88d, ABSORPTION=net.minecraft.server.v1_10_R1.EntityLiving$6@46cba30},originals={BASE=7.0, BLOCKING=-0.0, ARMOR=-0.0, RESISTANCE=-0.0, MAGIC=-0.0, ABSORPTION=-0.0},cancelled=true,cause=ENTITY_ATTACK,entity=CraftPlayer {name=McRonalds},name=<null>,async=false] |
Comment by md_5 [ 27/Jun/16 ] |
See my above code.... |
Comment by AverageBloke [ 27/Jun/16 ] |
Have you tried broadcasting a message when the event gets fired? The player gets damaged once, but it will broadcast 2 messages. Alternatively, send a message to the player, and you'll notice 2 messages pop up. |
Comment by md_5 [ 27/Jun/16 ] |
Well I cannot reproduce. The above code fires one event. |
Comment by AverageBloke [ 27/Jun/16 ] |
I have no other plugins running on the server. I've noticed that this happens to other users aswell. |
Comment by md_5 [ 27/Jun/16 ] |
Cannot reproduce. @EventHandler public void damage(EntityDamageEvent event) { getServer().broadcastMessage( ReflectionToStringBuilder.toString( event ) ); event.setCancelled( true ); } |
Comment by AverageBloke [ 27/Jun/16 ] |
Code to reproduce the issue: @EventHandler public void onEntityDamage(EntityDamageEvent event) { if (event.getEntity() instanceof Player) { Bukkit.broadcastMessage("Damage: " + event.getDamage() + " FinalDamage: " + event.getFinalDamage() + " Cause: " + event.getCause().toString()); event.setCancelled(true); } } |