Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
    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}");
    }
Ejemplo n.º 3
0
        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);
    }