Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}