summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java56
1 files changed, 41 insertions, 15 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java
index 129d684..9983202 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java
@@ -5,26 +5,29 @@ import static net.tylermurphy.hideAndSeek.Store.*;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.attribute.Attribute;
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.PlayerDeathEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityRegainHealthEvent;
+import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.potion.PotionEffect;
import net.md_5.bungee.api.ChatColor;
+import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.util.Functions;
public class EventManager implements Listener {
-
+
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
- if(Bukkit.getScoreboardManager() != null && board == null) {
- BoardManager.loadScoreboard();
- }
if(status.equals("Playing") || status.equals("Starting")) {
Spectator.addEntry(event.getPlayer().getName());
event.getPlayer().sendMessage(messagePrefix + "You have joined mid game, and thus have been placed on the spectator team.");
@@ -49,18 +52,28 @@ public class EventManager implements Listener {
}
@EventHandler
- public void onDeath(PlayerDeathEvent event) {
- if(status.equals("Playing")) {
- if(Hider.hasEntry(event.getEntity().getName())) {
- Bukkit.getServer().broadcastMessage(String.format(messagePrefix + "%s%s%s has died and become a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
- }
- if(Seeker.hasEntry(event.getEntity().getName())) {
- Bukkit.getServer().broadcastMessage(String.format(messagePrefix + "%s%s%s has been beat by a hider", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE));
+ public void onPlayerDamage(EntityDamageEvent event) {
+ if(event.getEntity() instanceof Player) {
+ Player player = (Player) event.getEntity();
+ if(player.getHealth()-event.getDamage() < 0) {
+ if(spawnPosition == null) return;
+ event.setCancelled(true);
+ player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
+ player.teleport(new Location(player.getWorld(), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ()));
+ Functions.playSound(player, Sound.ENTITY_PLAYER_DEATH, 1, 1);
+ if(status.equals("Playing")) {
+ Functions.resetPlayer(player);
+ if(Hider.hasEntry(event.getEntity().getName())) {
+ Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s has died and become a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
+ }
+ if(Seeker.hasEntry(event.getEntity().getName())) {
+ Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s has been beat by a hider", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE));
+ }
+ Seeker.addEntry(player.getName());
+ }
}
-
- Functions.giveItems(event.getEntity());
- Seeker.addEntry(event.getEntity().getName());
}
+
}
@EventHandler
@@ -73,9 +86,22 @@ public class EventManager implements Listener {
if(Hider.hasEntry(player.getName())) {
glowTime++;
snowball.remove();
+ player.getInventory().remove(Material.SNOWBALL);
+ int temp = gameId;
+ Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() {
+ public void run() {
+ if(temp != gameId) return;
+ glowTime--;
+ }
+ }, 20 * 30);
}
}
}
}
+ @EventHandler
+ public void onPlayerRegainHealth(EntityRegainHealthEvent event) {
+ if(event.getRegainReason() == RegainReason.SATIATED || event.getRegainReason() == RegainReason.REGEN)
+ event.setCancelled(true);
+ }
}