From 5cf3ae120331917ddfd62a85959678b2abb56c80 Mon Sep 17 00:00:00 2001 From: John Gross Date: Thu, 28 Feb 2019 12:33:26 -0800 Subject: [PATCH] Fix command hiding, add new chat properties to TorchChatMessage --- Torch.API/Managers/IChatManagerClient.cs | 17 ++++++++++++++++- Torch/Managers/ChatManager/ChatManagerClient.cs | 2 +- Torch/Managers/ChatManager/ChatManagerServer.cs | 5 +++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Torch.API/Managers/IChatManagerClient.cs b/Torch.API/Managers/IChatManagerClient.cs index 2be2fc8..f4ce06c 100644 --- a/Torch.API/Managers/IChatManagerClient.cs +++ b/Torch.API/Managers/IChatManagerClient.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Sandbox.Engine.Multiplayer; +using Sandbox.Game.Gui; using Sandbox.Game.Multiplayer; using VRage.Game; using VRage.Network; @@ -28,6 +29,8 @@ namespace Torch.API.Managers AuthorSteamId = null; Author = author; Message = message; + Channel = ChatChannel.Global; + Target = 0; Font = font; } @@ -38,12 +41,14 @@ namespace Torch.API.Managers /// Author's steam ID /// Message /// Font - public TorchChatMessage(string author, ulong authorSteamId, string message, string font = MyFontEnum.Blue) + public TorchChatMessage(string author, ulong authorSteamId, string message, ChatChannel channel, long target, string font = MyFontEnum.Blue) { Timestamp = DateTime.Now; AuthorSteamId = authorSteamId; Author = author; Message = message; + Channel = channel; + Target = target; Font = font; } @@ -59,6 +64,8 @@ namespace Torch.API.Managers AuthorSteamId = authorSteamId; Author = MyMultiplayer.Static?.GetMemberName(authorSteamId) ?? "Player"; Message = message; + Channel = ChatChannel.Global; + Target = 0; Font = font; } @@ -79,6 +86,14 @@ namespace Torch.API.Managers /// public readonly string Message; /// + /// The chat channel the message is part of. + /// + public readonly ChatChannel Channel; + /// + /// The intended recipient of the message. + /// + public readonly long Target; + /// /// The font, or null if default. /// public readonly string Font; diff --git a/Torch/Managers/ChatManager/ChatManagerClient.cs b/Torch/Managers/ChatManager/ChatManagerClient.cs index 5dfe6d8..4b72e1c 100644 --- a/Torch/Managers/ChatManager/ChatManagerClient.cs +++ b/Torch/Managers/ChatManager/ChatManagerClient.cs @@ -108,7 +108,7 @@ namespace Torch.Managers.ChatManager { if (!sendToOthers) return; - var torchMsg = new TorchChatMessage(MySession.Static.LocalHumanPlayer?.DisplayName ?? "Player", Sync.MyId, messageText); + var torchMsg = new TorchChatMessage(MySession.Static.LocalHumanPlayer?.DisplayName ?? "Player", Sync.MyId, messageText, ChatChannel.Global, 0); bool consumed = RaiseMessageRecieved(torchMsg); if (!consumed) consumed = OfflineMessageProcessor(torchMsg); diff --git a/Torch/Managers/ChatManager/ChatManagerServer.cs b/Torch/Managers/ChatManager/ChatManagerServer.cs index 61101a3..ee6270c 100644 --- a/Torch/Managers/ChatManager/ChatManagerServer.cs +++ b/Torch/Managers/ChatManager/ChatManagerServer.cs @@ -34,10 +34,11 @@ namespace Torch.Managers.ChatManager context.GetPattern(target).Prefixes.Add(patchMethod); } - private static void PrefixMessageProcessing(ref ChatMsg msg) + private static bool PrefixMessageProcessing(ref ChatMsg msg) { var consumed = false; ChatManager?.RaiseMessageRecieved(msg, ref consumed); + return !consumed; } } @@ -160,7 +161,7 @@ namespace Torch.Managers.ChatManager internal void RaiseMessageRecieved(ChatMsg message, ref bool consumed) { - var torchMsg = new TorchChatMessage(GetMemberName(message.Author), message.Author, message.Text); + var torchMsg = new TorchChatMessage(GetMemberName(message.Author), message.Author, message.Text, (ChatChannel)message.Channel, message.TargetId); MessageProcessing?.Invoke(torchMsg, ref consumed); if (!consumed)