Adds a bool (#5372)

This commit is contained in:
Pieter-Jan Briers
2021-11-19 07:36:25 +01:00
committed by GitHub
parent fc22e71ae1
commit 86a7eece40
5 changed files with 23 additions and 14 deletions

View File

@@ -363,6 +363,8 @@ namespace Content.Client.Chat.Managers
private void OnChatMessage(MsgChatMessage msg) private void OnChatMessage(MsgChatMessage msg)
{ {
// Log all incoming chat to repopulate when filter is un-toggled // Log all incoming chat to repopulate when filter is un-toggled
if (!msg.HideChat)
{
var storedMessage = new StoredChatMessage(msg); var storedMessage = new StoredChatMessage(msg);
_history.Add(storedMessage); _history.Add(storedMessage);
MessageAdded?.Invoke(storedMessage); MessageAdded?.Invoke(storedMessage);
@@ -377,6 +379,7 @@ namespace Content.Client.Chat.Managers
_unreadMessages[msg.Channel] = count; _unreadMessages[msg.Channel] = count;
UnreadMessageCountsUpdated?.Invoke(); UnreadMessageCountsUpdated?.Invoke();
} }
}
// Local messages that have an entity attached get a speech bubble. // Local messages that have an entity attached get a speech bubble.
if (msg.SenderEntity == default) if (msg.SenderEntity == default)

View File

@@ -61,7 +61,7 @@ namespace Content.Server.Advertise
return; return;
if (_prototypeManager.TryIndex(advertise.PackPrototypeId, out AdvertisementsPackPrototype? advertisements)) if (_prototypeManager.TryIndex(advertise.PackPrototypeId, out AdvertisementsPackPrototype? advertisements))
_chatManager.EntitySay(advertise.Owner, Loc.GetString(_random.Pick(advertisements.Advertisements))); _chatManager.EntitySay(advertise.Owner, Loc.GetString(_random.Pick(advertisements.Advertisements)), hideChat: true);
if(refresh) if(refresh)
RefreshTimer(uid, true, advertise); RefreshTimer(uid, true, advertise);

View File

@@ -108,7 +108,7 @@ namespace Content.Server.Chat.Managers
_netManager.ServerSendMessage(msg, player.ConnectedClient); _netManager.ServerSendMessage(msg, player.ConnectedClient);
} }
public void EntitySay(IEntity source, string message) public void EntitySay(IEntity source, string message, bool hideChat=false)
{ {
if (!EntitySystem.Get<ActionBlockerSystem>().CanSpeak(source.Uid)) if (!EntitySystem.Get<ActionBlockerSystem>().CanSpeak(source.Uid))
{ {
@@ -190,6 +190,7 @@ namespace Content.Server.Chat.Managers
msg.Message = message; msg.Message = message;
msg.MessageWrap = Loc.GetString("chat-manager-entity-say-wrap-message",("entityName", source.Name)); msg.MessageWrap = Loc.GetString("chat-manager-entity-say-wrap-message",("entityName", source.Name));
msg.SenderEntity = source.Uid; msg.SenderEntity = source.Uid;
msg.HideChat = hideChat;
_netManager.ServerSendToMany(msg, clients); _netManager.ServerSendToMany(msg, clients);
} }

View File

@@ -21,7 +21,8 @@ namespace Content.Server.Chat.Managers
void DispatchServerMessage(IPlayerSession player, string message); void DispatchServerMessage(IPlayerSession player, string message);
void EntitySay(IEntity source, string message); /// <param name="hideChat">If true, message will not be logged to chat boxes but will still produce a speech bubble.</param>
void EntitySay(IEntity source, string message, bool hideChat=false);
void EntityMe(IEntity source, string action); void EntityMe(IEntity source, string action);
void SendOOC(IPlayerSession player, string message); void SendOOC(IPlayerSession player, string message);

View File

@@ -40,6 +40,8 @@ namespace Content.Shared.Chat
/// </summary> /// </summary>
public Color MessageColorOverride { get; set; } = Color.Transparent; public Color MessageColorOverride { get; set; } = Color.Transparent;
public bool HideChat { get; set; }
public override void ReadFromBuffer(NetIncomingMessage buffer) public override void ReadFromBuffer(NetIncomingMessage buffer)
{ {
@@ -57,6 +59,7 @@ namespace Content.Shared.Chat
break; break;
} }
MessageColorOverride = buffer.ReadColor(); MessageColorOverride = buffer.ReadColor();
HideChat = buffer.ReadBoolean();
} }
public override void WriteToBuffer(NetOutgoingMessage buffer) public override void WriteToBuffer(NetOutgoingMessage buffer)
@@ -75,6 +78,7 @@ namespace Content.Shared.Chat
break; break;
} }
buffer.Write(MessageColorOverride); buffer.Write(MessageColorOverride);
buffer.Write(HideChat);
} }
} }
} }