diff options
-rw-r--r-- | src/main/java/com/MylesAndMore/tumble/EventListener.java | 25 | ||||
-rw-r--r-- | src/main/java/com/MylesAndMore/tumble/Game.java | 9 |
2 files changed, 30 insertions, 4 deletions
diff --git a/src/main/java/com/MylesAndMore/tumble/EventListener.java b/src/main/java/com/MylesAndMore/tumble/EventListener.java index 1a8be98..f40430d 100644 --- a/src/main/java/com/MylesAndMore/tumble/EventListener.java +++ b/src/main/java/com/MylesAndMore/tumble/EventListener.java @@ -1,12 +1,21 @@ package com.MylesAndMore.tumble; import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; +import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.event.player.PlayerItemDamageEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.bukkit.projectiles.ProjectileSource; public class EventListener implements Listener{ @EventHandler @@ -60,7 +69,23 @@ public class EventListener implements Listener{ } } } + + @EventHandler + public void ProjectileLaunchEvent(ProjectileLaunchEvent event) { + // When A projectile is launched, check to make sure there is a defined gameWorld + if (TumbleManager.getGameWorld() != null) { + // Then check to see if projectile was thrown in the gameWorld. + if (event.getEntity().getWorld() == Bukkit.getWorld(TumbleManager.getGameWorld())) { + if (event.getEntity() instanceof Snowball) { + if (event.getEntity().getShooter() instanceof Player player) { + player.getInventory().addItem(new ItemStack(Material.SNOWBALL)); + } + } + } + } + } } + diff --git a/src/main/java/com/MylesAndMore/tumble/Game.java b/src/main/java/com/MylesAndMore/tumble/Game.java index 63c68df..b08dfd3 100644 --- a/src/main/java/com/MylesAndMore/tumble/Game.java +++ b/src/main/java/com/MylesAndMore/tumble/Game.java @@ -86,14 +86,17 @@ public class Game { gameType = "mixed"; // Mixed gamemode (choose random shovels or snowballs) if (Random.nextInt(2) == 0) { + roundType = "shovels"; generateLayers("shovels"); giveItems(new ItemStack(Material.DIAMOND_SHOVEL)); sendPlayers(); } else { + roundType = "snowballs"; generateLayers("snowballs"); giveItems(new ItemStack(Material.SNOWBALL)); sendPlayers(); + } } else { @@ -111,7 +114,7 @@ public class Game { private boolean generateLayers(String gameType) { Location layer = new Location(gameSpawn.getWorld(), gameSpawn.getX(), gameSpawn.getY(), gameSpawn.getZ(), gameSpawn.getYaw(), gameSpawn.getPitch()); - if (Objects.equals(gameType, "shovels")) { + if (Objects.equals(roundType, "shovels")) { layer.setY(layer.getY() - 1); Generator.generateLayer(layer, 17, 1, Material.SNOW_BLOCK); Generator.generateLayer(layer, 13, 1, Material.AIR); @@ -123,7 +126,7 @@ public class Game { Generator.generateLayer(layer, 4, 2, Material.TALL_GRASS); roundType = "shovels"; } - else if (Objects.equals(gameType, "snowballs")) { + else if (Objects.equals(roundType, "snowballs")) { layer.setY(layer.getY() - 1); Generator.generateLayer(layer, 17, 1, Material.COAL_ORE); Generator.generateLayer(layer, 13, 1, Material.AIR); @@ -137,10 +140,8 @@ public class Game { else if (Objects.equals(gameType, "mixed")) { if (Random.nextInt(2) == 0) { generateLayers("shovels"); - roundType = "shovels"; } else { generateLayers("snowballs"); - roundType = "snowballs"; } } else { |