Ejemplo n.º 1
0
        public static void LoadFriends() //https://github.com/waylaidwanderer/Mist/tree/master/SteamBot
        {
            ListFriends.Clear();
            List <SteamID> steamIdList = new List <SteamID>();

            Console.WriteLine("[" + Program.BOTNAME + "] - Loading all friends...");
            for (int index = 0; index < steamFriends.GetFriendCount(); ++index)
            {
                steamIdList.Add(steamFriends.GetFriendByIndex(index));
                Thread.Sleep(25);
            }
            for (int index = 0; index < steamIdList.Count; ++index)
            {
                SteamID steamId = steamIdList[index];
                if (steamFriends.GetFriendRelationship(steamId) == EFriendRelationship.Friend)
                {
                    string friendPersonaName = steamFriends.GetFriendPersonaName(steamId);
                    string Relationship      = steamFriends.GetFriendRelationship(steamId).ToString();
                    string status            = steamFriends.GetFriendPersonaState(steamId).ToString();
                    ListFriends.Add(friendPersonaName, (ulong)steamId, Relationship, status);
                }
            }
            foreach (ListFriends listFriends in ListFriends.Get(false))
            {
                if (ListFriendRequests.Find(listFriends.SID))
                {
                    Console.WriteLine("[" + Program.BOTNAME + "] - Found friend {0} in list of friend requests, so let's remove the user.", (object)listFriends.Name);
                    ListFriendRequests.Remove(listFriends.SID);
                }
            }
            foreach (ListFriendRequests listFriendRequests in ListFriendRequests.Get())
            {
                if (listFriendRequests.Name == "[unknown]")
                {
                    string friendPersonaName = steamFriends.GetFriendPersonaName((SteamID)listFriendRequests.SteamID);
                    ListFriendRequests.Remove(listFriendRequests.SteamID);
                    ListFriendRequests.Add(friendPersonaName, listFriendRequests.SteamID, "Offline");
                }
                if (listFriendRequests.Name == "")
                {
                    string friendPersonaName = steamFriends.GetFriendPersonaName((SteamID)listFriendRequests.SteamID);
                    ListFriendRequests.Remove(listFriendRequests.SteamID);
                    ListFriendRequests.Add(friendPersonaName, listFriendRequests.SteamID, "Offline");
                }
            }
            Console.WriteLine("[" + Program.BOTNAME + "] - Done! {0} friends.", (object)ListFriends.Get(false).Count);
            FriendsLoaded = true;
        }
Ejemplo n.º 2
0
        // Token: 0x06000B45 RID: 2885 RVA: 0x003CD544 File Offset: 0x003CB744
        private void OnP2PSessionRequest(P2PSessionRequest_t result)
        {
            CSteamID steamIDRemote = result.m_steamIDRemote;

            if (this._connectionStateMap.ContainsKey(steamIDRemote) && this._connectionStateMap[steamIDRemote] != NetSocialModule.ConnectionState.Inactive)
            {
                SteamNetworking.AcceptP2PSessionWithUser(steamIDRemote);
                return;
            }
            if (!this._acceptingClients)
            {
                return;
            }
            if (!this._mode.HasFlag(ServerMode.FriendsOfFriends) && SteamFriends.GetFriendRelationship(steamIDRemote) != EFriendRelationship.k_EFriendRelationshipFriend)
            {
                return;
            }
            SteamNetworking.AcceptP2PSessionWithUser(steamIDRemote);
            P2PSessionState_t p2PSessionState_t;

            while (SteamNetworking.GetP2PSessionState(steamIDRemote, out p2PSessionState_t) && p2PSessionState_t.m_bConnecting == 1)
            {
            }
            if (p2PSessionState_t.m_bConnectionActive == 0)
            {
                this.Close(steamIDRemote);
            }
            this._connectionStateMap[steamIDRemote] = NetSocialModule.ConnectionState.Authenticating;
            this._connectionAcceptedCallback(new SocialSocket(new SteamAddress(steamIDRemote)));
        }
Ejemplo n.º 3
0
 static void OnFriendAdded(SteamFriends.FriendAddedCallback callback)
 {
     if (steamFriends.GetFriendRelationship(callback.SteamID) == EFriendRelationship.Friend)
     {
         steamFriends.SendChatMessage(callback.SteamID, EChatEntryType.ChatMsg, ChatMessages.WelcomeMsg);
     }
 }
Ejemplo n.º 4
0
        public bool IsFriend(Gamer gamer)
        {
            EFriendRelationship efr = SteamFriends.GetFriendRelationship(gamer.steamID);

            return(efr == EFriendRelationship.k_EFriendRelationshipFriend ||
                   efr == EFriendRelationship.k_EFriendRelationshipIgnoredFriend);
        }
Ejemplo n.º 5
0
        public FriendCollection GetFriends()
        {
            EFriendFlags flags = (
                EFriendFlags.k_EFriendFlagImmediate |
                EFriendFlags.k_EFriendFlagRequestingFriendship |
                EFriendFlags.k_EFriendFlagFriendshipRequested
                );
            int friendCount            = SteamFriends.GetFriendCount(flags);
            List <FriendGamer> friends = new List <FriendGamer>(friendCount);

            for (int i = 0; i < friendCount; i += 1)
            {
                CSteamID            id           = SteamFriends.GetFriendByIndex(i, flags);
                EFriendRelationship relationship = SteamFriends.GetFriendRelationship(id);
                EPersonaState       state        = SteamFriends.GetFriendPersonaState(id);
                FriendGameInfo_t    whoCares;
                friends.Add(new FriendGamer(
                                id,
                                SteamFriends.GetFriendPersonaName(id),
                                SteamFriends.GetPlayerNickname(id),
                                state != EPersonaState.k_EPersonaStateOffline,
                                SteamFriends.GetFriendGamePlayed(id, out whoCares),
                                state == EPersonaState.k_EPersonaStateAway,
                                state == EPersonaState.k_EPersonaStateBusy,
                                relationship == EFriendRelationship.k_EFriendRelationshipRequestRecipient,
                                relationship == EFriendRelationship.k_EFriendRelationshipRequestInitiator
                                ));
            }
            return(new FriendCollection(friends));
        }
Ejemplo n.º 6
0
        void OnPersonaStateChanged(PersonaStateChange_t param)
        {
            var player = GetSteamPlayer(new CSteamID(param.m_ulSteamID));

            if (player != null)
            {
                player.InternalPersonaChanged(param);
            }

            if ((param.m_nChangeFlags & EPersonaChange.k_EPersonaChangeRelationshipChanged) != 0)
            {
                var steamID      = new CSteamID(param.m_ulSteamID);
                var relationship = SteamFriends.GetFriendRelationship(steamID);
                if ((relationship == EFriendRelationship.k_EFriendRelationshipFriend) || (relationship == EFriendRelationship.k_EFriendRelationshipNone))
                {
                    if (player == null)
                    {
                        player = CreateSteamPlayer(steamID);
                    }
                    if (relationship == EFriendRelationship.k_EFriendRelationshipFriend)
                    {
                        FriendshipChanged(player, EOnlinePlayerChangedFlags.FriendAdded);
                    }
                    else
                    {
                        FriendshipChanged(player, EOnlinePlayerChangedFlags.FriendRemoved);
                    }
                }
            }

            if (player != null)
            {
                player.Dispose();
            }
        }
Ejemplo n.º 7
0
        static EOnlinePlayerChangedFlags GetChangedFlags(PersonaStateChange_t param)
        {
            EOnlinePlayerChangedFlags flags = 0;

            if ((param.m_nChangeFlags & EPersonaChange.k_EPersonaChangeAvatar) != 0)
            {
                flags |= EOnlinePlayerChangedFlags.Avatar;
            }
            if ((param.m_nChangeFlags & EPersonaChange.k_EPersonaChangeStatus) != 0)
            {
                flags |= EOnlinePlayerChangedFlags.Status;
            }
            if ((param.m_nChangeFlags & (EPersonaChange.k_EPersonaChangeName | EPersonaChange.k_EPersonaChangeNickname)) != 0)
            {
                flags |= EOnlinePlayerChangedFlags.Name;
            }
            if ((param.m_nChangeFlags & EPersonaChange.k_EPersonaChangeRelationshipChanged) != 0)
            {
                var relationship = SteamFriends.GetFriendRelationship(new CSteamID(param.m_ulSteamID));
                switch (relationship)
                {
                case EFriendRelationship.k_EFriendRelationshipFriend:
                    flags |= EOnlinePlayerChangedFlags.FriendAdded;
                    break;

                case EFriendRelationship.k_EFriendRelationshipNone:
                    flags |= EOnlinePlayerChangedFlags.FriendRemoved;
                    break;
                }
            }

            return(flags);
        }
Ejemplo n.º 8
0
        private void OnP2PSessionRequest(P2PSessionRequest_t result)
        {
            var steamIdRemote = (CSteamID)result.m_steamIDRemote;

            if (this._connectionStateMap.ContainsKey(steamIdRemote) && this._connectionStateMap[steamIdRemote] !=
                NetSocialModule.ConnectionState.Inactive)
            {
                SteamNetworking.AcceptP2PSessionWithUser(steamIdRemote);
            }
            else
            {
                if (!this._acceptingClients || !this._mode.HasFlag((Enum)ServerMode.FriendsOfFriends) &&
                    SteamFriends.GetFriendRelationship(steamIdRemote) != (EFriendRelationship)3)
                {
                    return;
                }
                SteamNetworking.AcceptP2PSessionWithUser(steamIdRemote);
                P2PSessionState_t p2PsessionStateT;
                do
                {
                    ;
                }while (SteamNetworking.GetP2PSessionState(steamIdRemote, out p2PsessionStateT) &&
                        p2PsessionStateT.m_bConnecting == 1);
                if (p2PsessionStateT.m_bConnectionActive == null)
                {
                    this.Close(steamIdRemote);
                }
                this._connectionStateMap[steamIdRemote] = NetSocialModule.ConnectionState.Authenticating;
                this._connectionAcceptedCallback(
                    (ISocket) new SocialSocket((RemoteAddress) new SteamAddress(steamIdRemote)));
            }
        }
Ejemplo n.º 9
0
        private void _sendChatToEveryone(string msg)
        {
            foreach (UserHandler h in userHandlers.Values)
            {
                if (SteamFriends.GetFriendRelationship(h.OtherSID) != EFriendRelationship.Friend)
                {
                    continue;
                }

                h.SendChatMessage(msg);
            }
        }
Ejemplo n.º 10
0
Archivo: Bot.cs Proyecto: xaustinx/Mist
        public void LoadFriends()
        {
            ListFriends.Clear();
            var steamListFriends = new List <SteamID>();

            Console.WriteLine("Loading all friends...");
            for (int count = 0; count < SteamFriends.GetFriendCount(); count++)
            {
                steamListFriends.Add(SteamFriends.GetFriendByIndex(count));
                Thread.Sleep(25);
            }
            for (int count = 0; count < steamListFriends.Count; count++)
            {
                var friendID = steamListFriends[count];
                if (SteamFriends.GetFriendRelationship(friendID) == EFriendRelationship.Friend)
                {
                    var friendName     = SteamFriends.GetFriendPersonaName(friendID);
                    var friendNickname = PlayerNicknames.ContainsKey(friendID) ? "(" + PlayerNicknames[friendID] + ")" : "";
                    var friendState    = SteamFriends.GetFriendPersonaState(friendID).ToString();
                    ListFriends.Add(friendName, friendID, friendNickname, friendState);
                }
            }
            foreach (var item in ListFriends.Get())
            {
                if (ListFriendRequests.Find(item.SID))
                {
                    Console.WriteLine("Found friend {0} in list of friend requests, so let's remove the user.", item.Name);
                    // Not a friend request, so let's remove it
                    ListFriendRequests.Remove(item.SID);
                }
            }
            foreach (var item in ListFriendRequests.Get())
            {
                if (item.Name == "[unknown]")
                {
                    string name = SteamFriends.GetFriendPersonaName(item.SteamID);
                    ListFriendRequests.Remove(item.SteamID);
                    ListFriendRequests.Add(name, item.SteamID);
                }
                if (item.Name == "")
                {
                    string name = SteamFriends.GetFriendPersonaName(item.SteamID);
                    ListFriendRequests.Remove(item.SteamID);
                    ListFriendRequests.Add(name, item.SteamID);
                }
            }
            Console.WriteLine("Done! {0} friends.", ListFriends.Get().Count);
        }
Ejemplo n.º 11
0
 public void resetIOMemberList()
 {        //fixit!
     this.Invoke(new MethodInvoker(delegate()
     {
         SteamFriends steamFriends = this.core.Steam.SteamFriends;
         this.IOUserGridView.Rows.Clear();
         this.focusChatRoomLabel.Text = "To. " + (this.core.ChatInterface.FocusChatMember != null ? this.core.ChatInterface.FocusChatMember.Name : "");
         foreach (SteamID member in this.core.ChatInterface.ChatIOMembers)
         {
             Color foreColor = UserStateOnlineColor;
             string[] temp   = new string[2];
             temp[0]         = steamFriends.GetFriendPersonaName(member);
             if (steamFriends.GetFriendGamePlayedName(member) == null || steamFriends.GetFriendGamePlayedName(member).Equals(""))
             {
                 temp[1] = steamFriends.GetFriendPersonaState(member).ToString();
                 if (steamFriends.GetFriendPersonaState(member) == EPersonaState.Offline)
                 {
                     foreColor = UserStateOfflineColor;
                 }
             }
             else
             {
                 temp[1]   = steamFriends.GetFriendGamePlayedName(member);
                 foreColor = UserStateGamingColor;
             }
             int index = this.IOUserGridView.Rows.Add(temp);
             if (steamFriends.GetFriendRelationship(member) == EFriendRelationship.Friend)
             {
                 this.IOUserGridView[0, index].Style.Font = new Font(SystemFonts.DefaultFont, FontStyle.Bold);
             }
             this.IOUserGridView[1, index].Style.ForeColor = foreColor;
             if (this.core.ChatInterface.FocusChatMember != null && this.core.ChatInterface.FocusChatMember.ChattingMember.Contains(member))
             {
                 this.IOUserGridView[0, index].Style.BackColor = FocusIOUserColor;
                 this.IOUserGridView[1, index].Style.BackColor = FocusIOUserColor;
             }
             this.IOUserGridView.ClearSelection();
         }
     }));
 }
Ejemplo n.º 12
0
 public bool IsAcceptingFriendship()
 {
     return(SteamFriends.GetFriendRelationship(this.SteamID) == EFriendRelationship.RequestInitiator);
 }
Ejemplo n.º 13
0
    private void RenderPageOne()
    {
        GUILayout.Label("SteamFriends.GetPersonaName() : " + SteamFriends.GetPersonaName());

        if (GUILayout.Button("SteamFriends.SetPersonaName(SteamFriends.GetPersonaName())"))
        {
            SteamAPICall_t handle = SteamFriends.SetPersonaName(SteamFriends.GetPersonaName());
            OnSetPersonaNameResponseCallResult.Set(handle);
            print("SteamFriends.SetPersonaName(" + SteamFriends.GetPersonaName() + ") : " + handle);
        }

        GUILayout.Label("SteamFriends.GetPersonaState() : " + SteamFriends.GetPersonaState());
        GUILayout.Label("SteamFriends.GetFriendCount(k_EFriendFlagImmediate) : " + SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate));
        if (SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate) == 0)
        {
            Debug.LogError("You must have atleast one friend to use this Test");
            return;
        }

        m_Friend = SteamFriends.GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate);
        GUILayout.Label("SteamFriends.GetFriendByIndex(0, k_EFriendFlagImmediate) : " + m_Friend);
        GUILayout.Label("SteamFriends.GetFriendRelationship(m_Friend) : " + SteamFriends.GetFriendRelationship(m_Friend));
        GUILayout.Label("SteamFriends.GetFriendPersonaState(m_Friend) : " + SteamFriends.GetFriendPersonaState(m_Friend));
        GUILayout.Label("SteamFriends.GetFriendPersonaName(m_Friend) : " + SteamFriends.GetFriendPersonaName(m_Friend));

        {
            var  fgi = new FriendGameInfo_t();
            bool ret = SteamFriends.GetFriendGamePlayed(m_Friend, out fgi);
            GUILayout.Label("SteamFriends.GetFriendGamePlayed(m_Friend, out fgi) : " + ret + " -- " + fgi.m_gameID + " -- " + fgi.m_unGameIP + " -- " + fgi.m_usGamePort + " -- " + fgi.m_usQueryPort + " -- " + fgi.m_steamIDLobby);
        }


        GUILayout.Label("SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1) : " + SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1));
        GUILayout.Label("SteamFriends.GetFriendSteamLevel(m_Friend) : " + SteamFriends.GetFriendSteamLevel(m_Friend));
        GUILayout.Label("SteamFriends.GetPlayerNickname(m_Friend) : " + SteamFriends.GetPlayerNickname(m_Friend));

        {
            int FriendsGroupCount = SteamFriends.GetFriendsGroupCount();
            GUILayout.Label("SteamFriends.GetFriendsGroupCount() : " + FriendsGroupCount);

            if (FriendsGroupCount > 0)
            {
                FriendsGroupID_t FriendsGroupID = SteamFriends.GetFriendsGroupIDByIndex(0);
                GUILayout.Label("SteamFriends.GetFriendsGroupIDByIndex(0) : " + FriendsGroupID);
                GUILayout.Label("SteamFriends.GetFriendsGroupName(FriendsGroupID) : " + SteamFriends.GetFriendsGroupName(FriendsGroupID));

                int FriendsGroupMembersCount = SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID);
                GUILayout.Label("SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID) : " + FriendsGroupMembersCount);

                if (FriendsGroupMembersCount > 0)
                {
                    CSteamID[] FriendsGroupMembersList = new CSteamID[FriendsGroupMembersCount];
                    SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount);
                    GUILayout.Label("SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount) : " + FriendsGroupMembersList[0]);
                }
            }
        }

        GUILayout.Label("SteamFriends.HasFriend(m_Friend, k_EFriendFlagImmediate) : " + SteamFriends.HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate));

        GUILayout.Label("SteamFriends.GetClanCount() : " + SteamFriends.GetClanCount());
        if (SteamFriends.GetClanCount() == 0)
        {
            Debug.LogError("You must have atleast one clan to use this Test");
            return;
        }

        m_Clan = SteamFriends.GetClanByIndex(0);
        GUILayout.Label("SteamFriends.GetClanByIndex(0) : " + m_Clan);
        GUILayout.Label("SteamFriends.GetClanName(m_Clan) : " + SteamFriends.GetClanName(m_Clan));
        GUILayout.Label("SteamFriends.GetClanTag(m_Clan) : " + SteamFriends.GetClanTag(m_Clan));

        {
            int  Online;
            int  InGame;
            int  Chatting;
            bool ret = SteamFriends.GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting);
            GUILayout.Label("SteamFriends.GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting) : " + ret + " -- " + Online + " -- " + InGame + " -- " + Chatting);
        }

        if (GUILayout.Button("SteamFriends.DownloadClanActivityCounts(m_Clans, 2)"))
        {
            CSteamID[]     Clans  = { m_Clan, new CSteamID(103582791434672565) }; // m_Clan, Steam Universe
            SteamAPICall_t handle = SteamFriends.DownloadClanActivityCounts(Clans, 2);
            OnDownloadClanActivityCountsResultCallResult.Set(handle);             // This call never seems to produce a callback.
            print("SteamFriends.DownloadClanActivityCounts(" + Clans + ", 2) : " + handle);
        }

        {
            int FriendCount = SteamFriends.GetFriendCountFromSource(m_Clan);
            GUILayout.Label("SteamFriends.GetFriendCountFromSource(m_Clan) : " + FriendCount);

            if (FriendCount > 0)
            {
                GUILayout.Label("SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0) : " + SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0));
            }
        }

        GUILayout.Label("SteamFriends.IsUserInSource(m_Friend, m_Clan) : " + SteamFriends.IsUserInSource(m_Friend, m_Clan));

        if (GUILayout.Button("SteamFriends.SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false)"))
        {
            SteamFriends.SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false);
            print("SteamClient.SetInGameVoiceSpeaking(" + SteamUser.GetSteamID() + ", false);");
        }

        if (GUILayout.Button("SteamFriends.ActivateGameOverlay(\"Friends\")"))
        {
            SteamFriends.ActivateGameOverlay("Friends");
            print("SteamClient.ActivateGameOverlay(\"Friends\")");
        }

        if (GUILayout.Button("SteamFriends.ActivateGameOverlayToUser(\"friendadd\", 76561197991230424)"))
        {
            SteamFriends.ActivateGameOverlayToUser("friendadd", new CSteamID(76561197991230424));             // rlabrecque
            print("SteamClient.ActivateGameOverlay(\"friendadd\", 76561197991230424)");
        }

        if (GUILayout.Button("SteamFriends.ActivateGameOverlayToWebPage(\"http://google.com\")"))
        {
            SteamFriends.ActivateGameOverlayToWebPage("http://google.com");
            print("SteamClient.ActivateGameOverlay(\"http://google.com\")");
        }

        if (GUILayout.Button("SteamFriends.ActivateGameOverlayToStore(440, k_EOverlayToStoreFlag_None)"))
        {
            SteamFriends.ActivateGameOverlayToStore((AppId_t)440, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None);             // 440 = TF2
            print("SteamClient.ActivateGameOverlay(440, k_EOverlayToStoreFlag_None)");
        }

        if (GUILayout.Button("SteamFriends.SetPlayedWith(76561197991230424)"))
        {
            SteamFriends.SetPlayedWith(new CSteamID(76561197991230424));             //rlabrecque
            print("SteamClient.SetPlayedWith(76561197991230424)");
        }

        if (GUILayout.Button("SteamFriends.ActivateGameOverlayInviteDialog(76561197991230424)"))
        {
            SteamFriends.ActivateGameOverlayInviteDialog(new CSteamID(76561197991230424));             //rlabrecque
            print("SteamClient.ActivateGameOverlayInviteDialog(76561197991230424)");
        }

        if (GUILayout.Button("SteamFriends.GetSmallFriendAvatar(m_Friend)"))
        {
            int FriendAvatar = SteamFriends.GetSmallFriendAvatar(m_Friend);
            print("SteamFriends.GetSmallFriendAvatar(" + m_Friend + ") - " + FriendAvatar);

            uint ImageWidth;
            uint ImageHeight;
            bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight);

            if (ret && ImageWidth > 0 && ImageHeight > 0)
            {
                byte[] Image = new byte[ImageWidth * ImageHeight * 4];

                ret = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4));

                m_SmallAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true);
                m_SmallAvatar.LoadRawTextureData(Image);                 // The image is upside down! "@ares_p: in Unity all texture data starts from "bottom" (OpenGL convention)"
                m_SmallAvatar.Apply();
            }
        }

        if (GUILayout.Button("SteamFriends.GetMediumFriendAvatar(m_Friend)"))
        {
            int FriendAvatar = SteamFriends.GetMediumFriendAvatar(m_Friend);
            print("SteamFriends.GetMediumFriendAvatar(" + m_Friend + ") - " + FriendAvatar);

            uint ImageWidth;
            uint ImageHeight;
            bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight);

            if (ret && ImageWidth > 0 && ImageHeight > 0)
            {
                byte[] Image = new byte[ImageWidth * ImageHeight * 4];

                ret            = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4));
                m_MediumAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true);
                m_MediumAvatar.LoadRawTextureData(Image);
                m_MediumAvatar.Apply();
            }
        }

        if (GUILayout.Button("SteamFriends.GetLargeFriendAvatar(m_Friend)"))
        {
            int FriendAvatar = SteamFriends.GetLargeFriendAvatar(m_Friend);
            print("SteamFriends.GetLargeFriendAvatar(" + m_Friend + ") - " + FriendAvatar);

            uint ImageWidth;
            uint ImageHeight;
            bool ret = SteamUtils.GetImageSize(FriendAvatar, out ImageWidth, out ImageHeight);

            if (ret && ImageWidth > 0 && ImageHeight > 0)
            {
                byte[] Image = new byte[ImageWidth * ImageHeight * 4];

                ret = SteamUtils.GetImageRGBA(FriendAvatar, Image, (int)(ImageWidth * ImageHeight * 4));
                if (ret)
                {
                    m_LargeAvatar = new Texture2D((int)ImageWidth, (int)ImageHeight, TextureFormat.RGBA32, false, true);
                    m_LargeAvatar.LoadRawTextureData(Image);
                    m_LargeAvatar.Apply();
                }
            }
        }
    }
Ejemplo n.º 14
0
        public override void OnEnter()
        {
            ulong    ID = ulong.Parse(this.steamID.Value);
            CSteamID steamID;

            steamID.m_SteamID = ID;
            switch (SteamFriends.GetFriendRelationship(steamID))
            {
            case EFriendRelationship.k_EFriendRelationshipNone:
                Fsm.Event(none);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "None";
                }
                if (index != null)
                {
                    index.Value = 0;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipBlocked:
                Fsm.Event(blocked);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Blocked";
                }
                if (index != null)
                {
                    index.Value = 1;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipRequestRecipient:
                Fsm.Event(requestRecipient);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Request Recipient";
                }
                if (index != null)
                {
                    index.Value = 2;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipFriend:
                Fsm.Event(friend);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Friend";
                }
                if (index != null)
                {
                    index.Value = 3;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipRequestInitiator:
                Fsm.Event(requestInitiator);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Request Initiator";
                }
                if (index != null)
                {
                    index.Value = 4;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipIgnored:
                Fsm.Event(ignored);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Ignored";
                }
                if (index != null)
                {
                    index.Value = 5;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipIgnoredFriend:
                Fsm.Event(ignoredFriend);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Ignored Friend";
                }
                if (index != null)
                {
                    index.Value = 6;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipSuggested_DEPRECATED:
                Fsm.Event(Suggested_DEPRECATED);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Suggested";
                }
                if (index != null)
                {
                    index.Value = 7;
                }
                break;

            case EFriendRelationship.k_EFriendRelationshipMax:
                Fsm.Event(max);
                if (friendRelationship != null)
                {
                    friendRelationship.Value = "Max";
                }
                if (index != null)
                {
                    index.Value = 8;
                }
                break;
            }
            Finish();
        }
Ejemplo n.º 15
0
 public EFriendRelationship GetRelationship(SteamID s) => steam_friends.GetFriendRelationship(s);
        private void OnP2PSessionRequest(P2PSessionRequest_t result)
        {
            CSteamID steamIDRemote = result.m_steamIDRemote;

            if (_connectionStateMap.ContainsKey(steamIDRemote) && _connectionStateMap[steamIDRemote] != 0)
            {
                SteamNetworking.AcceptP2PSessionWithUser(steamIDRemote);
            }
            else if (_acceptingClients && (_mode.HasFlag(ServerMode.FriendsOfFriends) || SteamFriends.GetFriendRelationship(steamIDRemote) == EFriendRelationship.k_EFriendRelationshipFriend))
            {
                SteamNetworking.AcceptP2PSessionWithUser(steamIDRemote);
                P2PSessionState_t pConnectionState;
                while (SteamNetworking.GetP2PSessionState(steamIDRemote, out pConnectionState) && pConnectionState.m_bConnecting == 1)
                {
                }
                if (pConnectionState.m_bConnectionActive == 0)
                {
                    Close(steamIDRemote);
                }
                _connectionStateMap[steamIDRemote] = ConnectionState.Authenticating;
                _connectionAcceptedCallback(new SocialSocket(new SteamAddress(steamIDRemote)));
            }
        }
Ejemplo n.º 17
0
        private void OnP2PSessionRequest(P2PSessionRequest_t result)
        {
            //IL_0000: Unknown result type (might be due to invalid IL or missing references)
            //IL_0001: Unknown result type (might be due to invalid IL or missing references)
            //IL_0006: Unknown result type (might be due to invalid IL or missing references)
            //IL_000d: Unknown result type (might be due to invalid IL or missing references)
            //IL_001b: Unknown result type (might be due to invalid IL or missing references)
            //IL_0023: Unknown result type (might be due to invalid IL or missing references)
            //IL_004c: Unknown result type (might be due to invalid IL or missing references)
            //IL_004d: Unknown result type (might be due to invalid IL or missing references)
            //IL_0053: Invalid comparison between Unknown and I4
            //IL_0056: Unknown result type (might be due to invalid IL or missing references)
            //IL_005d: Unknown result type (might be due to invalid IL or missing references)
            //IL_0067: Unknown result type (might be due to invalid IL or missing references)
            //IL_0070: Unknown result type (might be due to invalid IL or missing references)
            //IL_0079: Unknown result type (might be due to invalid IL or missing references)
            //IL_0085: Unknown result type (might be due to invalid IL or missing references)
            //IL_0092: Unknown result type (might be due to invalid IL or missing references)
            CSteamID steamIDRemote = result.m_steamIDRemote;

            if (_connectionStateMap.ContainsKey(steamIDRemote) && _connectionStateMap[steamIDRemote] != 0)
            {
                SteamNetworking.AcceptP2PSessionWithUser(steamIDRemote);
            }
            else if (_acceptingClients && (_mode.HasFlag(ServerMode.FriendsOfFriends) || (int)SteamFriends.GetFriendRelationship(steamIDRemote) == 3))
            {
                SteamNetworking.AcceptP2PSessionWithUser(steamIDRemote);
                P2PSessionState_t val = default(P2PSessionState_t);
                while (SteamNetworking.GetP2PSessionState(steamIDRemote, ref val) && val.m_bConnecting == 1)
                {
                }
                if (val.m_bConnectionActive == 0)
                {
                    Close(steamIDRemote);
                }
                _connectionStateMap[steamIDRemote] = ConnectionState.Authenticating;
                _connectionAcceptedCallback(new SocialSocket(new SteamAddress(steamIDRemote)));
            }
        }
Ejemplo n.º 18
0
        public void LoadFriends()
        {
            ListFriends.Clear();
            Console.WriteLine("Loading all friends...");
            for (int count = 0; count < SteamFriends.GetFriendCount(); count++)
            {
                var friendID    = SteamFriends.GetFriendByIndex(count);
                var friendName  = SteamFriends.GetFriendPersonaName(friendID);
                var friendState = SteamFriends.GetFriendPersonaState(friendID).ToString();
                if (friendState.ToString() != "Offline" && SteamFriends.GetFriendRelationship(friendID) == EFriendRelationship.Friend)
                {
                    string friend_name = friendName + " (" + friendID + ")" + Environment.NewLine + friendState;
                    ListFriends.Add(friendName, friendID, friendState);
                }
                Thread.Sleep(25);
            }
            for (int count = 0; count < SteamFriends.GetFriendCount(); count++)
            {
                var friendID    = SteamFriends.GetFriendByIndex(count);
                var friendName  = SteamFriends.GetFriendPersonaName(friendID);
                var friendState = SteamFriends.GetFriendPersonaState(friendID).ToString();
                if (friendState.ToString() == "Offline" && SteamFriends.GetFriendRelationship(friendID) == EFriendRelationship.Friend)
                {
                    ListFriends.Add(friendName, friendID, friendState);
                }
                Thread.Sleep(25);
            }
            bool newFriend = true;

            foreach (var item in ListFriends.Get())
            {
                if (ListFriendRequests.Find(item.SID))
                {
                    Console.WriteLine("Found friend {0} in list of friend requests, so let's remove the user.", item.Name);
                    // Not a friend request, so let's remove it
                    ListFriendRequests.Remove(item.SID);
                    newFriend = false;
                }
            }
            foreach (var item in ListFriendRequests.Get())
            {
                if (item.Name == "[unknown]")
                {
                    string name = SteamFriends.GetFriendPersonaName(item.SteamID);
                    ListFriendRequests.Remove(item.SteamID);
                    ListFriendRequests.Add(name, item.SteamID);
                }
                if (item.Name == "")
                {
                    string name = SteamFriends.GetFriendPersonaName(item.SteamID);
                    ListFriendRequests.Remove(item.SteamID);
                    ListFriendRequests.Add(name, item.SteamID);
                }
            }
            if (newFriend && ListFriendRequests.Get().Count != 0)
            {
                Console.WriteLine("Notifying about new friend request.");
                showFriends.NotifyFriendRequest();
                showFriends.list_friendreq.SetObjects(ListFriendRequests.Get());
            }
            Console.WriteLine("Done!");
        }
Ejemplo n.º 19
0
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.DarkCyan;

            System.Console.Title = "TradeBot";
            System.Console.WriteLine("Welcome to TradeBot!\nCreated by Jessecar.\nTurn of Steam Guard before loggin in!\n\n");

            Console.ForegroundColor = ConsoleColor.White;

            printConsole("Steam Username:"******"jessecar96"; //Console.ReadLine();

            System.Console.WriteLine("Steam Password: "******"Sorry, could not connect to Steam.");
                    }
                    steamUser.LogOn(new SteamUser.LogOnDetails
                    {
                        Username = username,
                        Password = password,
                    });
                });


                //Login Callback
                msg.Handle <SteamUser.LoggedOnCallback>(callback =>
                {
                    if (callback.Result != EResult.OK)
                    {
                        printConsole("Incorrect username or Password. Make sure you have disabled steam guard!");
                    }
                    else
                    {
                        printConsole("Connected to Steam!\nWelcome " + steamUser.SteamID);
                        steamFriends.SetPersonaName("ChatBot Beta (Say hi)");
                        steamFriends.SetPersonaState((EPersonaState)6);
                    }
                });

                //Chat Messages
                msg.Handle <SteamFriends.FriendMsgCallback>(callback =>
                {
                    EChatEntryType type = callback.EntryType;



                    if (type == EChatEntryType.ChatMsg)
                    {
                        SteamID sid = callback.Sender;

                        if (!clients.Contains(callback.Sender))
                        {
                            printConsole("[New Client]" + callback.Sender, ConsoleColor.Magenta);
                            clients.Add(callback.Sender);

                            steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "Welcome to TradeBot created by Jessecar.  To see a list of commands type /help");
                        }

                        if (callback.Message.StartsWith("/"))
                        {
                            string message = callback.Message.Replace("/", "");

                            printConsole("[Command]" + callback.Sender + " (" + steamFriends.GetFriendPersonaName(callback.Sender) + "): " + message, ConsoleColor.Magenta);
                            //string[] args = .Split(" ");

                            string[] words = message.Split(new char[] { ' ' }, 2);

                            switch (words[0])
                            {
                            case "trade":
                                //Send a trade
                                trade.RequestTrade(callback.Sender);
                                printConsole("Trade requested by " + callback.Sender + " (" + steamFriends.GetFriendPersonaName(callback.Sender) + ")", ConsoleColor.Green);
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.Emote, "initiated a trade request.");
                                break;

                            case "remove":
                                //Remove Friend
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "Thank you for using the Steam TradeBot BETA.");
                                steamFriends.RemoveFriend(callback.Sender);
                                printConsole("[Friend] Friend Removed: " + callback.Sender + " (" + steamFriends.GetFriendPersonaName(callback.Sender) + ")", ConsoleColor.Yellow);
                                break;

                            case "status":
                                //get status (nothing)
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.Emote, "is Online and working good.");
                                break;

                            case "hi":
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.Emote, "says hello.");
                                break;

                            case "help":
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "\nList Of Commands:\n/trade - Start a trade.\n/remove - Remove TradeBot from your friends.\n/hi - say hello");
                                break;

                            case "name":
                                if (checkAdmin(sid))
                                {
                                    steamFriends.SetPersonaName(words[1]);
                                }
                                break;

                            case "send":
                                string[] wrds = message.Split(new char[] { ' ' }, 3);

                                int index = int.Parse(wrds[1]);

                                if (index < clients.Count() && index >= 0)
                                {
                                    steamFriends.SendChatMessage(clients[index], EChatEntryType.ChatMsg, wrds[2]);
                                }
                                else
                                {
                                    steamFriends.SendChatMessage(callback.Sender, EChatEntryType.Emote, "Error: index out of bounds.");
                                }

                                break;

                            default:
                                printConsole("[Error]Unknown command from " + callback.Sender + ": " + callback.Message, ConsoleColor.Red);
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.Emote, "doesn't know that command.");
                                break;
                            }
                        }
                        else
                        {
                            printConsole("[Chat][" + getIndex(sid) + "]" + callback.Sender + ": " + " (" + steamFriends.GetFriendPersonaName(callback.Sender) + ")" + callback.Message, ConsoleColor.Magenta);
                            if ((callback.Message != "hi" || callback.Message != "hello") && clients.Contains(callback.Sender))
                            {
                                steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "You Said: " + callback.Message);
                            }
                        }
                    }
                    else if (type == EChatEntryType.Emote)
                    {
                        printConsole("[Emote]" + callback.Sender + ": " + callback.Message, ConsoleColor.DarkMagenta);
                    }
                });

                msg.Handle <SteamTrading.TradeProposedCallback>(callback =>
                {
                    SteamID sid = callback.Other;
                    //trade.RespondTradeRequest(callback.TradeRequestId, sid, true);
                    //trade.HandleMsg((IPacketMsg)EMsg.EconTrading_InitiateTradeProposed);
                });

                msg.Handle <SteamTrading.TradeRequestCallback>(callback =>
                {
                    printConsole("[Trade] Trade Status with " + callback.Other + " (" + steamFriends.GetFriendPersonaName(callback.Other) + "): " + callback.Status.ToString(), ConsoleColor.Green);
                    if (callback.Status == ETradeStatus.Rejected)
                    {
                        printConsole("[Trade] Trade rejected by " + callback.Other + " (" + steamFriends.GetFriendPersonaName(callback.Other) + ")", ConsoleColor.DarkRed);
                        steamFriends.SendChatMessage(callback.Other, EChatEntryType.Emote, "detected that you rejected that trade.");
                    }
                    //trade.RespondTradeRequest(callback.TradeRequestId, callback.Other, true);
                });

                msg.Handle <SteamTrading.TradeStartSessionCallback>(callback =>
                {
                    //callback.Other
                });

                msg.Handle <SteamFriends.PersonaStateCallback>(callback =>
                {
                    if (callback.FriendID == steamUser.SteamID)
                    {
                        return;
                    }

                    EFriendRelationship relationship = steamFriends.GetFriendRelationship(callback.FriendID);
                    if (!(relationship == EFriendRelationship.RequestRecipient))
                    {
                        return;
                    }

                    printConsole("[Friend] Added Friend: " + callback.FriendID + "(" + steamFriends.GetFriendPersonaName(callback.FriendID) + ")", ConsoleColor.Yellow);
                    steamFriends.AddFriend(callback.FriendID);
                });
            }
        }
Ejemplo n.º 20
0
    public void RenderOnGUI()
    {
        GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height));
        GUILayout.Label("Variables:");
        GUILayout.Label("m_Friend: " + m_Friend);
        GUILayout.Label("m_Clan: " + m_Clan);
        GUILayout.Label("m_CoPlayFriend: " + m_CoPlayFriend);
        GUILayout.Label("m_SmallAvatar:");
        GUILayout.Label(m_SmallAvatar);
        GUILayout.Label("m_MediumAvatar:");
        GUILayout.Label(m_MediumAvatar);
        GUILayout.Label("m_LargeAvatar:");
        GUILayout.Label(m_LargeAvatar);
        GUILayout.EndArea();

        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        GUILayout.Label("GetPersonaName() : " + SteamFriends.GetPersonaName());

        if (GUILayout.Button("SetPersonaName(SteamFriends.GetPersonaName())"))
        {
            SteamAPICall_t handle = SteamFriends.SetPersonaName(SteamFriends.GetPersonaName());
            OnSetPersonaNameResponseCallResult.Set(handle);
            print("SteamFriends.SetPersonaName(" + SteamFriends.GetPersonaName() + ") : " + handle);
        }

        GUILayout.Label("GetPersonaState() : " + SteamFriends.GetPersonaState());

        GUILayout.Label("GetFriendCount(EFriendFlags.k_EFriendFlagImmediate) : " + SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate));

        {
            m_Friend = SteamFriends.GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate);
            GUILayout.Label("GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate) : " + m_Friend);
        }

        GUILayout.Label("GetFriendRelationship(m_Friend) : " + SteamFriends.GetFriendRelationship(m_Friend));

        GUILayout.Label("GetFriendPersonaState(m_Friend) : " + SteamFriends.GetFriendPersonaState(m_Friend));

        GUILayout.Label("GetFriendPersonaName(m_Friend) : " + SteamFriends.GetFriendPersonaName(m_Friend));

        {
            var  fgi = new FriendGameInfo_t();
            bool ret = SteamFriends.GetFriendGamePlayed(m_Friend, out fgi);
            GUILayout.Label("GetFriendGamePlayed(m_Friend, out fgi) : " + ret + " -- " + fgi.m_gameID + " -- " + fgi.m_unGameIP + " -- " + fgi.m_usGamePort + " -- " + fgi.m_usQueryPort + " -- " + fgi.m_steamIDLobby);
        }

        GUILayout.Label("GetFriendPersonaNameHistory(m_Friend, 1) : " + SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1));

        GUILayout.Label("GetFriendSteamLevel(m_Friend) : " + SteamFriends.GetFriendSteamLevel(m_Friend));

        GUILayout.Label("GetPlayerNickname(m_Friend) : " + SteamFriends.GetPlayerNickname(m_Friend));

        {
            int FriendsGroupCount = SteamFriends.GetFriendsGroupCount();
            GUILayout.Label("GetFriendsGroupCount() : " + FriendsGroupCount);

            if (FriendsGroupCount > 0)
            {
                FriendsGroupID_t FriendsGroupID = SteamFriends.GetFriendsGroupIDByIndex(0);
                GUILayout.Label("SteamFriends.GetFriendsGroupIDByIndex(0) : " + FriendsGroupID);

                GUILayout.Label("GetFriendsGroupName(FriendsGroupID) : " + SteamFriends.GetFriendsGroupName(FriendsGroupID));

                int FriendsGroupMembersCount = SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID);
                GUILayout.Label("GetFriendsGroupMembersCount(FriendsGroupID) : " + FriendsGroupMembersCount);

                if (FriendsGroupMembersCount > 0)
                {
                    CSteamID[] FriendsGroupMembersList = new CSteamID[FriendsGroupMembersCount];
                    SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount);
                    GUILayout.Label("GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount) : " + FriendsGroupMembersList[0]);
                }
            }
        }

        GUILayout.Label("HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate) : " + SteamFriends.HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate));

        GUILayout.Label("GetClanCount() : " + SteamFriends.GetClanCount());

        m_Clan = SteamFriends.GetClanByIndex(0);
        GUILayout.Label("GetClanByIndex(0) : " + m_Clan);

        GUILayout.Label("GetClanName(m_Clan) : " + SteamFriends.GetClanName(m_Clan));

        GUILayout.Label("GetClanTag(m_Clan) : " + SteamFriends.GetClanTag(m_Clan));

        {
            int  Online;
            int  InGame;
            int  Chatting;
            bool ret = SteamFriends.GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting);
            GUILayout.Label("GetClanActivityCounts(m_Clan, out Online, out InGame, out Chatting) : " + ret + " -- " + Online + " -- " + InGame + " -- " + Chatting);
        }

        if (GUILayout.Button("DownloadClanActivityCounts(Clans, Clans.Length)"))
        {
            CSteamID[]     Clans  = { m_Clan, TestConstants.Instance.k_SteamId_Group_SteamUniverse };
            SteamAPICall_t handle = SteamFriends.DownloadClanActivityCounts(Clans, Clans.Length);
            OnDownloadClanActivityCountsResultCallResult.Set(handle);             // This call never seems to produce the CallResult.
            print("SteamFriends.DownloadClanActivityCounts(" + Clans + ", " + Clans.Length + ") : " + handle);
        }

        {
            int FriendCount = SteamFriends.GetFriendCountFromSource(m_Clan);
            GUILayout.Label("GetFriendCountFromSource(m_Clan) : " + FriendCount);

            if (FriendCount > 0)
            {
                GUILayout.Label("GetFriendFromSourceByIndex(m_Clan, 0) : " + SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0));
            }
        }

        GUILayout.Label("IsUserInSource(m_Friend, m_Clan) : " + SteamFriends.IsUserInSource(m_Friend, m_Clan));

        if (GUILayout.Button("SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false)"))
        {
            SteamFriends.SetInGameVoiceSpeaking(SteamUser.GetSteamID(), false);
            print("SteamFriends.SetInGameVoiceSpeaking(" + SteamUser.GetSteamID() + ", " + false + ")");
        }

        if (GUILayout.Button("ActivateGameOverlay(\"Friends\")"))
        {
            SteamFriends.ActivateGameOverlay("Friends");
            print("SteamFriends.ActivateGameOverlay(" + "\"Friends\"" + ")");
        }

        if (GUILayout.Button("ActivateGameOverlayToUser(\"friendadd\", TestConstants.Instance.k_SteamId_rlabrecque)"))
        {
            SteamFriends.ActivateGameOverlayToUser("friendadd", TestConstants.Instance.k_SteamId_rlabrecque);
            print("SteamFriends.ActivateGameOverlayToUser(" + "\"friendadd\"" + ", " + TestConstants.Instance.k_SteamId_rlabrecque + ")");
        }

        if (GUILayout.Button("ActivateGameOverlayToWebPage(\"http://steamworks.github.io\")"))
        {
            SteamFriends.ActivateGameOverlayToWebPage("http://steamworks.github.io");
            print("SteamFriends.ActivateGameOverlayToWebPage(" + "\"http://steamworks.github.io\"" + ")");
        }

        if (GUILayout.Button("ActivateGameOverlayToStore(TestConstants.Instance.k_AppId_TeamFortress2, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None)"))
        {
            SteamFriends.ActivateGameOverlayToStore(TestConstants.Instance.k_AppId_TeamFortress2, EOverlayToStoreFlag.k_EOverlayToStoreFlag_None);
            print("SteamFriends.ActivateGameOverlayToStore(" + TestConstants.Instance.k_AppId_TeamFortress2 + ", " + EOverlayToStoreFlag.k_EOverlayToStoreFlag_None + ")");
        }

        if (GUILayout.Button("SetPlayedWith(TestConstants.Instance.k_SteamId_rlabrecque)"))
        {
            SteamFriends.SetPlayedWith(TestConstants.Instance.k_SteamId_rlabrecque);
            print("SteamFriends.SetPlayedWith(" + TestConstants.Instance.k_SteamId_rlabrecque + ")");
        }

        if (GUILayout.Button("ActivateGameOverlayInviteDialog(TestConstants.Instance.k_SteamId_rlabrecque)"))
        {
            SteamFriends.ActivateGameOverlayInviteDialog(TestConstants.Instance.k_SteamId_rlabrecque);
            print("SteamFriends.ActivateGameOverlayInviteDialog(" + TestConstants.Instance.k_SteamId_rlabrecque + ")");
        }

        if (GUILayout.Button("GetSmallFriendAvatar(m_Friend)"))
        {
            int ret = SteamFriends.GetSmallFriendAvatar(m_Friend);
            print("SteamFriends.GetSmallFriendAvatar(" + m_Friend + ") : " + ret);
            m_SmallAvatar = SteamUtilsTest.GetSteamImageAsTexture2D(ret);
        }

        if (GUILayout.Button("GetMediumFriendAvatar(m_Friend)"))
        {
            int ret = SteamFriends.GetMediumFriendAvatar(m_Friend);
            print("SteamFriends.GetMediumFriendAvatar(" + m_Friend + ") : " + ret);
            m_MediumAvatar = SteamUtilsTest.GetSteamImageAsTexture2D(ret);
        }

        if (GUILayout.Button("GetLargeFriendAvatar(m_Friend)"))
        {
            int ret = SteamFriends.GetLargeFriendAvatar(m_Friend);
            print("SteamFriends.GetLargeFriendAvatar(" + m_Friend + ") : " + ret);
            m_LargeAvatar = SteamUtilsTest.GetSteamImageAsTexture2D(ret);
        }

        if (GUILayout.Button("RequestUserInformation(m_Friend, false)"))
        {
            bool ret = SteamFriends.RequestUserInformation(m_Friend, false);
            print("SteamFriends.RequestUserInformation(" + m_Friend + ", " + false + ") : " + ret);
        }

        if (GUILayout.Button("RequestClanOfficerList(m_Clan)"))
        {
            SteamAPICall_t handle = SteamFriends.RequestClanOfficerList(m_Clan);
            OnClanOfficerListResponseCallResult.Set(handle);
            print("SteamFriends.RequestClanOfficerList(" + m_Clan + ") : " + handle);
        }

        GUILayout.Label("GetClanOwner(m_Clan) : " + SteamFriends.GetClanOwner(m_Clan));

        GUILayout.Label("GetClanOfficerCount(m_Clan) : " + SteamFriends.GetClanOfficerCount(m_Clan));

        GUILayout.Label("GetClanOfficerByIndex(m_Clan, 0) : " + SteamFriends.GetClanOfficerByIndex(m_Clan, 0));

        GUILayout.Label("GetUserRestrictions() : " + SteamFriends.GetUserRestrictions());

        if (GUILayout.Button("SetRichPresence(\"status\", \"Testing 1.. 2.. 3..\")"))
        {
            bool ret = SteamFriends.SetRichPresence("status", "Testing 1.. 2.. 3..");
            print("SteamFriends.SetRichPresence(" + "\"status\"" + ", " + "\"Testing 1.. 2.. 3..\"" + ") : " + ret);
        }

        if (GUILayout.Button("ClearRichPresence()"))
        {
            SteamFriends.ClearRichPresence();
            print("SteamFriends.ClearRichPresence()");
        }

        GUILayout.Label("GetFriendRichPresence(SteamUser.GetSteamID(), \"status\") : " + SteamFriends.GetFriendRichPresence(SteamUser.GetSteamID(), "status"));

        GUILayout.Label("GetFriendRichPresenceKeyCount(SteamUser.GetSteamID()) : " + SteamFriends.GetFriendRichPresenceKeyCount(SteamUser.GetSteamID()));

        GUILayout.Label("GetFriendRichPresenceKeyByIndex(SteamUser.GetSteamID(), 0) : " + SteamFriends.GetFriendRichPresenceKeyByIndex(SteamUser.GetSteamID(), 0));

        if (GUILayout.Button("RequestFriendRichPresence(m_Friend)"))
        {
            SteamFriends.RequestFriendRichPresence(m_Friend);
            print("SteamFriends.RequestFriendRichPresence(" + m_Friend + ")");
        }

        if (GUILayout.Button("InviteUserToGame(SteamUser.GetSteamID(), \"testing\")"))
        {
            bool ret = SteamFriends.InviteUserToGame(SteamUser.GetSteamID(), "testing");
            print("SteamFriends.InviteUserToGame(" + SteamUser.GetSteamID() + ", " + "\"testing\"" + ") : " + ret);
        }

        GUILayout.Label("GetCoplayFriendCount() : " + SteamFriends.GetCoplayFriendCount());

        if (GUILayout.Button("GetCoplayFriend(0)"))
        {
            m_CoPlayFriend = SteamFriends.GetCoplayFriend(0);
            print("SteamFriends.GetCoplayFriend(" + 0 + ") : " + m_CoPlayFriend);
        }

        GUILayout.Label("GetFriendCoplayTime(m_CoPlayFriend) : " + SteamFriends.GetFriendCoplayTime(m_CoPlayFriend));

        GUILayout.Label("GetFriendCoplayGame(m_CoPlayFriend) : " + SteamFriends.GetFriendCoplayGame(m_CoPlayFriend));

        if (GUILayout.Button("JoinClanChatRoom(m_Clan)"))
        {
            SteamAPICall_t handle = SteamFriends.JoinClanChatRoom(m_Clan);
            OnJoinClanChatRoomCompletionResultCallResult.Set(handle);
            print("SteamFriends.JoinClanChatRoom(" + m_Clan + ") : " + handle);
        }

        if (GUILayout.Button("LeaveClanChatRoom(m_Clan)"))
        {
            bool ret = SteamFriends.LeaveClanChatRoom(m_Clan);
            print("SteamFriends.LeaveClanChatRoom(" + m_Clan + ") : " + ret);
        }

        GUILayout.Label("GetClanChatMemberCount(m_Clan) : " + SteamFriends.GetClanChatMemberCount(m_Clan));

        GUILayout.Label("GetChatMemberByIndex(m_Clan, 0) : " + SteamFriends.GetChatMemberByIndex(m_Clan, 0));

        if (GUILayout.Button("SendClanChatMessage(m_Clan, \"Test\")"))
        {
            bool ret = SteamFriends.SendClanChatMessage(m_Clan, "Test");
            print("SteamFriends.SendClanChatMessage(" + m_Clan + ", " + "\"Test\"" + ") : " + ret);
        }

        //GUILayout.Label("SteamFriends.GetClanChatMessage() : " + SteamFriends.GetClanChatMessage()); // N/A - Must be called from within the callback OnGameConnectedClanChatMsg

        GUILayout.Label("IsClanChatAdmin(m_Clan, m_Friend) : " + SteamFriends.IsClanChatAdmin(m_Clan, m_Friend));

        GUILayout.Label("IsClanChatWindowOpenInSteam(m_Clan) : " + SteamFriends.IsClanChatWindowOpenInSteam(m_Clan));

        if (GUILayout.Button("OpenClanChatWindowInSteam(m_Clan)"))
        {
            bool ret = SteamFriends.OpenClanChatWindowInSteam(m_Clan);
            print("SteamFriends.OpenClanChatWindowInSteam(" + m_Clan + ") : " + ret);
        }

        if (GUILayout.Button("CloseClanChatWindowInSteam(m_Clan)"))
        {
            bool ret = SteamFriends.CloseClanChatWindowInSteam(m_Clan);
            print("SteamFriends.CloseClanChatWindowInSteam(" + m_Clan + ") : " + ret);
        }

        if (GUILayout.Button("SetListenForFriendsMessages(true)"))
        {
            bool ret = SteamFriends.SetListenForFriendsMessages(true);
            print("SteamFriends.SetListenForFriendsMessages(" + true + ") : " + ret);
        }

        if (GUILayout.Button("ReplyToFriendMessage(SteamUser.GetSteamID(), \"Testing!\")"))
        {
            bool ret = SteamFriends.ReplyToFriendMessage(SteamUser.GetSteamID(), "Testing!");
            print("SteamFriends.ReplyToFriendMessage(" + SteamUser.GetSteamID() + ", " + "\"Testing!\"" + ") : " + ret);
        }

        //GUILayout.Label("SteamFriends.GetFriendMessage() : " + SteamFriends.GetFriendMessage()); // N/A - Must be called from within the callback OnGameConnectedFriendChatMsg

        if (GUILayout.Button("GetFollowerCount(SteamUser.GetSteamID())"))
        {
            SteamAPICall_t handle = SteamFriends.GetFollowerCount(SteamUser.GetSteamID());
            OnFriendsGetFollowerCountCallResult.Set(handle);
            print("SteamFriends.GetFollowerCount(" + SteamUser.GetSteamID() + ") : " + handle);
        }

        if (GUILayout.Button("IsFollowing(m_Friend)"))
        {
            SteamAPICall_t handle = SteamFriends.IsFollowing(m_Friend);
            OnFriendsIsFollowingCallResult.Set(handle);
            print("SteamFriends.IsFollowing(" + m_Friend + ") : " + handle);
        }

        if (GUILayout.Button("EnumerateFollowingList(0)"))
        {
            SteamAPICall_t handle = SteamFriends.EnumerateFollowingList(0);
            OnFriendsEnumerateFollowingListCallResult.Set(handle);
            print("SteamFriends.EnumerateFollowingList(" + 0 + ") : " + handle);
        }

        GUILayout.Label("IsClanPublic(m_Clan) : " + SteamFriends.IsClanPublic(m_Clan));

        GUILayout.Label("IsClanOfficialGameGroup(m_Clan) : " + SteamFriends.IsClanOfficialGameGroup(m_Clan));

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }
Ejemplo n.º 21
0
        public bool IsRequestingFriendship()
        {
            EFriendRelationship relationship = SteamFriends.GetFriendRelationship(this.SteamID);

            return(relationship == EFriendRelationship.RequestRecipient);
        }
Ejemplo n.º 22
0
        public bool IsBlocked()
        {
            EFriendRelationship relationship = SteamFriends.GetFriendRelationship(this.SteamID);

            return(relationship == EFriendRelationship.Ignored || relationship == EFriendRelationship.IgnoredFriend);
        }
Ejemplo n.º 23
0
        private void OnDelayedActionReceived(object sender, BasicDeliverEventArgs basicDeliverEventArgs)
        {
            try
            {
                using (var streamReader = new StreamReader(new MemoryStream(basicDeliverEventArgs.Body)))
                {
                    var serializer = new JsonSerializer();
                    var actionDto  =
                        serializer.Deserialize <SteamBotDelayedActionDto>(new JsonTextReader(streamReader));
                    switch (actionDto.Type)
                    {
                    case SteamBotDelayedActionType.SendChatMessage:
                    {
                        var steamId = new SteamID();
                        steamId.SetFromSteam3String((string)actionDto.Properties.SteamId);
                        var message = (string)actionDto.Properties.Message;
                        SteamFriends.SendChatMessage(steamId, EChatEntryType.ChatMsg, message);
                        try
                        {
                            if ((bool)actionDto.Properties.LogMessage)
                            {
                                var friendName = SteamFriends.GetFriendPersonaName(steamId);
                                _logger.Info($"#{SequenceNumber} [Chat TX] To {friendName} ({steamId}): {message}");
                            }
                        }
                        catch (RuntimeBinderException)
                        {
                        }
                        break;
                    }

                    case SteamBotDelayedActionType.RemoveFriend:
                    {
                        var steamId = new SteamID();
                        steamId.SetFromSteam3String((string)actionDto.Properties.SteamId);
                        var skip = SteamFriends.GetFriendRelationship(steamId) != EFriendRelationship.Friend;
                        try
                        {
                            if (!skip && (bool)actionDto.Properties.OnlyIfNotKeylolUser)
                            {
                                var result = _coordinator.Consume(
                                    coordinator => coordinator.IsKeylolUser(steamId.Render(true), Id));
                                if (!result.HasNoException || result.Value)
                                {
                                    skip = true;
                                }
                            }
                        }
                        catch (RuntimeBinderException)
                        {
                        }
                        if (!skip)
                        {
                            try
                            {
                                SteamFriends.SendChatMessage(steamId, EChatEntryType.ChatMsg,
                                                             (string)actionDto.Properties.Message);
                            }
                            catch (RuntimeBinderException)
                            {
                            }
                            SteamFriends.RemoveFriend(steamId);
                        }
                        break;
                    }

                    default:
                        _logger.Fatal($"#{SequenceNumber} Invalid delay action type: {actionDto.Type}.");
                        break;
                    }
                    _mqChannel.BasicAck(basicDeliverEventArgs.DeliveryTag, false);
                }
            }
            catch (Exception e)
            {
                _mqChannel.BasicNack(basicDeliverEventArgs.DeliveryTag, false, false);
                _logger.Fatal($"#{SequenceNumber} Unhandled MQ consumer exception.", e);
            }
        }
Ejemplo n.º 24
0
        public static void Main(string[] args)
        {
            #region SteamRE Init
            AllArgs = args;

            //Hacking around https
            ServicePointManager.CertificatePolicy = new MainClass();

            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("\n\tSteamBot Beta\n\tCreated by Jessecar96.\n\n");
            Console.ForegroundColor = ConsoleColor.White;


            steamClient = new SteamClient();
            steamTrade  = steamClient.GetHandler <SteamTrading>();
            SteamUser steamUser = steamClient.GetHandler <SteamUser> ();
            steamFriends = steamClient.GetHandler <SteamFriends>();

            steamClient.Connect();
            #endregion


            while (true)
            {
                CallbackMsg msg = steamClient.WaitForCallback(true);

                //Console Debug
                printConsole(msg.ToString(), ConsoleColor.Blue, true);


                #region Logged Off Handler
                msg.Handle <SteamUser.LoggedOffCallback> (callback =>
                {
                    printConsole("Logged Off: " + callback.Result, ConsoleColor.Red);
                });
                #endregion


                #region Steam Disconnect Handler
                msg.Handle <SteamClient.DisconnectedCallback> (callback =>
                {
                    printConsole("Disconnected.", ConsoleColor.Red);
                });
                #endregion


                #region Steam Connect Handler

                /**
                 * --Steam Connection Callback
                 *
                 * It's not needed to modify this section
                 */

                msg.Handle <SteamClient.ConnectedCallback> (callback =>
                {
                    //Print Callback
                    printConsole("Steam Connected Callback: " + callback.Result, ConsoleColor.Cyan);

                    //Validate Result
                    if (callback.Result == EResult.OK)
                    {
                        //Get Steam Login Details
                        printConsole("Username: "******"Password: "******"Getting Web Cookies...", ConsoleColor.Yellow);

                        //Get Web Cookies
                        SteamWeb web = new SteamWeb();
                        WebCookies   = web.DoLogin(user, pass);

                        if (WebCookies != null)
                        {
                            printConsole("SteamWeb Cookies retrived.", ConsoleColor.Green);
                            //Do Login
                            steamUser.LogOn(new SteamUser.LogOnDetails {
                                Username = user,
                                Password = pass
                            });
                        }
                        else
                        {
                            printConsole("Error while getting SteamWeb Cookies.", ConsoleColor.Red);
                        }
                    }
                    else
                    {
                        //Failure
                        printConsole("Failed to Connect to steam.", ConsoleColor.Red);
                    }
                });
                #endregion


                #region Steam Login Handler
                //Logged in (or not)
                msg.Handle <SteamUser.LoggedOnCallback>(callback =>
                {
                    printConsole("Logged on callback: " + callback.Result, ConsoleColor.Cyan);

                    if (callback.Result != EResult.OK)
                    {
                        printConsole("Login Failed!", ConsoleColor.Red);
                    }
                    else
                    {
                        printConsole("Successfulyl Logged In!\nWelcome " + steamUser.SteamID, ConsoleColor.Green);

                        //Set community status
                        steamFriends.SetPersonaName(BotPersonaName);
                        steamFriends.SetPersonaState(BotPersonaState);
                    }
                });
                #endregion


                #region Steam Trade Start

                /**
                 *
                 * Steam Trading Handler
                 *
                 */
                msg.Handle <SteamTrading.TradeStartSessionCallback>(call =>
                {
                    //Trading
                    trade = null;
                    trade = new TradeSystem();
                    trade.initTrade(steamUser.SteamID, call.Other, WebCookies);
                });
                #endregion

                #region Trade Requested Handler
                //Don't modify this
                msg.Handle <SteamTrading.TradeProposedCallback>(thing =>
                {
                    //Trade Callback
                    printConsole("Trade Proposed Callback. Other: " + thing.Other + "\n");

                    //Accept It
                    steamTrade.RequestTrade(thing.Other);
                });
                #endregion

                msg.Handle <SteamFriends.PersonaStateCallback>(callback =>
                {
                    if (callback.FriendID == steamUser.SteamID)
                    {
                        return;
                    }

                    EFriendRelationship relationship = steamFriends.GetFriendRelationship(callback.FriendID);
                    if (!(relationship == EFriendRelationship.RequestRecipient))
                    {
                        return;
                    }


                    if (steamFriends.GetFriendRelationship(callback.FriendID) == EFriendRelationship.PendingInvitee)
                    {
                        printConsole("[Friend] Friend Request Pending: " + callback.FriendID + "(" + steamFriends.GetFriendPersonaName(callback.FriendID) + ") - Accepted", ConsoleColor.Yellow);
                        steamFriends.AddFriend(callback.FriendID);
                    }
                });


                #region Steam Chat Handler

                /**
                 *
                 * Steam Chat Handler
                 *
                 */
                msg.Handle <SteamFriends.FriendMsgCallback>(callback =>
                {
                    //Type (emote or chat)
                    EChatEntryType type = callback.EntryType;

                    if (type == EChatEntryType.ChatMsg)
                    {
                        //Message is a chat message

                        //Reply with the same message
                        steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, callback.Message);

                        //Chat API coming soon
                    }
                    else if (type == EChatEntryType.Emote)
                    {
                        //Message is emote

                        //Do nothing yet
                    }
                });
                #endregion
            }     //end while loop
        }         //end Main method