summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/util
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2021-10-20 20:14:01 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2021-10-20 20:14:01 -0400
commitfc87556d8c0cc92b856ad682e4b3cbc964514eee (patch)
tree5596f89ec062d560a161722c8b87bec44aa288fd /src/main/java/net/tylermurphy/hideAndSeek/util
parentglow fix, on join code change (diff)
downloadkenshinshideandseek-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.java178
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Functions.java184
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Util.java57
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