diff --git a/.vscode/settings.json b/.vscode/settings.json index c5f3f6b9..b84f89c3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "java.configuration.updateBuildConfiguration": "interactive" + "java.configuration.updateBuildConfiguration": "interactive", + "java.compile.nullAnalysis.mode": "automatic" } \ No newline at end of file diff --git a/core/src/core/common/GameSettings.java b/core/src/core/common/GameSettings.java index c47eb57a..3eda8cdb 100644 --- a/core/src/core/common/GameSettings.java +++ b/core/src/core/common/GameSettings.java @@ -40,7 +40,7 @@ public GameSettings() {} private Properties getDefaults() { Properties defaults = new Properties(); defaults.setProperty(HOST_KEY, "https://solarsim.net"); - defaults.setProperty(PORT_KEY, "99"); + defaults.setProperty(PORT_KEY, "9999"); defaults.setProperty(IS_MATCHMAKER, "1"); return defaults; } @@ -48,7 +48,9 @@ private Properties getDefaults() { public void load() { if (properties != null) return; properties = this.getDefaults(); - File configFile = new File(System.getProperty("user.dir") + "/config.properties"); + String configFilePath = System.getProperty("user.dir") + "/config.properties"; + System.out.println("configFilePath: "+configFilePath); + File configFile = new File(configFilePath); if (configFile.exists() && !configFile.isDirectory() && configFile.canRead()) { try { properties.load(new FileReader(configFile)); diff --git a/core/src/core/networking/server/ServerNetworkHandle.java b/core/src/core/networking/server/ServerNetworkHandle.java index 628b4435..516bc799 100644 --- a/core/src/core/networking/server/ServerNetworkHandle.java +++ b/core/src/core/networking/server/ServerNetworkHandle.java @@ -50,34 +50,52 @@ public class ServerNetworkHandle extends NetworkObjectServiceGrpc.NetworkObjectServiceImplBase { - @Inject ObserverFactory observerFactory; - @Inject ConnectionStore connectionStore; - @Inject GameStore gameStore; - @Inject EventTypeFactory eventTypeFactory; - @Inject ActiveChunkManager activeChunkManager; - @Inject User user; - @Inject ChunkGenerationService chunkGenerationService; - @Inject GameSettings gameSettings; - @Inject PingService pingService; - @Inject SyncService syncService; - @Inject Clock clock; - @Inject GameController gameController; - @Inject EntityControllerFactory entityControllerFactory; - @Inject GroupService groupService; - @Inject ActiveEntityManager activeEntityManager; - @Inject Game game; + @Inject + ObserverFactory observerFactory; + @Inject + ConnectionStore connectionStore; + @Inject + GameStore gameStore; + @Inject + EventTypeFactory eventTypeFactory; + @Inject + ActiveChunkManager activeChunkManager; + @Inject + User user; + @Inject + ChunkGenerationService chunkGenerationService; + @Inject + GameSettings gameSettings; + @Inject + PingService pingService; + @Inject + SyncService syncService; + @Inject + Clock clock; + @Inject + GameController gameController; + @Inject + EntityControllerFactory entityControllerFactory; + @Inject + GroupService groupService; + @Inject + ActiveEntityManager activeEntityManager; + @Inject + Game game; private Server server; @Inject - public ServerNetworkHandle() {} + public ServerNetworkHandle() { + } public void start() throws IOException { - Gdx.app.log(GameSettings.LOG_TAG, "I am server: " + this.user.toString()); - server = - ServerBuilder.forPort(99) - .addService(this) - .addService(ProtoReflectionService.newInstance()) - .build(); + int port = gameSettings.getPort(); + Gdx.app.log(GameSettings.LOG_TAG, "I am server: " + this.user.toString() + " port: " + port); + + server = ServerBuilder.forPort(port) + .addService(this) + .addService(ProtoReflectionService.newInstance()) + .build(); server.start(); pingService.start(); } @@ -87,11 +105,10 @@ public StreamObserver networkObjectStream( StreamObserver responseObserver) { RequestNetworkEventObserver requestNetworkEventObserver = observerFactory.create(); requestNetworkEventObserver.responseObserver = responseObserver; - NetworkObjects.NetworkEvent authenticationEvent = - NetworkObjects.NetworkEvent.newBuilder() - .setEvent("authentication") - .setUser(user.getUserID().toString()) - .build(); + NetworkObjects.NetworkEvent authenticationEvent = NetworkObjects.NetworkEvent.newBuilder() + .setEvent("authentication") + .setUser(user.getUserID().toString()) + .build(); requestNetworkEventObserver.responseObserver.onNext(authenticationEvent); return requestNetworkEventObserver; } @@ -132,16 +149,15 @@ public void getEntity( Entity returnEntity = null; try { - returnEntity = - gameController.createEntity( - coordinates, - (entity -> { - entity.setEntityController( - entityControllerFactory.createRemoteBodyController(entity)); - - groupService.registerEntityGroup(entity.getUuid(), Group.PLAYER_GROUP); - activeEntityManager.registerActiveEntity(requestedUser, entity.getUuid()); - })); + returnEntity = gameController.createEntity( + coordinates, + (entity -> { + entity.setEntityController( + entityControllerFactory.createRemoteBodyController(entity)); + + groupService.registerEntityGroup(entity.getUuid(), Group.PLAYER_GROUP); + activeEntityManager.registerActiveEntity(requestedUser, entity.getUuid()); + })); } catch (ChunkNotFound e) { e.printStackTrace(); return; @@ -159,19 +175,17 @@ public void health(Empty request, StreamObserver response return; } - NetworkObjects.STATUS serverStatus = - (connectionStore.size() > 0) ? STATUS.ACTIVE : STATUS.INACTIVE; + NetworkObjects.STATUS serverStatus = (connectionStore.size() > 0) ? STATUS.ACTIVE : STATUS.INACTIVE; Instant now = Instant.now(); Duration upTime = Duration.between(game.gameStartTime, now); - NetworkObjects.Health.Builder healthDataBuilder = - NetworkObjects.Health.newBuilder() - .setId(this.user.getUserID().toString()) - .setStatus(serverStatus) - .setUptime(upTime.toMillis()) - .setConnections(connectionStore.size()); + NetworkObjects.Health.Builder healthDataBuilder = NetworkObjects.Health.newBuilder() + .setId(this.user.getUserID().toString()) + .setStatus(serverStatus) + .setUptime(upTime.toMillis()) + .setConnections(connectionStore.size()); if (connectionStore.inactiveStartTime != null) { Duration inActiveTime = Duration.between(connectionStore.inactiveStartTime, now); @@ -184,8 +198,8 @@ public void health(Empty request, StreamObserver response @Override public void getVersion(Empty request, StreamObserver responseObserver) { - NetworkObjects.Version versionData = - NetworkObjects.Version.newBuilder().setVersion(gameSettings.getVersion()).build(); + NetworkObjects.Version versionData = NetworkObjects.Version.newBuilder().setVersion(gameSettings.getVersion()) + .build(); responseObserver.onNext(versionData); responseObserver.onCompleted(); } @@ -195,11 +209,10 @@ public void close() { } public synchronized void send(UserID userID, NetworkObjects.NetworkEvent networkEvent) { - networkEvent = - networkEvent.toBuilder() - .setUser(user.getUserID().toString()) - .setTime(Clock.getCurrentTime()) - .build(); + networkEvent = networkEvent.toBuilder() + .setUser(user.getUserID().toString()) + .setTime(Clock.getCurrentTime()) + .build(); RequestNetworkEventObserver observer = connectionStore.getConnection(userID); observer.responseObserver.onNext(networkEvent); } @@ -212,8 +225,8 @@ public synchronized void initHandshake(UserID userID, ChunkRange chunkRange) { } syncService.lockHandshake(userID, chunkRange, GameSettings.HANDSHAKE_TIMEOUT); List uuidList = new LinkedList<>(this.gameStore.getChunk(chunkRange).getEntityUUIDSet()); - HandshakeOutgoingEventType handshakeOutgoing = - EventTypeFactory.createHandshakeOutgoingEventType(chunkRange, uuidList); + HandshakeOutgoingEventType handshakeOutgoing = EventTypeFactory.createHandshakeOutgoingEventType(chunkRange, + uuidList); this.send(userID, handshakeOutgoing.toNetworkEvent()); Gdx.app.log( GameSettings.LOG_TAG, "SERVER INIT HANDSHAKE " + userID.toString() + " " + chunkRange); diff --git a/core/test/core/networking/translation/TranslateCreateAIEvent.java b/core/test/core/networking/translation/TranslateCreateAIEvent.java index 7d74f816..0f531009 100644 --- a/core/test/core/networking/translation/TranslateCreateAIEvent.java +++ b/core/test/core/networking/translation/TranslateCreateAIEvent.java @@ -16,9 +16,8 @@ public void testTranslateCreateEntityEvent() throws SerializationDataMissing { UUID uuid = UUID.randomUUID(); CreateAIEntityEventType outgoing = EventTypeFactory.createAIEntityEventType(coordinates, uuid); - CreateAIEntityEventType incoming = - NetworkDataDeserializer.createCreateAIEntityEventType( - NetworkDataSerializer.createCreateAIEntityEventType(outgoing)); + CreateAIEntityEventType incoming = NetworkDataDeserializer.createCreateAIEntityEventType( + NetworkDataSerializer.createCreateAIEntityEventType(outgoing)); assert incoming.getTarget().equals(outgoing.getTarget()); assert incoming.getCoordinates().equals(outgoing.getCoordinates());