summaryrefslogtreecommitdiff
path: root/src/environment.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-01-15 03:28:19 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-01-15 03:28:19 +0200
commit3fb0d2fb65c968f91c333a1d31d2d7a1a02ab7d1 (patch)
treee6e30b538fe9d3e779122111c39a56b727114e0d /src/environment.cpp
parentcfaa15895ad73ce3cef174f770d877059e9708e0 (diff)
downloadminetest-3fb0d2fb65c968f91c333a1d31d2d7a1a02ab7d1.tar.gz
minetest-3fb0d2fb65c968f91c333a1d31d2d7a1a02ab7d1.tar.bz2
minetest-3fb0d2fb65c968f91c333a1d31d2d7a1a02ab7d1.zip
Players are left on server while server is running. No passwords yet.
Diffstat (limited to 'src/environment.cpp')
-rw-r--r--src/environment.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/environment.cpp b/src/environment.cpp
index c43525c37..906bab611 100644
--- a/src/environment.cpp
+++ b/src/environment.cpp
@@ -243,11 +243,44 @@ Player * Environment::getPlayer(u16 peer_id)
return NULL;
}
+Player * Environment::getPlayer(const char *name)
+{
+ for(core::list<Player*>::Iterator i = m_players.begin();
+ i != m_players.end(); i++)
+ {
+ Player *player = *i;
+ if(strcmp(player->getName(), name) == 0)
+ return player;
+ }
+ return NULL;
+}
+
core::list<Player*> Environment::getPlayers()
{
return m_players;
}
+core::list<Player*> Environment::getPlayers(bool ignore_disconnected)
+{
+ core::list<Player*> newlist;
+ for(core::list<Player*>::Iterator
+ i = m_players.begin();
+ i != m_players.end(); i++)
+ {
+ Player *player = *i;
+
+ if(ignore_disconnected)
+ {
+ // Ignore disconnected players
+ if(player->peer_id == 0)
+ continue;
+ }
+
+ newlist.push_back(player);
+ }
+ return newlist;
+}
+
void Environment::printPlayers(std::ostream &o)
{
o<<"Players in environment:"<<std::endl;