summaryrefslogtreecommitdiffstats
path: root/Essentials/src/net/ess3/commands/Commandgc.java
blob: d0ec3a8c4668c67123e24c3bd8398b2c63171135 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package net.ess3.commands;

import java.lang.management.ManagementFactory;
import static net.ess3.I18n._;
import net.ess3.utils.DateUtil;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.CommandSender;


public class Commandgc extends EssentialsCommand
{
	@Override
	protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
	{
		float tps = ess.getTimer().getAverageTPS();
		ChatColor color;
		if (tps >= 18)
		{
			color = ChatColor.GREEN;
		}
		else if (tps >= 15)
		{
			color = ChatColor.YELLOW;
		}
		else
		{
			color = ChatColor.RED;
		}
		final Runtime runtime = Runtime.getRuntime();
		sender.sendMessage(_("Uptime: {0}", DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime())));
		sender.sendMessage(_("Current TPS ", "" + color + tps));
		sender.sendMessage(_("Maximum memory: {0} MB", (runtime.maxMemory() / 1024 / 1024)));
		sender.sendMessage(_("Allocated memory: {0} MB", (runtime.totalMemory() / 1024 / 1024)));
		sender.sendMessage(_("Free memory: {0} MB", (runtime.freeMemory() / 1024 / 1024)));
		sender.sendMessage(_("gcquene", (ess.getStorageQueue().getQueueSize())));

		for (World w : server.getWorlds())
		{
			final String worldType;
			switch (w.getEnvironment())
			{
			case NETHER:
				worldType = "Nether";
				break;
			case THE_END:
				worldType = "The End";
				break;
			default:
				worldType = "World";
				break;

			}

			sender.sendMessage(
					worldType + " \"" + w.getName() + "\": " + w.getLoadedChunks().length + _("gcchunks") + w.getEntities().size() + _("gcentities"));
		}
	}
}