From 2a76db770e463611389b6b86fb76016d8b1d22cb Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sun, 15 Jan 2017 18:54:14 +0200 Subject: [PATCH] /plan lite command, PlanLite command change: /plan > /planlite - Started creating planlite html, -> html unfinished. - Tested all 3 plugins working together, fixed bugs and typos accordingly -> Swapped planlite permissions and commands from plan to planlite --- .../src/com/djrapitops/planlite/Phrase.java | 50 +++++++++++++++++++ .../src/com/djrapitops/planlite/PlanLite.java | 10 ++-- ...{PlanCommand.java => PlanLiteCommand.java} | 21 +++----- .../command/commands/AnalyzeCommand.java | 39 ++++++++------- .../command/commands/HelpCommand.java | 21 ++++---- .../command/commands/InfoCommand.java | 16 +++--- .../command/commands/InspectCommand.java | 43 +++++++++++----- .../command/commands/ReloadCommand.java | 12 +++-- .../command/commands/SearchCommand.java | 39 +++++++-------- Plan Lite/src/plugin.yml | 12 ++--- .../com/djrapitops/plan/PlanLiteHook.java | 14 ++++-- .../djrapitops/plan/command/PlanCommand.java | 10 ++-- .../plan/command/commands/HelpCommand.java | 2 +- .../plan/command/commands/LiteCommand.java | 30 +++++++++++ .../plan/utilities/AnalysisUtils.java | 26 ++++++---- Plan/src/main/resources/planlite.html | 22 ++++++++ 16 files changed, 251 insertions(+), 116 deletions(-) create mode 100644 Plan Lite/src/com/djrapitops/planlite/Phrase.java rename Plan Lite/src/com/djrapitops/planlite/{PlanCommand.java => PlanLiteCommand.java} (78%) create mode 100644 Plan/src/main/java/com/djrapitops/plan/command/commands/LiteCommand.java create mode 100644 Plan/src/main/resources/planlite.html diff --git a/Plan Lite/src/com/djrapitops/planlite/Phrase.java b/Plan Lite/src/com/djrapitops/planlite/Phrase.java new file mode 100644 index 000000000..f3d89c7c4 --- /dev/null +++ b/Plan Lite/src/com/djrapitops/planlite/Phrase.java @@ -0,0 +1,50 @@ +package com.djrapitops.planlite; + + + +import org.bukkit.ChatColor; + +/** + * + * @author Rsl1122 + */ +public enum Phrase { + USERNAME_NOT_VALID(ChatColor.RED + "This Player doesn't exist."), + USERNAME_NOT_SEEN(ChatColor.RED + "This Player has not played on this server."), + USERNAME_NOT_KNOWN(ChatColor.RED + "Player not found from the database."), + COLOR_MAIN(ChatColor.DARK_GREEN), + COLOR_SEC(ChatColor.GRAY), + COLOR_TER(ChatColor.WHITE), + ARROWS_RIGHT("»"), + BALL("•"), + ERROR_NO_HOOKS(ChatColor.RED + "[PlanLite] No Hooks enabled - Reload plugin!"), + COMMAND_SENDER_NOT_PLAYER(ChatColor.RED + "[PlanLite] This command can be only used as a player."), + COMMAND_REQUIRES_ARGUMENTS(ChatColor.RED + "[PlanLite] Command requires arguments."), + COMMAND_REQUIRES_ARGUMENTS_ONE(ChatColor.RED + "[PlanLite] Command requires one argument."), + COMMAND_NO_PERMISSION(ChatColor.RED + "[PlanLite] You do not have the required permmission."); + + private final String text; + private final ChatColor color; + + private Phrase(final String text) { + this.text = text; + this.color = null; + } + + private Phrase(final ChatColor color) { + this.color = color; + this.text = ""; + } + + @Override + public String toString() { + return text; + } + + /** + * @return Color of the COLOR_ENUM + */ + public ChatColor color() { + return color; + } +} diff --git a/Plan Lite/src/com/djrapitops/planlite/PlanLite.java b/Plan Lite/src/com/djrapitops/planlite/PlanLite.java index a3ec1edc3..5e251ffa2 100644 --- a/Plan Lite/src/com/djrapitops/planlite/PlanLite.java +++ b/Plan Lite/src/com/djrapitops/planlite/PlanLite.java @@ -32,7 +32,7 @@ public class PlanLite extends JavaPlugin { private final Map hooks; private API api; private final Map extraHooks; - private PlanCommand planCommand; + private PlanLiteCommand planCommand; public PlanLite() { this.hooks = new HashMap<>(); @@ -79,11 +79,11 @@ public class PlanLite extends JavaPlugin { if (!hookFail.isEmpty()) { Bukkit.getServer().getConsoleSender().sendMessage("[PlanLite] " + failedMsg); } - planCommand = new PlanCommand(this); + planCommand = new PlanLiteCommand(this); getCommand("planlite").setExecutor(planCommand); - log("Player Analytics Enabled."); + log("Player Analytics Lite Enabled."); } public List hookInit() { @@ -121,7 +121,7 @@ public class PlanLite extends JavaPlugin { @Override public void onDisable() { - log("Player Analytics Disabled."); + log("Player Analytics Lite Disabled."); } public void log(String message) { @@ -173,7 +173,7 @@ public class PlanLite extends JavaPlugin { } } - public PlanCommand getPlanCommand() { + public PlanLiteCommand getPlanCommand() { return planCommand; } } diff --git a/Plan Lite/src/com/djrapitops/planlite/PlanCommand.java b/Plan Lite/src/com/djrapitops/planlite/PlanLiteCommand.java similarity index 78% rename from Plan Lite/src/com/djrapitops/planlite/PlanCommand.java rename to Plan Lite/src/com/djrapitops/planlite/PlanLiteCommand.java index fb028a524..b495402b4 100644 --- a/Plan Lite/src/com/djrapitops/planlite/PlanCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/PlanLiteCommand.java @@ -9,7 +9,6 @@ import com.djrapitops.planlite.command.commands.InspectCommand; import com.djrapitops.planlite.command.commands.ReloadCommand; import com.djrapitops.planlite.command.commands.SearchCommand; import com.djrapitops.planlite.command.utils.MiscUtils; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -19,11 +18,11 @@ import java.util.List; import java.util.ArrayList; import org.bukkit.entity.Player; -public class PlanCommand implements CommandExecutor { +public class PlanLiteCommand implements CommandExecutor { private final List commands; - public PlanCommand(PlanLite plugin) { + public PlanLiteCommand(PlanLite plugin) { commands = new ArrayList<>(); commands.add(new HelpCommand(plugin, this)); @@ -76,22 +75,18 @@ public class PlanCommand implements CommandExecutor { boolean console = !(sender instanceof Player); if (!sender.hasPermission(command.getPermission())) { -// Phrase.NO_PERMISSION_FOR_COMMAND.sendWithPrefix( sender ); - sender.sendMessage(ChatColor.RED + "[PlanLite] You do not have the required permmission."); + sender.sendMessage(Phrase.COMMAND_NO_PERMISSION.toString()); return true; } if (console && args.length < 2 && command.getCommandType() == CommandType.CONSOLE_WITH_ARGUMENTS) { -// Phrase.COMMAND_NEEDS_ARGUMENTS.sendWithPrefix( sender ); - sender.sendMessage(ChatColor.RED + "[PlanLite] Command requires arguments."); + sender.sendMessage(Phrase.COMMAND_REQUIRES_ARGUMENTS.toString()); return true; } if (console && command.getCommandType() == CommandType.PLAYER) { -// Phrase.COMMAND_NOT_CONSOLE.sendWithPrefix( sender, commandLabel ); - sender.sendMessage(ChatColor.RED + "[PlanLite] This command can be only used as a player."); - + sender.sendMessage(Phrase.COMMAND_SENDER_NOT_PLAYER.toString()); return true; } @@ -100,10 +95,8 @@ public class PlanCommand implements CommandExecutor { for (int i = 1; i < args.length; i++) { realArgs[i - 1] = args[i]; } - - if (!command.onCommand(sender, cmd, commandLabel, realArgs)) { -// Phrase.TRY_COMMAND.sendWithPrefix( sender, parse( commandLabel, command ) ); - } + + command.onCommand(sender, cmd, commandLabel, realArgs); return true; } diff --git a/Plan Lite/src/com/djrapitops/planlite/command/commands/AnalyzeCommand.java b/Plan Lite/src/com/djrapitops/planlite/command/commands/AnalyzeCommand.java index 6aadfe0f5..f69b7af63 100644 --- a/Plan Lite/src/com/djrapitops/planlite/command/commands/AnalyzeCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/command/commands/AnalyzeCommand.java @@ -1,5 +1,6 @@ package com.djrapitops.planlite.command.commands; +import com.djrapitops.planlite.Phrase; import com.djrapitops.planlite.PlanLite; import com.djrapitops.planlite.command.CommandType; import com.djrapitops.planlite.command.SubCommand; @@ -24,48 +25,52 @@ public class AnalyzeCommand extends SubCommand { private Date refreshDate; public AnalyzeCommand(PlanLite plugin) { - super("analyze", "planlite.analyze", "Analyze data of all players /plan analyze [-refresh]", CommandType.CONSOLE); + super("analyze", "planlite.analyze", "Analyze data of players, /planlite analyze [-refresh]", CommandType.CONSOLE); this.plugin = plugin; } @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { - ChatColor operatorColor = ChatColor.DARK_GREEN; - ChatColor textColor = ChatColor.GRAY; + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); for (String arg : args) { if (arg.toLowerCase().equals("-refresh")) { if (sender.hasPermission("planlite.analyze.refresh") || !(sender instanceof Player)) { refreshAnalysisData(sender); + } else { + sender.sendMessage(Phrase.COMMAND_NO_PERMISSION.toString()); } } } if (this.playerData == null || this.refreshDate == null || this.analyzedPlayerdata == null || DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date()).contains("m")) { refreshAnalysisData(sender); } - - //header - sender.sendMessage(textColor + "-- [" + operatorColor + "PLAN - Analysis results, refreshed " - + DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date()) + " ago:" + textColor + "] --"); - + + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite | Analysis results - refreshed " + + DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date()) + " ago"); + List dataList = DataFormatUtils.turnDataHashMapToSortedListOfArrays(analyzedPlayerdata); - - sender.sendMessage("" + textColor + "Averages for " + this.playerData.size() + " player(s)"); + + sender.sendMessage(hColor + Phrase.BALL.toString() + tColor + " Averages for " + hColor + this.playerData.size() + tColor + " player(s)"); for (String[] dataString : dataList) { - sender.sendMessage("" + operatorColor + dataString[0].charAt(4) + dataString[0].toLowerCase().substring(5) + ": " + textColor + dataString[1]); + sender.sendMessage(" " + tColor + Phrase.BALL + oColor+" " + + dataString[0].charAt(4) + dataString[0].toLowerCase().substring(5) + ": " + tColor + dataString[1]); } - sender.sendMessage(textColor + "-- o --"); + sender.sendMessage(hColor + Phrase.BALL.toString()); return true; } private void refreshAnalysisData(CommandSender sender) { - ChatColor operatorColor = ChatColor.DARK_GREEN; - ChatColor textColor = ChatColor.GRAY; - sender.sendMessage(textColor + "[" + operatorColor + "Plan" + textColor + "] " + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite " + tColor + "| " + "Refreshing playerData, this might take a while.."); this.playerData = DataUtils.getTotalData(DataUtils.getMatchingDisplaynames(true)); this.refreshDate = new Date(); this.analyzedPlayerdata = Analysis.analyze(this.playerData); - sender.sendMessage(textColor + "[" + operatorColor + "Plan" + textColor + "] " - + "Refreshed, took "+DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date())); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite " + tColor + "| " + + "Refreshed, took " + DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date())); } } diff --git a/Plan Lite/src/com/djrapitops/planlite/command/commands/HelpCommand.java b/Plan Lite/src/com/djrapitops/planlite/command/commands/HelpCommand.java index 9eaa3339b..e27845302 100644 --- a/Plan Lite/src/com/djrapitops/planlite/command/commands/HelpCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/command/commands/HelpCommand.java @@ -1,7 +1,8 @@ package com.djrapitops.planlite.command.commands; +import com.djrapitops.planlite.Phrase; import com.djrapitops.planlite.PlanLite; -import com.djrapitops.planlite.PlanCommand; +import com.djrapitops.planlite.PlanLiteCommand; import com.djrapitops.planlite.command.CommandType; import com.djrapitops.planlite.command.SubCommand; import org.bukkit.ChatColor; @@ -12,9 +13,9 @@ import org.bukkit.entity.Player; public class HelpCommand extends SubCommand { private final PlanLite plugin; - private final PlanCommand command; + private final PlanLiteCommand command; - public HelpCommand(PlanLite plugin, PlanCommand command) { + public HelpCommand(PlanLite plugin, PlanLiteCommand command) { super("help,?", "planlite.?", "Show command list.", CommandType.CONSOLE); this.plugin = plugin; @@ -24,11 +25,11 @@ public class HelpCommand extends SubCommand { @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { - ChatColor operatorColor = ChatColor.DARK_GREEN; - - ChatColor textColor = ChatColor.GRAY; - - sender.sendMessage(textColor + "-- [" + operatorColor + "Plan Lite - Player Analytics Lite" + textColor + "] --"); + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); + + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite"); for (SubCommand command : this.command.getCommands()) { if (command.getName().equalsIgnoreCase(getName())) { @@ -43,8 +44,10 @@ public class HelpCommand extends SubCommand { continue; } - sender.sendMessage(operatorColor + "/planlite " + command.getFirstName() + textColor + " - " + command.getUsage()); + sender.sendMessage(" "+Phrase.BALL+oColor + " /planlite " + command.getFirstName() + tColor + " " + command.getUsage()); } + + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString()); return true; } diff --git a/Plan Lite/src/com/djrapitops/planlite/command/commands/InfoCommand.java b/Plan Lite/src/com/djrapitops/planlite/command/commands/InfoCommand.java index fe8cbde7a..40cf96349 100644 --- a/Plan Lite/src/com/djrapitops/planlite/command/commands/InfoCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/command/commands/InfoCommand.java @@ -1,5 +1,6 @@ package com.djrapitops.planlite.command.commands; +import com.djrapitops.planlite.Phrase; import com.djrapitops.planlite.PlanLite; import com.djrapitops.planlite.command.CommandType; import com.djrapitops.planlite.command.SubCommand; @@ -21,12 +22,15 @@ public class InfoCommand extends SubCommand { @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { plugin.reloadConfig(); - ChatColor operatorColor = ChatColor.DARK_GREEN; - ChatColor textColor = ChatColor.GRAY; - sender.sendMessage(textColor +"--["+operatorColor+"PLAN - Info"+textColor+"]--"); - sender.sendMessage(operatorColor+"Version: "+textColor+plugin.getDescription().getVersion()); - sender.sendMessage(textColor+MiscUtils.checkVersion()); - sender.sendMessage(operatorColor+"Enabled Hooks: "+textColor+plugin.getHooks().keySet()); + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); + + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite | Info"); + sender.sendMessage(oColor+"Version: "+tColor+plugin.getDescription().getVersion()); + sender.sendMessage(tColor+MiscUtils.checkVersion()); + sender.sendMessage(oColor+"Enabled Hooks: "+tColor+plugin.getHooks().keySet()); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString()); return true; } diff --git a/Plan Lite/src/com/djrapitops/planlite/command/commands/InspectCommand.java b/Plan Lite/src/com/djrapitops/planlite/command/commands/InspectCommand.java index bbd8b463e..f5e72906d 100644 --- a/Plan Lite/src/com/djrapitops/planlite/command/commands/InspectCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/command/commands/InspectCommand.java @@ -1,6 +1,8 @@ package com.djrapitops.planlite.command.commands; +import com.djrapitops.planlite.Phrase; import com.djrapitops.planlite.PlanLite; +import com.djrapitops.planlite.UUIDFetcher; import com.djrapitops.planlite.command.CommandType; import com.djrapitops.planlite.command.SubCommand; import com.djrapitops.planlite.command.utils.DataFormatUtils; @@ -11,8 +13,11 @@ import java.util.HashMap; import java.util.List; import com.djrapitops.planlite.api.DataPoint; import com.djrapitops.planlite.api.DataType; +import java.util.UUID; +import static org.bukkit.Bukkit.getOfflinePlayer; import org.bukkit.ChatColor; +import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -21,7 +26,7 @@ public class InspectCommand extends SubCommand { private PlanLite plugin; public InspectCommand(PlanLite plugin) { - super("inspect", "planlite.inspect", "Inspect data /plan [-a, -r].", CommandType.CONSOLE_WITH_ARGUMENTS); + super("inspect", "planlite.inspect", "Inspect data /planlite [-a, -r].", CommandType.CONSOLE_WITH_ARGUMENTS); this.plugin = plugin; } @@ -29,12 +34,24 @@ public class InspectCommand extends SubCommand { @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { String playerName = DataUtils.getPlayerDisplayname(args, sender); + UUID uuid; + try { + uuid = UUIDFetcher.getUUIDOf(playerName); + if (uuid == null) { + throw new Exception("Username doesn't exist."); + } + } catch (Exception e) { + sender.sendMessage(Phrase.USERNAME_NOT_VALID.toString()); + return true; + } + OfflinePlayer p = getOfflinePlayer(uuid); + if (!p.hasPlayedBefore()) { + sender.sendMessage(Phrase.USERNAME_NOT_SEEN.toString()); + return true; + } if (this.plugin.getHooks().isEmpty()) { - this.plugin.logError("noHookedPluginsError on InspectCommand"); - - this.plugin.logToFile("INSPECT\nnoHookedPluginsError on InspectCommand"); - - return false; + sender.sendMessage(Phrase.ERROR_NO_HOOKS.toString()); + return true; } boolean allData = false; @@ -61,16 +78,16 @@ public class InspectCommand extends SubCommand { List dataList = DataFormatUtils.turnDataHashMapToSortedListOfArrays(data); - ChatColor operatorColor = ChatColor.DARK_GREEN; - ChatColor textColor = ChatColor.GRAY; - - //header - sender.sendMessage(textColor + "-- [" + operatorColor + "PLAN - Inspect results: " + playerName +" - took "+DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date())+ textColor + "] --"); + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); + + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite | Inspect results: " + playerName); for (String[] dataString : dataList) { - sender.sendMessage("" + operatorColor + dataString[0].charAt(4) + dataString[0].toLowerCase().substring(5) + ": " + textColor + dataString[1]); + sender.sendMessage(" " + tColor + Phrase.BALL + oColor+" "+ dataString[0].charAt(4) + dataString[0].toLowerCase().substring(5) + ": " + tColor + dataString[1]); } - sender.sendMessage(textColor + "-- o --"); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString()); return true; } } diff --git a/Plan Lite/src/com/djrapitops/planlite/command/commands/ReloadCommand.java b/Plan Lite/src/com/djrapitops/planlite/command/commands/ReloadCommand.java index 540f6b1b2..7e26d8829 100644 --- a/Plan Lite/src/com/djrapitops/planlite/command/commands/ReloadCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/command/commands/ReloadCommand.java @@ -1,5 +1,6 @@ package com.djrapitops.planlite.command.commands; +import com.djrapitops.planlite.Phrase; import com.djrapitops.planlite.PlanLite; import com.djrapitops.planlite.command.CommandType; import com.djrapitops.planlite.command.SubCommand; @@ -24,9 +25,10 @@ public class ReloadCommand extends SubCommand { public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { plugin.reloadConfig(); List hookFail = plugin.hookInit(); - ChatColor operatorColor = ChatColor.DARK_GREEN; - ChatColor textColor = ChatColor.GRAY; - sender.sendMessage(textColor + "[" + operatorColor + "PLAN" + textColor + "] Config & Hooks reloaded."); + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite | Config & Hooks reloaded."); String loadedMsg = " Hooked into: "; for (String key : plugin.getHooks().keySet()) { loadedMsg += ChatColor.GREEN + key + " "; @@ -35,9 +37,9 @@ public class ReloadCommand extends SubCommand { for (String string : hookFail) { failedMsg += ChatColor.RED + string + " "; } - sender.sendMessage(textColor + loadedMsg); + sender.sendMessage(tColor + loadedMsg); if (!hookFail.isEmpty()) { - sender.sendMessage(textColor + failedMsg); + sender.sendMessage(tColor + failedMsg); } return true; } diff --git a/Plan Lite/src/com/djrapitops/planlite/command/commands/SearchCommand.java b/Plan Lite/src/com/djrapitops/planlite/command/commands/SearchCommand.java index 8dfd8c048..c92471ac2 100644 --- a/Plan Lite/src/com/djrapitops/planlite/command/commands/SearchCommand.java +++ b/Plan Lite/src/com/djrapitops/planlite/command/commands/SearchCommand.java @@ -1,5 +1,6 @@ package com.djrapitops.planlite.command.commands; +import com.djrapitops.planlite.Phrase; import com.djrapitops.planlite.PlanLite; import com.djrapitops.planlite.command.CommandType; import com.djrapitops.planlite.command.SubCommand; @@ -13,7 +14,6 @@ import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.UUID; -import static org.bukkit.Bukkit.getOfflinePlayer; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -25,7 +25,7 @@ public class SearchCommand extends SubCommand { private final PlanLite plugin; public SearchCommand(PlanLite plugin) { - super("search", "planlite.search", "Inspect specific data /plan [-p]", CommandType.CONSOLE_WITH_ARGUMENTS); + super("search", "planlite.search", "Inspect specific data /planlite [-p]", CommandType.CONSOLE_WITH_ARGUMENTS); this.plugin = plugin; } @@ -46,13 +46,11 @@ public class SearchCommand extends SubCommand { matchingPlayers = DataUtils.getMatchingDisplaynames(args, sender, false); } args = DataFormatUtils.parseSearchArgs(args); - HashMap> data = DataUtils.getTotalData(matchingPlayers); if (this.plugin.getHooks().isEmpty()) { - this.plugin.logError("noHookedPluginsError on SearchCommand"); - this.plugin.logToFile("SEARCH\nnoHookedPluginsError on SearchCommand"); - - return false; + sender.sendMessage(Phrase.ERROR_NO_HOOKS.toString()); + return true; } + HashMap> data = DataUtils.getTotalData(matchingPlayers); Date refreshDate = new Date(); HashMap> dataLists = new HashMap<>(); @@ -69,22 +67,23 @@ public class SearchCommand extends SubCommand { dataLists.put(p.getName(), DataFormatUtils.turnDataHashMapToSortedListOfArrays(dataMap)); } - ChatColor operatorColor = ChatColor.DARK_GREEN; - ChatColor textColor = ChatColor.GRAY; + ChatColor oColor = Phrase.COLOR_MAIN.color(); + ChatColor tColor = Phrase.COLOR_SEC.color(); + ChatColor hColor = Phrase.COLOR_TER.color(); - //header - sender.sendMessage(textColor + "-- [" + operatorColor + "PLAN - Search results: took " + DataFormatUtils.formatTimeAmountSinceDate(refreshDate, new Date()) + textColor + "] --"); - sender.sendMessage(operatorColor + "Results for: " + Arrays.toString(args)); - for (String playerName : dataLists.keySet()) { - sender.sendMessage(textColor + "Matching player: " + playerName); - for (String[] dataString : dataLists.get(playerName)) { - sender.sendMessage("" + operatorColor + dataString[0].charAt(4) + dataString[0].toLowerCase().substring(5) + ": " + textColor + dataString[1]); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString() + oColor + " Player Analytics Lite | Search results: " + Arrays.toString(args)); + if (dataLists.isEmpty()) { + sender.sendMessage(" " + tColor + Phrase.BALL + oColor + " No results."); + } else { + for (String playerName : dataLists.keySet()) { + sender.sendMessage(tColor + "Matching player: " + hColor + playerName); + for (String[] dataString : dataLists.get(playerName)) { + sender.sendMessage(" " + tColor + Phrase.BALL + oColor + " " + + dataString[0].charAt(4) + dataString[0].toLowerCase().substring(5) + ": " + tColor + dataString[1]); + } } } - if (dataLists.isEmpty()) { - sender.sendMessage(operatorColor + "No results for " + textColor + Arrays.toString(args) + operatorColor + "."); - } - sender.sendMessage(textColor + "-- o --"); + sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString()); return true; } } diff --git a/Plan Lite/src/plugin.yml b/Plan Lite/src/plugin.yml index b5f613c31..ed0ccc2b5 100644 --- a/Plan Lite/src/plugin.yml +++ b/Plan Lite/src/plugin.yml @@ -3,23 +3,23 @@ main: com.djrapitops.planlite.PlanLite version: 1.6.3 commands: - plan: + planlite: usage: / description: base command inspect: - usage: /plan inspect + usage: /planlite inspect description: inspect player data analyze: - usage: /plan analyze + usage: /planlite analyze description: analyze all players' data, add -refresh to refresh analysis. reload: - usage: /plan reload + usage: /planlite reload description: reload plugin config search: - usage: /plan -p add -p to make not search playername + usage: /planlite -p add -p to make not search playername description: search data of multiple players with search terms debug: - usage: /plan debug + usage: /planlite debug description: run commands to debug the plugin. softdepend: diff --git a/Plan/src/main/java/com/djrapitops/plan/PlanLiteHook.java b/Plan/src/main/java/com/djrapitops/plan/PlanLiteHook.java index 5b8eaaef3..bf2341766 100644 --- a/Plan/src/main/java/com/djrapitops/plan/PlanLiteHook.java +++ b/Plan/src/main/java/com/djrapitops/plan/PlanLiteHook.java @@ -6,6 +6,8 @@ import com.djrapitops.planlite.api.DataPoint; import java.util.HashMap; import java.util.Set; import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; import static org.bukkit.plugin.java.JavaPlugin.getPlugin; /** @@ -38,12 +40,14 @@ public class PlanLiteHook { } enabled = true; planLiteApi = planLite.getAPI(); - return; - } catch (Exception e) { + } catch (Exception e) { } + } else { + enabled = false; } + } else { + enabled = false; } - enabled = false; } public Set getEnabledHooksNames() { @@ -61,4 +65,8 @@ public class PlanLiteHook { public boolean isEnabled() { return enabled; } + + public boolean passCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { + return planLite.getPlanCommand().onCommand(sender, cmd, commandLabel, args); + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java index d6b7ddc7f..47a718b5d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java @@ -2,12 +2,7 @@ package com.djrapitops.plan.command; import com.djrapitops.plan.Phrase; import com.djrapitops.plan.Plan; -import com.djrapitops.plan.command.commands.AnalyzeCommand; -import com.djrapitops.plan.command.commands.HelpCommand; -import com.djrapitops.plan.command.commands.InfoCommand; -import com.djrapitops.plan.command.commands.InspectCommand; -import com.djrapitops.plan.command.commands.ReloadCommand; -import com.djrapitops.plan.command.commands.SearchCommand; +import com.djrapitops.plan.command.commands.*; import com.djrapitops.plan.utilities.FormatUtils; import org.bukkit.command.Command; @@ -42,6 +37,9 @@ public class PlanCommand implements CommandExecutor { commands.add(new SearchCommand(plugin)); commands.add(new InfoCommand(plugin)); commands.add(new ReloadCommand(plugin)); + if (plugin.getPlanLiteHook().isEnabled()) { + commands.add(new LiteCommand(plugin)); + } } /** diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/HelpCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/HelpCommand.java index d59870e07..ab75eea56 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/HelpCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/HelpCommand.java @@ -47,7 +47,7 @@ public class HelpCommand extends SubCommand { } sender.sendMessage(tColor + " " + Phrase.BALL.toString() + oColor - + " /plan " + command.getFirstName() + command.getArguments() + tColor + " - " + command.getUsage()); + + " /plan " + command.getFirstName() +" "+ command.getArguments() + tColor + " - " + command.getUsage()); } // Footer sender.sendMessage(hColor + Phrase.ARROWS_RIGHT.toString()); diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/LiteCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/LiteCommand.java new file mode 100644 index 000000000..84de07688 --- /dev/null +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/LiteCommand.java @@ -0,0 +1,30 @@ +package com.djrapitops.plan.command.commands; + +import com.djrapitops.plan.Plan; +import com.djrapitops.plan.PlanLiteHook; +import com.djrapitops.plan.command.CommandType; +import com.djrapitops.plan.command.SubCommand; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; + +public class LiteCommand extends SubCommand { + + private Plan plugin; + private PlanLiteHook hook; + + public LiteCommand(Plan plugin) { + super("lite", "plan.?", "Use PlanLite Commands", CommandType.CONSOLE, ""); + + this.plugin = plugin; + this.hook = plugin.getPlanLiteHook(); + } + + @Override + public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { + if (hook.isEnabled()) { + return hook.passCommand(sender, cmd, commandLabel, args); + } + return false; + } + +} diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/AnalysisUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/AnalysisUtils.java index fe232eb90..2ddbd12a2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/AnalysisUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/AnalysisUtils.java @@ -152,17 +152,21 @@ public class AnalysisUtils { + "border-style: groove; border-width: 3px; border-radius: 12px; padding: 2px 4px 2px 3px; " + "box-shadow: 5px 5px 4px 0px #888888;\">"; - html += ""; + if (sortedTowns.size() > 1) { + html += "
"; - int i = 1; - for (String[] values : sortedTowns) { - if (i >= 20) { - break; + int i = 1; + for (String[] values : sortedTowns) { + if (i >= 20) { + break; + } + html += "\r\n"; + i++; } - html += "\r\n"; - i++; + html += "
" + values[1] + "" + values[0] + "
" + values[1] + "" + values[0] + "
"; } - html += ""; + + html += "
"; int j = 1; for (String[] values : sortedFactions) { if (j >= 20) { @@ -172,9 +176,9 @@ public class AnalysisUtils { j++; } html += "
" + "" - + " " + + "" + "

Information

" + "

Total Money on the server: " + planLiteData.getTotalMoney() + "
Players have voted the server " + planLiteData.getTotalVotes() + " times.

" diff --git a/Plan/src/main/resources/planlite.html b/Plan/src/main/resources/planlite.html new file mode 100644 index 000000000..109369c26 --- /dev/null +++ b/Plan/src/main/resources/planlite.html @@ -0,0 +1,22 @@ + + + + + + + + +
+

%townyheader%

+

%townylist%

+
+

%factionheader%

+

%factionlist%

+
+

Information from PlanLite

+

%totalmoneyline%

+

%totalvotesline%

+
+ \ No newline at end of file