From 5512bd7df60122fc158a8d4af0dd398bbf31cb6b Mon Sep 17 00:00:00 2001 From: t00thpick1 Date: Tue, 15 Jan 2013 18:35:21 -0500 Subject: [PATCH] Part one of sql for mcRank --- .../nossr50/commands/mc/McrankCommand.java | 81 ++++++++++++------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/mc/McrankCommand.java b/src/main/java/com/gmail/nossr50/commands/mc/McrankCommand.java index 85ef97749..67f3b3533 100644 --- a/src/main/java/com/gmail/nossr50/commands/mc/McrankCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/mc/McrankCommand.java @@ -1,45 +1,66 @@ package com.gmail.nossr50.commands.mc; +import java.util.Map; + import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.util.Database; import com.gmail.nossr50.util.Leaderboard; import com.gmail.nossr50.util.Misc; public class McrankCommand implements CommandExecutor { - @Override - public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) { - //I'm being lazy and making this only work on yourself, I or someone else will make this work on other players in the future :D - Leaderboard.updateLeaderboards(); //Make sure the information is up to date - - if(arg0 instanceof Player) { - Player player = (Player) arg0; - String playerName = player.getName(); - - arg0.sendMessage(ChatColor.GOLD + "-=PERSONAL RANKINGS=-"); - arg0.sendMessage(ChatColor.RED+"TARGET: "+ChatColor.WHITE+playerName); - - if(Config.getInstance().getUseMySQL()) { - //MySQL Version - } else { - for(SkillType skillType : SkillType.values()) { - if(skillType.equals(SkillType.ALL)) - continue; //We want the overall ranking to be at the bottom - arg0.sendMessage(ChatColor.YELLOW+Misc.getCapitalized(skillType.name())+ChatColor.GREEN+" - "+ChatColor.GOLD+"Rank "+ChatColor.WHITE+"#"+ChatColor.GREEN+Leaderboard.getPlayerRank(playerName, skillType)); - } - arg0.sendMessage(ChatColor.YELLOW+"Overall"+ChatColor.GREEN+" - "+ChatColor.GOLD+"Rank "+ChatColor.WHITE+"#"+ChatColor.GREEN+Leaderboard.getPlayerRank(playerName, SkillType.ALL)); - } - - } else { - arg0.sendMessage("Command currently not supported for console."); - } - - return true; - } -} \ No newline at end of file + @Override + public boolean onCommand(CommandSender arg0, Command arg1, String arg2, String[] arg3) { + //I'm being lazy and making this only work on yourself, I or someone else will make this work on other players in the future :D + Leaderboard.updateLeaderboards(); //Make sure the information is up to date + + if(arg0 instanceof Player) { + Player player = (Player) arg0; + String playerName = player.getName(); + + arg0.sendMessage(ChatColor.GOLD + "-=PERSONAL RANKINGS=-"); + arg0.sendMessage(ChatColor.RED+"TARGET: "+ChatColor.WHITE+playerName); + + if(Config.getInstance().getUseMySQL()) { + sqlDisplay(arg0, playerName); + } else { + flatfileDisplayer(arg0, playerName); + } + + } else { + arg0.sendMessage("Command currently not supported for console."); + } + + return true; + } + + public void flatfileDisplayer(CommandSender sender, String playerName) { + for (SkillType skillType : SkillType.values()) { + if (skillType.equals(SkillType.ALL)) + continue; // We want the overall ranking to be at the bottom + sender.sendMessage(ChatColor.YELLOW + Misc.getCapitalized(skillType.name()) + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, skillType)); + } + sender.sendMessage(ChatColor.YELLOW + "Overall" + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, SkillType.ALL)); + } + + + private void sqlDisplay(CommandSender sender, String playerName) { + String tablePrefix = Config.getInstance().getMySQLTablePrefix(); + Database database = mcMMO.getPlayerDatabase(); + Map skills = database.readSQLRank(playerName); + for (SkillType skillType : SkillType.values()) { + if (skillType.equals(SkillType.ALL)) + continue; // We want the overall ranking to be at the bottom + sender.sendMessage(ChatColor.YELLOW + Misc.getCapitalized(skillType.name()) + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + skills.get(skillType.name())); + } + sender.sendMessage(ChatColor.YELLOW + "Overall" + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + skills.get("all")); + } +}