diff options
| author | Tyler Murphy <tylermurphy534@gmail.com> | 2021-08-31 21:55:27 -0400 |
|---|---|---|
| committer | Tyler Murphy <tylermurphy534@gmail.com> | 2021-08-31 21:55:27 -0400 |
| commit | f1379a94754b68cc3904d2b96b5815854d5565c1 (patch) | |
| tree | 39ef970eabaaeabf0993ea1cec6ffbd31c83a07b /src/main/java/net/tylermurphy/hideAndSeek/events | |
| parent | 1.3.0 beta 4 (diff) | |
| download | kenshinshideandseek-f1379a94754b68cc3904d2b96b5815854d5565c1.tar.gz kenshinshideandseek-f1379a94754b68cc3904d2b96b5815854d5565c1.tar.bz2 kenshinshideandseek-f1379a94754b68cc3904d2b96b5815854d5565c1.zip | |
1.3.0 beta 5
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java (renamed from src/main/java/net/tylermurphy/hideAndSeek/events/EventListener.java) | 54 | ||||
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java | 169 | ||||
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/events/Glow.java | 69 | ||||
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java | 100 | ||||
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java | 43 |
5 files changed, 246 insertions, 189 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java index 46cf676..c46dc87 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/events/EventListener.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java @@ -1,4 +1,4 @@ -package net.tylermurphy.hideAndSeek.events; +package net.tylermurphy.hideAndSeek.bukkit; import static net.tylermurphy.hideAndSeek.Store.*; @@ -26,6 +26,7 @@ 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; import org.bukkit.potion.PotionEffect; @@ -39,7 +40,8 @@ public class EventListener implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { if(status.equals("Playing") || status.equals("Starting")) { - Spectator.addEntry(event.getPlayer().getName()); + 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(); @@ -48,7 +50,8 @@ public class EventListener implements Listener { } event.getPlayer().teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); } else if(status.equals("Setup") || status.equals("Standby")) { - Hider.addEntry(event.getPlayer().getName()); + 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())); } @@ -57,10 +60,26 @@ public class EventListener implements Listener { @EventHandler public void onQuit(PlayerQuitEvent event) { + if(!playerList.containsKey(event.getPlayer().getName())) return; playerList.remove(event.getPlayer().getName()); - Hider.removeEntry(event.getPlayer().getName()); - Seeker.removeEntry(event.getPlayer().getName()); - Spectator.removeEntry(event.getPlayer().getName()); + Hider.remove(event.getPlayer().getName()); + HiderTeam.removeEntry(event.getPlayer().getName()); + Seeker.remove(event.getPlayer().getName()); + SeekerTeam.removeEntry(event.getPlayer().getName()); + Spectator.remove(event.getPlayer().getName()); + SpectatorTeam.removeEntry(event.getPlayer().getName()); + } + + @EventHandler + public void onKick(PlayerKickEvent event) { + if(!playerList.containsKey(event.getPlayer().getName())) return; + playerList.remove(event.getPlayer().getName()); + Hider.remove(event.getPlayer().getName()); + HiderTeam.removeEntry(event.getPlayer().getName()); + Seeker.remove(event.getPlayer().getName()); + SeekerTeam.removeEntry(event.getPlayer().getName()); + Spectator.remove(event.getPlayer().getName()); + SpectatorTeam.removeEntry(event.getPlayer().getName()); } @EventHandler @@ -77,13 +96,15 @@ 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.hasEntry(event.getEntity().getName())) { - Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s has died and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE)); + 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.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)); + if(Seeker.contains(event.getEntity().getName())) { + Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s was killed", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE)); } - Seeker.addEntry(player.getName()); + 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); @@ -218,17 +239,10 @@ public class EventListener implements Listener { Snowball snowball = (Snowball) event.getEntity(); if(snowball.getShooter() instanceof Player) { Player player = (Player) snowball.getShooter(); - if(Hider.hasEntry(player.getName())) { - glowTime++; + if(Hider.contains(player.getName())) { + Main.glow.onProjectilve(); 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); } } } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java b/src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java deleted file mode 100644 index 042b0a3..0000000 --- a/src/main/java/net/tylermurphy/hideAndSeek/events/EventTick.java +++ /dev/null @@ -1,169 +0,0 @@ -package net.tylermurphy.hideAndSeek.events; - -import static net.tylermurphy.hideAndSeek.Store.*; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.FireworkEffect; -import org.bukkit.Location; -import org.bukkit.Sound; -import org.bukkit.World; -import org.bukkit.WorldBorder; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Firework; -import org.bukkit.entity.Player; -import org.bukkit.inventory.meta.FireworkMeta; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.ScoreboardManager; -import org.bukkit.scoreboard.Team.Option; -import org.bukkit.scoreboard.Team.OptionStatus; - -import net.tylermurphy.hideAndSeek.commands.Stop; -import net.tylermurphy.hideAndSeek.util.Packet; - -public class EventTick { - - static int tick = 0; - - public static void onTick() { - - if(board == null) { - ScoreboardManager manager = Bukkit.getScoreboardManager(); - Scoreboard mainBoard = manager.getMainScoreboard(); - - try { mainBoard.registerNewTeam("Seeker");} catch(Exception e) {} - Seeker = mainBoard.getTeam("Seeker"); - Seeker.setColor(ChatColor.RED); - if(nametagsVisible) - Seeker.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OTHER_TEAMS); - else - Seeker.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - Seeker.setAllowFriendlyFire(false); - - try { mainBoard.registerNewTeam("Hider");} catch(Exception e) {} - Hider = mainBoard.getTeam("Hider"); - Hider.setColor(ChatColor.GOLD); - if(nametagsVisible) - Hider.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OWN_TEAM); - else - Hider.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - Hider.setAllowFriendlyFire(false); - - try { mainBoard.registerNewTeam("Spectator");} catch(Exception e) {} - Spectator = mainBoard.getTeam("Spectator"); - Spectator.setColor(ChatColor.GRAY); - Spectator.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - Spectator.setAllowFriendlyFire(false); - - board = mainBoard; - } - - for(String entry : Hider.getEntries()) { - if(!playerList.containsKey(entry)) { - Hider.removeEntry(entry); - } - } - - for(String entry : Seeker.getEntries()) { - if(!playerList.containsKey(entry)) { - Seeker.removeEntry(entry); - } - } - - for(String entry : Spectator.getEntries()) { - if(!playerList.containsKey(entry)) { - Spectator.removeEntry(entry); - } - } - - if(status.equals("Starting")) { - onStarting(); - } else if(status.equals("Playing")) { - onPlaying(); - } - - tick ++; - - if(( status.equals("Starting") || status.equals("Playing") ) && Hider.getSize() < 1) { - Bukkit.broadcastMessage(gameoverPrefix + "All hiders have been found."); - Stop.onStop(); - } - if(( status.equals("Starting") || status.equals("Playing") ) && Seeker.getSize() < 1) { - Bukkit.broadcastMessage(abortPrefix + "All seekers have quit."); - Stop.onStop(); - } - } - - private static void onStarting() { - for(String playerName : Seeker.getEntries()) { - 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() { - if(decreaseBorder) { - World world = Bukkit.getWorld("world"); - WorldBorder border = world.getWorldBorder(); - border.setSize(border.getSize()-100,30); - decreaseBorder = false; - } - if(!tauntPlayer.equals("")) { - Player taunted = playerList.get(tauntPlayer); - if(taunted != null) { - Firework fw = (Firework) taunted.getLocation().getWorld().spawnEntity(taunted.getLocation(), EntityType.FIREWORK); - FireworkMeta fwm = fw.getFireworkMeta(); - fwm.setPower(4); - fwm.addEffect(FireworkEffect.builder() - .withColor(Color.BLUE) - .withColor(Color.RED) - .withColor(Color.YELLOW) - .with(FireworkEffect.Type.STAR) - .with(FireworkEffect.Type.BALL) - .with(FireworkEffect.Type.BALL_LARGE) - .flicker(true) - .withTrail() - .build()); - fw.setFireworkMeta(fwm); - Bukkit.getServer().broadcastMessage(tauntPrefix + " Taunt has been activated"); - } - tauntPlayer = ""; - } - for(String playerName : Hider.getEntries()) { - Player player = playerList.get(playerName); - int distance = 100; - for(String seekerName : Seeker.getEntries()) { - Player seeker = playerList.get(seekerName); - int temp = (int) player.getLocation().distance(seeker.getLocation()); - if(distance > temp) { - distance = temp; - } - if(glowTime > 0) { - Packet.setGlow(player, seeker, true); - } else { - Packet.setGlow(player, seeker, false); - } - } - switch(tick%10) { - case 0: - if(distance < 30) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .5f, 1f); - if(distance < 10) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); - break; - case 3: - if(distance < 30) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .3f, 1f); - if(distance < 10) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); - break; - case 6: - if(distance < 10) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); - break; - case 9: - if(distance < 20) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); - break; - } - } - } - -} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/Glow.java b/src/main/java/net/tylermurphy/hideAndSeek/events/Glow.java new file mode 100644 index 0000000..ec94803 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/events/Glow.java @@ -0,0 +1,69 @@ +package net.tylermurphy.hideAndSeek.events; + +import static net.tylermurphy.hideAndSeek.Store.*; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import net.tylermurphy.hideAndSeek.Main; +import net.tylermurphy.hideAndSeek.util.Packet; + +public class Glow { + + private final int temp; + private int glowTime; + private boolean running; + + public Glow(int temp) { + this.temp = temp; + this.glowTime = 0; + } + + public void onProjectilve() { + glowTime++; + if(!running) + startGlow(); + } + + private void startGlow() { + running = true; + for(String hiderName : Hider) { + Player hider = playerList.get(hiderName); + if(hider == null) continue; + for(String seekerName : Seeker) { + Player seeker = playerList.get(seekerName); + if(seeker == null) continue; + Packet.setGlow(hider, seeker, true); + } + } + waitGlow(); + } + + private void waitGlow() { + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + if(temp != gameId) return; + glowTime--; + glowTime = Math.max(glowTime, 0); + if(glowTime == 0) { + stopGlow(); + } else { + waitGlow(); + } + } + }, 20*30); + } + + private void stopGlow() { + for(String hiderName : Hider) { + Player hider = playerList.get(hiderName); + if(hider == null) continue; + for(String seekerName : Seeker) { + Player seeker = playerList.get(seekerName); + if(seeker == null) continue; + Packet.setGlow(hider, seeker, false); + } + } + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java b/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java new file mode 100644 index 0000000..f2f09a1 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java @@ -0,0 +1,100 @@ +package net.tylermurphy.hideAndSeek.events; + +import static net.tylermurphy.hideAndSeek.Store.*; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.FireworkEffect; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Firework; +import org.bukkit.entity.Player; +import org.bukkit.inventory.meta.FireworkMeta; + +import net.tylermurphy.hideAndSeek.Main; + +public class Taunt { + + private final int temp; + private String tauntPlayer; + + public Taunt(int temp) { + this.temp = temp; + } + + public void schedule() { + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + tryTaunt(); + } + },20*60*5); + } + + private void waitTaunt() { + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + tryTaunt(); + } + },20*60); + } + + private void tryTaunt() { + if(temp != gameId) return; + if(Math.random() > .8) { + executeTaunt(); + } else { + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + tryTaunt(); + } + },20*60); + } + } + + private void executeTaunt() { + Player taunted = null; + int rand = (int) (Math.random()*Hider.size()); + for(Player player : playerList.values()) { + if(Hider.contains(player.getName())) { + rand--; + if(rand==0) { + taunted = player; + break; + } + } + } + if(taunted != null) { + taunted.sendMessage(ChatColor.RED + "" + ChatColor.ITALIC + "Oh no! You have been chosed to be taunted."); + Bukkit.getServer().broadcastMessage(tauntPrefix + " A random hider will be taunted in the next 30s"); + tauntPlayer = taunted.getName(); + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + if(temp != gameId) return; + Player taunted = playerList.get(tauntPlayer); + if(taunted != null) { + Firework fw = (Firework) taunted.getLocation().getWorld().spawnEntity(taunted.getLocation(), EntityType.FIREWORK); + FireworkMeta fwm = fw.getFireworkMeta(); + fwm.setPower(4); + fwm.addEffect(FireworkEffect.builder() + .withColor(Color.BLUE) + .withColor(Color.RED) + .withColor(Color.YELLOW) + .with(FireworkEffect.Type.STAR) + .with(FireworkEffect.Type.BALL) + .with(FireworkEffect.Type.BALL_LARGE) + .flicker(true) + .withTrail() + .build()); + fw.setFireworkMeta(fwm); + Bukkit.getServer().broadcastMessage(tauntPrefix + " Taunt has been activated"); + } + tauntPlayer = ""; + waitTaunt(); + } + },20*30); + } else { + waitTaunt(); + } + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java b/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java new file mode 100644 index 0000000..5e64381 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java @@ -0,0 +1,43 @@ +package net.tylermurphy.hideAndSeek.events; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.WorldBorder; + +import net.tylermurphy.hideAndSeek.Main; + +import static net.tylermurphy.hideAndSeek.Store.*; + +public class Worldborder { + + private final int temp; + + public Worldborder(int temp) { + this.temp = temp; + } + + public void schedule() { + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + decreaceWorldborder(); + } + },20*60*worldborderDelay); + } + + private void decreaceWorldborder() { + if(temp != gameId) return; + if(currentWorldborderSize-100 > 100) { + Bukkit.getServer().broadcastMessage(worldborderPrefix + "Worldborder decreacing by 100 blocks over the next 30s"); + currentWorldborderSize -= 100; + World world = Bukkit.getWorld("hideandseek_"+spawnWorld); + WorldBorder border = world.getWorldBorder(); + border.setSize(border.getSize()-100,30); + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() { + public void run() { + decreaceWorldborder(); + } + },20*60*worldborderDelay); + } + } + +} |