add stuff for pc move

This commit is contained in:
Mister_Nebula 2021-08-10 14:54:23 +01:00
parent 87b490e022
commit 28301b53f4
11 changed files with 39 additions and 34 deletions

View File

@ -17,22 +17,36 @@ namespace QSB.Player.Events
{
AboutId = LocalPlayerId,
PlayerName = name,
QSBVersion = QSBCore.QSBVersion
QSBVersion = QSBCore.QSBVersion,
GameVersion = QSBCore.GameVersion
};
public override void OnReceiveRemote(bool server, PlayerJoinMessage message)
{
if (server && (message.QSBVersion != QSBCore.QSBVersion))
if (message.QSBVersion != QSBCore.QSBVersion)
{
DebugLog.ToConsole($"Error - Client {message.PlayerName} connecting with wrong version. (Client:{message.QSBVersion}, Server:{QSBCore.QSBVersion})", MessageType.Error);
QSBEventManager.FireEvent(EventNames.QSBPlayerKick, message.AboutId, KickReason.VersionNotMatching);
if (server)
{
DebugLog.ToConsole($"Error - Client {message.PlayerName} connecting with wrong QSB version. (Client:{message.QSBVersion}, Server:{QSBCore.QSBVersion})", MessageType.Error);
QSBEventManager.FireEvent(EventNames.QSBPlayerKick, message.AboutId, KickReason.QSBVersionNotMatching);
}
return;
}
if (message.GameVersion != QSBCore.GameVersion)
{
if (server)
{
DebugLog.ToConsole($"Error - Client {message.PlayerName} connecting with wrong game version. (Client:{message.GameVersion}, Server:{QSBCore.GameVersion})", MessageType.Error);
QSBEventManager.FireEvent(EventNames.QSBPlayerKick, message.AboutId, KickReason.GameVersionNotMatching);
}
return;
}
var player = QSBPlayerManager.GetPlayer(message.AboutId);
player.Name = message.PlayerName;
DebugLog.ToAll($"{player.Name} joined!", MessageType.Info);
DebugLog.DebugWrite($"{player.Name} joined as id {player.PlayerId}", MessageType.Info);
DebugLog.DebugWrite($"{player.Name} joined. id:{player.PlayerId}, qsbVersion:{message.QSBVersion}, gameVersion:{message.GameVersion}", MessageType.Info);
}
public override void OnReceiveLocal(bool server, PlayerJoinMessage message)

View File

@ -7,12 +7,14 @@ namespace QSB.Player.Events
{
public string PlayerName { get; set; }
public string QSBVersion { get; set; }
public string GameVersion { get; set; }
public override void Deserialize(QNetworkReader reader)
{
base.Deserialize(reader);
PlayerName = reader.ReadString();
QSBVersion = reader.ReadString();
GameVersion = reader.ReadString();
}
public override void Serialize(QNetworkWriter writer)
@ -20,6 +22,7 @@ namespace QSB.Player.Events
base.Serialize(writer);
writer.Write(PlayerName);
writer.Write(QSBVersion);
writer.Write(GameVersion);
}
}
}

View File

@ -2,6 +2,7 @@
{
public enum KickReason
{
VersionNotMatching
QSBVersionNotMatching,
GameVersionNotMatching
}
}

View File

@ -63,6 +63,7 @@ namespace QSB
public static bool IsHost => QNetworkServer.active;
public static bool IsInMultiplayer => QNetworkManager.singleton.isNetworkActive;
public static string QSBVersion => Helper.Manifest.Version;
public static string GameVersion => Application.version;
public void Awake()
{

View File

@ -4,6 +4,7 @@ using QSB.SectorSync.WorldObjects;
using QSB.Syncs;
using QSB.Utility;
using QSB.WorldSync;
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
@ -31,6 +32,7 @@ namespace QSB.SectorSync
public void Init<T>(SectorDetector detector, ISectoredSync<T> sectoredSync)
{
DebugLog.DebugWrite($"INIT SECTOR SYNC detector:{detector.name}");
if (_sectorDetector != null)
{
_sectorDetector.OnEnterSector -= AddSector;
@ -119,7 +121,7 @@ namespace QSB.SectorSync
if (!_isReady)
{
DebugLog.ToConsole($"Warning - Tried to use GetClosestSector before it was initialized. Transform:{trans.name}", MessageType.Warning);
DebugLog.ToConsole($"Warning - Tried to use GetClosestSector before it was initialized. Transform:{trans.name} Stacktrace:{Environment.StackTrace}", MessageType.Warning);
return null;
}

View File

@ -58,11 +58,6 @@ namespace QSB.Syncs.RigidbodySync
_intermediaryTransform = new IntermediaryTransform(transform);
}
if (!QSBCore.WorldObjectsReady)
{
return;
}
if (ReferenceSector != null)
{
writer.Write(ReferenceSector.ObjectId);

View File

@ -51,11 +51,6 @@ namespace QSB.Syncs.RigidbodySync
_intermediaryTransform = new IntermediaryTransform(transform);
}
if (!QSBCore.WorldObjectsReady)
{
return;
}
/* We need to send :
* - Position
* - Rotation

View File

@ -50,6 +50,12 @@ namespace QSB.Syncs.TransformSync
_intermediaryTransform = new IntermediaryTransform(transform);
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
if (Player == null)
{
DebugLog.ToConsole($"Error - Player in start of {_logName} was null!", MessageType.Error);
return;
}
if (!_storedTransformSyncs.ContainsKey(Player))
{
_storedTransformSyncs.Add(Player, new Dictionary<Type, BaseTransformSync>());
@ -141,11 +147,6 @@ namespace QSB.Syncs.TransformSync
_intermediaryTransform = new IntermediaryTransform(transform);
}
if (!QSBCore.WorldObjectsReady)
{
return;
}
var worldPos = _intermediaryTransform.GetPosition();
var worldRot = _intermediaryTransform.GetRotation();
writer.Write(worldPos);

View File

@ -102,19 +102,12 @@ namespace QSB.Syncs.TransformSync
_intermediaryTransform = new IntermediaryTransform(transform);
}
if (!QSBCore.WorldObjectsReady)
{
return;
}
if (!QSBPlayerManager.PlayerExists(PlayerId))
{
DebugLog.ToConsole($"Warning - Tried to serialize {_logName} before the right player exists.", OWML.Common.MessageType.Warning);
writer.Write(-1);
}
else if (!Player.PlayerStates.IsReady)
{
DebugLog.ToConsole($"Warning - Tried to serialize {_logName} before the player was ready.", OWML.Common.MessageType.Warning);
writer.Write(-1);
}

View File

@ -50,11 +50,6 @@ namespace QSB.Syncs.TransformSync
_intermediaryTransform = new IntermediaryTransform(transform);
}
if (!QSBCore.WorldObjectsReady)
{
return;
}
var worldPos = _intermediaryTransform.GetPosition();
var worldRot = _intermediaryTransform.GetRotation();
writer.Write(worldPos);

View File

@ -366,6 +366,11 @@ namespace QSB.TimeSync
ResetTimeScale();
}
}
if (CurrentState == State.Loaded)
{
CheckTimeDifference();
}
}
private void CheckTimeDifference()