//public void RenderOnGUI(SteamTest.EGUIState state) //{ // GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height)); // Console.WriteLine("Variables:"); // Console.WriteLine("m_Friend: " + m_Friend); // Console.WriteLine("m_Clan: " + m_Clan); // Console.WriteLine("m_SmallAvatar:"); // Console.WriteLine(m_SmallAvatar); // Console.WriteLine("m_MediumAvatar:"); // Console.WriteLine(m_MediumAvatar); // Console.WriteLine("m_LargeAvatar:"); // // This is an example of how to flip a Texture2D when using OnGUI(). // if (m_LargeAvatar) // { // GUI.DrawTexture(new Rect(0, m_LargeAvatar.height * 2 + 85, m_LargeAvatar.width, -m_LargeAvatar.height), m_LargeAvatar); // } // GUILayout.EndArea(); // if (state == SteamTest.EGUIState.SteamFriends) // { // RenderPageOne(); // } // else // { // RenderPageTwo(); // } //} private void RenderPageOne() { //Console.WriteLine("SteamFriends.GetPersonaName() : " + SteamFriends.GetPersonaName()); // if (GUILayout.Button("SteamFriends.SetPersonaName(SteamFriends.GetPersonaName())")) { SteamAPICall_t handle = SteamFriends.SetPersonaName(SteamFriends.GetPersonaName()); OnSetPersonaNameResponseCallResult.Set(handle); Console.WriteLine("SteamFriends.SetPersonaName(" + SteamFriends.GetPersonaName() + ") : " + handle); } Console.WriteLine("SteamFriends.GetPersonaState() : " + SteamFriends.GetPersonaState()); Console.WriteLine("SteamFriends.GetFriendCount(k_EFriendFlagImmediate) : " + SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate)); if (SteamFriends.GetFriendCount(EFriendFlags.k_EFriendFlagImmediate) == 0) { Console.WriteLine("You must have atleast one friend to use this Test"); return; } m_Friend = SteamFriends.GetFriendByIndex(0, EFriendFlags.k_EFriendFlagImmediate); Console.WriteLine("SteamFriends.GetFriendByIndex(0, k_EFriendFlagImmediate) : " + m_Friend); Console.WriteLine("SteamFriends.GetFriendRelationship(m_Friend) : " + SteamFriends.GetFriendRelationship(m_Friend)); Console.WriteLine("SteamFriends.GetFriendPersonaState(m_Friend) : " + SteamFriends.GetFriendPersonaState(m_Friend)); Console.WriteLine("SteamFriends.GetFriendPersonaName(m_Friend) : " + SteamFriends.GetFriendPersonaName(m_Friend)); { var fgi = new FriendGameInfo_t(); bool ret = SteamFriends.GetFriendGamePlayed(m_Friend, out fgi); Console.WriteLine("SteamFriends.GetFriendGamePlayed(m_Friend, out fgi) : " + ret + " -- " + fgi.m_gameID + " -- " + fgi.m_unGameIP + " -- " + fgi.m_usGamePort + " -- " + fgi.m_usQueryPort + " -- " + fgi.m_steamIDLobby); } Console.WriteLine("SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1) : " + SteamFriends.GetFriendPersonaNameHistory(m_Friend, 1)); Console.WriteLine("SteamFriends.GetFriendSteamLevel(m_Friend) : " + SteamFriends.GetFriendSteamLevel(m_Friend)); Console.WriteLine("SteamFriends.GetPlayerNickname(m_Friend) : " + SteamFriends.GetPlayerNickname(m_Friend)); { int FriendsGroupCount = SteamFriends.GetFriendsGroupCount(); Console.WriteLine("SteamFriends.GetFriendsGroupCount() : " + FriendsGroupCount); if (FriendsGroupCount > 0) { FriendsGroupID_t FriendsGroupID = SteamFriends.GetFriendsGroupIDByIndex(0); Console.WriteLine("SteamFriends.GetFriendsGroupIDByIndex(0) : " + FriendsGroupID); Console.WriteLine("SteamFriends.GetFriendsGroupName(FriendsGroupID) : " + SteamFriends.GetFriendsGroupName(FriendsGroupID)); int FriendsGroupMembersCount = SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID); Console.WriteLine("SteamFriends.GetFriendsGroupMembersCount(FriendsGroupID) : " + FriendsGroupMembersCount); if (FriendsGroupMembersCount > 0) { CSteamID[] FriendsGroupMembersList = new CSteamID[FriendsGroupMembersCount]; SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount); Console.WriteLine("SteamFriends.GetFriendsGroupMembersList(FriendsGroupID, FriendsGroupMembersList, FriendsGroupMembersCount) : " + FriendsGroupMembersList[0]); } } } Console.WriteLine("SteamFriends.HasFriend(m_Friend, k_EFriendFlagImmediate) : " + SteamFriends.HasFriend(m_Friend, EFriendFlags.k_EFriendFlagImmediate)); Console.WriteLine("SteamFriends.GetClanCount() : " + SteamFriends.GetClanCount()); if (SteamFriends.GetClanCount() == 0) { Console.WriteLine("You must have atleast one clan to use this Test"); return; } m_Clan = SteamFriends.GetClanByIndex(0); Console.WriteLine("SteamFriends.GetClanByIndex(0) : " + m_Clan); Console.WriteLine("SteamFriends.GetClanName(m_Clan) : " + SteamFriends.GetClanName(m_Clan)); Console.WriteLine("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); Console.WriteLine("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. Console.WriteLine("SteamFriends.DownloadClanActivityCounts(" + Clans + ", 2) : " + handle); } { int FriendCount = SteamFriends.GetFriendCountFromSource(m_Clan); Console.WriteLine("SteamFriends.GetFriendCountFromSource(m_Clan) : " + FriendCount); if (FriendCount > 0) { Console.WriteLine("SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0) : " + SteamFriends.GetFriendFromSourceByIndex(m_Clan, 0)); } } Console.WriteLine("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); Console.WriteLine("SteamClient.SetInGameVoiceSpeaking(" + SteamUser.GetSteamID() + ", false);"); } //// if (GUILayout.Button("SteamFriends.ActivateGameOverlay(\"Friends\")")) { SteamFriends.ActivateGameOverlay("Friends"); Console.WriteLine("SteamClient.ActivateGameOverlay(\"Friends\")"); } //// if (GUILayout.Button("SteamFriends.ActivateGameOverlayToUser(\"friendadd\", 76561197991230424)")) { SteamFriends.ActivateGameOverlayToUser("friendadd", new CSteamID(76561197991230424)); // rlabrecque Console.WriteLine("SteamClient.ActivateGameOverlay(\"friendadd\", 76561197991230424)"); } //// if (GUILayout.Button("SteamFriends.ActivateGameOverlayToWebPage(\"http://google.com\")")) { SteamFriends.ActivateGameOverlayToWebPage("http://google.com"); Console.WriteLine("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 Console.WriteLine("SteamClient.ActivateGameOverlay(440, k_EOverlayToStoreFlag_None)"); } //// if (GUILayout.Button("SteamFriends.SetPlayedWith(76561197991230424)")) { SteamFriends.SetPlayedWith(new CSteamID(76561197991230424)); //rlabrecque Console.WriteLine("SteamClient.SetPlayedWith(76561197991230424)"); } //// if (GUILayout.Button("SteamFriends.ActivateGameOverlayInviteDialog(76561197991230424)")) { SteamFriends.ActivateGameOverlayInviteDialog(new CSteamID(76561197991230424)); //rlabrecque Console.WriteLine("SteamClient.ActivateGameOverlayInviteDialog(76561197991230424)"); } ////// if (GUILayout.Button("SteamFriends.GetSmallFriendAvatar(m_Friend)")) //{ // int FriendAvatar = SteamFriends.GetSmallFriendAvatar(m_Friend); // Console.WriteLine("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); // Console.WriteLine("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); // Console.WriteLine("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(); // } // } //} }
public EPersonaState GetFriendState(SteamID s) => steam_friends.GetFriendPersonaState(s);
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. OnDownloadClanActivityCountsResultCallResult.Set(handle); 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.Label("GetNumChatsWithUnreadPriorityMessages() : " + SteamFriends.GetNumChatsWithUnreadPriorityMessages()); if (GUILayout.Button("ActivateGameOverlayRemotePlayTogetherInviteDialog(m_Friend)")) { SteamFriends.ActivateGameOverlayRemotePlayTogetherInviteDialog(m_Friend); print("SteamFriends.ActivateGameOverlayRemotePlayTogetherInviteDialog(" + m_Friend + ")"); } GUILayout.EndScrollView(); GUILayout.EndVertical(); }
void HandleSteamMessage(CallbackMsg msg) { log.Debug(msg.ToString()); msg.Handle <SteamGameCoordinator.MessageCallback>(callback => { Console.WriteLine(callback.EMsg); }); msg.Handle <ClientPlayerNicknameListHandler.ClientPlayerNicknameListCallback>(callback => { foreach (var player in callback.Nicknames) { PlayerNicknames.Add(player.steamid, player.nickname); } }); #region Login msg.Handle <SteamClient.ConnectedCallback> (callback => { log.Debug("Connection Callback: " + callback.Result); if (callback.Result == EResult.OK) { UserLogOn(); } else { log.Error("Failed to connect to Steam Community, trying again..."); main.Invoke((Action)(() => { main.label_status.Text = "Failed to connect to Steam Community, trying again..."; })); SteamClient.Connect(); } }); msg.Handle <SteamUser.LoggedOnCallback> (callback => { log.Debug("Logged On Callback: " + callback.Result); if (callback.Result == EResult.OK) { MyLoginKey = callback.WebAPIUserNonce; main.Invoke((Action)(() => { main.label_status.Text = "Logging in to Steam..."; log.Info("Logging in to Steam..."); })); } if (callback.Result != EResult.OK) { log.Error("Login Error: " + callback.Result); main.Invoke((Action)(() => { main.label_status.Text = "Login Error: " + callback.Result; })); } if (callback.Result == EResult.InvalidPassword) { MetroFramework.MetroMessageBox.Show(main, "Your password is incorrect. Please try again.", "Invalid Password", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); main.wrongAPI = true; main.Invoke((Action)(main.Close)); return; } if (callback.Result == EResult.AccountLogonDenied) { log.Interface("This account is protected by Steam Guard. Enter the authentication code sent to the proper email: "); SteamGuard SteamGuard = new SteamGuard(); SteamGuard.ShowDialog(); logOnDetails.AuthCode = SteamGuard.AuthCode; main.Invoke((Action)(() => { main.label_status.Text = "Logging in..."; })); SteamClient.Connect(); } if (callback.Result == EResult.InvalidLoginAuthCode) { log.Interface("An Invalid Authorization Code was provided. Enter the authentication code sent to the proper email: "); SteamGuard SteamGuard = new SteamGuard("An Invalid Authorization Code was provided.\nEnter the authentication code sent to the proper email: "); SteamGuard.ShowDialog(); logOnDetails.AuthCode = SteamGuard.AuthCode; main.Invoke((Action)(() => { main.label_status.Text = "Logging in..."; })); SteamClient.Connect(); } }); msg.Handle <SteamUser.LoginKeyCallback> (callback => { log.Debug("Handling LoginKeyCallback..."); while (true) { try { log.Info("About to authenticate..."); main.Invoke((Action)(() => { main.label_status.Text = "Authenticating..."; })); bool authd = false; try { authd = SteamWeb.Authenticate(callback, SteamClient, out sessionId, out token, MyLoginKey); } catch (Exception ex) { log.Error("Error on authentication:\n" + ex); } if (authd) { log.Success("User authenticated!"); main.Invoke((Action)(() => { main.label_status.Text = "User authenticated!"; })); tradeManager = new TradeManager(apiKey, sessionId, token); tradeManager.SetTradeTimeLimits(0, 0, TradePollingInterval); tradeManager.OnTimeout += OnTradeTimeout; break; } else { log.Warn("Authentication failed, retrying in 2s..."); main.Invoke((Action)(() => { main.label_status.Text = "Authentication failed, retrying in 2s..."; })); Thread.Sleep(2000); } } catch (Exception ex) { log.Error(ex.ToString()); } } SteamFriends.SetPersonaName(SteamFriends.GetFriendPersonaName(SteamUser.SteamID)); SteamFriends.SetPersonaState(EPersonaState.Online); log.Success("Account Logged In Completely!"); main.Invoke((Action)(() => { main.label_status.Text = "Logged in completely!"; })); botCookies = new CookieContainer(); botCookies.SetCookies(new Uri("http://steamcommunity.com"), string.Format("steamLogin={0}", token)); botCookies.SetCookies(new Uri("http://steamcommunity.com"), string.Format("sessionid={0}", sessionId)); GenericInventory.SetCookie(botCookies, SteamUser.SteamID); IsLoggedIn = true; try { main.Invoke((Action)(main.Hide)); } catch (Exception) { Environment.Exit(1); } new Thread(() => { CDNCache.Initialize(); #if !DEBUG ConnectToGC(13540830642081628378); System.Threading.Thread.Sleep(2000); ConnectToGC(0); #endif while (true) { if (showFriends != null) { var numFriendsDisplayed = showFriends.GetNumFriendsDisplayed(); var numSteamFriendCount = SteamFriends.GetFriendCount(); if (numFriendsDisplayed != -1 && numFriendsDisplayed != ListFriends.Get().Count) { LoadFriends(); showFriends.UpdateFriendsHTML(); } System.Threading.Thread.Sleep(10000); } } }).Start(); }); // handle a special JobCallback differently than the others if (msg.IsType <SteamClient.JobCallback <SteamUser.UpdateMachineAuthCallback> >()) { msg.Handle <SteamClient.JobCallback <SteamUser.UpdateMachineAuthCallback> >( jobCallback => OnUpdateMachineAuthCallback(jobCallback.Callback, jobCallback.JobID) ); } #endregion msg.Handle <SteamUser.AccountInfoCallback>(callback => { DisplayName = callback.PersonaName; }); #region Friends msg.Handle <SteamFriends.FriendsListCallback>(callback => { foreach (SteamFriends.FriendsListCallback.Friend friend in callback.FriendList) { if (friend.SteamID.AccountType == EAccountType.Clan) { } else { if (!friends.Contains(friend.SteamID)) { new Thread(() => { main.Invoke((Action)(() => { if (showFriends == null && friend.Relationship == EFriendRelationship.RequestRecipient) { log.Info(SteamFriends.GetFriendPersonaName(friend.SteamID) + " has added you."); friends.Add(friend.SteamID); string name = SteamFriends.GetFriendPersonaName(friend.SteamID); string status = SteamFriends.GetFriendPersonaState(friend.SteamID).ToString(); if (!ListFriendRequests.Find(friend.SteamID)) { ListFriendRequests.Add(name, friend.SteamID, status); } } if (showFriends != null && friend.Relationship == EFriendRelationship.RequestRecipient) { log.Info(SteamFriends.GetFriendPersonaName(friend.SteamID) + " has added you."); friends.Add(friend.SteamID); string name = SteamFriends.GetFriendPersonaName(friend.SteamID); string status = SteamFriends.GetFriendPersonaState(friend.SteamID).ToString(); if (!ListFriendRequests.Find(friend.SteamID)) { try { ListFriendRequests.Add(name, friend.SteamID, status); log.Info("Notifying you that " + SteamFriends.GetFriendPersonaName(friend.SteamID) + " has added you."); int duration = 5; FormAnimator.AnimationMethod animationMethod = FormAnimator.AnimationMethod.Slide; FormAnimator.AnimationDirection animationDirection = FormAnimator.AnimationDirection.Up; Notification toastNotification = new Notification(name, Util.GetColorFromPersonaState(this, friend.SteamID), "has sent you a friend request.", duration, animationMethod, animationDirection); toastNotification.Show(); try { string soundsFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); string soundFile = Path.Combine(soundsFolder + "trade_message.wav"); using (System.Media.SoundPlayer player = new System.Media.SoundPlayer(soundFile)) { player.Play(); } } catch (Exception e) { Console.WriteLine(e.Message); } } catch { Console.WriteLine("Friends list hasn't loaded yet..."); } } } })); }).Start(); } else { if (friend.Relationship == EFriendRelationship.None) { friends.Remove(friend.SteamID); GetUserHandler(friend.SteamID).OnFriendRemove(); RemoveUserHandler(friend.SteamID); } } } } LoadFriends(); }); msg.Handle <SteamFriends.PersonaStateCallback>(callback => { var status = callback.State; var sid = callback.FriendID; ListFriends.UpdateStatus(sid, status.ToString()); ListFriends.UpdateName(sid, SteamFriends.GetFriendPersonaName(sid)); GetUserHandler(sid).UpdatePersonaState(); if (showFriends != null) { showFriends.UpdateState(); showFriends.UpdateFriendHTML(sid); } }); msg.Handle <SteamFriends.FriendMsgCallback>(callback => { EChatEntryType type = callback.EntryType; if (type == EChatEntryType.Typing) { var name = SteamFriends.GetFriendPersonaName(callback.Sender); GetUserHandler(callback.Sender).SetChatStatus(name + " is typing..."); System.Threading.Thread.Sleep(30000); GetUserHandler(callback.Sender).SetChatStatus(""); } if (type == EChatEntryType.ChatMsg) { GetUserHandler(callback.Sender).SetChatStatus(""); GetUserHandler(callback.Sender).OnMessage(callback.Message, type); } }); msg.Handle <SteamFriends.ChatMsgCallback>(callback => { Console.WriteLine(SteamFriends.GetFriendPersonaName(callback.ChatterID) + ": " + callback.Message); }); #endregion #region Trading msg.Handle <SteamTrading.SessionStartCallback>(callback => { bool started = HandleTradeSessionStart(callback.OtherClient); if (!started) { log.Error("Could not start the trade session."); } else { log.Debug("SteamTrading.SessionStartCallback handled successfully. Trade Opened."); } }); msg.Handle <SteamTrading.TradeProposedCallback>(callback => { try { tradeManager.InitializeTrade(SteamUser.SteamID, callback.OtherClient); } catch { SteamTrade.RespondToTrade(callback.TradeID, false); return; } //if (CurrentTrade == null && GetUserHandler (callback.OtherClient).OnTradeRequest ()) if (CurrentTrade == null) { GetUserHandler(callback.OtherClient).SendTradeState(callback.TradeID); } else { SteamTrade.RespondToTrade(callback.TradeID, false); } }); msg.Handle <SteamTrading.TradeResultCallback>(callback => { //log.Debug ("Trade Status: " + callback.Response); if (callback.Response == EEconTradeResponse.Accepted) { //log.Info ("Trade Accepted!"); } else if (callback.Response == EEconTradeResponse.Cancel || callback.Response == EEconTradeResponse.ConnectionFailed || callback.Response == EEconTradeResponse.Declined || callback.Response == EEconTradeResponse.AlreadyHasTradeRequest || callback.Response == EEconTradeResponse.AlreadyTrading || callback.Response == EEconTradeResponse.TargetAlreadyTrading || callback.Response == EEconTradeResponse.NoResponse || callback.Response == EEconTradeResponse.TooSoon || callback.Response == EEconTradeResponse.TradeBannedInitiator || callback.Response == EEconTradeResponse.TradeBannedTarget || callback.Response == EEconTradeResponse.NotLoggedIn) { if (callback.Response == EEconTradeResponse.Cancel) { TradeResponse(callback.OtherClient, "had asked to trade with you, but has cancelled their request."); } if (callback.Response == EEconTradeResponse.ConnectionFailed) { TradeResponse(callback.OtherClient, "Lost connection to Steam. Reconnecting as soon as possible..."); } if (callback.Response == EEconTradeResponse.Declined) { TradeResponse(callback.OtherClient, "has declined your trade request."); } if (callback.Response == EEconTradeResponse.AlreadyHasTradeRequest) { TradeResponse(callback.OtherClient, "An error has occurred in sending the trade request."); } if (callback.Response == EEconTradeResponse.AlreadyTrading) { TradeResponse(callback.OtherClient, "You are already in a trade so you cannot trade someone else."); } if (callback.Response == EEconTradeResponse.TargetAlreadyTrading) { TradeResponse(callback.OtherClient, "You cannot trade the other user because they are already in trade with someone else."); } if (callback.Response == EEconTradeResponse.NoResponse) { TradeResponse(callback.OtherClient, "did not respond to the trade request."); } if (callback.Response == EEconTradeResponse.TooSoon) { TradeResponse(callback.OtherClient, "It is too soon to send a new trade request. Try again later."); } if (callback.Response == EEconTradeResponse.TradeBannedInitiator) { TradeResponse(callback.OtherClient, "You are trade-banned and cannot trade."); } if (callback.Response == EEconTradeResponse.TradeBannedTarget) { TradeResponse(callback.OtherClient, "You cannot trade with this person because they are trade-banned."); } if (callback.Response == EEconTradeResponse.NotLoggedIn) { TradeResponse(callback.OtherClient, "Trade failed to initialize because you are not logged in."); } CloseTrade(); } }); #endregion #region Disconnect msg.Handle <SteamUser.LoggedOffCallback> (callback => { IsLoggedIn = false; log.Warn("Logged Off: " + callback.Result); }); msg.Handle <SteamClient.DisconnectedCallback> (callback => { if (IsLoggedIn) { IsLoggedIn = false; CloseTrade(); log.Warn("Disconnected from Steam Network!"); main.Invoke((Action)(() => { main.label_status.Text = "Disconnected from Steam Network! Retrying..."; })); SteamClient.Connect(); main.Invoke((Action)(() => { main.label_status.Text = "Connecting to Steam..."; })); } }); #endregion if (!hasrun && IsLoggedIn) { Thread main = new Thread(GUI); main.Start(); hasrun = true; } }
public override void OnEnter() { ulong ID = ulong.Parse(this.steamID.Value); CSteamID steamID; steamID.m_SteamID = ID; switch (SteamFriends.GetFriendPersonaState(steamID)) { case EPersonaState.k_EPersonaStateOffline: Fsm.Event(offline); if (personalState != null) { personalState.Value = "Offline"; } if (stateIndex != null) { stateIndex.Value = 0; } break; case EPersonaState.k_EPersonaStateOnline: Fsm.Event(online); if (personalState != null) { personalState.Value = "Online"; } if (stateIndex != null) { stateIndex.Value = 1; } break; case EPersonaState.k_EPersonaStateBusy: Fsm.Event(busy); if (personalState != null) { personalState.Value = "Busy"; } if (stateIndex != null) { stateIndex.Value = 2; } break; case EPersonaState.k_EPersonaStateAway: Fsm.Event(away); if (personalState != null) { personalState.Value = "Away"; } if (stateIndex != null) { stateIndex.Value = 3; } break; case EPersonaState.k_EPersonaStateSnooze: Fsm.Event(snooze); if (personalState != null) { personalState.Value = "Snooze"; } if (stateIndex != null) { stateIndex.Value = 4; } break; case EPersonaState.k_EPersonaStateLookingToTrade: Fsm.Event(LookingToTrade); if (personalState != null) { personalState.Value = "Looking to trade"; } if (stateIndex != null) { stateIndex.Value = 5; } break; case EPersonaState.k_EPersonaStateLookingToPlay: Fsm.Event(lookingToPlay); if (personalState != null) { personalState.Value = "Looking to play"; } if (stateIndex != null) { stateIndex.Value = 6; } break; case EPersonaState.k_EPersonaStateMax: Fsm.Event(max); if (personalState != null) { personalState.Value = "Max"; } if (stateIndex != null) { stateIndex.Value = 7; } break; } Finish(); }