summaryrefslogtreewikicommitdiff
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-04-13 13:47:59 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-04-13 13:47:59 -0400
commit19488e62bf01ff1d9abe9aa149141d58aed801cf (patch)
treeccbbc26fb4622775394a3388a8836d9c28f9ff9b
parent1.4.0 rc2 (diff)
downloadkenshinshideandseek-19488e62bf01ff1d9abe9aa149141d58aed801cf.tar.gz
kenshinshideandseek-19488e62bf01ff1d9abe9aa149141d58aed801cf.tar.bz2
kenshinshideandseek-19488e62bf01ff1d9abe9aa149141d58aed801cf.zip
1.4.0 rc3
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/Main.java8
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Start.java8
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/Board.java87
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java15
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/Game.java21
-rw-r--r--src/main/resources/config.yml3
6 files changed, 77 insertions, 65 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Main.java b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
index e486cda..cdba285 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/Main.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
@@ -46,7 +46,7 @@ public class Main extends JavaPlugin implements Listener {
public static Main plugin;
public static File root, data;
- private BukkitTask onTickTask;
+ private int onTickTask;
public void onEnable() {
plugin = this;
@@ -69,13 +69,13 @@ public class Main extends JavaPlugin implements Listener {
} catch (Exception e) {
e.printStackTrace();
}
- },0,1);
+ },0,1).getTaskId();
}
public void onDisable() {
- if(onTickTask != null)
- onTickTask.cancel();
+ Main.plugin.getServer().getScheduler().cancelTask(onTickTask);
UUIDFetcher.cleanup();
+ Board.cleanup();
}
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java
index b82e3b5..8605764 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java
@@ -24,6 +24,7 @@ import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
import net.tylermurphy.hideAndSeek.game.Board;
import net.tylermurphy.hideAndSeek.game.Game;
import net.tylermurphy.hideAndSeek.util.Status;
+import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -64,7 +65,12 @@ public class Start implements ICommand {
} else {
seekerName = args[0];
}
- Player seeker = Board.getPlayer(seekerName);
+ Player temp = Bukkit.getPlayer(seekerName);
+ if(temp == null) {
+ sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(seekerName));
+ return;
+ }
+ Player seeker = Board.getPlayer(temp.getUniqueId());
if(seeker == null) {
sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(seekerName));
return;
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java
index fd75040..e91e3da 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java
@@ -34,32 +34,28 @@ import org.bukkit.scoreboard.*;
public class Board {
- private static final List<String> Hider = new ArrayList<>(), Seeker = new ArrayList<>(), Spectator = new ArrayList<>();
- private static final Map<String, Player> playerList = new HashMap<>();
- private static final Map<String, CustomBoard> customBoards = new HashMap<>();
+ private static final List<UUID> Hider = new ArrayList<>(), Seeker = new ArrayList<>(), Spectator = new ArrayList<>();
+ private static final Map<UUID, Player> playerList = new HashMap<>();
+ private static final Map<UUID, CustomBoard> customBoards = new HashMap<>();
public static boolean isPlayer(Player player) {
- return playerList.containsKey(player.getName());
- }
-
- public static boolean isPlayer(String name){
- return playerList.containsKey(name);
+ return playerList.containsKey(player.getUniqueId());
}
public static boolean isPlayer(CommandSender sender) {
- return playerList.containsKey(sender.getName());
+ return playerList.containsKey(Bukkit.getPlayer(sender.getName()).getUniqueId());
}
public static boolean isHider(Player player) {
- return Hider.contains(player.getName());
+ return Hider.contains(player.getUniqueId());
}
public static boolean isSeeker(Player player) {
- return Seeker.contains(player.getName());
+ return Seeker.contains(player.getUniqueId());
}
public static boolean isSpectator(Player player) {
- return Spectator.contains(player.getName());
+ return Spectator.contains(player.getUniqueId());
}
public static int sizeHider() {
@@ -74,6 +70,13 @@ public class Board {
return playerList.values().size();
}
+ public static void check(){
+ for(UUID uuid : playerList.keySet()){
+ if(Bukkit.getPlayer(uuid) == null)
+ playerList.remove(uuid);
+ }
+ }
+
public static List<Player> getHiders(){
return Hider.stream().map(playerList::get).collect(Collectors.toList());
}
@@ -94,42 +97,42 @@ public class Board {
return new ArrayList<>(playerList.values());
}
- public static Player getPlayer(String name) {
- return playerList.get(name);
+ public static Player getPlayer(UUID uuid) {
+ return playerList.get(uuid);
}
public static void addHider(Player player) {
- Hider.add(player.getName());
- Seeker.remove(player.getName());
- Spectator.remove(player.getName());
- playerList.put(player.getName(), player);
+ Hider.add(player.getUniqueId());
+ Seeker.remove(player.getUniqueId());
+ Spectator.remove(player.getUniqueId());
+ playerList.put(player.getUniqueId(), player);
}
public static void addSeeker(Player player) {
- Hider.remove(player.getName());
- Seeker.add(player.getName());
- Spectator.remove(player.getName());
- playerList.put(player.getName(), player);
+ Hider.remove(player.getUniqueId());
+ Seeker.add(player.getUniqueId());
+ Spectator.remove(player.getUniqueId());
+ playerList.put(player.getUniqueId(), player);
}
public static void addSpectator(Player player) {
- Hider.remove(player.getName());
- Seeker.remove(player.getName());
- Spectator.add(player.getName());
- playerList.put(player.getName(), player);
+ Hider.remove(player.getUniqueId());
+ Seeker.remove(player.getUniqueId());
+ Spectator.add(player.getUniqueId());
+ playerList.put(player.getUniqueId(), player);
}
public static void remove(Player player) {
- Hider.remove(player.getName());
- Seeker.remove(player.getName());
- Spectator.remove(player.getName());
- playerList.remove(player.getName());
+ Hider.remove(player.getUniqueId());
+ Seeker.remove(player.getUniqueId());
+ Spectator.remove(player.getUniqueId());
+ playerList.remove(player.getUniqueId());
}
public static 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 return Spectator.contains(player1.getName()) && Spectator.contains(player2.getName());
+ if(Hider.contains(player1.getUniqueId()) && Hider.contains(player2.getUniqueId())) return true;
+ else if(Seeker.contains(player1.getUniqueId()) && Seeker.contains(player2.getUniqueId())) return true;
+ else return Spectator.contains(player1.getUniqueId()) && Spectator.contains(player2.getUniqueId());
}
public static void reload() {
@@ -143,7 +146,7 @@ public class Board {
}
private static void createLobbyBoard(Player player, boolean recreate) {
- CustomBoard board = customBoards.get(player.getName());
+ CustomBoard board = customBoards.get(player.getUniqueId());
if(recreate) {
board = new CustomBoard(player, "&l&eHIDE AND SEEK");
board.updateTeams();
@@ -172,7 +175,7 @@ public class Board {
i++;
}
board.display();
- customBoards.put(player.getName(), board);
+ customBoards.put(player.getUniqueId(), board);
}
public static void createGameBoard(Player player){
@@ -180,7 +183,7 @@ public class Board {
}
private static void createGameBoard(Player player, boolean recreate){
- CustomBoard board = customBoards.get(player.getName());
+ CustomBoard board = customBoards.get(player.getUniqueId());
if(recreate) {
board = new CustomBoard(player, GAME_TITLE);
board.updateTeams();
@@ -235,14 +238,14 @@ public class Board {
i++;
}
board.display();
- customBoards.put(player.getName(), board);
+ customBoards.put(player.getUniqueId(), board);
}
public static void removeBoard(Player player) {
ScoreboardManager manager = Bukkit.getScoreboardManager();
assert manager != null;
player.setScoreboard(manager.getMainScoreboard());
- customBoards.remove(player.getName());
+ customBoards.remove(player.getUniqueId());
}
public static void reloadLobbyBoards() {
@@ -281,6 +284,14 @@ public class Board {
else return ChatColor.WHITE + "UNKNOWN";
}
+ public static void cleanup(){
+ playerList.clear();
+ Hider.clear();
+ Seeker.clear();
+ Spectator.clear();
+ customBoards.clear();
+ }
+
}
class CustomBoard {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java
index aab55d4..ffe452b 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/EventListener.java
@@ -40,7 +40,6 @@ import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
import org.bukkit.event.player.*;
-import net.tylermurphy.hideAndSeek.util.Packet;
import org.bukkit.potion.PotionEffect;
import org.bukkit.projectiles.ProjectileSource;
@@ -257,20 +256,6 @@ public class EventListener implements Listener {
Player player = event.getPlayer();
String message = event.getMessage();
String[] array = message.split(" ");
- if(array[0].equalsIgnoreCase("/kill")){
- if(Board.isPlayer(player)){
- Main.plugin.getLogger().info("Blocking "+player.getName()+ "from running /kill with anyone associated in the lobby");
- event.setCancelled(true);
- } else if(array.length > 1){
- for(int i=1; i<array.length; i++){
- if(Board.isPlayer(array[i])){
- Main.plugin.getLogger().info("Blocking "+player.getName()+ "from running /kill with anyone associated in the lobby");
- event.setCancelled(true);
- return;
- }
- }
- }
- }
String[] temp = array[0].split(":");
for(String handle : blockedCommands){
if(
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java
index a016a4e..41b0bc8 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java
@@ -285,7 +285,16 @@ public class Game {
return;
}
String seekerName = rand.get().getName();
- Player seeker = Board.getPlayer(seekerName);
+ Player temp = Bukkit.getPlayer(seekerName);
+ if(temp == null){
+ Main.plugin.getLogger().warning("Failed to select random seeker.");
+ return;
+ }
+ Player seeker = Board.getPlayer(temp.getUniqueId());
+ if(seeker == null){
+ Main.plugin.getLogger().warning("Failed to select random seeker.");
+ return;
+ }
start(seeker);
}
} else {
@@ -414,7 +423,7 @@ class Glow {
class Taunt {
- private String tauntPlayer;
+ private UUID tauntPlayer;
private int delay;
private boolean running;
@@ -441,7 +450,7 @@ class Taunt {
Player taunted = rand.get();
taunted.sendMessage(message("TAUNTED").toString());
broadcastMessage(tauntPrefix + message("TAUNT"));
- tauntPlayer = taunted.getName();
+ tauntPlayer = taunted.getUniqueId();
running = true;
delay = 30;
}
@@ -451,7 +460,7 @@ class Taunt {
if(taunted != null) {
if(!Board.isHider(taunted)){
Main.plugin.getLogger().info("Taunted played died and is now seeker. Skipping taunt.");
- tauntPlayer = "";
+ tauntPlayer = null;
running = false;
delay = tauntDelay;
return;
@@ -459,7 +468,7 @@ class Taunt {
World world = taunted.getLocation().getWorld();
if(world == null){
Main.plugin.getLogger().severe("Game world is null while trying to launch taunt.");
- tauntPlayer = "";
+ tauntPlayer = null;
running = false;
delay = tauntDelay;
return;
@@ -480,7 +489,7 @@ class Taunt {
fw.setFireworkMeta(fwm);
broadcastMessage(tauntPrefix + message("TAUNT_ACTIVATE"));
}
- tauntPlayer = "";
+ tauntPlayer = null;
running = false;
delay = tauntDelay;
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 0cb2517..6c239fb 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -70,7 +70,8 @@ taunt:
# the amount of time set in seconds. You can allow it to be stackable, meaning
# when multiple Hiders use the powerup at the same time, it stacks the times, or
# just overwrites. Only Hiders can see that the Seekers are glowing. Delay must
-# be longer than 1s.
+# be longer than 1s. Since the glow effect wasn't added until Minecraft 1.9,
+# any server running 1.8 will have this disabled regardless of the options below.
glow:
time: 30
stackable: true