mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-29 22:21:30 +00:00
Add call api get_client_list
This commit is contained in:
parent
ecd6c362a2
commit
374841cba0
@ -1489,4 +1489,81 @@ void ClientList::OnTick(EQ::Timer *t)
|
||||
}
|
||||
|
||||
web_interface.SendEvent(out);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param response
|
||||
*/
|
||||
void ClientList::GetClientList(Json::Value &response)
|
||||
{
|
||||
LinkedListIterator<ClientListEntry *> Iterator(clientlist);
|
||||
|
||||
Iterator.Reset();
|
||||
|
||||
while (Iterator.MoreElements()) {
|
||||
ClientListEntry *cle = Iterator.GetData();
|
||||
|
||||
Json::Value row;
|
||||
|
||||
row["online"] = cle->Online();
|
||||
row["id"] = cle->GetID();
|
||||
row["ip"] = cle->GetIP();
|
||||
row["loginserver_id"] = cle->LSID();
|
||||
row["loginserver_account_id"] = cle->LSAccountID();
|
||||
row["loginserver_name"] = cle->LSName();
|
||||
row["world_admin"] = cle->WorldAdmin();
|
||||
row["account_id"] = cle->AccountID();
|
||||
row["account_name"] = cle->AccountName();
|
||||
row["admin"] = cle->Admin();
|
||||
|
||||
auto server = cle->Server();
|
||||
if (server) {
|
||||
row["server"]["client_address"] = server->GetCAddress();
|
||||
row["server"]["client_local_address"] = server->GetCLocalAddress();
|
||||
row["server"]["compile_time"] = server->GetCompileTime();
|
||||
row["server"]["client_port"] = server->GetCPort();
|
||||
row["server"]["id"] = server->GetID();
|
||||
row["server"]["instance_id"] = server->GetInstanceID();
|
||||
row["server"]["ip"] = server->GetIP();
|
||||
row["server"]["launched_name"] = server->GetLaunchedName();
|
||||
row["server"]["launch_name"] = server->GetLaunchName();
|
||||
row["server"]["port"] = server->GetPort();
|
||||
row["server"]["previous_zone_id"] = server->GetPrevZoneID();
|
||||
row["server"]["uui"] = server->GetUUID();
|
||||
row["server"]["zone_id"] = server->GetZoneID();
|
||||
row["server"]["zone_long_name"] = server->GetZoneLongName();
|
||||
row["server"]["zone_name"] = server->GetZoneName();
|
||||
row["server"]["zone_os_pid"] = server->GetZoneOSProcessID();
|
||||
row["server"]["number_players"] = server->NumPlayers();
|
||||
row["server"]["is_booting"] = server->IsBootingUp();
|
||||
row["server"]["static_zone"] = server->IsStaticZone();
|
||||
}
|
||||
else {
|
||||
row["server"] = Json::Value();
|
||||
}
|
||||
|
||||
row["character_id"] = cle->CharID();
|
||||
row["name"] = cle->name();
|
||||
row["zone"] = cle->zone();
|
||||
row["instance"] = cle->instance();
|
||||
row["level"] = cle->level();
|
||||
row["class"] = cle->class_();
|
||||
row["race"] = cle->race();
|
||||
row["anon"] = cle->Anon();
|
||||
|
||||
row["tells_off"] = cle->TellsOff();
|
||||
row["guild_id"] = cle->GuildID();
|
||||
row["lfg"] = cle->LFG();
|
||||
row["gm"] = cle->GetGM();
|
||||
row["is_local_client"] = cle->IsLocalClient();
|
||||
row["lfg_from_level"] = cle->GetLFGFromLevel();
|
||||
row["lfg_to_level"] = cle->GetLFGToLevel();
|
||||
row["lfg_match_filter"] = cle->GetLFGMatchFilter();
|
||||
row["lfg_comments"] = cle->GetLFGComments();
|
||||
row["client_version"] = cle->GetClientVersion();
|
||||
|
||||
response.append(row);
|
||||
|
||||
Iterator.Advance();
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
#include "../common/eq_packet_structs.h"
|
||||
#include "../common/linked_list.h"
|
||||
#include "../common/json/json.h"
|
||||
#include "../common/timer.h"
|
||||
#include "../common/rulesys.h"
|
||||
#include "../common/servertalk.h"
|
||||
@ -69,6 +70,8 @@ public:
|
||||
int GetClientCount();
|
||||
void GetClients(const char *zone_name, std::vector<ClientListEntry *> &into);
|
||||
|
||||
void GetClientList(Json::Value &response);
|
||||
|
||||
private:
|
||||
void OnTick(EQ::Timer *t);
|
||||
inline uint32 GetNextCLEID() { return NextCLEID++; }
|
||||
@ -81,6 +84,7 @@ private:
|
||||
uint32 NextCLEID;
|
||||
LinkedList<ClientListEntry *> clientlist;
|
||||
|
||||
|
||||
std::unique_ptr<EQ::Timer> m_tick;
|
||||
};
|
||||
|
||||
|
||||
@ -18,11 +18,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "clientlist.h"
|
||||
#include "cliententry.h"
|
||||
#include "eqemu_api_world_data_service.h"
|
||||
#include "zoneserver.h"
|
||||
#include "zonelist.h"
|
||||
|
||||
extern ZSList zoneserver_list;
|
||||
extern ZSList zoneserver_list;
|
||||
extern ClientList client_list;
|
||||
|
||||
void callGetZoneList(Json::Value &response)
|
||||
{
|
||||
@ -53,6 +56,10 @@ void callGetZoneList(Json::Value &response)
|
||||
}
|
||||
}
|
||||
|
||||
void callGetClientList(Json::Value &response)
|
||||
{
|
||||
client_list.GetClientList(response);
|
||||
}
|
||||
|
||||
void EQEmuApiWorldDataService::get(Json::Value &response, const std::vector<std::string> &args)
|
||||
{
|
||||
@ -61,4 +68,7 @@ void EQEmuApiWorldDataService::get(Json::Value &response, const std::vector<std:
|
||||
if (method == "get_zone_list") {
|
||||
callGetZoneList(response);
|
||||
}
|
||||
if (method == "get_client_list") {
|
||||
callGetClientList(response);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user