public ZklSteamHandler(TasClient tas) { this.tas = tas; if (Environment.OSVersion.Platform == PlatformID.Unix) { if (Environment.Is64BitProcess) { EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.libCSteamworks-x86_64.so", "libCSteamworks.so"); EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.libsteam_api-x86_64.so", "libsteam_api.so"); } else { EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.libCSteamworks.so", "libCSteamworks.so"); EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.libsteam_api.so", "libsteam_api.so"); } } else { EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.CSteamworks.dll", "CSteamworks.dll"); EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.steam_api.dll", "steam_api.dll"); } EmbeddedResourceExtractor.ExtractFile("ZeroKLobby.NativeLibs.steam_appid.txt", "steam_appid.txt"); SteamHelper = new SteamClientHelper(); SteamHelper.SteamOnline += () => { SteamName = SteamHelper.GetMyName(); friends = SteamHelper.GetFriends(); SteamID = SteamHelper.GetSteamID(); if (tas.IsLoggedIn && tas.MyUser != null && tas.MyUser.EffectiveElo != 0) { OnLoggedToBothSteamAndTas(); } }; tas.MyExtensionsChanged += (sender, args) => { if (SteamHelper.IsOnline && SteamID != 0) { OnLoggedToBothSteamAndTas(); } }; tas.UserExtensionsChanged += (sender, args) => { if (args.Data.SteamID != null) { Voice.AddListenerSteamID(args.Data.SteamID.Value); // todo only for battle in future } if (args.Data.SteamID != null && SteamID != 0 && friends.Contains(args.Data.SteamID.Value)) { AddFriend(args.Data.Name); } }; tas.UserRemoved += (sender, args) => { User us; if (tas.ExistingUsers.TryGetValue(args.Name, out us) && us.SteamID.HasValue) { Voice.RemoveListenerSteamID(us.SteamID.Value); } }; }