diff --git a/QSB/Events/DeathMessage.cs b/QSB/Events/DeathMessage.cs index 68a28ef4..b6c5ced6 100644 --- a/QSB/Events/DeathMessage.cs +++ b/QSB/Events/DeathMessage.cs @@ -3,7 +3,7 @@ using UnityEngine.Networking; namespace QSB.Events { - public class DeathMessage : NameMessage + public class DeathMessage : PlayerMessage { public override MessageType MessageType => MessageType.Death; diff --git a/QSB/Events/FullStateMessage.cs b/QSB/Events/FullStateMessage.cs index e5ea32e4..632bc3f3 100644 --- a/QSB/Events/FullStateMessage.cs +++ b/QSB/Events/FullStateMessage.cs @@ -6,7 +6,7 @@ using UnityEngine.Networking; namespace QSB.Events { - class FullStateMessage : NameMessage + public class FullStateMessage : PlayerMessage { public override MessageType MessageType => MessageType.FullState; diff --git a/QSB/Events/JoinMessage.cs b/QSB/Events/JoinMessage.cs index baa44ebd..0d60c188 100644 --- a/QSB/Events/JoinMessage.cs +++ b/QSB/Events/JoinMessage.cs @@ -1,9 +1,24 @@ using QSB.Messaging; +using UnityEngine.Networking; namespace QSB.Events { - public class JoinMessage : NameMessage + public class JoinMessage : PlayerMessage { public override MessageType MessageType => MessageType.Join; + + public string PlayerName { get; set; } + + public override void Deserialize(NetworkReader reader) + { + base.Deserialize(reader); + PlayerName = reader.ReadString(); + } + + public override void Serialize(NetworkWriter writer) + { + base.Serialize(writer); + writer.Write(PlayerName); + } } } diff --git a/QSB/Events/LeaveMessage.cs b/QSB/Events/LeaveMessage.cs index 1a1eaf3a..8c9423ff 100644 --- a/QSB/Events/LeaveMessage.cs +++ b/QSB/Events/LeaveMessage.cs @@ -5,7 +5,7 @@ using UnityEngine.Networking; namespace QSB.Events { - public class LeaveMessage : NameMessage + public class LeaveMessage : PlayerMessage { public override MessageType MessageType => MessageType.Leave; diff --git a/QSB/Events/PlayerLeave.cs b/QSB/Events/PlayerLeave.cs index 7ce39bdd..21b254d3 100644 --- a/QSB/Events/PlayerLeave.cs +++ b/QSB/Events/PlayerLeave.cs @@ -19,7 +19,6 @@ namespace QSB.Events { var message = new LeaveMessage { - PlayerName = PlayerJoin.PlayerNames[playerId], SenderId = playerId, ObjectIds = objectIds }; @@ -28,7 +27,8 @@ namespace QSB.Events private void OnClientReceiveMessage(LeaveMessage message) { - DebugLog.All(message.PlayerName, "left"); + var playerName = PlayerJoin.PlayerNames[message.SenderId]; + DebugLog.All(playerName, "left"); PlayerJoin.PlayerNames.Remove(message.SenderId); foreach (var objectId in message.ObjectIds) { diff --git a/QSB/Events/NameMessage.cs b/QSB/Events/PlayerMessage.cs similarity index 67% rename from QSB/Events/NameMessage.cs rename to QSB/Events/PlayerMessage.cs index a476f614..7b745355 100644 --- a/QSB/Events/NameMessage.cs +++ b/QSB/Events/PlayerMessage.cs @@ -3,20 +3,17 @@ using UnityEngine.Networking; namespace QSB.Events { - public abstract class NameMessage : QSBMessage + public abstract class PlayerMessage : QSBMessage { public uint SenderId { get; set; } - public string PlayerName { get; set; } - + public override void Deserialize(NetworkReader reader) { - PlayerName = reader.ReadString(); SenderId = reader.ReadUInt32(); } public override void Serialize(NetworkWriter writer) { - writer.Write(PlayerName); writer.Write(SenderId); } } diff --git a/QSB/QSB.csproj b/QSB/QSB.csproj index 5fd74b22..fe461e00 100644 --- a/QSB/QSB.csproj +++ b/QSB/QSB.csproj @@ -116,7 +116,7 @@ - + diff --git a/QSB/TimeSync/RespawnOnDeath.cs b/QSB/TimeSync/RespawnOnDeath.cs index 572f53b1..6278a12f 100644 --- a/QSB/TimeSync/RespawnOnDeath.cs +++ b/QSB/TimeSync/RespawnOnDeath.cs @@ -142,7 +142,7 @@ namespace QSB.TimeSync private void OnClientReceiveMessage(DeathMessage message) { - var playerName = PlayerJoin.PlayerNames.TryGetValue(message.SenderId, out var n) ? n : message.PlayerName; + var playerName = PlayerJoin.PlayerNames[message.SenderId]; var deathMessage = Necronomicon.GetPhrase(message.DeathType); DebugLog.All(string.Format(deathMessage, playerName)); } @@ -168,7 +168,6 @@ namespace QSB.TimeSync { var message = new DeathMessage { - PlayerName = PlayerJoin.MyName, SenderId = PlayerTransformSync.LocalInstance.netId.Value, DeathType = deathType };