Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 55 lines 1.8 kB view raw
1package org.bukkit.command.defaults; 2 3import org.bukkit.Bukkit; 4import org.bukkit.ChatColor; 5import org.bukkit.command.Command; 6import org.bukkit.command.CommandSender; 7import org.bukkit.plugin.Plugin; 8 9import java.util.Arrays; 10import java.util.Comparator; 11 12public class PluginsCommand extends Command { 13 public PluginsCommand(String name) { 14 super(name); 15 this.description = "Gets a list of plugins running on the server"; 16 this.usageMessage = "/plugins"; 17 this.setPermission("bukkit.command.plugins"); 18 this.setAliases(Arrays.asList("pl")); 19 } 20 21 @Override 22 public boolean execute(CommandSender sender, String currentAlias, String[] args) { 23 if (!testPermission(sender)) return true; 24 25 sender.sendMessage("Plugins" + getPluginList()); 26 return true; 27 } 28 29 private String getPluginList() { 30 StringBuilder pluginList = new StringBuilder(); 31 Plugin[] plugins = Bukkit.getPluginManager().getPlugins(); 32 int enabled = 0; 33 int pluginCount = 0; 34 35 Arrays.sort(plugins, Comparator.comparing(o -> o.getDescription().getFullName())); 36 37 for (Plugin plugin : plugins) { 38 if (!plugin.getDescription().isVisible() && plugin.isEnabled()) { 39 continue; 40 } 41 pluginCount = pluginCount + 1; 42 43 if (pluginList.length() > 0) { 44 pluginList.append(ChatColor.WHITE); 45 pluginList.append(", "); 46 } 47 48 pluginList.append(plugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED); 49 if (plugin.isEnabled()) enabled++; 50 pluginList.append(plugin.getDescription().getName()); 51 } 52 53 return " (" + enabled + "/" + pluginCount + "): " + pluginList.toString(); 54 } 55}