This commit is contained in:
zumorica
2020-03-30 01:15:43 +02:00
parent aba3b0217e
commit a07c407f2e
4 changed files with 25 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.Chat;
using Content.Server.Observer;
using Robust.Server.Interfaces.Console; using Robust.Server.Interfaces.Console;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.Enums; using Robust.Shared.Enums;
@@ -24,7 +25,10 @@ namespace Content.Server.Chat
var message = string.Join(" ", args); var message = string.Join(" ", args);
chat.EntitySay(player.AttachedEntity, message); if (player.AttachedEntity.HasComponent<GhostComponent>())
chat.SendDeadChat(player, message);
else
chat.EntitySay(player.AttachedEntity, message);
} }
} }

View File

@@ -2,6 +2,7 @@
using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems;
using Content.Server.Interfaces; using Content.Server.Interfaces;
using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.Chat;
using Content.Server.Observer;
using Content.Shared.Chat; using Content.Shared.Chat;
using Robust.Server.Interfaces.Player; using Robust.Server.Interfaces.Player;
using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.GameObjects;
@@ -93,6 +94,17 @@ namespace Content.Server.Chat
_mommiLink.SendOOCMessage(player.SessionId.ToString(), message); _mommiLink.SendOOCMessage(player.SessionId.ToString(), message);
} }
public void SendDeadChat(IPlayerSession player, string message)
{
var clients = _playerManager.GetPlayersBy(x => x.AttachedEntity != null && x.AttachedEntity.HasComponent<GhostComponent>()).Select(p => p.ConnectedClient);;
var msg = _netManager.CreateNetMessage<MsgChatMessage>();
msg.Channel = ChatChannel.Dead;
msg.Message = message;
msg.MessageWrap = $"DEAD: {player.AttachedEntity.Name}: {{0}}";
_netManager.ServerSendToMany(msg, clients.ToList());
}
public void SendHookOOC(string sender, string message) public void SendHookOOC(string sender, string message)
{ {
var msg = _netManager.CreateNetMessage<MsgChatMessage>(); var msg = _netManager.CreateNetMessage<MsgChatMessage>();

View File

@@ -18,6 +18,7 @@ namespace Content.Server.Interfaces.Chat
void EntityMe(IEntity source, string action); void EntityMe(IEntity source, string action);
void SendOOC(IPlayerSession player, string message); void SendOOC(IPlayerSession player, string message);
void SendDeadChat(IPlayerSession player, string message);
void SendHookOOC(string sender, string message); void SendHookOOC(string sender, string message);
} }

View File

@@ -6,7 +6,7 @@ namespace Content.Shared.Chat
/// Represents chat channels that the player can filter chat tabs by. /// Represents chat channels that the player can filter chat tabs by.
/// </summary> /// </summary>
[Flags] [Flags]
public enum ChatChannel : byte public enum ChatChannel : short
{ {
None = 0, None = 0,
@@ -46,9 +46,14 @@ namespace Content.Shared.Chat
/// </summary> /// </summary>
Emotes = 64, Emotes = 64,
/// <summary>
/// Deadchat
/// </summary>
Dead = 128,
/// <summary> /// <summary>
/// Unspecified. /// Unspecified.
/// </summary> /// </summary>
Unspecified = 128, Unspecified = 256,
} }
} }