Added cancellation of entity damage by entities during match grace time.

This commit is contained in:
2022-06-17 19:12:40 -04:00
parent 6b85b99a4b
commit fd98858019
3 changed files with 30 additions and 5 deletions

View File

@@ -404,7 +404,7 @@ public class ArenaManager implements Listener {
* *
* @param event The event. * @param event The event.
*/ */
@EventHandler @EventHandler(ignoreCancelled = true)
public void onEntityDamageByEntity(final EntityDamageByEntityEvent event){ public void onEntityDamageByEntity(final EntityDamageByEntityEvent event){
final Arena arena = this.getArenaByLocation(event.getEntity().getLocation()); final Arena arena = this.getArenaByLocation(event.getEntity().getLocation());

View File

@@ -21,10 +21,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.*; import org.bukkit.event.block.*;
import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityPlaceEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
import java.util.ArrayList; import java.util.ArrayList;
@@ -425,6 +422,22 @@ public class MatchManager implements Listener, Runnable {
} }
} }
/**
* Notifies appropriate matches of entity damages by players.
*
* @param event The event.
*/
@EventHandler(ignoreCancelled = true)
public void onEntityDamageByEntity(final EntityDamageByEntityEvent event){
final Arena arena = this.snowbrawl.getArenaManager().getArenaByLocation(event.getEntity().getLocation());
if (arena != null){
final Match match = this.getMatchFromArena(arena);
if (match != null){
match.onEntityDamageByEntity(event);
}
}
}
/** /**
* Prevents match participants from picking up items except snowballs. * Prevents match participants from picking up items except snowballs.
* *

View File

@@ -15,6 +15,7 @@ import org.bukkit.*;
import org.bukkit.boss.BarColor; import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle; import org.bukkit.boss.BarStyle;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
@@ -362,6 +363,17 @@ public class Match {
victimPlayer.updateInventory(); victimPlayer.updateInventory();
} }
/**
* Prevents entities from damaging each other during grace time.
*
* @param event The event.
*/
public void onEntityDamageByEntity(final EntityDamageByEntityEvent event){
if (this.graceTimeTicksRemaining > 0){
event.setCancelled(true);
}
}
/** /**
* Changes the respawn point of dying match participants to a random spawn point in the arena. * Changes the respawn point of dying match participants to a random spawn point in the arena.
* *