1
Get Player who got hit by snowball? - Bukkit Plugin Help!
So I'm trying to make a bukkit plugin, and it's supposed to prevent players from getting damage when hit by snowballs. It's also supposed to spawn a snowball into a player's inventory when they get hit. Right now, all it does is prevent the player from getting damage, but doesn't spawn a snowball into the player's inventory. Anyone know what I did wrong? This is my code so far:
@EventHandler
public void onSnowballHit(EntityDamageByEntityEvent event) {
Entity thrownEntity = event.getEntity();
if (thrownEntity.getType().equals(Material.SNOW_BALL)) {
if (event.getDamager() instanceof Player) {
Player thrower = (Player) event.getDamager();
Player hitPlayer = (Player) event.getEntity();
event.setCancelled(true);
hitPlayer.getInventory().addItem(
new ItemStack(Material.SNOW_BALL, 1));
hitPlayer.sendMessage(AQUA
+ "A snowball was added to your inventory by"
+ thrower.getDisplayName());
}
}
}
@EventHandler
public void onSnowballHit(EntityDamageByEntityEvent event) {
Entity thrownEntity = event.getEntity();
if (thrownEntity.getType().equals(Material.SNOW_BALL)) {
if (event.getDamager() instanceof Player) {
Player thrower = (Player) event.getDamager();
Player hitPlayer = (Player) event.getEntity();
event.setCancelled(true);
hitPlayer.getInventory().addItem(
new ItemStack(Material.SNOW_BALL, 1));
hitPlayer.sendMessage(AQUA
+ "A snowball was added to your inventory by"
+ thrower.getDisplayName());
}
}
}
Create an account or sign in to comment.
7
1
Well whoops, I checked your code wrong.
Change 'if (thrownEntity.getType().equals(Material.SNOW_BALL))' to
'if (thrownEntity.getType() == EntityType.SNOW_BALL))'
Change 'if (thrownEntity.getType().equals(Material.SNOW_BALL))' to
'if (thrownEntity.getType() == EntityType.SNOW_BALL))'
1
1
I tried removing the event.setCancelled(true); but it still doesn't spawn snowballs in the target's inventory. Any other suggestions?
1
Did you register the event in the event in the onEnable() method. Maybe you could put your code in hastebin so I can read it better?
1
Probably because you are cancelling the event.
1
Try asking on spigot.
1
The entity attacking can also be a snowball entity. Check for that.