From 3352583e5df371dcde10d3ca278f1e8e7c8d9bee Mon Sep 17 00:00:00 2001 From: Bob Da Ross <52760019+BobDaRoss@users.noreply.github.com> Date: Mon, 10 May 2021 18:13:33 -0500 Subject: [PATCH] Fixed online players --- SeamlessClient.cs | 2 +- SeamlessTransfer/SwitchServers.cs | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/SeamlessClient.cs b/SeamlessClient.cs index 90cd149..1a29e6f 100644 --- a/SeamlessClient.cs +++ b/SeamlessClient.cs @@ -106,7 +106,7 @@ namespace SeamlessClientPlugin - public static string Version = "1.2.20"; + public static string Version = "1.2.12"; public static bool Debug = false; private static bool Initilized = false; diff --git a/SeamlessTransfer/SwitchServers.cs b/SeamlessTransfer/SwitchServers.cs index ec11521..7f3ee6d 100644 --- a/SeamlessTransfer/SwitchServers.cs +++ b/SeamlessTransfer/SwitchServers.cs @@ -7,6 +7,7 @@ using Sandbox.Game.Gui; using Sandbox.Game.GUI; using Sandbox.Game.Multiplayer; using Sandbox.Game.World; +using Sandbox.ModAPI; using SeamlessClientPlugin.Utilities; using System; using System.Collections.Concurrent; @@ -98,7 +99,7 @@ namespace SeamlessClientPlugin.SeamlessTransfer RemoveOldEntities(); StartEntitySync(); - + MyModAPIHelper.Initialize(); // Allow the game to start proccessing incoming messages in the buffer MyMultiplayer.Static.StartProcessingClientMessages(); } @@ -107,12 +108,19 @@ namespace SeamlessClientPlugin.SeamlessTransfer private void LoadOnlinePlayers() { //Get This players ID + MyPlayer.PlayerId? savingPlayerId = new MyPlayer.PlayerId(Sync.MyId); if (!savingPlayerId.HasValue) { SeamlessClient.TryShow("SavingPlayerID is null! Creating Default!"); savingPlayerId = new MyPlayer.PlayerId(Sync.MyId); } + SeamlessClient.TryShow("Saving PlayerID: " + savingPlayerId.ToString()); + + Sync.Players.LoadConnectedPlayers(TargetWorld.Checkpoint, savingPlayerId); + Sync.Players.LoadControlledEntities(TargetWorld.Checkpoint.ControlledEntities, TargetWorld.Checkpoint.ControlledObject, savingPlayerId); + /* + SeamlessClient.TryShow("Saving PlayerID: " + savingPlayerId.ToString()); @@ -145,6 +153,8 @@ namespace SeamlessClientPlugin.SeamlessTransfer } } + */ + } private void SetWorldSettings() @@ -169,7 +179,7 @@ namespace SeamlessClientPlugin.SeamlessTransfer MySession.Static.WorldBoundaries = TargetWorld.Checkpoint.WorldBoundaries; MySession.Static.InGameTime = MyObjectBuilder_Checkpoint.DEFAULT_DATE; MySession.Static.ElapsedGameTime = new TimeSpan(TargetWorld.Checkpoint.ElapsedGameTime); - + MySession.Static.Settings.EnableSpectator = false; MySession.Static.Password = TargetWorld.Checkpoint.Password; @@ -248,16 +258,23 @@ namespace SeamlessClientPlugin.SeamlessTransfer private void LoadConnectedClients() { + + + Patches.LoadMembersFromWorld.Invoke(MySession.Static, new object[] { TargetWorld, MyMultiplayer.Static }); + + //Re-Initilize Virtual clients object VirtualClientsValue = Patches.VirtualClients.GetValue(MySession.Static); Patches.InitVirtualClients.Invoke(VirtualClientsValue, null); + /* SeamlessClient.TryShow("Loading exsisting Members From World!"); foreach (var Client in TargetWorld.Checkpoint.Clients) { SeamlessClient.TryShow("Adding New Client: " + Client.Name); Sync.Clients.AddClient(Client.SteamId, Client.Name); - } + }*/ + } private void StartEntitySync() @@ -302,7 +319,7 @@ namespace SeamlessClientPlugin.SeamlessTransfer //Clear all old players and clients. Sync.Clients.Clear(); Sync.Players.ClearPlayers(); - + MyHud.Chat.UnregisterChat(MyMultiplayer.Static); MySession.Static.Gpss.RemovePlayerGpss(MySession.Static.LocalPlayerId);