From e8e547d0f559f330157eda2d44596c13932400cf Mon Sep 17 00:00:00 2001 From: Myles Date: Wed, 7 Dec 2022 19:36:12 -0600 Subject: wow I finally added a *core game mechanic*!11!! (blocks break when a snowball impacts them in the gameWorld) --- .../com/MylesAndMore/tumble/EventListener.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/main') diff --git a/src/main/java/com/MylesAndMore/tumble/EventListener.java b/src/main/java/com/MylesAndMore/tumble/EventListener.java index d1a60ad..00dbe07 100644 --- a/src/main/java/com/MylesAndMore/tumble/EventListener.java +++ b/src/main/java/com/MylesAndMore/tumble/EventListener.java @@ -8,7 +8,9 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.entity.ProjectileLaunchEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerItemDamageEvent; @@ -87,6 +89,27 @@ public class EventListener implements Listener{ } } + @EventHandler + public void ProjectileHitEvent(ProjectileHitEvent event) { + // When a projectile hits, check to see if the gameWorld is null, + if (TumbleManager.getGameWorld() != null) { + // then check to see if the projectile hit in the gameWorld, + if (event.getHitBlock().getWorld() == Bukkit.getWorld(TumbleManager.getGameWorld())) { + // then check if the projectile was a snowball, + if (event.getEntity() instanceof Snowball) { + // then check if a player threw it, + if (event.getEntity().getShooter() instanceof Player player) { + // then check if that block is within the game area, + if (event.getHitBlock().getLocation().distanceSquared(Bukkit.getWorld(TumbleManager.getGameWorld()).getSpawnLocation()) < 402) { + // then remove that block. + event.getHitBlock().setType(Material.AIR); + } + } + } + } + } + } + @EventHandler public void PlayerDropItemEvent(PlayerDropItemEvent event) { // When an item is dropped, make sure there is a defined gameWorld @@ -106,6 +129,17 @@ public class EventListener implements Listener{ event.setCancelled(true); } } + + @EventHandler + public void FoodLevelChangeEvent(FoodLevelChangeEvent event) { + // When someone's food level changes, check if the gameWorld is null, + if (TumbleManager.getGameWorld() != null) { + // then check if that happened in the gameWorld + if (event.getEntity().getWorld() == Bukkit.getWorld(TumbleManager.getGameWorld())) { + event.setCancelled(true); + } + } + } } -- cgit v1.2.3