This commit is contained in:
betasteward 2015-08-19 11:05:33 -04:00
parent b4edc1bda1
commit 129b6d1e82
38 changed files with 33 additions and 2654 deletions

View file

@ -35,7 +35,7 @@
userNamePattern="[^a-z0-9_]"
maxAiOpponents="15"
saveGameActivated="false"
useSSL="true"
useSSL="true"
/>
<playerTypes>
<playerType name="Human" jar="mage-player-human.jar" className="mage.player.human.HumanPlayer"/>

View file

@ -28,20 +28,6 @@
<groupId>${project.groupId}</groupId>
<artifactId>mage-common</artifactId>
<version>${mage-version}</version>
<exclusions>
<exclusion>
<groupId>org.jboss</groupId>
<artifactId>jboss-common-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.remoting</groupId>
<artifactId>jboss-remoting</artifactId>
</exclusion>
<exclusion>
<groupId>jboss</groupId>
<artifactId>jboss-serialization</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>

View file

@ -111,7 +111,6 @@ public class ChatManager {
ChatSession chatSession = chatSessions.get(chatId);
if (chatSession != null) {
if (message.startsWith("\\") || message.startsWith("/")) {
// User user = UserManager.getInstance().findUser(userName);
if (chatSession.performUserCommand(user, message, chatId)) {
return;
}
@ -140,14 +139,11 @@ public class ChatManager {
* @param color
*/
public void broadcast(User user, String message, MessageColor color) {
// User user = UserManager.getInstance().getUser(userId);
// if (user != null) {
for (ChatSession chat: chatSessions.values()) {
if (chat.hasUser(user.getId())) {
chat.broadcast(user.getName(), message, color);
}
}
// }
}
public void sendReconnectMessage(UUID userId) {

View file

@ -159,7 +159,6 @@ public class ChatSession {
User chatUser = UserManager.getInstance().getUser(userId);
if (chatUser != null) {
ServerMain.getInstance().sendChatMessage(chatUser.getSessionId(), chatId, new ChatMessage(userName, message, time, color, messageType, soundToPlay));
// user.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(username, msg, time, color, messageType, soundToPlay)));
}
else {
logger.error("User not found but connected to chat - userId: " + userId + " chatId: " + chatId);

View file

@ -64,24 +64,17 @@ public class Session {
private final LinkedList<Long> pingTime = new LinkedList<>();
private String pingInfo = "";
// private final AsynchInvokerCallbackHandler callbackHandler;
private final ReentrantLock lock;
public Session(String sessionId) {
this.sessionId = sessionId;
// this.callbackHandler = (AsynchInvokerCallbackHandler) callbackHandler;
this.isAdmin = false;
this.timeConnected = new Date();
this.lock = new ReentrantLock();
}
public String registerUser(Connection connection) {
// String returnMessage = registerUserHandling(userName);
// if (returnMessage != null) {
// sendErrorMessageToClient(returnMessage);
// }
// return returnMessage;
pingTaskExecutor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
@ -117,7 +110,6 @@ public class Session {
if (user == null) { // user already exists
user = UserManager.getInstance().findUser(userName);
if (user.getHost().equals(host)) {
// user.updateLastActivity(null); // minimizes possible expiration
this.userId = user.getId();
if (user.getSessionId().isEmpty()) {
logger.info("Reconnecting session for " + userName);
@ -164,7 +156,6 @@ public class Session {
}
public boolean setUserData(User user, UserDataView userDataView) {
// User user = UserManager.getInstance().findUser(userName);
if (user != null) {
UserData userData = user.getUserData();
if (user.getUserData() == null || user.getUserData().getGroupId() == UserGroup.DEFAULT.getGroupId()) {
@ -281,20 +272,6 @@ public class Session {
}
// public void fireCallback(final ClientCallback call) {
// try {
// call.setMessageId(messageId++);
// callbackHandler.handleCallbackOneway(new Callback(call));
// } catch (HandleCallbackException ex) {
// User user = UserManager.getInstance().getUser(userId);
// logger.warn("SESSION CALLBACK EXCEPTION - " + (user != null ? user.getName():"") + " userId " + userId);
// logger.warn(" - method: " + call.getMethod());
// logger.warn(" - cause: " + getBasicCause(ex).toString());
// logger.trace("Stack trace:", ex);
// userLostConnection();
// }
// }
public UUID getUserId() {
return userId;
}
@ -315,13 +292,6 @@ public class Session {
this.host = hostAddress;
}
// void sendErrorMessageToClient(String message) {
// List<String> messageData = new LinkedList<>();
// messageData.add("Error while connecting to server");
// messageData.add(message);
// fireCallback(new ClientCallback("showUserMessage", null, messageData));
// }
public static Throwable getBasicCause(Throwable cause) {
Throwable t = cause;
while (t.getCause() != null) {

View file

@ -66,17 +66,10 @@ public class SessionManager {
return session;
}
// public void createSession(String sessionId) {
// Session session = new Session(sessionId);
// sessions.put(sessionId, session);
// }
public boolean registerUser(String sessionId, Connection connection, String host) {
Session session = new Session(sessionId);
sessions.put(sessionId, session);
session.setHost(host);
// Session session = sessions.get(sessionId);
// if (session != null) {
String returnMessage = session.registerUser(connection);
if (returnMessage == null) {
LogServiceImpl.instance.log(LogKeys.KEY_USER_CONNECTED, connection.getUsername(), session.getHost(), sessionId);
@ -89,11 +82,6 @@ public class SessionManager {
}
logger.debug(connection.getUsername() + " not registered: " + returnMessage);
ServerMain.getInstance().informClient(sessionId, "Connection Error", returnMessage, MessageType.ERROR);
// Server.informClient(sessionId, returnMessage, MessageType.ERROR);
// } else {
// logger.error(userName + " tried to join with no sessionId");
// }
return false;
}
@ -216,14 +204,6 @@ public class SessionManager {
return null;
}
// public boolean extendUserSession(String sessionId, String pingInfo) {
// Session session = sessions.get(sessionId);
// if (session != null) {
// return UserManager.getInstance().extendUserSession(session.getUserId(), pingInfo);
// }
// return false;
// }
void recordPingTime(String sessionId, long milliSeconds) {
Session session = sessions.get(sessionId);
if (session != null) {

View file

@ -94,7 +94,6 @@ public class User {
private String info = "";
private String pingInfo = "";
private Date disconnectionTime;
// private Date lastActivity;
private UserState userState;
private UserData userData;
@ -105,7 +104,6 @@ public class User {
this.userState = UserState.Created;
this.connectionTime = new Date();
// this.lastActivity = new Date();
this.tables = new ConcurrentHashMap<>();
this.gameSessions = new ConcurrentHashMap<>();
@ -188,23 +186,11 @@ public class User {
return connectionTime;
}
// public void fireCallback(final ClientCallback call) {
// if (isConnected()) {
// Session session = SessionManager.getInstance().getSession(sessionId);
// if (session != null) {
//
// session.fireCallback(call);
// }
// }
// }
public void joinedTable(final UUID roomId, final UUID tableId, final UUID chatId, boolean owner, boolean tournament) {
// fireCallback(new ClientCallback("joinedTable", tableId, new TableClientMessage(roomId, tableId, isTournament)));
ServerMain.getInstance().joinedTable(sessionId, roomId, tableId, chatId, owner, tournament);
}
public void gameStarted(final UUID gameId, final UUID playerId) {
// fireCallback(new ClientCallback("startGame", gameId, new TableClientMessage(gameId, playerId)));
ServerMain.getInstance().gameStarted(sessionId, gameId, playerId);
}
@ -352,50 +338,25 @@ public class User {
}
public void sendPlayerUUID(final UUID gameId, final UUID data) {
// lastActivity = new Date();
GameManager.getInstance().sendPlayerUUID(gameId, userId, data);
}
public void sendPlayerString(final UUID gameId, final String data) {
// lastActivity = new Date();
GameManager.getInstance().sendPlayerString(gameId, userId, data);
}
public void sendPlayerManaType(final UUID gameId, final UUID playerId, final ManaType data) {
// lastActivity = new Date();
GameManager.getInstance().sendPlayerManaType(gameId, playerId, userId, data);
}
public void sendPlayerBoolean(final UUID gameId, final Boolean data) {
// lastActivity = new Date();
GameManager.getInstance().sendPlayerBoolean(gameId, userId, data);
}
public void sendPlayerInteger(final UUID gameId, final Integer data) {
// lastActivity = new Date();
GameManager.getInstance().sendPlayerInteger(gameId, userId, data);
}
// public void updateLastActivity(String pingInfo) {
// if (pingInfo != null) {
// this.pingInfo = pingInfo;
// }
// lastActivity = new Date();
// if (userState == UserState.Disconnected) { // this can happen if user reconnects very fast after disconnect
// userState = UserState.Reconnected;
// }
// }
// public boolean isExpired(Date expired) {
// if (lastActivity.before(expired)) {
// logger.trace(userName + " is expired!");
// userState = UserState.Expired;
// return true;
// }
// logger.trace(new StringBuilder("isExpired: User ").append(userName).append(" lastActivity: ").append(lastActivity).append(" expired: ").append(expired).toString());
// return false; /*userState == UserState.Disconnected && */
// }
private void reconnect() {
for (Entry<UUID, Table> entry : tables.entrySet()) {
Table t = entry.getValue();
@ -635,12 +596,4 @@ public class User {
return userState;
}
// public String getPingInfo() {
// if (isConnected()) {
// return pingInfo;
// } else {
// return " (discon. "+ getDisconnectDuration() + ")";
// }
// }
}

View file

@ -27,18 +27,13 @@
*/
package mage.server;
import mage.remote.DisconnectReason;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import mage.server.User.UserState;
import mage.remote.DisconnectReason;
import mage.server.util.ThreadExecutor;
import org.apache.log4j.Logger;
@ -65,14 +60,6 @@ public class UserManager {
return INSTANCE;
}
// private UserManager() {
// expireExecutor.scheduleAtFixedRate(new Runnable() {
// @Override
// public void run() {
// checkExpired();
// }
// }, 60, 60, TimeUnit.SECONDS);
// }
public User createUser(String userName, String host) {
if (findUser(userName) != null) {
@ -160,45 +147,16 @@ public class UserManager {
}
}
// public boolean extendUserSession(UUID userId, String pingInfo) {
// if (userId != null) {
// User user = users.get(userId);
// if (user != null) {
// user.updateLastActivity(pingInfo);
// return true;
// }
// }
// return false;
// }
/**
* Is the connection lost for more than 3 minutes, the user will be removed (within 3 minutes the user can reconnect)
*/
// private void checkExpired() {
// Calendar calendar = Calendar.getInstance();
// calendar.add(Calendar.MINUTE, -3);
// List<User> usersToCheck = new ArrayList<>();
// usersToCheck.addAll(users.values());
// for (User user : usersToCheck) {
// if (!user.getUserState().equals(UserState.Expired) && user.isExpired(calendar.getTime())) {
// removeUser(user.getId(), DisconnectReason.SessionExpired);
// }
// }
// }
public void handleException(Exception ex) {
if (ex != null) {
logger.fatal("User manager exception " + (ex.getMessage() == null ? "null":ex.getMessage()));
if (ex.getCause() != null) {
logger.debug("- Cause: " + (ex.getCause().getMessage() == null ? "null":ex.getCause().getMessage()));
}
ex.printStackTrace();
logger.error("UserManager error:", ex);
}else {
logger.fatal("User manager exception - null");
}
}
void recordPingTime(UUID userId, long milliSeconds) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

View file

@ -80,7 +80,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameAsk", game.getId(), new GameClientMessage(getGameView(), question)));
user.gameAsk(game.getId(), getGameView(), question, options);
}
}
@ -90,7 +89,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameTarget", game.getId(), new GameClientMessage(getGameView(), question, cardView, targets, required, options)));
user.gameTarget(game.getId(), getGameView(), question, cardView, targets, required, options);
}
}
@ -100,7 +98,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameSelect", game.getId(), new GameClientMessage(getGameView(), message, options)));
user.gameSelect(game.getId(), getGameView(), message, options);
}
}
@ -110,7 +107,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameChooseAbility", game.getId(), abilities));
user.gameChooseAbility(game.getId(), abilities);
}
}
@ -120,7 +116,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameChoosePile", game.getId(), new GameClientMessage(message, pile1, pile2)));
user.gameChoosePile(game.getId(), message, pile1, pile2);
}
}
@ -130,7 +125,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameChooseChoice", game.getId(), new GameClientMessage(choice)));
user.gameChooseChoice(game.getId(), choice);
}
}
@ -140,7 +134,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gamePlayMana", game.getId(), new GameClientMessage(getGameView(), message)));
user.gamePlayMana(game.getId(), getGameView(), message, options);
}
}
@ -150,7 +143,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gamePlayXMana", game.getId(), new GameClientMessage(getGameView(), message)));
user.gamePlayXMana(game.getId(), getGameView(), message);
}
}
@ -160,7 +152,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameSelectAmount", game.getId(), new GameClientMessage(message, min, max)));
user.gameSelectAmount(game.getId(), message, min, max);
}
}
@ -170,7 +161,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("endGameInfo", game.getId(), getGameEndView(playerId, table)));
user.endGameInfo(game.getId(), getGameEndView(playerId, table));
}
}
@ -198,7 +188,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
userRequestMessage.setGameId(game.getId());
userRequestMessage.setButton1("Accept", PlayerAction.ADD_PERMISSION_TO_ROLLBACK_TURN);
userRequestMessage.setButton2("Deny", PlayerAction.DENY_PERMISSON_TO_ROLLBACK_TURN);
// requestedUser.fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage));
requestedUser.userRequestDialog(game.getId(), userRequestMessage);
}
}
@ -217,7 +206,6 @@ public class GameSessionPlayer extends GameSessionWatcher {
userRequestMessage.setGameId(game.getId());
userRequestMessage.setButton1("Accept", PlayerAction.ADD_PERMISSION_TO_SEE_HAND_CARDS);
userRequestMessage.setButton2("Reject", null);
// user.fireCallback(new ClientCallback("userRequestDialog", game.getId(), userRequestMessage));
user.userRequestDialog(game.getId(), userRequestMessage);
}
}

View file

@ -65,7 +65,6 @@ public class GameSessionWatcher {
if (!killed) {
User user = UserManager.getInstance().getUser(userId);
if (user != null) {
// user.fireCallback(new ClientCallback("gameInit", game.getId(), getGameView()));
user.initGame(game.getId(), getGameView());
return true;
}