aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Server/Console/commands/list/CliCommandList.cpp
blob: a9c5a2127ae81dd52123d809340f2b6e52de997d (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
#include "stdafx.h"

#include "CliCommandList.h"

#include "..\..\ServerCliEngine.h"
#include "..\..\..\Common\StringUtils.h"
#include "..\..\..\..\Minecraft.Client\MinecraftServer.h"
#include "..\..\..\..\Minecraft.Client\PlayerList.h"

namespace ServerRuntime
{
	const char *CliCommandList::Name() const
	{
		return "list";
	}

	const char *CliCommandList::Usage() const
	{
		return "list";
	}

	const char *CliCommandList::Description() const
	{
		return "List connected players.";
	}

	bool CliCommandList::Execute(const ServerCliParsedLine &line, ServerCliEngine *engine)
	{
		(void)line;
		MinecraftServer *server = MinecraftServer::getInstance();
		if (server == NULL || server->getPlayers() == NULL)
		{
			engine->LogWarn("Player list is not available.");
			return false;
		}

		PlayerList *players = server->getPlayers();
		std::string names = StringUtils::WideToUtf8(players->getPlayerNames());
		if (names.empty())
		{
			names = "(none)";
		}

		engine->LogInfo("Players (" + std::to_string(players->getPlayerCount()) + "): " + names);
		return true;
	}
}