From 1af2280ebabbd41c8b77747b6834fefbde0f0e80 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 24 May 2008 12:49:33 +0000 Subject: Hail --- src/core/gameserver.cc | 23 +++++++++++++++++++++++ src/core/gameserver.h | 3 +++ 2 files changed, 26 insertions(+) (limited to 'src/core') diff --git a/src/core/gameserver.cc b/src/core/gameserver.cc index c18b1fa..687623e 100644 --- a/src/core/gameserver.cc +++ b/src/core/gameserver.cc @@ -113,6 +113,29 @@ void GameServer::abort() server_running = false; } +Player *GameServer::find_player(std::string const search) +{ + std::istringstream searchstr(search); + int id = 0; + if (searchstr >> id) { + for (std::list:: iterator it = players.begin(); it != players.end(); it++) { + if ((*it)->id() == id) { + return (*it); + } + } + } + + if (search.size() <3) + return 0; + + for (std::list:: iterator it = players.begin(); it != players.end(); it++) { + if ((*it)->name().find(search) != std::string::npos) + return (*it); + } + + return 0; +} + void GameServer::list_players(Player *player) { using namespace std; diff --git a/src/core/gameserver.h b/src/core/gameserver.h index d7d6eb8..025ea4d 100644 --- a/src/core/gameserver.h +++ b/src/core/gameserver.h @@ -64,6 +64,9 @@ public: /// a player sends a command to the game server void exec(Player *player, std::string const &cmdline); + /// find the first player who's id or name matches the search string + Player *find_player(std::string const search); + std::list players; /*----- static ---------------------------------------------------- */ -- cgit v1.2.3