From 5888e12da00d81b70c185e9eede5673adeb0aa4f Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 15 May 2025 13:34:17 -0400 Subject: [PATCH] move playerManager to serverState --- docs/src/progress/renderertodo.md | 1 + .../menu/debug/server/ImGuiFluidMonitor.java | 4 ++-- .../menu/debug/server/ImGuiGriddedManager.java | 2 +- .../java/electrosphere/engine/Globals.java | 10 ---------- .../ChunkGenerationTestLoading.java | 2 +- .../loadingthreads/DebugSPWorldLoading.java | 2 +- .../loadingthreads/LevelEditorLoading.java | 2 +- .../engine/loadingthreads/LevelLoading.java | 2 +- .../engine/loadingthreads/LoadingUtils.java | 2 +- .../engine/loadingthreads/ViewportLoading.java | 4 ++-- .../entity/state/equip/ServerEquipState.java | 4 ++-- .../entity/state/equip/ServerToolbarState.java | 2 +- .../state/inventory/ServerInventoryState.java | 14 +++++++------- .../entity/state/item/ServerChargeState.java | 2 +- .../entity/types/creature/CreatureUtils.java | 2 +- .../entity/types/item/ItemUtils.java | 2 +- .../net/server/ServerConnectionHandler.java | 2 +- .../net/server/protocol/AuthProtocol.java | 2 +- .../net/server/protocol/CharacterProtocol.java | 2 +- .../net/server/protocol/TerrainProtocol.java | 18 +++++++++--------- .../java/electrosphere/server/ServerState.java | 6 ++++++ .../gridded/GriddedDataCellManager.java | 4 ++-- .../character/PlayerCharacterCreation.java | 2 +- .../server/player/BlockActions.java | 4 ++-- .../StateCleanupCheckerExtension.java | 2 +- .../test/testutils/TestViewportUtils.java | 2 +- 26 files changed, 49 insertions(+), 52 deletions(-) diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index c8dfb345..552f8c82 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1815,6 +1815,7 @@ Create ServerState global Move realmManager to serverState Move characterService to serverState Move entityValueTrackingService to serverState +Move playerManager to serverState diff --git a/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiFluidMonitor.java b/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiFluidMonitor.java index b54534c3..41c69325 100644 --- a/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiFluidMonitor.java +++ b/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiFluidMonitor.java @@ -28,7 +28,7 @@ public class ImGuiFluidMonitor { @Override public void exec() { if(ImGui.collapsingHeader("Server Data")){ - ServerFluidManager fluidManager = Globals.playerManager.getPlayerRealm(Globals.clientState.clientPlayer).getServerWorldData().getServerFluidManager(); + ServerFluidManager fluidManager = Globals.serverState.playerManager.getPlayerRealm(Globals.clientState.clientPlayer).getServerWorldData().getServerFluidManager(); //server engine details ImGui.text("Fluids Debug"); ImGui.text("State: " + (fluidManager.getSimulate() ? "on" : "off")); @@ -67,7 +67,7 @@ public class ImGuiFluidMonitor { * Prints debug data about the chunk at 0,0,1 */ private static void printChunkDebugData(){ - ServerFluidManager fluidManager = Globals.playerManager.getPlayerRealm(Globals.clientState.clientPlayer).getServerWorldData().getServerFluidManager(); + ServerFluidManager fluidManager = Globals.serverState.playerManager.getPlayerRealm(Globals.clientState.clientPlayer).getServerWorldData().getServerFluidManager(); ServerFluidChunk chunk = fluidManager.getChunk(0, 0, 1); ImGui.text("Pressure: " + chunk.getTotalPressure()); ImGui.text("Velocity magnitude: " + chunk.getTotalVelocityMag()); diff --git a/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiGriddedManager.java b/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiGriddedManager.java index 5293c350..cbf829c5 100644 --- a/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiGriddedManager.java +++ b/src/main/java/electrosphere/client/ui/menu/debug/server/ImGuiGriddedManager.java @@ -42,7 +42,7 @@ public class ImGuiGriddedManager { } ImGui.text("Cells cleaned last frame: " + manager.getNumCleaned()); if(ImGui.button("Player Data Cell Info")){ - Entity playerEntity = Globals.playerManager.getFirstPlayer().getPlayerEntity(); + Entity playerEntity = Globals.serverState.playerManager.getFirstPlayer().getPlayerEntity(); Realm realm = Globals.serverState.realmManager.getEntityRealm(playerEntity); GriddedDataCellManager griddedDataCellManager = (GriddedDataCellManager)realm.getDataCellManager(); griddedDataCellManager.printCellInfo(griddedDataCellManager.getDataCellAtPoint(EntityUtils.getPosition(playerEntity))); diff --git a/src/main/java/electrosphere/engine/Globals.java b/src/main/java/electrosphere/engine/Globals.java index 6944be1d..ca5a9e14 100644 --- a/src/main/java/electrosphere/engine/Globals.java +++ b/src/main/java/electrosphere/engine/Globals.java @@ -41,7 +41,6 @@ import electrosphere.engine.time.Timekeeper; import electrosphere.logger.LoggerInterface; import electrosphere.net.config.NetConfig; import electrosphere.net.monitor.NetMonitor; -import electrosphere.net.server.player.PlayerManager; import electrosphere.renderer.RenderUtils; import electrosphere.renderer.RenderingEngine; import electrosphere.renderer.actor.instance.InstanceManager; @@ -195,11 +194,6 @@ public class Globals { // public static CameraHandler cameraHandler = new CameraHandler(); - // - //Player manager - // - public static PlayerManager playerManager; - // //Generic OpenGL Statements // @@ -417,8 +411,6 @@ public class Globals { // //Values that depend on the loaded config Globals.clientState.clientSelectedVoxelType = (VoxelType)gameConfigCurrent.getVoxelData().getTypes().toArray()[1]; - //player manager - playerManager = new PlayerManager(); //net monitor if(Globals.userSettings.getNetRunNetMonitor()){ netMonitor = new NetMonitor(); @@ -601,7 +593,6 @@ public class Globals { Globals.serverState.aiManager.shutdown(); Globals.serverState.realmManager.reset(); - Globals.playerManager = new PlayerManager(); Globals.clientState = new ClientState(); Globals.serverState = new ServerState(); if(Globals.serviceManager != null){ @@ -631,7 +622,6 @@ public class Globals { Globals.signalSystem = null; Globals.serviceManager = null; Globals.fileWatcherService = null; - Globals.playerManager = null; Globals.javaPID = null; Globals.RENDER_FLAG_RENDER_SHADOW_MAP = true; Globals.RENDER_FLAG_RENDER_SCREEN_FRAMEBUFFER_CONTENT = false; diff --git a/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java index 4c2acd98..4ee03729 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java @@ -81,7 +81,7 @@ public class ChunkGenerationTestLoading { Globals.clientState.clientPassword = AuthenticationManager.getHashedString("leveleditor"); ServerConnectionHandler serverPlayerConnection = LoadingUtils.initLocalConnection(true); //wait for player object creation - while(Globals.playerManager.getPlayers().size() < 1 || !Globals.clientState.clientConnection.isInitialized()){ + while(Globals.serverState.playerManager.getPlayers().size() < 1 || !Globals.clientState.clientConnection.isInitialized()){ try { TimeUnit.MILLISECONDS.sleep(1); } catch (InterruptedException e) { diff --git a/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java b/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java index e12d5258..621730ba 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java @@ -49,7 +49,7 @@ public class DebugSPWorldLoading { Globals.clientState.clientPassword = AuthenticationManager.getHashedString("testpass"); ServerConnectionHandler serverPlayerConnection = LoadingUtils.initLocalConnection(true); //wait for player object creation - while(Globals.playerManager.getPlayers().size() < 1){ + while(Globals.serverState.playerManager.getPlayers().size() < 1){ try { TimeUnit.MILLISECONDS.sleep(10); } catch (InterruptedException e) { diff --git a/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java b/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java index 14b108d1..d4026c26 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java @@ -77,7 +77,7 @@ public class LevelEditorLoading { Globals.clientState.clientPassword = AuthenticationManager.getHashedString("leveleditor"); ServerConnectionHandler serverPlayerConnection = LoadingUtils.initLocalConnection(true); //wait for player object creation - while(Globals.playerManager.getPlayers().size() < 1 || !Globals.clientState.clientConnection.isInitialized()){ + while(Globals.serverState.playerManager.getPlayers().size() < 1 || !Globals.clientState.clientConnection.isInitialized()){ try { TimeUnit.MILLISECONDS.sleep(1); } catch (InterruptedException e) { diff --git a/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java b/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java index fad62fe1..1f2fc326 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java @@ -47,7 +47,7 @@ public class LevelLoading { Globals.clientState.clientPassword = AuthenticationManager.getHashedString("leveleditor"); ServerConnectionHandler serverPlayerConnection = LoadingUtils.initLocalConnection(true); //wait for player object creation - while(Globals.playerManager.getPlayers().size() < 1){ + while(Globals.serverState.playerManager.getPlayers().size() < 1){ try { TimeUnit.MILLISECONDS.sleep(10); } catch (InterruptedException e) { diff --git a/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java b/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java index 9b78a222..54cd7db3 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java @@ -184,7 +184,7 @@ public class LoadingUtils { Globals.clientState.clientConnection.queueOutgoingMessage(CharacterMessage.constructRequestSpawnCharacterMessage(chara.getId() + "")); //set player world-space coordinates - Player playerObject = Globals.playerManager.getFirstPlayer(); + Player playerObject = Globals.serverState.playerManager.getFirstPlayer(); Realm realm = Globals.serverState.realmManager.getRealms().iterator(). next(); Vector3d spawnPoint = realm.getSpawnPoint(); playerObject.setWorldPos(new Vector3i( diff --git a/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java index c192383a..b44c85e8 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java @@ -48,7 +48,7 @@ public class ViewportLoading { Globals.clientState.clientPassword = AuthenticationManager.getHashedString("leveleditor"); LoadingUtils.initLocalConnection(true); //wait for player object creation - while(Globals.playerManager.getPlayers().size() < 1){ + while(Globals.serverState.playerManager.getPlayers().size() < 1){ try { TimeUnit.MILLISECONDS.sleep(10); } catch (InterruptedException e) { @@ -56,7 +56,7 @@ public class ViewportLoading { } } //add player to viewport realm - Player localPlayer = Globals.playerManager.getFirstPlayer(); + Player localPlayer = Globals.serverState.playerManager.getFirstPlayer(); Globals.serverState.realmManager.first().getDataCellManager().addPlayerToRealm(localPlayer); //initialize the "real" objects simulation diff --git a/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java b/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java index cccfafc6..f856d5c3 100644 --- a/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java +++ b/src/main/java/electrosphere/entity/state/equip/ServerEquipState.java @@ -189,7 +189,7 @@ public class ServerEquipState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(containingEntity)){ //get player int playerId = CreatureUtils.getControllerPlayerId(containingEntity); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); //tell the player they don't have the item anymore NetworkMessage inventoryMessage = InventoryMessage.constructserverCommandMoveItemContainerMessage( inInventoryEntity.getId(), @@ -322,7 +322,7 @@ public class ServerEquipState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(parent)){ //get player int playerId = CreatureUtils.getControllerPlayerId(parent); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); //tell the player they don't have the item anymore NetworkMessage inventoryMessage = InventoryMessage.constructserverCommandMoveItemContainerMessage( ejectedItem.getId(), diff --git a/src/main/java/electrosphere/entity/state/equip/ServerToolbarState.java b/src/main/java/electrosphere/entity/state/equip/ServerToolbarState.java index ee9cdbf2..4c9cd97e 100644 --- a/src/main/java/electrosphere/entity/state/equip/ServerToolbarState.java +++ b/src/main/java/electrosphere/entity/state/equip/ServerToolbarState.java @@ -109,7 +109,7 @@ public class ServerToolbarState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(parent)){ //get player int playerId = CreatureUtils.getControllerPlayerId(parent); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); //tell the player they don't have the item anymore NetworkMessage inventoryMessage = InventoryMessage.constructserverCommandMoveItemContainerMessage( inInventoryEntity.getId(), diff --git a/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java b/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java index 79dbe5d5..1aec3164 100644 --- a/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java +++ b/src/main/java/electrosphere/entity/state/inventory/ServerInventoryState.java @@ -214,7 +214,7 @@ public class ServerInventoryState implements BehaviorTree { return; } int playerId = CreatureUtils.getControllerPlayerId(playerEntity); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); if(InventoryUtils.hasNaturalInventory(this.parent)){ UnrelationalInventoryState naturalInventory = InventoryUtils.getNaturalInventory(this.parent); for(Entity itemEnt : naturalInventory.getItems()){ @@ -330,7 +330,7 @@ public class ServerInventoryState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(watcher)){ //get the player int controllerPlayerID = CreatureUtils.getControllerPlayerId(watcher); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(controllerPlayerID); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(controllerPlayerID); //send message controllerPlayer.addMessage(InventoryMessage.constructserverUpdateItemChargesMessage(foundExisting.getId(), serverChargeState.getCharges())); } @@ -360,7 +360,7 @@ public class ServerInventoryState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(watcher)){ //get the player int controllerPlayerID = CreatureUtils.getControllerPlayerId(watcher); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(controllerPlayerID); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(controllerPlayerID); //send message controllerPlayer.addMessage(InventoryMessage.constructaddItemToInventoryMessage(creature.getId(), inventoryItem.getId(), ItemUtils.getType(inventoryItem))); } @@ -459,7 +459,7 @@ public class ServerInventoryState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(watcher)){ //get the player int controllerPlayerID = CreatureUtils.getControllerPlayerId(watcher); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(controllerPlayerID); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(controllerPlayerID); //send message controllerPlayer.addMessage(InventoryMessage.constructserverCommandStoreItemMessage( creature.getId(), @@ -540,7 +540,7 @@ public class ServerInventoryState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(watcher)){ //get player int playerId = CreatureUtils.getControllerPlayerId(watcher); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); //tell the player to destroy the item controllerPlayer.addMessage(EntityMessage.constructDestroyMessage(item.getId())); } @@ -606,7 +606,7 @@ public class ServerInventoryState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(watcher)){ //get player int playerId = CreatureUtils.getControllerPlayerId(watcher); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); //tell the player they don't have the item anymore controllerPlayer.addMessage(InventoryMessage.constructremoveItemFromInventoryMessage(item.getId())); } @@ -669,7 +669,7 @@ public class ServerInventoryState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(watcher)){ //get player int playerId = CreatureUtils.getControllerPlayerId(watcher); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(playerId); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(playerId); //tell the player they don't have the item anymore controllerPlayer.addMessage(InventoryMessage.constructremoveItemFromInventoryMessage(item.getId())); } diff --git a/src/main/java/electrosphere/entity/state/item/ServerChargeState.java b/src/main/java/electrosphere/entity/state/item/ServerChargeState.java index 5148ba02..208d618d 100644 --- a/src/main/java/electrosphere/entity/state/item/ServerChargeState.java +++ b/src/main/java/electrosphere/entity/state/item/ServerChargeState.java @@ -86,7 +86,7 @@ public class ServerChargeState implements BehaviorTree { if(CreatureUtils.hasControllerPlayerId(containingParent)){ //get the player int controllerPlayerID = CreatureUtils.getControllerPlayerId(containingParent); - Player controllerPlayer = Globals.playerManager.getPlayerFromId(controllerPlayerID); + Player controllerPlayer = Globals.serverState.playerManager.getPlayerFromId(controllerPlayerID); //send message controllerPlayer.addMessage(SynchronizationMessage.constructUpdateClientIntStateMessage(parent.getId(), BehaviorTreeIdEnums.BTREE_SERVERCHARGESTATE_ID, FieldIdEnums.TREE_SERVERCHARGESTATE_SYNCEDFIELD_CHARGES_ID, this.getCharges())); } diff --git a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java index a9134389..53affea9 100644 --- a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java +++ b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java @@ -413,7 +413,7 @@ public class CreatureUtils { if(CreatureUtils.hasControllerPlayerId(creature)){ LoggerInterface.loggerNetworking.INFO("Sending controller packets"); player.addMessage(NetUtils.createSetCreatureControllerIdEntityMessage(creature)); - Player entityOwner = Globals.playerManager.getPlayerFromId(CreatureUtils.getControllerPlayerId(creature)); + Player entityOwner = Globals.serverState.playerManager.getPlayerFromId(CreatureUtils.getControllerPlayerId(creature)); if(player.hasSentPlayerEntity()){ throw new Error("Re-sending player entity to player!"); } diff --git a/src/main/java/electrosphere/entity/types/item/ItemUtils.java b/src/main/java/electrosphere/entity/types/item/ItemUtils.java index e4729bbc..c52ad729 100644 --- a/src/main/java/electrosphere/entity/types/item/ItemUtils.java +++ b/src/main/java/electrosphere/entity/types/item/ItemUtils.java @@ -635,7 +635,7 @@ public class ItemUtils { //send entity to client if(CreatureUtils.hasControllerPlayerId(parent)){ int playerId = CreatureUtils.getControllerPlayerId(parent); - Player player = Globals.playerManager.getPlayerFromId(playerId); + Player player = Globals.serverState.playerManager.getPlayerFromId(playerId); player.addMessage(InventoryMessage.constructaddItemToInventoryMessage(parent.getId(), rVal.getId(), itemData.getId())); } diff --git a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java index 33f97d7b..532eac99 100644 --- a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java +++ b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java @@ -411,7 +411,7 @@ public class ServerConnectionHandler implements Runnable { * @return The player object */ public Player getPlayer(){ - return Globals.playerManager.getPlayerFromId(playerID); + return Globals.serverState.playerManager.getPlayerFromId(playerID); } /** diff --git a/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java b/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java index 5feb3ae5..d7fda56e 100644 --- a/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java +++ b/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java @@ -23,7 +23,7 @@ public class AuthProtocol implements ServerProtocolTemplate { //TODO: actually set connection/protocol to authenticated connectionHandler.addMessagetoOutgoingQueue(AuthMessage.constructAuthSuccessMessage()); Player newPlayer = new Player(connectionHandler, loginId); - Globals.playerManager.registerPlayer(newPlayer); + Globals.serverState.playerManager.registerPlayer(newPlayer); //there is a race condition here where if a local non-server client connects first then it breaks if(connectionHandler.getIPAddress().contains("127.0.0.1") && Globals.RUN_CLIENT == true && Globals.clientState.clientPlayer == null){ Globals.clientState.clientPlayer = newPlayer; diff --git a/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java b/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java index 4bc2550a..6548ccdf 100644 --- a/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java +++ b/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java @@ -108,7 +108,7 @@ public class CharacterProtocol implements ServerProtocolTemplate { Globals.profiler.beginAggregateCpuSample("TerrainProtocol(server).sendWorldSubChunk"); // System.out.println("Received request for chunk " + message.getworldX() + " " + message.getworldY()); - Realm realm = Globals.playerManager.getPlayerRealm(connectionHandler.getPlayer()); + Realm realm = Globals.serverState.playerManager.getPlayerRealm(connectionHandler.getPlayer()); if(realm.getServerWorldData().getServerTerrainManager() == null){ return; } @@ -181,7 +181,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { Globals.profiler.beginAggregateCpuSample("TerrainProtocol(server).sendWorldSubChunk"); // System.out.println("Received request for chunk " + message.getworldX() + " " + message.getworldY()); - Realm realm = Globals.playerManager.getPlayerRealm(connectionHandler.getPlayer()); + Realm realm = Globals.serverState.playerManager.getPlayerRealm(connectionHandler.getPlayer()); if(realm.getServerWorldData().getServerTerrainManager() == null){ return; } @@ -272,7 +272,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { Globals.profiler.beginAggregateCpuSample("TerrainProtocol(server).sendWorldSubChunk"); // System.out.println("Received request for chunk " + message.getworldX() + " " + message.getworldY()); - Realm realm = Globals.playerManager.getPlayerRealm(connectionHandler.getPlayer()); + Realm realm = Globals.serverState.playerManager.getPlayerRealm(connectionHandler.getPlayer()); if(realm.getServerWorldData().getServerTerrainManager() == null){ return; } @@ -338,7 +338,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { Globals.profiler.beginAggregateCpuSample("TerrainProtocol(server).sendWorldSubChunk"); // System.out.println("Received request for chunk " + message.getworldX() + " " + message.getworldY()); - Realm realm = Globals.playerManager.getPlayerRealm(connectionHandler.getPlayer()); + Realm realm = Globals.serverState.playerManager.getPlayerRealm(connectionHandler.getPlayer()); if(realm.getServerWorldData().getServerBlockManager() == null){ return; } @@ -386,7 +386,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { * @param worldZ the world z */ static void sendWorldFluidSubChunk(ServerConnectionHandler connectionHandler, int worldX, int worldY, int worldZ){ - Realm realm = Globals.playerManager.getPlayerRealm(connectionHandler.getPlayer()); + Realm realm = Globals.serverState.playerManager.getPlayerRealm(connectionHandler.getPlayer()); if(realm.getServerWorldData().getServerTerrainManager() == null){ return; @@ -408,7 +408,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { * @param connectionHandler The connection handler */ static void sendWorldMetadata(ServerConnectionHandler connectionHandler){ - Realm realm = Globals.playerManager.getPlayerRealm(connectionHandler.getPlayer()); + Realm realm = Globals.serverState.playerManager.getPlayerRealm(connectionHandler.getPlayer()); //world metadata connectionHandler.addMessagetoOutgoingQueue( TerrainMessage.constructResponseMetadataMessage( @@ -428,7 +428,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { * @param message The message containing the edit request */ static void attemptTerrainEdit(ServerConnectionHandler connectionHandler, TerrainMessage message){ - // Player player = Globals.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); + // Player player = Globals.serverState.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); throw new UnsupportedOperationException(); } @@ -438,7 +438,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { * @param message The message that contains the request to use an edit palette */ static void attemptUseTerrainEditPalette(ServerConnectionHandler connectionHandler, TerrainMessage message){ - Player player = Globals.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); + Player player = Globals.serverState.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); Realm realm = Globals.serverState.realmManager.getPlayerRealm(player); Vector3d location = new Vector3d(message.getrealLocationX(), message.getrealLocationY(), message.getrealLocationZ()); TerrainEditing.editTerrain(realm, location, message.getvalue(), message.getterrainValue(), message.getterrainWeight()); @@ -450,7 +450,7 @@ public class TerrainProtocol implements ServerProtocolTemplate { * @param message The message that contains the request to use an edit palette */ static void attemptDestroyTerrain(ServerConnectionHandler connectionHandler, TerrainMessage message){ - Player player = Globals.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); + Player player = Globals.serverState.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); Realm realm = Globals.serverState.realmManager.getPlayerRealm(player); Vector3d location = new Vector3d(message.getrealLocationX(), message.getrealLocationY(), message.getrealLocationZ()); TerrainEditing.destroyTerrain(realm, player.getPlayerEntity(), location, message.getvalue(), message.getterrainWeight()); diff --git a/src/main/java/electrosphere/server/ServerState.java b/src/main/java/electrosphere/server/ServerState.java index ded96bc9..3b9b112f 100644 --- a/src/main/java/electrosphere/server/ServerState.java +++ b/src/main/java/electrosphere/server/ServerState.java @@ -1,6 +1,7 @@ package electrosphere.server; import electrosphere.net.server.Server; +import electrosphere.net.server.player.PlayerManager; import electrosphere.net.synchronization.server.EntityValueTrackingService; import electrosphere.net.synchronization.server.ServerSynchronizationManager; import electrosphere.server.ai.AIManager; @@ -54,4 +55,9 @@ public class ServerState { */ public EntityValueTrackingService entityValueTrackingService = new EntityValueTrackingService(); + /** + * Player manager + */ + public PlayerManager playerManager = new PlayerManager(); + } diff --git a/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java b/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java index 10a8687c..0da45f68 100644 --- a/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java +++ b/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java @@ -400,7 +400,7 @@ public class GriddedDataCellManager implements DataCellManager, VoxelCellManager Globals.profiler.beginCpuSample("GriddedDataCellManager.updatePlayerPositions - Actually update player positions"); boolean playerChangedChunk = false; - for(Player player : Globals.playerManager.getPlayers()){ + for(Player player : Globals.serverState.playerManager.getPlayers()){ Entity playerEntity = player.getPlayerEntity(); if(playerEntity != null && !parent.getLoadingDataCell().containsPlayer(player)){ Vector3d position = EntityUtils.getPosition(playerEntity); @@ -518,7 +518,7 @@ public class GriddedDataCellManager implements DataCellManager, VoxelCellManager containsPlayerEntity = true; break; // int playerId = CreatureUtils.getControllerPlayerId(entity); - // Player player = Globals.playerManager.getPlayerFromId(playerId); + // Player player = Globals.serverState.playerManager.getPlayerFromId(playerId); // throw new Error( // "Trying to unload a player's entity! " + // "entity: " + entity + "\n" + diff --git a/src/main/java/electrosphere/server/macro/character/PlayerCharacterCreation.java b/src/main/java/electrosphere/server/macro/character/PlayerCharacterCreation.java index 428354b5..7d063994 100644 --- a/src/main/java/electrosphere/server/macro/character/PlayerCharacterCreation.java +++ b/src/main/java/electrosphere/server/macro/character/PlayerCharacterCreation.java @@ -26,7 +26,7 @@ public class PlayerCharacterCreation { * @param connectionHandler The connection handler of the player */ public static Entity spawnPlayerCharacter(ServerConnectionHandler connectionHandler){ - Player playerObject = Globals.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); + Player playerObject = Globals.serverState.playerManager.getPlayerFromId(connectionHandler.getPlayerId()); Realm realm = Globals.serverState.realmManager.getRealms().iterator().next(); // diff --git a/src/main/java/electrosphere/server/player/BlockActions.java b/src/main/java/electrosphere/server/player/BlockActions.java index a9ba654b..2d8fac45 100644 --- a/src/main/java/electrosphere/server/player/BlockActions.java +++ b/src/main/java/electrosphere/server/player/BlockActions.java @@ -38,7 +38,7 @@ public class BlockActions { BlockType blockTypeData = Globals.gameConfigCurrent.getBlockData().getTypeFromId((int)blockType); String goalBlockEntityId = Item.getBlockTypeId(blockTypeData); if(CreatureUtils.hasControllerPlayerId(creature)){ - Player player = Globals.playerManager.getPlayerFromId(CreatureUtils.getControllerPlayerId(creature)); + Player player = Globals.serverState.playerManager.getPlayerFromId(CreatureUtils.getControllerPlayerId(creature)); Globals.structureScanningService.queue(player, ServerWorldData.convertLocalBlockToRealSpace(chunkPos, blockPos)); } @@ -63,7 +63,7 @@ public class BlockActions { ServerBlockEditing.placeBlockFab(playerRealm, chunkPos, blockPos, blockRotation, fabPath); ServerChargeState.attemptRemoveCharges(creature, 1); if(CreatureUtils.hasControllerPlayerId(creature)){ - Player player = Globals.playerManager.getPlayerFromId(CreatureUtils.getControllerPlayerId(creature)); + Player player = Globals.serverState.playerManager.getPlayerFromId(CreatureUtils.getControllerPlayerId(creature)); Globals.structureScanningService.queue(player, ServerWorldData.convertLocalBlockToRealSpace(chunkPos, blockPos)); } } diff --git a/src/test/java/electrosphere/test/template/extensions/StateCleanupCheckerExtension.java b/src/test/java/electrosphere/test/template/extensions/StateCleanupCheckerExtension.java index b0f05cca..48e01e2b 100644 --- a/src/test/java/electrosphere/test/template/extensions/StateCleanupCheckerExtension.java +++ b/src/test/java/electrosphere/test/template/extensions/StateCleanupCheckerExtension.java @@ -20,7 +20,7 @@ public class StateCleanupCheckerExtension implements AfterEachCallback { Globals.renderingEngine, Globals.audioEngine, Globals.javaPID, - Globals.playerManager, + Globals.serverState.playerManager, LoggerInterface.loggerEngine, RenderingEngine.screenFramebuffer, Globals.clientState, diff --git a/src/test/java/electrosphere/test/testutils/TestViewportUtils.java b/src/test/java/electrosphere/test/testutils/TestViewportUtils.java index 3c9f2a22..bab08802 100644 --- a/src/test/java/electrosphere/test/testutils/TestViewportUtils.java +++ b/src/test/java/electrosphere/test/testutils/TestViewportUtils.java @@ -35,7 +35,7 @@ public class TestViewportUtils { //get required data ServerConnectionHandler connectionHandler = Globals.serverState.server.getFirstConnection(); - Player playerObj = Globals.playerManager.getFirstPlayer(); + Player playerObj = Globals.serverState.playerManager.getFirstPlayer(); //attach PlayerCharacterCreation.attachEntityToPlayerObject(creature, playerObj, connectionHandler);