/// <summary> /// Update Player Objects /// </summary> /// <param name="p">Package Data</param> /// <param name="SentToServer">Sent data to server?</param> public void Update(Package p, bool SentToServer) { if (Network != null) { Network.LastValidMovement = DateTime.Now; } if (p.IsFullPackageData()) { GameMode = p.DataItems[0]; isGameJoltPlayer = p.DataItems[1].ToInt().Tobool(); GameJoltID = isGameJoltPlayer ? p.DataItems[2].ToInt() : -1; DecimalSeparator = p.DataItems[3]; Name = p.DataItems[4]; LevelFile = p.DataItems[5]; Position = p.DataItems[6]; Facing = p.DataItems[7].ToInt(); Moving = p.DataItems[8].ToInt().Tobool(); Skin = p.DataItems[9]; BusyType = p.DataItems[10].ToInt(); PokemonVisible = p.DataItems[11].ToInt().Tobool(); PokemonPosition = p.DataItems[12]; PokemonSkin = p.DataItems[13]; PokemonFacing = p.DataItems[14].ToInt(); LastValidGameData = new List<string> { LevelFile, Position, Facing.ToString(), Moving.ToString(), Skin, BusyType.ToString(), PokemonVisible.ToString(), PokemonPosition, PokemonSkin, PokemonFacing.ToString() }; } else { LastValidGameData = new List<string> { LevelFile, Position, Facing.ToString(), Moving.ToString(), Skin, BusyType.ToString(), PokemonVisible.ToString(), PokemonPosition, PokemonSkin, PokemonFacing.ToString() }; if (!string.IsNullOrWhiteSpace(p.DataItems[5]) && p.DataItems[5].SplitCount() == 1) { LevelFile = p.DataItems[5]; } if (!string.IsNullOrWhiteSpace(p.DataItems[6]) && p.DataItems[6].SplitCount() == 3) { Position = p.DataItems[6]; } if (!string.IsNullOrWhiteSpace(p.DataItems[7]) && p.DataItems[7].SplitCount() == 1) { Facing = p.DataItems[7].ToInt(); } if (!string.IsNullOrWhiteSpace(p.DataItems[8]) && p.DataItems[8].SplitCount() == 1) { Moving = p.DataItems[8].ToInt().Tobool(); } if (!string.IsNullOrWhiteSpace(p.DataItems[9]) && p.DataItems[9].SplitCount() <= 2) { Skin = p.DataItems[9]; } if (!string.IsNullOrWhiteSpace(p.DataItems[10]) && p.DataItems[10].SplitCount() == 1) { BusyType = p.DataItems[10].ToInt(); } if (!string.IsNullOrWhiteSpace(p.DataItems[11]) && p.DataItems[11].SplitCount() == 1) { PokemonVisible = p.DataItems[11].ToInt().Tobool(); } if (!string.IsNullOrWhiteSpace(p.DataItems[12]) && p.DataItems[12].SplitCount() == 3) { PokemonPosition = p.DataItems[12]; } if (!string.IsNullOrWhiteSpace(p.DataItems[13]) && p.DataItems[13].SplitCount() <= 2) { PokemonSkin = p.DataItems[13]; } if (!string.IsNullOrWhiteSpace(p.DataItems[14]) && p.DataItems[14].SplitCount() == 1) { PokemonFacing = p.DataItems[14].ToInt(); } } // Sent To Server if (SentToServer) { Core.RCONPlayer.SendToAllPlayer(new RCON_Client_Listener.Packages.Package(RCON_Client_Listener.Packages.Package.PackageTypes.UpdatePlayer, $"{ID},{ToString()}", null)); PlayerEvent.Invoke(PlayerEvent.Types.Update, $"{ID},{ToString()}"); if (p.IsFullPackageData()) { Core.Player.SendToAllPlayer(new Package(Package.PackageTypes.GameData, ID, GenerateGameData(true), null)); } else { Core.Player.SendToAllPlayer(new Package(Package.PackageTypes.GameData, ID, GenerateGameData(false), null)); } } }
/// <summary> /// Update Player Data. /// </summary> /// <param name="Package">Package.</param> /// <param name="SentToServer">Sent to server?</param> public void Update(Package Package, bool SentToServer) { LastValidMovement = DateTime.Now; if (Package.IsFullPackageData()) { GameMode = Package.DataItems[0]; isGamejoltPlayer = Package.DataItems[1].ToInt().ToBool(); GamejoltID = isGamejoltPlayer ? Package.DataItems[2].ToInt() : -1; DecimalSeparator = Package.DataItems[3]; Name = Package.DataItems[4]; LevelFile = Package.DataItems[5]; Position = Package.DataItems[6]; Facing = Package.DataItems[7].ToInt(); Moving = Package.DataItems[8].ToInt().ToBool(); Skin = Package.DataItems[9]; BusyType = Package.DataItems[10].ToInt(); PokemonVisible = Package.DataItems[11].ToInt().ToBool(); PokemonPosition = Package.DataItems[12]; PokemonSkin = Package.DataItems[13]; PokemonFacing = Package.DataItems[14].ToInt(); LastValidGameData = new List<string> { LevelFile, Position, Facing.ToString(), Moving.ToString(), Skin, BusyType.ToString(), PokemonVisible.ToString(), PokemonPosition, PokemonSkin, PokemonFacing.ToString() }; } else { LastValidGameData = new List<string> { LevelFile, Position, Facing.ToString(), Moving.ToString(), Skin, BusyType.ToString(), PokemonVisible.ToString(), PokemonPosition, PokemonSkin, PokemonFacing.ToString() }; if (!string.IsNullOrWhiteSpace(Package.DataItems[5]) && Package.DataItems[5].SplitCount() == 1) LevelFile = Package.DataItems[5]; if (!string.IsNullOrWhiteSpace(Package.DataItems[6]) && Package.DataItems[6].SplitCount() == 3) Position = Package.DataItems[6]; if (!string.IsNullOrWhiteSpace(Package.DataItems[7]) && Package.DataItems[7].SplitCount() == 1) Facing = Package.DataItems[7].ToInt(); if (!string.IsNullOrWhiteSpace(Package.DataItems[8]) && Package.DataItems[8].SplitCount() == 1) Moving = Package.DataItems[8].ToInt().ToBool(); if (!string.IsNullOrWhiteSpace(Package.DataItems[9]) && Package.DataItems[9].SplitCount() <= 2) Skin = Package.DataItems[9]; if (!string.IsNullOrWhiteSpace(Package.DataItems[10]) && Package.DataItems[10].SplitCount() == 1) BusyType = Package.DataItems[10].ToInt(); if (!string.IsNullOrWhiteSpace(Package.DataItems[11]) && Package.DataItems[11].SplitCount() == 1) PokemonVisible = Package.DataItems[11].ToInt().ToBool(); if (!string.IsNullOrWhiteSpace(Package.DataItems[12]) && Package.DataItems[12].SplitCount() == 3) PokemonPosition = Package.DataItems[12]; if (!string.IsNullOrWhiteSpace(Package.DataItems[13]) && Package.DataItems[13].SplitCount() <= 2) PokemonSkin = Package.DataItems[13]; if (!string.IsNullOrWhiteSpace(Package.DataItems[14]) && Package.DataItems[14].SplitCount() == 1) PokemonFacing = Package.DataItems[14].ToInt(); } if (SentToServer) { if (Package.IsFullPackageData()) Core.PlayerCollection.SendToAllPlayer(new Package(Package.PackageTypes.GameData, ID, GenerateGameData(true), null)); else Core.PlayerCollection.SendToAllPlayer(new Package(Package.PackageTypes.GameData, ID, GenerateGameData(false), null)); } }