diff --git a/src/main/java/com/alttd/ctf/events/SnowballEvent.java b/src/main/java/com/alttd/ctf/events/SnowballEvent.java index 7051b20..7bb51de 100644 --- a/src/main/java/com/alttd/ctf/events/SnowballEvent.java +++ b/src/main/java/com/alttd/ctf/events/SnowballEvent.java @@ -48,7 +48,7 @@ public class SnowballEvent implements Listener { } @EventHandler - public void onSnowballHitBySnowball(ProjectileLaunchEvent event) { + public void onSnowballThrown(ProjectileLaunchEvent event) { handleSnowballThrown(event, (shooter, shooterTeamPlayer) -> { GameClass shooterClass = shooterTeamPlayer.getGameClass(); shooter.setCooldown(Material.SNOWBALL, shooterClass.getThrowTickSpeed()); @@ -105,11 +105,22 @@ public class SnowballEvent implements Listener { return; } - Optional teamPlayer = gameManager.getTeamPlayer(shooter.getUniqueId()); - if (teamPlayer.isEmpty()) { + Optional teamPlayerShooter = gameManager.getTeamPlayer(shooter.getUniqueId()); + if (teamPlayerShooter.isEmpty()) { log.debug("The shooter that hit a player with a snowball was not a team player"); return; } - consumer.apply(hitPlayer, shooter, teamPlayer.get()); + + Optional teamPlayerHit = gameManager.getTeamPlayer(hitPlayer.getUniqueId()); + if (teamPlayerHit.isEmpty()) { + log.debug("The shooter that hit a player with a snowball was not a team player"); + return; + } + + if (teamPlayerHit.get().getTeam().getId() == teamPlayerShooter.get().getTeam().getId()) { + log.debug("The shooter hit a member of their own team"); + return; + } + consumer.apply(hitPlayer, shooter, teamPlayerHit.get()); } }