diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2021-10-20 20:14:01 -0400 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2021-10-20 20:14:01 -0400 |
commit | fc87556d8c0cc92b856ad682e4b3cbc964514eee (patch) | |
tree | 5596f89ec062d560a161722c8b87bec44aa288fd /src/main/java/net/tylermurphy/hideAndSeek/util | |
parent | glow fix, on join code change (diff) | |
download | kenshinshideandseek-fc87556d8c0cc92b856ad682e4b3cbc964514eee.tar.gz kenshinshideandseek-fc87556d8c0cc92b856ad682e4b3cbc964514eee.tar.bz2 kenshinshideandseek-fc87556d8c0cc92b856ad682e4b3cbc964514eee.zip |
teams reference rewrite
Diffstat (limited to '')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java (renamed from src/main/java/net/tylermurphy/hideAndSeek/util/ICommand.java) | 2 | ||||
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/Board.java | 178 | ||||
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java | 184 | ||||
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/Util.java | 57 |
4 files changed, 236 insertions, 185 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/ICommand.java b/src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java index 373096f..928787e 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/ICommand.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/ICommand.java @@ -1,4 +1,4 @@ -package net.tylermurphy.hideAndSeek.util; +package net.tylermurphy.hideAndSeek.command; import org.bukkit.command.CommandSender; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java new file mode 100644 index 0000000..f1fceba --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java @@ -0,0 +1,178 @@ +package net.tylermurphy.hideAndSeek.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.ScoreboardManager; +import org.bukkit.scoreboard.Team; +import org.bukkit.scoreboard.Team.Option; +import org.bukkit.scoreboard.Team.OptionStatus; + +import static net.tylermurphy.hideAndSeek.Config.*; + +public class Board { + + private Team HiderTeam, SeekerTeam, SpectatorTeam; + private List<String> Hider, Seeker, Spectator; + private Map<String, Player> playerList = new HashMap<String,Player>(); + + private boolean setup = false; + + public boolean isReady() { + return setup; + } + + public boolean isPlayer(Player player) { + return playerList.containsKey(player.getName()); + } + + public boolean isPlayer(CommandSender sender) { + return playerList.containsKey(sender.getName()); + } + + public boolean isHider(Player player) { + return Hider.contains(player.getName()); + } + + public boolean isSeeker(Player player) { + return Seeker.contains(player.getName()); + } + + public boolean isSpectator(Player player) { + return Spectator.contains(player.getName()); + } + + public int sizeHider() { + return Hider.size(); + } + + public int sizeSeeker() { + return Seeker.size(); + } + + public int sizeSpectator() { + return Spectator.size(); + } + + public int size() { + return playerList.size(); + } + + public List<Player> getHiders(){ + return Hider.stream().map(playerName -> playerList.get(playerName)).collect(Collectors.toList()); + } + + public List<Player> getSeekers(){ + return Seeker.stream().map(playerName -> playerList.get(playerName)).collect(Collectors.toList()); + } + + public List<Player> getSpectators(){ + return Spectator.stream().map(playerName -> playerList.get(playerName)).collect(Collectors.toList()); + } + + public List<Player> getPlayers(){ + return new ArrayList<Player>(playerList.values()); + } + + public Player getPlayer(String name) { + return playerList.get(name); + } + + public void addHider(Player player) { + Hider.add(player.getName()); + Seeker.remove(player.getName()); + Spectator.remove(player.getName()); + HiderTeam.addEntry(player.getName()); + if(!playerList.containsKey(player.getName())) + playerList.put(player.getName(), player); + } + + public void addSeeker(Player player) { + Hider.remove(player.getName()); + Seeker.add(player.getName()); + Spectator.remove(player.getName()); + SeekerTeam.addEntry(player.getName()); + if(!playerList.containsKey(player.getName())) + playerList.put(player.getName(), player); + } + + public void addSpectator(Player player) { + Hider.remove(player.getName()); + Seeker.remove(player.getName()); + Spectator.add(player.getName()); + SpectatorTeam.addEntry(player.getName()); + if(!playerList.containsKey(player.getName())) + playerList.put(player.getName(), player); + } + + public void remove(Player player) { + Hider.remove(player.getName()); + Seeker.remove(player.getName()); + Spectator.remove(player.getName()); + HiderTeam.removeEntry(player.getName()); + SeekerTeam.removeEntry(player.getName()); + SpectatorTeam.removeEntry(player.getName()); + playerList.remove(player.getName()); + } + + public boolean onSameTeam(Player player1, Player player2) { + if(Hider.contains(player1.getName()) && Hider.contains(player2.getName())) return true; + else if(Seeker.contains(player1.getName()) && Seeker.contains(player2.getName())) return true; + else if(Spectator.contains(player1.getName()) && Spectator.contains(player2.getName())) return true; + else return false; + } + + public void init() { + Hider = new ArrayList<String>(); + Seeker = new ArrayList<String>(); + Spectator = new ArrayList<String>(); + reload(); + } + + public void reload() { + + ScoreboardManager manager = Bukkit.getScoreboardManager(); + if(manager == null) return; + Scoreboard board = manager.getMainScoreboard(); + + try { board.registerNewTeam("Seeker"); } catch(Exception e) {} + SeekerTeam = board.getTeam("Seeker"); + SeekerTeam.setColor(ChatColor.RED); + if(nametagsVisible) SeekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OTHER_TEAMS); + else SeekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); + + try { board.registerNewTeam("Hider"); } catch(Exception e) {} + HiderTeam = board.getTeam("Hider"); + HiderTeam.setColor(ChatColor.GOLD); + if(nametagsVisible) HiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OWN_TEAM); + else HiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); + + try { board.registerNewTeam("Spectator"); } catch(Exception e) {} + SpectatorTeam = board.getTeam("Spectator"); + SpectatorTeam.setColor(ChatColor.GRAY); + SpectatorTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); + + setup = true; + } + + public void reset() { + Hider.clear(); + Seeker.clear(); + Spectator.clear(); + for(String entry : HiderTeam.getEntries()) + HiderTeam.removeEntry(entry); + for(String entry : SeekerTeam.getEntries()) + SeekerTeam.removeEntry(entry); + for(String entry : SpectatorTeam.getEntries()) + SpectatorTeam.removeEntry(entry); + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java deleted file mode 100644 index cff39a3..0000000 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java +++ /dev/null @@ -1,184 +0,0 @@ -package net.tylermurphy.hideAndSeek.util; - -import static net.tylermurphy.hideAndSeek.Store.*; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.WorldBorder; -import org.bukkit.WorldCreator; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.PotionMeta; -import org.bukkit.potion.PotionData; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; -import org.bukkit.potion.PotionType; -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.Main; - -public class Functions { - - public static void resetPlayer(Player player) { - player.getInventory().clear(); - for(PotionEffect effect : player.getActivePotionEffects()){ - player.removePotionEffect(effect.getType()); - } - player.addPotionEffect(new PotionEffect(PotionEffectType.DOLPHINS_GRACE, 1000000, 1, false, false)); - if(Seeker.contains(player.getName())){ - ItemStack diamondSword = new ItemStack(Material.DIAMOND_SWORD,1); - diamondSword.addEnchantment(Enchantment.DAMAGE_ALL, 1); - ItemMeta diamondSwordMeta = diamondSword.getItemMeta(); - diamondSwordMeta.setDisplayName("Seeker Sword"); - diamondSwordMeta.setUnbreakable(true); - diamondSword.setItemMeta(diamondSwordMeta); - player.getInventory().addItem(diamondSword); - - ItemStack wackyStick = new ItemStack(Material.STICK,1); - wackyStick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 3); - ItemMeta wackyStickMeta = wackyStick.getItemMeta(); - wackyStickMeta.setDisplayName("Wacky Stick"); - wackyStick.setItemMeta(wackyStickMeta); - player.getInventory().addItem(wackyStick); - - player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000000, 2, false, false)); - player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 1000000, 1, false, false)); - player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 1000000, 1, false, false)); - player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 10, false, false)); - } - else if(Hider.contains(player.getName())){ - ItemStack stoneSword = new ItemStack(Material.STONE_SWORD,1); - stoneSword.addEnchantment(Enchantment.DAMAGE_ALL, 2); - ItemMeta stoneSwordMeta = stoneSword.getItemMeta(); - stoneSwordMeta.setDisplayName("Hider Sword"); - stoneSwordMeta.setUnbreakable(true); - stoneSword.setItemMeta(stoneSwordMeta); - player.getInventory().addItem(stoneSword); - - ItemStack splashPotion = new ItemStack(Material.SPLASH_POTION,1); - PotionMeta splashPotionMeta = (PotionMeta) splashPotion.getItemMeta(); - splashPotionMeta.setBasePotionData(new PotionData(PotionType.REGEN)); - splashPotion.setItemMeta(splashPotionMeta); - player.getInventory().addItem(splashPotion); - - ItemStack potion = new ItemStack(Material.POTION,2); - PotionMeta potionMeta = (PotionMeta) potion.getItemMeta(); - potionMeta.setBasePotionData(new PotionData(PotionType.INSTANT_HEAL)); - potion.setItemMeta(potionMeta); - player.getInventory().addItem(potion); - - ItemStack snowball = new ItemStack(Material.SNOWBALL,1); - ItemMeta snowballMeta = snowball.getItemMeta(); - snowballMeta.setDisplayName("Glow Powerup"); - List<String> snowballLore = new ArrayList<String>(); - snowballLore.add("Throw to make all seekers glow"); - snowballLore.add("Last 30s, all hiders can see it"); - snowballLore.add("Time stacks on multi use"); - snowballMeta.setLore(snowballLore); - snowball.setItemMeta(snowballMeta); - player.getInventory().addItem(snowball); - - player.addPotionEffect(new PotionEffect(PotionEffectType.WATER_BREATHING, 1000000, 1, false, false)); - } - } - - public static void resetWorldborder(String worldName) { - if(worldborderEnabled) { - World world = Bukkit.getWorld(worldName); - WorldBorder border = world.getWorldBorder(); - border.setSize(worldborderSize); - border.setCenter(worldborderPosition.getX(), worldborderPosition.getZ()); - currentWorldborderSize = worldborderSize; - } else { - World world = Bukkit.getWorld(worldName); - WorldBorder border = world.getWorldBorder(); - border.setSize(30000000); - border.setCenter(0, 0); - } - } - - public static void unloadMap(String mapname){ - if(Bukkit.getServer().unloadWorld(Bukkit.getServer().getWorld(mapname), false)){ - Main.plugin.getLogger().info("Successfully unloaded " + mapname); - }else{ - Main.plugin.getLogger().severe("COULD NOT UNLOAD " + mapname); - } - } - - public static void loadMap(String mapname){ - Bukkit.getServer().createWorld(new WorldCreator(mapname)); - Bukkit.getServer().getWorld("hideandseek_"+spawnWorld).setAutoSave(false); - } - - public static void rollback(String mapname){ - unloadMap(mapname); - loadMap(mapname); - } - - public static void loadScoreboard() { - - ScoreboardManager manager = Bukkit.getScoreboardManager(); - Scoreboard mainBoard = manager.getMainScoreboard(); - - try { mainBoard.registerNewTeam("Seeker");} catch(Exception e) {} - SeekerTeam = mainBoard.getTeam("Seeker"); - SeekerTeam.setColor(ChatColor.RED); - if(nametagsVisible) - SeekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OTHER_TEAMS); - else - SeekerTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - - try { mainBoard.registerNewTeam("Hider");} catch(Exception e) {} - HiderTeam = mainBoard.getTeam("Hider"); - HiderTeam.setColor(ChatColor.GOLD); - if(nametagsVisible) - HiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.FOR_OWN_TEAM); - else - HiderTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - - try { mainBoard.registerNewTeam("Spectator");} catch(Exception e) {} - SpectatorTeam = mainBoard.getTeam("Spectator"); - SpectatorTeam.setColor(ChatColor.GRAY); - SpectatorTeam.setOption(Option.NAME_TAG_VISIBILITY, OptionStatus.NEVER); - - board = mainBoard; - } - - public static void broadcastMessage(String message) { - for(Player player : playerList.values()) { - player.sendMessage(message); - } - } - - public static boolean setup() { - - if(spawnPosition.getBlockX() == 0 && spawnPosition.getBlockY() == 0 && spawnPosition.getBlockZ() == 0) { - return false; - } - if(lobbyPosition.getBlockX() == 0 && lobbyPosition.getBlockY() == 0 && lobbyPosition.getBlockZ() == 0) { - return false; - } - if(exitPosition.getBlockX() == 0 && exitPosition.getBlockY() == 0 && exitPosition.getBlockZ() == 0) { - return false; - } - File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld); - if(!destenation.exists()) { - return false; - } - - return true; - - } - -}
\ No newline at end of file diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java new file mode 100644 index 0000000..7c7e230 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java @@ -0,0 +1,57 @@ +package net.tylermurphy.hideAndSeek.util; + +import static net.tylermurphy.hideAndSeek.Config.*; + +import java.io.File; + +import org.bukkit.Bukkit; +import org.bukkit.WorldCreator; +import org.bukkit.entity.Player; + +import net.tylermurphy.hideAndSeek.Main; + +public class Util { + + public static void broadcastMessage(String message) { + for(Player player : Main.plugin.board.getPlayers()) { + player.sendMessage(message); + } + } + + public static boolean isSetup() { + if(spawnPosition.getBlockX() == 0 && spawnPosition.getBlockY() == 0 && spawnPosition.getBlockZ() == 0) return false; + if(lobbyPosition.getBlockX() == 0 && lobbyPosition.getBlockY() == 0 && lobbyPosition.getBlockZ() == 0) return false; + if(exitPosition.getBlockX() == 0 && exitPosition.getBlockY() == 0 && exitPosition.getBlockZ() == 0) return false; + File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld); + if(!destenation.exists()) return false; + return true; + } + + public static void unloadMap(String mapname){ + if(Bukkit.getServer().unloadWorld(Bukkit.getServer().getWorld(mapname), false)){ + Main.plugin.getLogger().info("Successfully unloaded " + mapname); + }else{ + Main.plugin.getLogger().severe("COULD NOT UNLOAD " + mapname); + } + } + + public static void loadMap(String mapname){ + Bukkit.getServer().createWorld(new WorldCreator(mapname)); + Bukkit.getServer().getWorld("hideandseek_"+spawnWorld).setAutoSave(false); + } + + public static void rollback(String mapname){ + unloadMap(mapname); + loadMap(mapname); + } + + public static void sendDelayedMessage(String message, int gameId, int delay) { + Bukkit.getScheduler().runTaskLaterAsynchronously(Main.plugin, new Runnable() { + public void run() { + if(gameId == Main.plugin.gameId) + Util.broadcastMessage(messagePrefix + "Hiders have 1 seconds to hide!"); + } + }, delay); + } + +}
\ No newline at end of file |