summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/bukkit
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2021-10-17 22:53:32 -0400
committerGitHub <noreply@github.com>2021-10-17 22:53:32 -0400
commit3ad77301c9e5d05e630fac97090c792c9a46ba5f (patch)
treeee3506b113bf347e64dfac50930b688eed781453 /src/main/java/net/tylermurphy/hideAndSeek/bukkit
parent1.3.0 beta 5 (diff)
parentlobby bug fixes, titles, game time (diff)
downloadkenshinshideandseek-3ad77301c9e5d05e630fac97090c792c9a46ba5f.tar.gz
kenshinshideandseek-3ad77301c9e5d05e630fac97090c792c9a46ba5f.tar.bz2
kenshinshideandseek-3ad77301c9e5d05e630fac97090c792c9a46ba5f.zip
Merge pull request #7 from tylermurphy534/1.3.0beta6
1.3.0beta6
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/bukkit')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java5
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java219
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java46
3 files changed, 89 insertions, 181 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java
index 73bfd08..f15e68b 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java
@@ -26,12 +26,17 @@ public class CommandHandler {
public static void registerCommands() {
registerCommand(new About());
registerCommand(new Help());
+ registerCommand(new Setup());
registerCommand(new Start());
registerCommand(new Stop());
registerCommand(new SetSpawnLocation());
+ registerCommand(new SetLobbyLocation());
+ registerCommand(new SetExitLocation());
registerCommand(new SetBorder());
registerCommand(new Reload());
registerCommand(new SaveMap());
+ registerCommand(new Join());
+ registerCommand(new Leave());
}
public static boolean handleCommand(CommandSender sender, Command cmd, String label, String[] args) {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
index c46dc87..1136ea4 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
@@ -8,9 +8,7 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.attribute.Attribute;
-import org.bukkit.entity.ArmorStand;
-import org.bukkit.entity.ItemFrame;
-import org.bukkit.entity.Painting;
+import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowball;
import org.bukkit.event.EventHandler;
@@ -21,10 +19,6 @@ import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.ProjectileLaunchEvent;
-import org.bukkit.event.hanging.HangingBreakByEntityEvent;
-import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.bukkit.event.player.PlayerInteractEntityEvent;
-import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;
@@ -39,23 +33,33 @@ public class EventListener implements Listener {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
+ event.getPlayer().setLevel(0);
+ if(!Functions.setup()) return;
+ HiderTeam.removeEntry(event.getPlayer().getName());
+ SeekerTeam.removeEntry(event.getPlayer().getName());
+ SpectatorTeam.removeEntry(event.getPlayer().getName());
if(status.equals("Playing") || status.equals("Starting")) {
- Spectator.add(event.getPlayer().getName());
- SpectatorTeam.addEntry(event.getPlayer().getName());
- event.getPlayer().sendMessage(messagePrefix + "You have joined mid game, and thus have been placed on the spectator team.");
- event.getPlayer().setGameMode(GameMode.SPECTATOR);
- event.getPlayer().getInventory().clear();
- for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){
- event.getPlayer().removePotionEffect(effect.getType());
+ if(event.getPlayer().getWorld().getName().equals("hideandseek_"+spawnWorld)) {
+ Spectator.add(event.getPlayer().getName());
+ SpectatorTeam.addEntry(event.getPlayer().getName());
+ event.getPlayer().sendMessage(messagePrefix + "You have joined mid game, and thus have been placed on the spectator team.");
+ event.getPlayer().setGameMode(GameMode.SPECTATOR);
+ event.getPlayer().getInventory().clear();
+ for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){
+ event.getPlayer().removePotionEffect(effect.getType());
+ }
+ event.getPlayer().teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
+ }
+ if(event.getPlayer().getWorld().getName().equals(spawnWorld)) {
+ event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()));
+ event.getPlayer().setGameMode(GameMode.ADVENTURE);
}
- event.getPlayer().teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
} else if(status.equals("Setup") || status.equals("Standby")) {
- Hider.add(event.getPlayer().getName());
- HiderTeam.addEntry(event.getPlayer().getName());
- event.getPlayer().setGameMode(GameMode.ADVENTURE);
- event.getPlayer().teleport(new Location(Bukkit.getWorld(spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
+ if(Functions.playerInProtectedWorld(event.getPlayer())){
+ event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()));
+ event.getPlayer().setGameMode(GameMode.ADVENTURE);
+ }
}
- playerList.put(event.getPlayer().getName(), event.getPlayer());
}
@EventHandler
@@ -85,10 +89,22 @@ public class EventListener implements Listener {
@EventHandler
public void onEntityDamage(EntityDamageEvent event) {
if(event.getEntity() instanceof Player) {
+ Player p = (Player) event.getEntity();
+ if(!playerList.containsKey(p.getName())) return;
if(!status.equals("Playing")) {
event.setCancelled(true);
return;
}
+ Player attacker = null;
+ if(event instanceof EntityDamageByEntityEvent) {
+ Entity damager = ((EntityDamageByEntityEvent)event).getDamager();
+ if(damager instanceof Player) {
+ attacker = (Player) damager;
+ if(Hider.contains(attacker.getName()) && Hider.contains(p.getName())) event.setCancelled(true);
+ if(Seeker.contains(attacker.getName()) && Seeker.contains(p.getName())) event.setCancelled(true);
+ if(Spectator.contains(attacker.getName())) event.setCancelled(true);
+ }
+ }
Player player = (Player) event.getEntity();
if(player.getHealth()-event.getDamage() < 0) {
if(spawnPosition == null) return;
@@ -96,138 +112,20 @@ public class EventListener implements Listener {
player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
player.teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ()));
Packet.playSound(player, Sound.ENTITY_PLAYER_DEATH, 1, 1);
- if(Hider.contains(event.getEntity().getName())) {
- Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s was found and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
- }
if(Seeker.contains(event.getEntity().getName())) {
Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s was killed", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE));
}
- Seeker.add(player.getName());
- Hider.remove(player.getName());
- SeekerTeam.addEntry(player.getName());
- Functions.resetPlayer(player);
- for(Player temp : playerList.values()) {
- Packet.setGlow(player, temp, false);
- }
- }
- }
-
- }
-
- @EventHandler
- public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
- if(event.getEntity() instanceof ArmorStand) {
- if(unbreakableArmorstands) {
- if(event.getDamager() instanceof Player) {
- Player player = (Player) event.getDamager();
- if(status.equals("Playing") || status.equals("Starting") || !player.hasPermission("hideandseek.blockbypass")) {
- System.out.println('t');
- event.setCancelled(true);
- }
- } else {
- event.setCancelled(true);
- }
- }
- }
- }
-
- @EventHandler
- public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
- if(!interactableArmorstands) {
- if(event.getRightClicked() instanceof ArmorStand) {
- if(status.equals("Playing") || status.equals("Starting") || !event.getPlayer().hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
- }
- }
- }
- if(!interactableItemframes) {
- if(event.getRightClicked() instanceof ItemFrame) {
- if(status.equals("Playing") || status.equals("Starting") || !event.getPlayer().hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
- }
- }
- }
- }
-
- @EventHandler
- public void onPlayerInteractBlock(PlayerInteractEvent event) {
- if(!interactableDoors) {
- if(
- event.getClickedBlock().getType() == Material.ACACIA_DOOR ||
- event.getClickedBlock().getType() == Material.BIRCH_DOOR ||
- event.getClickedBlock().getType() == Material.CRIMSON_DOOR ||
- event.getClickedBlock().getType() == Material.DARK_OAK_DOOR ||
- event.getClickedBlock().getType() == Material.IRON_DOOR ||
- event.getClickedBlock().getType() == Material.JUNGLE_DOOR ||
- event.getClickedBlock().getType() == Material.OAK_DOOR ||
- event.getClickedBlock().getType() == Material.SPRUCE_DOOR ||
- event.getClickedBlock().getType() == Material.WARPED_DOOR
- ) {
- if(status.equals("Playing") || status.equals("Starting") || !event.getPlayer().hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
- }
- }
- }
- if(!interactableTrapdoors) {
- if(
- event.getClickedBlock().getType() == Material.ACACIA_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.BIRCH_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.CRIMSON_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.DARK_OAK_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.IRON_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.JUNGLE_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.OAK_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.SPRUCE_TRAPDOOR ||
- event.getClickedBlock().getType() == Material.WARPED_TRAPDOOR
- ) {
- if(status.equals("Playing") || status.equals("Starting") || !event.getPlayer().hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
- }
- }
- }
- if(!interactableFencegate) {
- if(
- event.getClickedBlock().getType() == Material.ACACIA_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.BIRCH_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.CRIMSON_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.DARK_OAK_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.JUNGLE_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.OAK_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.SPRUCE_FENCE_GATE ||
- event.getClickedBlock().getType() == Material.WARPED_FENCE_GATE
- ) {
- if(status.equals("Playing") || status.equals("Starting") || !event.getPlayer().hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
- }
- }
- }
- }
-
- @EventHandler
- public void onHangingBreakByEntity(HangingBreakByEntityEvent event) {
- if(event.getEntity() instanceof ItemFrame) {
- if(unbreakableItemframes) {
- if(event.getRemover() instanceof Player) {
- Player player = (Player) event.getRemover();
- if(status.equals("Playing") || status.equals("Starting") || !player.hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
- }
- } else {
- event.setCancelled(true);
- }
-
- }
- }
- if(event.getEntity() instanceof Painting) {
- if(unbreakableArmorstands) {
- if(event.getRemover() instanceof Player) {
- Player player = (Player) event.getRemover();
- if(status.equals("Playing") || status.equals("Starting") || !player.hasPermission("hideandseek.blockbypass")) {
- event.setCancelled(true);
+ if(Hider.contains(event.getEntity().getName())) {
+ if(attacker == null) {
+ Functions.broadcastMessage(String.format(messagePrefix + "%s%s%s was found and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
+ } else {
+ Functions.broadcastMessage(String.format(messagePrefix + "%s%s%s was found by %s%s%s and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE, ChatColor.RED, attacker.getName(), ChatColor.WHITE));
}
- } else {
- event.setCancelled(true);
+ Hider.remove(player.getName());
+ Seeker.add(player.getName());
+ SeekerTeam.addEntry(player.getName());
}
+ Functions.resetPlayer(player);
}
}
}
@@ -238,6 +136,7 @@ public class EventListener implements Listener {
if(event.getEntity() instanceof Snowball) {
Snowball snowball = (Snowball) event.getEntity();
if(snowball.getShooter() instanceof Player) {
+ if(!Functions.playerInProtectedWorld((Player) snowball.getShooter())) return;
Player player = (Player) snowball.getShooter();
if(Hider.contains(player.getName())) {
Main.glow.onProjectilve();
@@ -250,25 +149,19 @@ public class EventListener implements Listener {
@EventHandler
public void onFoodLevelChange(FoodLevelChangeEvent event) {
- event.setCancelled(true);
+ if(event.getEntity() instanceof Player) {
+ if(!playerList.containsKey(event.getEntity().getName())) return;
+ event.setCancelled(true);
+ }
}
@EventHandler
public void onPlayerRegainHealth(EntityRegainHealthEvent event) {
- if(event.getRegainReason() == RegainReason.SATIATED || event.getRegainReason() == RegainReason.REGEN)
- event.setCancelled(true);
+ if(event.getRegainReason() == RegainReason.SATIATED || event.getRegainReason() == RegainReason.REGEN) {
+ if(event.getEntity() instanceof Player) {
+ if(!playerList.containsKey(event.getEntity().getName())) return;
+ event.setCancelled(true);
+ }
+ }
}
-
- @EventHandler
- public void onPlayerCommandPreProccess(PlayerCommandPreprocessEvent event) {
- if(status.equals("Setup") || status.equals("Standby")) return;
- String handle = event.getMessage().split(" ")[0].substring(1);
- for(String blocked : blockedCommands) {
- if(handle.equalsIgnoreCase(blocked) || handle.equalsIgnoreCase("minecraft:"+blocked)) {
- event.setCancelled(true);
- event.getPlayer().sendMessage(errorPrefix + "This command is blocked during gameplay!");
- break;
- }
- }
- }
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java
index eccaf39..7224210 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java
@@ -2,9 +2,7 @@ package net.tylermurphy.hideAndSeek.bukkit;
import static net.tylermurphy.hideAndSeek.Store.*;
-
import org.bukkit.Bukkit;
-import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
@@ -22,34 +20,31 @@ public class Tick {
Functions.loadScoreboard();
}
- if(status.equals("Starting")) {
- onStarting();
- } else if(status.equals("Playing")) {
+ if(status.equals("Standby")) {
+ tick = 0;
+ }
+
+ if(status.equals("Playing")) {
onPlaying();
}
- tick ++;
-
if(( status.equals("Starting") || status.equals("Playing") ) && Hider.size() < 1) {
- Bukkit.broadcastMessage(gameoverPrefix + "All hiders have been found.");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + "All hiders have been found.");
+ else Functions.broadcastMessage(gameoverPrefix + "All hiders have been found.");
Stop.onStop();
}
if(( status.equals("Starting") || status.equals("Playing") ) && Seeker.size() < 1) {
- Bukkit.broadcastMessage(abortPrefix + "All seekers have quit.");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + "All seekers have quit.");
+ else Functions.broadcastMessage(abortPrefix + "All seekers have quit.");
Stop.onStop();
}
- }
-
- private static void onStarting() {
- for(String playerName : Seeker) {
- Player player = playerList.get(playerName);
- if(player != null) {
- player.teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
- }
- }
+
}
private static void onPlaying() {
+
+ tick ++;
+
for(String playerName : Hider) {
Player player = playerList.get(playerName);
int distance = 100;
@@ -76,6 +71,21 @@ public class Tick {
if(distance < 20) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f);
break;
}
+
+ }
+
+ if(tick%20 == 0) {
+ if(gameLength > 0) {
+ timeLeft--;
+ for(Player player : playerList.values()) {
+ player.setLevel(timeLeft);
+ }
+ if(timeLeft < 1) {
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!");
+ else Functions.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!");
+ Stop.onStop();
+ }
+ }
}
}
} \ No newline at end of file