Getting information about connected players in Mage Client (without gui part at the moment, only logging to console).

This commit is contained in:
magenoxx 2011-05-13 20:25:46 +04:00
parent f55e3a88dd
commit 54adc043ec
5 changed files with 47 additions and 1 deletions

View file

@ -34,6 +34,7 @@ import java.rmi.registry.Registry;
import java.rmi.server.ExportException;
import java.rmi.server.RemoteServer;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
@ -220,6 +221,22 @@ public class ServerImpl extends RemoteServer implements Server {
return null;
}
@Override
public List<String> getConnectedPlayers(UUID roomId) throws MageException {
try {
List<String> players = new ArrayList<String>();
for (Session session : SessionManager.getInstance().getSessions().values()) {
players.add(session.getUsername());
}
return players;
}
catch (Exception ex) {
handleException(ex);
}
return null;
}
@Override
public TableView getTable(UUID roomId, UUID tableId) throws MageException {
try {

View file

@ -28,6 +28,9 @@
package mage.server;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import mage.interfaces.MageException;
@ -74,5 +77,12 @@ public class SessionManager {
public void removeSession(UUID sessionId) {
sessions.remove(sessionId);
}
public Map<UUID, Session> getSessions() {
Map<UUID, Session> map = new HashMap<UUID, Session>();
for (Map.Entry<UUID, Session> entry : sessions.entrySet()) {
map.put(entry.getKey(), entry.getValue());
}
return map;
}
}