mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-10 14:26:45 +00:00
Fixed bugs related to guest users
This commit is contained in:
parent
36d433fdce
commit
8f117c5e27
@ -104,10 +104,11 @@ public class GameServer implements Runnable {
|
||||
|
||||
//Process user code
|
||||
for(User user : gameUniverse.getUsers()){
|
||||
user.getCpu().reset();
|
||||
user.getCpu().execute();
|
||||
|
||||
// System.out.println(user.getCpu());
|
||||
if(user.getCpu() != null){
|
||||
user.getCpu().reset();
|
||||
user.getCpu().execute();
|
||||
}
|
||||
}
|
||||
|
||||
//Process each worlds
|
||||
|
@ -98,23 +98,24 @@ public class GameUniverse implements JSONSerialisable{
|
||||
try {
|
||||
if(makeControlledUnit) {
|
||||
user = new User();
|
||||
user.setCpu(new CPU(GameServer.INSTANCE.getConfig(), user));
|
||||
user.setUserCode(GameServer.INSTANCE.getConfig().getString("new_user_code"));
|
||||
|
||||
//Compile user code
|
||||
AssemblyResult ar = new Assembler(user.getCpu().getInstructionSet(), user.getCpu().getRegisterSet(),
|
||||
GameServer.INSTANCE.getConfig()).parse(user.getUserCode());
|
||||
|
||||
user.getCpu().getMemory().clear();
|
||||
|
||||
//Write assembled code to mem
|
||||
user.getCpu().getMemory().write((short) ar.origin, ar.bytes, ar.bytes.length);
|
||||
user.getCpu().setCodeSegmentOffset(ar.origin);
|
||||
|
||||
} else {
|
||||
user = new User(null);
|
||||
}
|
||||
|
||||
user.setUsername(username);
|
||||
user.setCpu(new CPU(GameServer.INSTANCE.getConfig(), user));
|
||||
user.setUserCode(GameServer.INSTANCE.getConfig().getString("new_user_code"));
|
||||
|
||||
//Compile user code
|
||||
AssemblyResult ar = new Assembler(user.getCpu().getInstructionSet(), user.getCpu().getRegisterSet(),
|
||||
GameServer.INSTANCE.getConfig()).parse(user.getUserCode());
|
||||
|
||||
user.getCpu().getMemory().clear();
|
||||
|
||||
//Write assembled code to mem
|
||||
user.getCpu().getMemory().write((short) ar.origin, ar.bytes, ar.bytes.length);
|
||||
user.getCpu().setCodeSegmentOffset(ar.origin);
|
||||
|
||||
users.add(user);
|
||||
|
||||
|
@ -39,14 +39,13 @@ public class SocketServer extends WebSocketServer {
|
||||
@Override
|
||||
public void onOpen(WebSocket conn, ClientHandshake handshake) {
|
||||
LogManager.LOGGER.info("(WS) New Websocket connection " + conn.getRemoteSocketAddress());
|
||||
|
||||
userManager.add(new OnlineUser(conn));
|
||||
}
|
||||
|
||||
@Override
|
||||
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);
|
||||
userManager.add(new OnlineUser(conn));
|
||||
userManager.remove(userManager.getUser(conn));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -110,6 +109,8 @@ public class SocketServer extends WebSocketServer {
|
||||
@Override
|
||||
public void onError(WebSocket conn, Exception ex) {
|
||||
System.err.println("an error occured on connection " + conn.getRemoteSocketAddress() + ':' + ex);
|
||||
userManager.remove(userManager.getUser(conn));
|
||||
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user