summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/command
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/command')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java3
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Top.java60
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java66
3 files changed, 128 insertions, 1 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java
index f444f34..2fef77c 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java
@@ -3,6 +3,7 @@ package net.tylermurphy.hideAndSeek.command;
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import net.tylermurphy.hideAndSeek.game.Status;
+import net.tylermurphy.hideAndSeek.game.WinType;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
@@ -20,7 +21,7 @@ public class Stop implements ICommand {
if(Main.plugin.status == Status.STARTING || Main.plugin.status == Status.PLAYING) {
if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + message("STOP"));
else Util.broadcastMessage(abortPrefix + message("STOP"));
- Main.plugin.game.stop();
+ Main.plugin.game.stop(WinType.NONE);
} else {
sender.sendMessage(errorPrefix + message("GAME_NOT_INPROGRESS"));
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java
new file mode 100644
index 0000000..c394378
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Top.java
@@ -0,0 +1,60 @@
+package net.tylermurphy.hideAndSeek.command;
+
+import net.tylermurphy.hideAndSeek.Main;
+import net.tylermurphy.hideAndSeek.database.PlayerInfo;
+import org.bukkit.ChatColor;
+import org.bukkit.command.CommandSender;
+
+import java.util.List;
+
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
+
+public class Top implements ICommand {
+
+ public void execute(CommandSender sender, String[] args) {
+ int page;
+ if(args.length == 0) page = 1;
+ else try{
+ page = Integer.parseInt(args[0]);
+ } catch(Exception e){
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[0]));
+ return;
+ }
+ if(page < 1){
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(page));
+ return;
+ }
+ String message = String.format(
+ "%s------- %sLEADERBOARD %s(Page %s) %s-------\n",
+ ChatColor.WHITE, ChatColor.BOLD, ChatColor.GRAY, page, ChatColor.WHITE);
+ List<PlayerInfo> infos = Main.plugin.database.playerInfo.getInfoPage(page);
+ int i = 1 + (page-1)*10;
+ for(PlayerInfo info : infos){
+ String name = Main.plugin.getServer().getOfflinePlayer(info.uuid).getName();
+ ChatColor color;
+ switch (i){
+ case 1: color = ChatColor.YELLOW; break;
+ case 2: color = ChatColor.GRAY; break;
+ case 3: color = ChatColor.GOLD; break;
+ default: color = ChatColor.WHITE; break;
+ }
+ message = message + String.format("%s%s. %s%s %s%s\n",
+ color, i, ChatColor.RED, info.wins, ChatColor.WHITE, name);
+ i++;
+ }
+ sender.sendMessage(message);
+ }
+
+ public String getLabel() {
+ return "top";
+ }
+
+ public String getUsage() {
+ return "<page>";
+ }
+
+ public String getDescription() {
+ return "Gets the top players in the server.";
+ }
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java
new file mode 100644
index 0000000..d99229d
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Wins.java
@@ -0,0 +1,66 @@
+package net.tylermurphy.hideAndSeek.command;
+
+import com.comphenix.protocol.PacketType;
+import net.tylermurphy.hideAndSeek.Main;
+import net.tylermurphy.hideAndSeek.database.PlayerInfo;
+import net.tylermurphy.hideAndSeek.util.CommandHandler;
+import net.tylermurphy.hideAndSeek.util.UUIDFetcher;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.OfflinePlayer;
+import org.bukkit.command.CommandSender;
+
+import java.util.UUID;
+
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
+
+public class Wins implements ICommand {
+
+ public void execute(CommandSender sender, String[] args) {
+ Main.plugin.getServer().getScheduler().runTaskAsynchronously(Main.plugin, () -> {
+
+ UUID uuid;
+ String name;
+ if(args.length == 0) {
+ uuid = Main.plugin.getServer().getPlayer(sender.getName()).getUniqueId();
+ name = sender.getName();
+ }
+ else {
+ try {
+ name = args[0];
+ uuid = UUIDFetcher.getUUID(args[0]);
+ } catch (Exception e){
+ sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(args[0]));
+ return;
+ }
+ }
+ PlayerInfo info = Main.plugin.database.playerInfo.getInfo(uuid);
+ if(info == null){
+ sender.sendMessage(errorPrefix + message("NO_GAME_INFO"));
+ return;
+ }
+ String message = ChatColor.WHITE + "" + ChatColor.BOLD + "==============================\n";
+ message = message + message("INFORMATION_FOR").addPlayer(name) + "\n";
+ message = message + "==============================\n";
+ message = message + String.format("%sTOTAL WINS: %s%s\n%sHIDER WINS: %s%s\n%sSEEKER WINS: %s%s\n%sGAMES PLAYED: %s",
+ ChatColor.YELLOW, ChatColor.WHITE, info.wins, ChatColor.GOLD, ChatColor.WHITE, info.hider_wins,
+ ChatColor.RED, ChatColor.WHITE, info.seeker_wins, ChatColor.WHITE, info.games_played);
+ message = message + ChatColor.WHITE + "" + ChatColor.BOLD + "\n==============================";
+ sender.sendMessage(message);
+
+ });
+ }
+
+ public String getLabel() {
+ return "wins";
+ }
+
+ public String getUsage() {
+ return "<player>";
+ }
+
+ public String getDescription() {
+ return "Get the win information for yourself or another player.";
+ }
+}