예제 #1
0
    public void TrySendInGameOOCMessage(EntityUid source, string message, InGameOOCChatType type, bool hideChat,
                                        IConsoleShell?shell = null, IPlayerSession?player = null)
    {
        if (!CanSendInGame(message, shell, player))
        {
            return;
        }

        // It doesn't make any sense for a non-player to send in-game OOC messages, whereas non-players may be sending
        // in-game IC messages.
        if (player?.AttachedEntity is not {
            Valid : true
        } entity || source != entity)
        {
            return;
        }

        message = SanitizeInGameOOCMessage(message);

        switch (type)
        {
        case InGameOOCChatType.Dead:
            SendDeadChat(source, player, message, hideChat);
            break;

        case InGameOOCChatType.Looc:
            SendLOOC(source, player, message, hideChat);
            break;
        }
    }
예제 #2
0
    public void TrySendInGameOOCMessage(EntityUid source, string message, InGameOOCChatType type, bool hideChat,
                                        IConsoleShell?shell = null, IPlayerSession?player = null)
    {
        if (!CanSendInGame(message, shell, player))
        {
            return;
        }

        // It doesn't make any sense for a non-player to send in-game OOC messages, whereas non-players may be sending
        // in-game IC messages.
        if (player?.AttachedEntity is not {
            Valid : true
        } entity || source != entity)
        {
            return;
        }

        message = SanitizeInGameOOCMessage(message);

        var sendType = type;

        // If dead player LOOC is disabled, unless you are an aghost, send dead messages to dead chat
        if (!_adminManager.IsAdmin(player) && !_deadLoocEnabled &&
            (HasComp <GhostComponent>(source) || _mobStateSystem.IsDead(source)))
        {
            sendType = InGameOOCChatType.Dead;
        }

        switch (sendType)
        {
        case InGameOOCChatType.Dead:
            SendDeadChat(source, player, message, hideChat);
            break;

        case InGameOOCChatType.Looc:
            SendLOOC(source, player, message, hideChat);
            break;
        }
    }