diff --git a/QSB/ConversationSync/ConversationManager.cs b/QSB/ConversationSync/ConversationManager.cs index e644d1bc..820f81dc 100644 --- a/QSB/ConversationSync/ConversationManager.cs +++ b/QSB/ConversationSync/ConversationManager.cs @@ -63,10 +63,10 @@ namespace QSB.ConversationSync } public void CloseBoxPlayer() => - new ConversationMessage(ConversationType.ClosePlayer, (int)QSBPlayerManager.LocalPlayerId, "").Send(); + new ConversationMessage(ConversationType.ClosePlayer, (int)QSBPlayerManager.LocalPlayerId).Send(); public void CloseBoxCharacter(int id) => - new ConversationMessage(ConversationType.CloseCharacter, id, "").Send(); + new ConversationMessage(ConversationType.CloseCharacter, id).Send(); public void SendConvState(int charId, bool state) { diff --git a/QSB/ConversationSync/Messages/ConversationMessage.cs b/QSB/ConversationSync/Messages/ConversationMessage.cs index 6bfd319a..e12c0ae6 100644 --- a/QSB/ConversationSync/Messages/ConversationMessage.cs +++ b/QSB/ConversationSync/Messages/ConversationMessage.cs @@ -8,14 +8,23 @@ namespace QSB.ConversationSync.Messages { public class ConversationMessage : QSBEnumMessage { + /// + /// character (tree) id or player id + /// private int Id; + /// + /// used only for character and player type + /// private string Message; - public ConversationMessage(ConversationType type, int id, string message) + public ConversationMessage(ConversationType type, int id, string message = default) { Value = type; Id = id; - Message = message; + if (Value is ConversationType.Character or ConversationType.Player) + { + Message = message; + } } public ConversationMessage() { } @@ -24,14 +33,20 @@ namespace QSB.ConversationSync.Messages { base.Serialize(writer); writer.Write(Id); - writer.Write(Message); + if (Value is ConversationType.Character or ConversationType.Player) + { + writer.Write(Message); + } } public override void Deserialize(QNetworkReader reader) { base.Deserialize(reader); Id = reader.ReadInt32(); - Message = reader.ReadString(); + if (Value is ConversationType.Character or ConversationType.Player) + { + Message = reader.ReadString(); + } } public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;