diff --git a/src/main/java/me/clip/placeholderapi/commands/ExpansionCloudCommands.java b/src/main/java/me/clip/placeholderapi/commands/ExpansionCloudCommands.java
new file mode 100644
index 0000000..26384f5
--- /dev/null
+++ b/src/main/java/me/clip/placeholderapi/commands/ExpansionCloudCommands.java
@@ -0,0 +1,402 @@
+/*
+ *
+ * PlaceholderAPI
+ * Copyright (C) 2018 Ryan McCarthy
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ *
+ */
+package me.clip.placeholderapi.commands;
+
+import me.clip.placeholderapi.PlaceholderAPI;
+import me.clip.placeholderapi.PlaceholderAPIPlugin;
+import me.clip.placeholderapi.expansion.PlaceholderExpansion;
+import me.clip.placeholderapi.expansion.cloud.CloudExpansion;
+import me.clip.placeholderapi.util.Msg;
+import me.rayzr522.jsonmessage.JSONMessage;
+import net.md_5.bungee.api.chat.ClickEvent;
+import net.md_5.bungee.api.chat.ComponentBuilder;
+import net.md_5.bungee.api.chat.HoverEvent;
+import net.md_5.bungee.api.chat.TextComponent;
+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 java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import static me.clip.placeholderapi.util.Msg.color;
+import static me.clip.placeholderapi.util.Msg.msg;
+
+public class ExpansionCloudCommands implements CommandExecutor {
+
+ private PlaceholderAPIPlugin plugin;
+
+ public ExpansionCloudCommands(PlaceholderAPIPlugin instance) {
+ plugin = instance;
+ }
+
+ @Override
+ public boolean onCommand(CommandSender s, Command c, String label, String[] args) {
+
+ if (args.length == 1) {
+ msg(s, "&bExpansion cloud commands",
+ " ",
+ "&b/papi ecloud status",
+ "&fView status of the ecloud",
+ "&b/papi ecloud list (page)",
+ "&fList all/author specific available expansions",
+ "&b/papi ecloud info ",
+ "&fView information about a specific expansion available on the cloud",
+ "&b/papi ecloud versioninfo ",
+ "&fView information about a specific version of an expansion",
+ "&b/papi ecloud placeholders ",
+ "&fView placeholders for an expansion",
+ "&b/papi ecloud download (version)",
+ "&fDownload an expansion from the ecloud",
+ "&b/papi ecloud refresh",
+ "&fFetch the most up to date list of expansions available.",
+ "&b/papi ecloud clear",
+ "&fClear the expansion cloud cache.");
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("refresh") || args[1].equalsIgnoreCase("update") || args[1].equalsIgnoreCase("fetch")) {
+ msg(s, "&aRefresh task started. Use &f/papi ecloud list all &ain a few!!");
+ plugin.getExpansionCloud().clean();
+ plugin.getExpansionCloud().fetch();
+ return true;
+ }
+
+ if (plugin.getExpansionCloud().getCloudExpansions().isEmpty()) {
+ msg(s, "&7No cloud expansions are available at this time.");
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("clear")) {
+ plugin.getExpansionCloud().clean();
+ msg(s, "&aThe cache has been cleared!!");
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("status")) {
+
+ msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size() + " &bexpansions available on the cloud.",
+ "&7A total of &f" + plugin.getExpansionCloud().getCloudAuthorCount() + " &7authors have contributed to the expansion cloud.");
+ if (plugin.getExpansionCloud().getToUpdateCount() > 0) {
+ msg(s, "&eYou have &f" + plugin.getExpansionCloud().getToUpdateCount()
+ + " &eexpansions installed that have updates available.");
+ }
+
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("info")) {
+
+ if (args.length < 3) {
+ msg(s, "&cAn expansion name must be specified!");
+ return true;
+ }
+
+ CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
+
+ if (expansion == null) {
+ msg(s, "&cNo expansion found by the name: &f" + args[2]);
+ return true;
+ }
+
+ if (!(s instanceof Player)) {
+ msg(s, (expansion.shouldUpdate() ? "&e" : "") + expansion.getName() + " &8&m-- &r" + expansion.getVersion().getUrl());
+ return true;
+ }
+
+ Player p = (Player) s;
+
+ msg(s, "&bExpansion&7: &f" + expansion.getName(),
+ "&bAuthor: &f" + expansion.getAuthor(),
+ "&bVerified: &f" + expansion.isVerified()
+ );
+
+ // latest version
+ JSONMessage latestVersion = JSONMessage.create(color("&bLatest version: &f" + expansion.getLatestVersion()));
+ latestVersion.tooltip(color("&bReleased: &f" + expansion.getTimeSinceLastUpdate()
+ + "\n&bUpdate information: &f" + expansion.getVersion().getReleaseNotes()
+ ));
+ latestVersion.send(p);
+
+ // versions
+ JSONMessage versions = JSONMessage.create(color("&bVersions available: &f" + expansion.getVersions().size()));
+ versions.tooltip(color(String.join("&b, &f", expansion.getAvailableVersions())));
+ versions.suggestCommand("/papi ecloud versioninfo " + expansion.getName() + " " + expansion.getLatestVersion());
+ versions.send(p);
+
+ // placeholders
+ if (expansion.getPlaceholders() != null) {
+ JSONMessage placeholders = JSONMessage.create(color("&bPlaceholders: &f" + expansion.getPlaceholders().size()));
+ placeholders.tooltip(color(String.join("&b, &f", expansion.getPlaceholders())));
+ placeholders.suggestCommand("/papi ecloud placeholders " + expansion.getName());
+ placeholders.send(p);
+ }
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("versioninfo")) {
+
+ if (args.length < 4) {
+ msg(s, "&cAn expansion name and version must be specified!");
+ return true;
+ }
+
+ CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
+
+ if (expansion == null) {
+ msg(s, "&cNo expansion found by the name: &f" + args[2]);
+ return true;
+ }
+
+ CloudExpansion.Version version = expansion.getVersion(args[3]);
+
+ if (version == null) {
+ msg(s, "&cThe version specified does not exist for expansion: &f" + expansion.getName());
+ return true;
+ }
+
+ msg(s, "&bExpansion: " + (expansion.shouldUpdate() ? "&e" : "&f") + expansion.getName(),
+ "&bVersion: &f" + version.getVersion(),
+ "&bVersion info: &f" + version.getReleaseNotes());
+
+ if (!(s instanceof Player)) {
+ msg(s, "&bDownload url: " + version.getUrl());
+ return true;
+ }
+
+ Player p = (Player) s;
+
+ JSONMessage download = JSONMessage.create(color("&7Click to download this version"));
+ download.suggestCommand("/papi ecloud download " + expansion.getName() + " " + version.getVersion());
+ download.send(p);
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("placeholders")) {
+
+ if (args.length < 3) {
+ msg(s, "&cAn expansion name must be specified!");
+ return true;
+ }
+
+ CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
+
+ if (expansion == null) {
+ msg(s, "&cNo expansion found by the name: &f" + args[2]);
+ return true;
+ }
+
+ List placeholders = expansion.getPlaceholders();
+
+ if (placeholders == null) {
+ msg(s, "&cThe expansion: &f" + expansion.getName() + " &cdoes not have any placeholders listed.",
+ "&7You should contact &f" + expansion.getAuthor() + " &7and ask for them to be added.");
+ return true;
+ }
+
+ if (!(s instanceof Player) || plugin.getExpansionManager().getRegisteredExpansion(expansion.getName()) == null) {
+ msg(s, "&bPlaceholders: &f" + placeholders.size(),
+ String.join("&a, &f"));
+ return true;
+ }
+
+ Player p = (Player) s;
+ JSONMessage message = JSONMessage.create(color("&bPlaceholders: &f" + placeholders.size()));
+ message.then("\n");
+
+ for (int i = 0 ; i < placeholders.size() ; i++) {
+ if (i == placeholders.size()-1) {
+ message.then(placeholders.get(i));
+ } else {
+ message.then(color(placeholders.get(i) + "&b, &f"));
+ }
+ message.tooltip(PlaceholderAPI.setPlaceholders(p, placeholders.get(i)));
+ }
+
+ message.send(p);
+ return true;
+ }
+
+ if (args[1].equalsIgnoreCase("list")) {
+
+ int page = 1;
+
+ String author;
+ boolean installed = false;
+
+ if (args.length < 3) {
+ msg(s, "&cIncorrect usage! &7/papi ecloud list (page)");
+ return true;
+ }
+
+ author = args[2];
+
+ if (author.equalsIgnoreCase("all")) {
+ author = null;
+ } else if (author.equalsIgnoreCase("installed")) {
+ author = null;
+ installed = true;
+ }
+
+ if (args.length >= 4) {
+ try {
+ page = Integer.parseInt(args[3]);
+ } catch (NumberFormatException ex) {
+ msg(s, "&cPage number must be an integer!");
+ return true;
+ }
+ }
+
+ if (page < 1) {
+ msg(s, "&cPage must be greater than or equal to 1!");
+ return true;
+ }
+
+ int avail;
+
+ Map ex;
+
+ if (installed) {
+ ex = plugin.getExpansionCloud().getAllInstalled();
+ } else if (author == null) {
+ ex = plugin.getExpansionCloud().getCloudExpansions();
+ } else {
+ ex = plugin.getExpansionCloud().getAllByAuthor(author);
+ }
+
+ if (ex == null || ex.isEmpty()) {
+ msg(s, "&cNo expansions available" + (author != null ? " for author &f" + author : ""));
+ return true;
+ }
+
+ avail = plugin.getExpansionCloud().getPagesAvailable(ex, 10);
+
+ if (page > avail) {
+ msg(s, "&cThere " + ((avail == 1) ? " is only &f" + avail + " &cpage available!" : "are only &f" + avail + " &cpages available!"));
+ return true;
+ }
+
+ msg(s, "&bShowing expansions for&7: &f" + (author != null ? author : (installed ? "all installed" : "all available"))+ " &8&m--&r &bamount&7: &f" + ex.size() + " &bpage&7: &f" + page + "&7/&f" + avail);
+
+ ex = plugin.getExpansionCloud().getPage(ex, page, 10);
+
+ if (ex == null) {
+ msg(s, "&cThere was a problem getting the requested page...");
+ return true;
+ }
+
+ msg(s, "&aGreen = Expansions you have");
+ msg(s, "&6Gold = Expansions which need updated");
+
+ if (!(s instanceof Player)) {
+
+ for (Entry expansion : ex.entrySet()) {
+ if (expansion == null || expansion.getValue() == null) continue;
+ msg(s, "&b" + (expansion.getKey()+1) + "&7: " + (expansion.getValue().shouldUpdate() ? "&6" : (expansion.getValue().hasExpansion() ? "&a" : "&7")) + expansion.getValue().getName() + " &8&m-- &r" + expansion.getValue().getVersion().getUrl());
+ }
+
+ return true;
+ }
+
+ Player p = (Player) s;
+
+ for (Entry expansion : ex.entrySet()) {
+
+ if (expansion == null || expansion.getValue() == null) {
+ continue;
+ }
+
+ StringBuilder sb = new StringBuilder();
+ if (expansion.getValue().shouldUpdate()) {
+ sb.append("&6Click to update to the latest version of this expansion\n\n");
+ } else if (!expansion.getValue().hasExpansion()) {
+ sb.append("&bClick to download this expansion\n\n");
+ } else {
+ sb.append("&aYou have the latest version of this expansion\n\n");
+ }
+ sb.append("&bAuthor&7: &f" + expansion.getValue().getAuthor() + "\n");
+ sb.append("&bVerified&7: &f" + expansion.getValue().isVerified() + "\n");
+ sb.append("&bLatest version&7: &f" + expansion.getValue().getVersion().getVersion() + "\n");
+ sb.append("&bLast updated&7: &f" + expansion.getValue().getTimeSinceLastUpdate() + " ago\n");
+ sb.append("\n" + expansion.getValue().getDescription());
+
+ String msg = color("&b" + (expansion.getKey()+1) + "&7: " + (expansion.getValue().shouldUpdate() ? "&6" : (expansion.getValue().hasExpansion() ? "&a" : "")) + expansion.getValue().getName());
+
+ String hover = color(sb.toString());
+
+ JSONMessage line = JSONMessage.create(msg);
+ line.tooltip(hover);
+ line.suggestCommand("/papi ecloud info " + expansion.getValue().getName());
+ line.send(p);
+ }
+
+ return true;
+ }
+
+
+ if (args[1].equalsIgnoreCase("download")) {
+
+ if (args.length < 3) {
+ msg(s, "&cAn expansion name must be specified!");
+ return true;
+ }
+
+ CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
+
+ if (expansion == null) {
+ msg(s, "&cNo expansion found with the name: &f" + args[2]);
+ return true;
+ }
+
+ PlaceholderExpansion loaded = plugin.getExpansionManager().getRegisteredExpansion(args[2]);
+
+ if (loaded != null && loaded.isRegistered()) {
+ PlaceholderAPI.unregisterPlaceholderHook(loaded.getIdentifier());
+ }
+
+ String version = expansion.getLatestVersion();
+
+ if (args.length == 4) {
+ version = args[3];
+ if (expansion.getVersion(version) == null) {
+ msg(s, "&cThe version you specified does not exist for &f" + expansion.getName());
+ msg(s, "&7Available versions: &f" + expansion.getVersions().size());
+ msg(s, String.join("&a, &f", expansion.getAvailableVersions()));
+ return true;
+ }
+ }
+
+ msg(s, "&aDownload starting for expansion: &f" + expansion.getName() + " &aversion: &f" + version);
+ String player = ((s instanceof Player) ? s.getName() : null);
+ plugin.getExpansionCloud().downloadExpansion(player, expansion, version);
+ return true;
+ }
+
+ msg(s, "&cIncorrect usage! &b/papi ecloud");
+ return true;
+ }
+
+
+
+}
diff --git a/src/main/java/me/clip/placeholderapi/commands/PlaceholderAPICommands.java b/src/main/java/me/clip/placeholderapi/commands/PlaceholderAPICommands.java
index 386d645..2328186 100644
--- a/src/main/java/me/clip/placeholderapi/commands/PlaceholderAPICommands.java
+++ b/src/main/java/me/clip/placeholderapi/commands/PlaceholderAPICommands.java
@@ -22,7 +22,6 @@ package me.clip.placeholderapi.commands;
import me.clip.placeholderapi.PlaceholderAPI;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
-import me.clip.placeholderapi.commands.spigot.ExpansionCloudCommands;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import me.clip.placeholderapi.util.Msg;
import org.apache.commons.lang.StringUtils;
@@ -40,13 +39,9 @@ public class PlaceholderAPICommands implements CommandExecutor {
private CommandExecutor eCloud;
- public PlaceholderAPICommands(PlaceholderAPIPlugin i, boolean spigot) {
+ public PlaceholderAPICommands(PlaceholderAPIPlugin i) {
plugin = i;
- if (spigot) {
- eCloud = new me.clip.placeholderapi.commands.spigot.ExpansionCloudCommands(i);
- } else {
- eCloud = new me.clip.placeholderapi.commands.bukkit.ExpansionCloudCommands(i);
- }
+ eCloud = new ExpansionCloudCommands(i);
}
@Override
@@ -82,15 +77,7 @@ public class PlaceholderAPICommands implements CommandExecutor {
Msg.msg(s, "&b/papi disablecloud",
"&fDisable the expansion cloud",
"&b/papi ecloud",
- "&fView information about the PlaceholderAPI expansion cloud",
- "&b/papi ecloud status",
- "&fView status of the PlaceholderAPI expansion cloud",
- "&b/papi ecloud list ",
- "&fList all available expansions",
- "&b/papi ecloud info ",
- "&fView information about a specific expansion on the cloud",
- "&b/papi ecloud download ",
- "&fDownload a specific expansion from the cloud");
+ "&fView ecloud command usage");
}
}
@@ -156,7 +143,7 @@ public class PlaceholderAPICommands implements CommandExecutor {
return true;
}
- Msg.msg(s, "&7Placeholder expansion info for: &f%" + ex.getIdentifier() + "_%");
+ Msg.msg(s, "&7Placeholder expansion info for: &f" + ex.getName());
Msg.msg(s, "&7Status: " + (ex.isRegistered() ? "&aRegistered" : "&cNot registered"));
diff --git a/src/main/java/me/clip/placeholderapi/commands/bukkit/ExpansionCloudCommands.java b/src/main/java/me/clip/placeholderapi/commands/bukkit/ExpansionCloudCommands.java
deleted file mode 100644
index e6d6275..0000000
--- a/src/main/java/me/clip/placeholderapi/commands/bukkit/ExpansionCloudCommands.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- *
- * PlaceholderAPI
- * Copyright (C) 2018 Ryan McCarthy
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- */
-package me.clip.placeholderapi.commands.bukkit;
-
-import me.clip.placeholderapi.PlaceholderAPI;
-import me.clip.placeholderapi.PlaceholderAPIPlugin;
-import me.clip.placeholderapi.expansion.PlaceholderExpansion;
-import me.clip.placeholderapi.expansion.cloud.CloudExpansion;
-import me.clip.placeholderapi.util.Msg;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-public class ExpansionCloudCommands implements CommandExecutor {
-
- private PlaceholderAPIPlugin plugin;
-
- public ExpansionCloudCommands(PlaceholderAPIPlugin instance) {
- plugin = instance;
- }
-
- @Override
- public boolean onCommand(CommandSender s, Command c, String label, String[] args) {
-
- if (args.length == 1) {
- Msg.msg(s, "&bExpansion cloud commands",
- " ",
- "&b/papi ecloud status",
- "&fView status of the cloud",
- "&b/papi ecloud list (page)",
- "&fList all/author specific available expansions",
- "&b/papi ecloud info ",
- "&fView information about a specific expansion available on the cloud",
- "&b/papi ecloud download ",
- "&fDownload a specific expansion from the cloud",
- "&b/papi ecloud refresh",
- "&fFetch the most up to date list of expansions available.",
- "&b/papi ecloud clear",
- "&fClear the expansion cloud cache.");
- return true;
- }
-
- if (args[1].equalsIgnoreCase("refresh")) {
- Msg.msg(s, "&aRefresh task started. Use &7/papi ecloud list all &fin a few!!");
- plugin.getExpansionCloud().clean();
- plugin.getExpansionCloud().fetch();
- return true;
- }
-
- if (plugin.getExpansionCloud().getCloudExpansions().isEmpty()) {
- Msg.msg(s, "&7No cloud expansions are available at this time.");
- return true;
- }
-
- if (args[1].equalsIgnoreCase("clear")) {
- plugin.getExpansionCloud().clean();
- Msg.msg(s, "&aThe cloud cache has been cleared!!");
- return true;
- }
-
- if (args[1].equalsIgnoreCase("download")) {
-
- if (args.length < 3) {
- Msg.msg(s, "&cAn expansion name must be specified!");
- return true;
- }
-
- CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
-
- if (expansion == null) {
- Msg.msg(s, "&cNo expansion found with the name: &f" + args[2]);
- return true;
- }
-
- PlaceholderExpansion loaded = plugin.getExpansionManager().getRegisteredExpansion(args[2]);
-
- if (loaded != null && loaded.isRegistered()) {
- PlaceholderAPI.unregisterPlaceholderHook(loaded.getIdentifier());
- }
-
- Msg.msg(s, "&aAttempting download of expansion &f" + expansion.getName());
-
- String player = ((s instanceof Player) ? s.getName() : null);
-
- plugin.getExpansionCloud().downloadExpansion(player, expansion);
-
- return true;
- }
-
- if (args[1].equalsIgnoreCase("status")) {
-
- Msg.msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size() + " &bcloud expansions available to download",
- "&bA total of &f" + plugin.getExpansionCloud().getCloudAuthorCount() + " &bauthors have contributed.");
-
- return true;
- } else if (args[1].equalsIgnoreCase("info")) {
-
- if (args.length < 3) {
- Msg.msg(s, "&cAn expansion name must be specified!");
- return true;
- }
-
- CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
-
- if (expansion == null) {
- Msg.msg(s, "&cNo expansion found with the name: &f" + args[2]);
- return true;
- }
-
- PlaceholderExpansion exp = plugin.getExpansionManager().getRegisteredExpansion(args[2]);
-
- boolean enabled = false;
- String version = null;
-
- if (exp != null) {
- enabled = exp.isRegistered();
- version = exp.getVersion();
- }
-
- Msg.msg(s, "&aExpansion: &f" + expansion.getName());
- if (enabled) {
- Msg.msg(s, "&aThis expansion is currently enabled!",
- "&bYour version&7: &f" + version);
- }
-
- Msg.msg(s, "&bCloud version&7: &f" + expansion.getVersion(),
- "&bAuthor&7: &f" + expansion.getAuthor());
-
- String desc = expansion.getVersion();
-
- if (desc.indexOf("\n") > 0) {
- for (String line : desc.split("\n")) {
- Msg.msg(s, line);
- }
- } else {
- Msg.msg(s, desc);
- }
-
- Msg.msg(s, "&bDownload with &7/papi ecloud download " + expansion.getName());
- return true;
-
- } else if (args[1].equalsIgnoreCase("list")) {
-
- int page = 1;
-
- String author;
-
- if (args.length < 3) {
- Msg.msg(s, "&cIncorrect usage! &7/papi ecloud list (page)");
- return true;
- }
-
- author = args[2];
-
- if (author.equalsIgnoreCase("all")) {
- author = null;
- }
-
- if (args.length >= 4) {
- try {
- page = Integer.parseInt(args[3]);
- } catch (NumberFormatException ex) {
- Msg.msg(s, "&cPage number must be an integer!");
- return true;
- }
- }
-
- if (page < 1) {
- Msg.msg(s, "&cPage must be greater than or equal to 1!");
- return true;
- }
-
- int avail;
-
- Map ex;
-
- if (author == null) {
- ex = plugin.getExpansionCloud().getCloudExpansions();
- } else {
- ex = plugin.getExpansionCloud().getAllByAuthor(author);
- }
-
- if (ex == null) {
- Msg.msg(s, "&cNo expansions available" + (author != null ? " for author &f" + author : ""));
- return true;
- }
-
- avail = plugin.getExpansionCloud().getPagesAvailable(ex, 10);
-
- if (page > avail) {
- Msg.msg(s, "&cThere " + ((avail == 1) ? " is only &f" + avail + " &cpage available!" : "are only &f" + avail + " &cpages available!"));
- return true;
- }
-
- Msg.msg(s, "&bExpansion cloud for &f" + (author != null ? author : "all available")+ " &8&m-- &r&bamount&7: &f" + ex.size() + " &bpage&7: &f" + page + "&7/&f" + avail);
-
- ex = plugin.getExpansionCloud().getPage(ex, page, 10);
-
- for (Entry expansion : ex.entrySet()) {
- Msg.msg(s, "&b" + (expansion.getKey()+1) + "&7: &f" + expansion.getValue().getName() + " &8&m-- &r" + expansion.getValue().getLink());
- }
- Msg.msg(s, "&bDownload an expansion with &7/papi ecloud download ",
- "&bView more info on an expansion with &7/papi ecloud info ");
- return true;
- }
-
- return true;
- }
-
-}
diff --git a/src/main/java/me/clip/placeholderapi/commands/spigot/ExpansionCloudCommands.java b/src/main/java/me/clip/placeholderapi/commands/spigot/ExpansionCloudCommands.java
deleted file mode 100644
index c58678a..0000000
--- a/src/main/java/me/clip/placeholderapi/commands/spigot/ExpansionCloudCommands.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- *
- * PlaceholderAPI
- * Copyright (C) 2018 Ryan McCarthy
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- *
- */
-package me.clip.placeholderapi.commands.spigot;
-
-import me.clip.placeholderapi.PlaceholderAPI;
-import me.clip.placeholderapi.PlaceholderAPIPlugin;
-import me.clip.placeholderapi.expansion.PlaceholderExpansion;
-import me.clip.placeholderapi.expansion.cloud.CloudExpansion;
-import me.clip.placeholderapi.util.Msg;
-import net.md_5.bungee.api.chat.ClickEvent;
-import net.md_5.bungee.api.chat.ComponentBuilder;
-import net.md_5.bungee.api.chat.HoverEvent;
-import net.md_5.bungee.api.chat.TextComponent;
-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 java.util.Map;
-import java.util.Map.Entry;
-
-public class ExpansionCloudCommands implements CommandExecutor {
-
- private PlaceholderAPIPlugin plugin;
-
- public ExpansionCloudCommands(PlaceholderAPIPlugin instance) {
- plugin = instance;
- }
-
- @Override
- public boolean onCommand(CommandSender s, Command c, String label, String[] args) {
-
- if (args.length == 1) {
- Msg.msg(s, "&bExpansion cloud commands",
- " ",
- "&b/papi ecloud status",
- "&fView status of the cloud",
- "&b/papi ecloud list (page)",
- "&fList all/author specific available expansions",
- "&b/papi ecloud info ",
- "&fView information about a specific expansion available on the cloud",
- "&b/papi ecloud download ",
- "&fDownload a specific expansion from the cloud",
- "&b/papi ecloud refresh",
- "&fFetch the most up to date list of expansions available.",
- "&b/papi ecloud clear",
- "&fClear the expansion cloud cache.");
- return true;
- }
-
- if (args[1].equalsIgnoreCase("refresh") || args[1].equalsIgnoreCase("update") || args[1].equalsIgnoreCase("fetch")) {
- Msg.msg(s, "&aRefresh task started. Use &f/papi ecloud list all &ain a few!!");
- plugin.getExpansionCloud().clean();
- plugin.getExpansionCloud().fetch();
- return true;
- }
-
- if (plugin.getExpansionCloud().getCloudExpansions().isEmpty()) {
- Msg.msg(s, "&7No cloud expansions are available at this time.");
- return true;
- }
-
- if (args[1].equalsIgnoreCase("clear")) {
- plugin.getExpansionCloud().clean();
- Msg.msg(s, "&aThe cloud cache has been cleared!!");
- return true;
- }
-
- if (args[1].equalsIgnoreCase("status")) {
-
- Msg.msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size() + " &bexpansions available on the cloud.",
- "&7A total of &f" + plugin.getExpansionCloud().getCloudAuthorCount() + " &7authors have contributed to the expansion cloud.");
- if (plugin.getExpansionCloud().getToUpdateCount() > 0) {
- Msg.msg(s, "&eYou have &f" + plugin.getExpansionCloud().getToUpdateCount()
- + " &eexpansions installed that have updates available.");
- }
-
- return true;
- }
-
- if (args[1].equalsIgnoreCase("info")) {
-
- if (args.length < 3) {
- Msg.msg(s, "&cAn expansion name must be specified!");
- return true;
- }
-
- CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
-
- if (expansion == null) {
- Msg.msg(s, "&cNo expansion found with the name: &f" + args[2]);
- return true;
- }
-
- if (!(s instanceof Player)) {
- Msg.msg(s, (expansion.shouldUpdate() ? "&e" : "") + expansion.getName() + " &8&m-- &r" + expansion.getLink());
- return true;
- }
-
- Player p = (Player) s;
-
- Msg.msg(s, "&bCloud expansion info for&7:" + (expansion.shouldUpdate() ? "&6" : (expansion.hasExpansion() ? "&e" : "")) + expansion.getName());
-
- StringBuilder sb = new StringBuilder();
-
- sb.append(expansion.getDescription());
-
- if (expansion.getReleaseNotes() != null) {
- sb.append("\n\n" + expansion.getReleaseNotes());
- }
-
- String hover = ChatColor.translateAlternateColorCodes('&', sb.toString());
-
- if (expansion.hasExpansion()) {
- if (expansion.shouldUpdate()) {
- Msg.msg(s, "&6You have this expansion but there is a newer version available.");
- } else {
- Msg.msg(s, "&aYou have the latest version of this expansion!");
- }
- } else {
- Msg.msg(s, "&7You do not have this expansion installed");
- }
-
- sms(p, "&bAuthor&7: &f" + expansion.getAuthor(), hover, null);
- sms(p, "&bVersion&7: &f" + expansion.getVersion(), hover, null);
- if (expansion.getLastUpdate() > 1) {
- sb.append("&bLast updated&7: &f" + expansion.getTimeSinceLastUpdate() + " ago");
- }
- sms(p, "&aClick here to download!", hover, expansion.getName());
- return true;
- }
-
- if (args[1].equalsIgnoreCase("list")) {
-
- int page = 1;
-
- String author;
- boolean installed = false;
-
- if (args.length < 3) {
- Msg.msg(s, "&cIncorrect usage! &7/papi ecloud list (page)");
- return true;
- }
-
- author = args[2];
-
- if (author.equalsIgnoreCase("all")) {
- author = null;
- } else if (author.equalsIgnoreCase("installed")) {
- author = null;
- installed = true;
- }
-
- if (args.length >= 4) {
- try {
- page = Integer.parseInt(args[3]);
- } catch (NumberFormatException ex) {
- Msg.msg(s, "&cPage number must be an integer!");
- return true;
- }
- }
-
- if (page < 1) {
- Msg.msg(s, "&cPage must be greater than or equal to 1!");
- return true;
- }
-
- int avail;
-
- Map ex;
-
- if (installed) {
- ex = plugin.getExpansionCloud().getAllInstalled();
- } else if (author == null) {
- ex = plugin.getExpansionCloud().getCloudExpansions();
- } else {
- ex = plugin.getExpansionCloud().getAllByAuthor(author);
- }
-
- if (ex == null || ex.isEmpty()) {
- Msg.msg(s, "&cNo expansions available" + (author != null ? " for author &f" + author : ""));
- return true;
- }
-
- avail = plugin.getExpansionCloud().getPagesAvailable(ex, 10);
-
- if (page > avail) {
- Msg.msg(s, "&cThere " + ((avail == 1) ? " is only &f" + avail + " &cpage available!" : "are only &f" + avail + " &cpages available!"));
- return true;
- }
-
- Msg.msg(s, "&bShowing expansions for&7: &f" + (author != null ? author : (installed ? "all installed" : "all available"))+ " &8&m--&r &bamount&7: &f" + ex.size() + " &bpage&7: &f" + page + "&7/&f" + avail);
-
- ex = plugin.getExpansionCloud().getPage(ex, page, 10);
-
- if (ex == null) {
- Msg.msg(s, "&cThere was a problem getting the requested page...");
- return true;
- }
-
- Msg.msg(s, "&aGreen = Expansions you have");
- Msg.msg(s, "&6Gold = Expansions which need updated");
-
- if (!(s instanceof Player)) {
-
- for (Entry expansion : ex.entrySet()) {
- if (expansion == null || expansion.getKey() == null || expansion.getValue() == null) continue;
- Msg.msg(s, "&b" + (expansion.getKey()+1) + "&7: " + (expansion.getValue().shouldUpdate() ? "&6" : (expansion.getValue().hasExpansion() ? "&a" : "&7")) + expansion.getValue().getName() + " &8&m-- &r" + expansion.getValue().getLink());
- }
-
- return true;
- }
-
- Player p = (Player) s;
-
- for (Entry expansion : ex.entrySet()) {
-
- if (expansion == null || expansion.getValue() == null) {
- continue;
- }
-
- StringBuilder sb = new StringBuilder();
- if (expansion.getValue().shouldUpdate()) {
- sb.append("&6Click to update to the latest version of this expansion\n\n");
- } else if (!expansion.getValue().hasExpansion()) {
- sb.append("&bClick to download this expansion\n\n");
- } else {
- sb.append("&aYou have the latest version of this expansion\n\n");
- }
- sb.append("&bAuthor&7: &f" + expansion.getValue().getAuthor() + "\n");
- sb.append("&bVersion&7: &f" + expansion.getValue().getVersion() + "\n");
- if (expansion.getValue().getLastUpdate() > 1) {
- sb.append("&bLast updated&7: &f" + expansion.getValue().getTimeSinceLastUpdate() + " ago\n");
- }
- if (expansion.getValue().getReleaseNotes() != null) {
- sb.append("&bRelease Notes&7: &f" + expansion.getValue().getReleaseNotes() + "\n");
- }
- sb.append("\n" + expansion.getValue().getDescription());
-
- String msg = ChatColor.translateAlternateColorCodes('&', "&b" + (expansion.getKey()+1) + "&7: " + (expansion.getValue().shouldUpdate() ? "&6" : (expansion.getValue().hasExpansion() ? "&a" : "")) + expansion.getValue().getName());
-
- String hover = ChatColor.translateAlternateColorCodes('&', sb.toString());
-
- sms(p, msg, hover, expansion.getValue().getName());
- }
-
- return true;
- }
-
-
- if (args[1].equalsIgnoreCase("download")) {
-
- if (args.length < 3) {
- Msg.msg(s, "&cAn expansion name must be specified!");
- return true;
- }
-
- CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(args[2]);
-
- if (expansion == null) {
- Msg.msg(s, "&cNo expansion found with the name: &f" + args[2]);
- return true;
- }
-
- if (expansion.hasExpansion() && !expansion.shouldUpdate()) {
- Msg.msg(s, "&aYou already have this expansion installed and your version is up to date!");
- return true;
- }
-
- PlaceholderExpansion loaded = plugin.getExpansionManager().getRegisteredExpansion(args[2]);
-
- if (loaded != null && loaded.isRegistered()) {
- PlaceholderAPI.unregisterPlaceholderHook(loaded.getIdentifier());
- }
-
- Msg.msg(s, "&aAttempting download of expansion &f" + expansion.getName());
-
- String player = ((s instanceof Player) ? s.getName() : null);
-
- plugin.getExpansionCloud().downloadExpansion(player, expansion);
-
- return true;
- }
-
- Msg.msg(s, "&cIncorrect usage! &b/papi ecloud");
- return true;
- }
-
- private void sms(Player p, String text, String hover, String name) {
- TextComponent message = new TextComponent( ChatColor.translateAlternateColorCodes('&', text) );
- if (hover != null) {
- message.setHoverEvent( new HoverEvent( HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(ChatColor.translateAlternateColorCodes('&', hover)).create() ) );
- }
- if (name != null) {
- message.setClickEvent( new ClickEvent( ClickEvent.Action.SUGGEST_COMMAND, "/papi ecloud download " + name) );
- }
- p.spigot().sendMessage( message );
- }
-
-}