internal async Task <EResult> SendTypingStatus(ulong steamID)
        {
            if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount)
            {
                throw new ArgumentNullException(nameof(steamID));
            }

            if (!Client.IsConnected)
            {
                return(EResult.NoConnection);
            }

            CFriendMessages_SendMessage_Request request = new CFriendMessages_SendMessage_Request {
                chat_entry_type = (int)EChatEntryType.Typing,
                steamid         = steamID
            };

            SteamUnifiedMessages.ServiceMethodResponse response;

            try {
                response = await UnifiedFriendMessagesService.SendMessage(x => x.SendMessage(request)).ToLongRunningTask().ConfigureAwait(false);
            } catch (Exception e) {
                ArchiLogger.LogGenericWarningException(e);

                return(EResult.Timeout);
            }

            return(response.Result);
        }
Exemplo n.º 2
0
        internal async Task <bool> SendMessage(ulong steamID, string message)
        {
            if ((steamID == 0) || string.IsNullOrEmpty(message))
            {
                ArchiLogger.LogNullError(nameof(steamID) + " || " + nameof(message));
                return(false);
            }

            CFriendMessages_SendMessage_Request request = new CFriendMessages_SendMessage_Request {
                chat_entry_type = (int)EChatEntryType.ChatMsg,
                contains_bbcode = true,
                message         = message,
                steamid         = steamID
            };

            SteamUnifiedMessages.ServiceMethodResponse response;

            try {
                response = await UnifiedFriendMessagesService.SendMessage(x => x.SendMessage(request));
            } catch (Exception e) {
                ArchiLogger.LogGenericWarningException(e);
                return(false);
            }

            if (response == null)
            {
                ArchiLogger.LogNullError(nameof(response));
                return(false);
            }

            return(response.Result == EResult.OK);
        }
Exemplo n.º 3
0
        internal async Task <EResult> SendMessage(ulong steamID, string message)
        {
            if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount)
            {
                throw new ArgumentOutOfRangeException(nameof(steamID));
            }

            if (string.IsNullOrEmpty(message))
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (Client == null)
            {
                throw new InvalidOperationException(nameof(Client));
            }

            if (!Client.IsConnected)
            {
                return(EResult.NoConnection);
            }

            CFriendMessages_SendMessage_Request request = new CFriendMessages_SendMessage_Request {
                chat_entry_type = (int)EChatEntryType.ChatMsg,
                contains_bbcode = true,
                message         = message,
                steamid         = steamID
            };

            SteamUnifiedMessages.ServiceMethodResponse response;

            try {
                response = await UnifiedFriendMessagesService.SendMessage(x => x.SendMessage(request)).ToLongRunningTask().ConfigureAwait(false);
            } catch (Exception e) {
                ArchiLogger.LogGenericWarningException(e);

                return(EResult.Timeout);
            }

            return(response.Result);
        }
Exemplo n.º 4
0
        internal async Task <EResult> SendMessage(ulong steamID, string message)
        {
            if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount || string.IsNullOrEmpty(message))
            {
                ArchiLogger.LogNullError(nameof(steamID) + " || " + nameof(message));

                return(EResult.Fail);
            }

            if (!Client.IsConnected)
            {
                return(EResult.NoConnection);
            }

            CFriendMessages_SendMessage_Request request = new CFriendMessages_SendMessage_Request {
                chat_entry_type = (int)EChatEntryType.ChatMsg,
                contains_bbcode = true,
                message         = message,
                steamid         = steamID
            };

            SteamUnifiedMessages.ServiceMethodResponse response;

            try {
                response = await UnifiedFriendMessagesService.SendMessage(x => x.SendMessage(request));
            } catch (Exception e) {
                ArchiLogger.LogGenericWarningException(e);

                return(EResult.Timeout);
            }

            if (response == null)
            {
                ArchiLogger.LogNullError(nameof(response));

                return(EResult.Fail);
            }

            return(response.Result);
        }