package me.gnat008.perworldinventory.commands; import me.gnat008.perworldinventory.data.converters.DataConverter; import me.gnat008.perworldinventory.permission.AdminPermission; import me.gnat008.perworldinventory.permission.PermissionNode; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.plugin.PluginManager; import javax.inject.Inject; import java.util.List; public class ConvertCommand implements ExecutableCommand { private final PluginManager pluginManager; private final DataConverter dataConverter; @Inject ConvertCommand(PluginManager pluginManager, DataConverter dataConverter) { this.pluginManager = pluginManager; this.dataConverter = dataConverter; } @Override public void executeCommand(CommandSender sender, List<String> args) { // Check number of args if (args.size() != 1) { sender.sendMessage(ChatColor.DARK_RED + "» " + ChatColor.GRAY + "Incorrect usage. Type /pwi help for help."); return; } // Check if arg is valid String format = args.get(0); if (!format.equalsIgnoreCase("multiverse") && !format.equalsIgnoreCase("multiinv")) { sender.sendMessage(ChatColor.DARK_RED + "» " + ChatColor.GRAY + "Invalid argument. Please specify 'multiverse' or 'multiinv'."); return; } // Expand the plugin name if it is MultiVerse if (format.equalsIgnoreCase("multiverse")) { format = "Multiverse-Inventories"; } else { format = "MultiInv"; } if (isPluginInstalled(format)) { if (format.equalsIgnoreCase("Multiverse-Inventories")) { sender.sendMessage(ChatColor.BLUE + "» " + ChatColor.GRAY + "Converting from Multiverse-Inventories! This may take a while for many players..."); sender.sendMessage(ChatColor.BLUE + "» " + ChatColor.GRAY + "Check the console to see when it is done."); dataConverter.convertMultiVerseData(); } else { sender.sendMessage(ChatColor.DARK_RED + "» " + ChatColor.GRAY + "Converting from MultiInv is unsupported at this time."); } } } @Override public PermissionNode getRequiredPermission() { return AdminPermission.CONVERT; } /** * Check if a plugin is both installed and enabled on the server. * * @param pluginName The plugin name to check for. * @return If the plugin is installed and enabled. */ boolean isPluginInstalled(String pluginName) { if (pluginManager.getPlugin(pluginName) != null && pluginManager.isPluginEnabled(pluginName)) { return true; } return false; } }