Ensure snowball hit events are properly canceled outside combat phase.
Previously, events where players were hit outside the combat phase or by non-snowball entities were not being canceled appropriately. This commit adds `event.setCancelled(true)` to prevent unintended behaviors in these scenarios.
This commit is contained in:
parent
07b700bc32
commit
f27038f91d
|
|
@ -100,13 +100,14 @@ public class SnowballEvent implements Listener {
|
||||||
private void handleSnowballHit(EntityDamageByEntityEvent event, SnowballHitConsumer consumer) {
|
private void handleSnowballHit(EntityDamageByEntityEvent event, SnowballHitConsumer consumer) {
|
||||||
Optional<GamePhase> optionalGamePhase = gameManager.getGamePhase();
|
Optional<GamePhase> optionalGamePhase = gameManager.getGamePhase();
|
||||||
if (optionalGamePhase.isEmpty()) {
|
if (optionalGamePhase.isEmpty()) {
|
||||||
log.debug("No game is running but player was hit by snowball");
|
log.debug("No game is running but player was hit");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
GamePhase gamePhase = optionalGamePhase.get();
|
GamePhase gamePhase = optionalGamePhase.get();
|
||||||
|
|
||||||
if (!gamePhase.equals(GamePhase.COMBAT)) {
|
if (!gamePhase.equals(GamePhase.COMBAT)) {
|
||||||
log.debug("Not in combat phase but player was hit by snowball");
|
log.debug("Not in combat phase but player was hit, cancelling event");
|
||||||
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,7 +117,8 @@ public class SnowballEvent implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(event.getDamager() instanceof org.bukkit.entity.Snowball snowball)) {
|
if (!(event.getDamager() instanceof org.bukkit.entity.Snowball snowball)) {
|
||||||
log.debug("The player was hit by something other than a snowball");
|
log.debug("The player was hit by something other than a snowball, canceling event");
|
||||||
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user