Fixed bugs related to guest users

This commit is contained in:
simon 2017-11-04 15:02:59 -04:00
parent 36d433fdce
commit 8f117c5e27
3 changed files with 20 additions and 17 deletions

View File

@ -104,10 +104,11 @@ public class GameServer implements Runnable {
//Process user code //Process user code
for(User user : gameUniverse.getUsers()){ for(User user : gameUniverse.getUsers()){
if(user.getCpu() != null){
user.getCpu().reset(); user.getCpu().reset();
user.getCpu().execute(); user.getCpu().execute();
}
// System.out.println(user.getCpu());
} }
//Process each worlds //Process each worlds

View File

@ -98,11 +98,6 @@ public class GameUniverse implements JSONSerialisable{
try { try {
if(makeControlledUnit) { if(makeControlledUnit) {
user = new User(); user = new User();
} else {
user = new User(null);
}
user.setUsername(username);
user.setCpu(new CPU(GameServer.INSTANCE.getConfig(), user)); user.setCpu(new CPU(GameServer.INSTANCE.getConfig(), user));
user.setUserCode(GameServer.INSTANCE.getConfig().getString("new_user_code")); user.setUserCode(GameServer.INSTANCE.getConfig().getString("new_user_code"));
@ -116,6 +111,12 @@ public class GameUniverse implements JSONSerialisable{
user.getCpu().getMemory().write((short) ar.origin, ar.bytes, ar.bytes.length); user.getCpu().getMemory().write((short) ar.origin, ar.bytes, ar.bytes.length);
user.getCpu().setCodeSegmentOffset(ar.origin); user.getCpu().setCodeSegmentOffset(ar.origin);
} else {
user = new User(null);
}
user.setUsername(username);
users.add(user); users.add(user);
return user; return user;

View File

@ -39,14 +39,13 @@ public class SocketServer extends WebSocketServer {
@Override @Override
public void onOpen(WebSocket conn, ClientHandshake handshake) { public void onOpen(WebSocket conn, ClientHandshake handshake) {
LogManager.LOGGER.info("(WS) New Websocket connection " + conn.getRemoteSocketAddress()); LogManager.LOGGER.info("(WS) New Websocket connection " + conn.getRemoteSocketAddress());
userManager.add(new OnlineUser(conn)); userManager.add(new OnlineUser(conn));
} }
@Override @Override
public void onClose(WebSocket conn, int code, String reason, boolean remote) { public void onClose(WebSocket conn, int code, String reason, boolean remote) {
LogManager.LOGGER.info("(WS) Closed " + conn.getRemoteSocketAddress() + " with exit code " + code + " additional info: " + reason); LogManager.LOGGER.info("(WS) Closed " + conn.getRemoteSocketAddress() + " with exit code " + code + " additional info: " + reason);
userManager.add(new OnlineUser(conn)); userManager.remove(userManager.getUser(conn));
} }
@Override @Override
@ -110,6 +109,8 @@ public class SocketServer extends WebSocketServer {
@Override @Override
public void onError(WebSocket conn, Exception ex) { public void onError(WebSocket conn, Exception ex) {
System.err.println("an error occured on connection " + conn.getRemoteSocketAddress() + ':' + ex); System.err.println("an error occured on connection " + conn.getRemoteSocketAddress() + ':' + ex);
userManager.remove(userManager.getUser(conn));
ex.printStackTrace(); ex.printStackTrace();
} }