public void EntityMe(IEntity source, string action) { if (!ActionBlockerSystem.CanEmote(source)) { return; } // Check if entity is a player IPlayerSession playerSession = source.GetComponent <IActorComponent>().playerSession; // Check if message exceeds the character limit if (playerSession != null) { if (action.Length > MaxMessageLength) { DispatchServerMessage(playerSession, Loc.GetString(MaxLengthExceededMessage, MaxMessageLength)); return; } } var pos = source.Transform.Coordinates; var clients = _playerManager.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient); var msg = _netManager.CreateNetMessage <MsgChatMessage>(); msg.Channel = ChatChannel.Emotes; msg.Message = action; msg.MessageWrap = $"{source.Name} {{0}}"; msg.SenderEntity = source.Uid; _netManager.ServerSendToMany(msg, clients.ToList()); }
private void SendEntityEmote(EntityUid source, string action, bool hideChat) { if (!_actionBlocker.CanEmote(source)) { return; } var messageWrap = Loc.GetString("chat-manager-entity-me-wrap-message", ("entityName", Name(source))); SendInVoiceRange(ChatChannel.Emotes, action, messageWrap, source, hideChat); _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Emote from {ToPrettyString(source):user}: {action}"); }
public void EntityMe(IEntity source, string action) { if (!ActionBlockerSystem.CanEmote(source)) { return; } var pos = source.Transform.GridPosition; var clients = _playerManager.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient); var msg = _netManager.CreateNetMessage <MsgChatMessage>(); msg.Channel = ChatChannel.Emotes; msg.Message = action; msg.MessageWrap = $"{source.Name} {{0}}"; msg.SenderEntity = source.Uid; _netManager.ServerSendToMany(msg, clients.ToList()); }
private void OnClientTypingChanged(TypingChangedEvent ev) { // make sure that this entity still exist if (!Exists(ev.Uid)) { Logger.Warning($"Client attached entity {ev.Uid} from TypingChangedEvent doesn't exist on server."); return; } // check if this entity can speak or emote if (!_actionBlocker.CanEmote(ev.Uid) && !_actionBlocker.CanSpeak(ev.Uid)) { // nah, make sure that typing indicator is disabled SetTypingIndicatorEnabled(ev.Uid, false); return; } SetTypingIndicatorEnabled(ev.Uid, ev.IsTyping); }