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; }
// 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))); }
static void OnFriendAdded(SteamFriends.FriendAddedCallback callback) { if (steamFriends.GetFriendRelationship(callback.SteamID) == EFriendRelationship.Friend) { steamFriends.SendChatMessage(callback.SteamID, EChatEntryType.ChatMsg, ChatMessages.WelcomeMsg); } }
public bool IsFriend(Gamer gamer) { EFriendRelationship efr = SteamFriends.GetFriendRelationship(gamer.steamID); return(efr == EFriendRelationship.k_EFriendRelationshipFriend || efr == EFriendRelationship.k_EFriendRelationshipIgnoredFriend); }
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)); }
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(); } }
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); }
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))); } }
private void _sendChatToEveryone(string msg) { foreach (UserHandler h in userHandlers.Values) { if (SteamFriends.GetFriendRelationship(h.OtherSID) != EFriendRelationship.Friend) { continue; } h.SendChatMessage(msg); } }
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); }
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(); } })); }
public bool IsAcceptingFriendship() { return(SteamFriends.GetFriendRelationship(this.SteamID) == EFriendRelationship.RequestInitiator); }
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(); } } } }
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(); }
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))); } }
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))); } }
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!"); }
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); }); } }
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(); }
public bool IsRequestingFriendship() { EFriendRelationship relationship = SteamFriends.GetFriendRelationship(this.SteamID); return(relationship == EFriendRelationship.RequestRecipient); }
public bool IsBlocked() { EFriendRelationship relationship = SteamFriends.GetFriendRelationship(this.SteamID); return(relationship == EFriendRelationship.Ignored || relationship == EFriendRelationship.IgnoredFriend); }
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); } }
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