mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
- Integrated linenoise library for line editing and completion in the server console. - Updated ServerLogger to handle external writes safely during logging. - Modified ServerMain to initialize and manage the ServerCli for command input. - The implementation is separate from everything else, so it doesn't affect anything else. - The command input section and execution section are separated into threads.
48 lines
1 KiB
C++
48 lines
1 KiB
C++
#include "stdafx.h"
|
|
|
|
#include "CliCommandList.h"
|
|
|
|
#include "..\ServerCliEngine.h"
|
|
#include "..\..\ServerLogger.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 = WideToUtf8(players->getPlayerNames());
|
|
if (names.empty())
|
|
{
|
|
names = "(none)";
|
|
}
|
|
|
|
engine->LogInfo("Players (" + std::to_string(players->getPlayerCount()) + "): " + names);
|
|
return true;
|
|
}
|
|
}
|