public UnturnedPendingUser(IUserDataStore userDataStore, SteamPending steamPending) : base(userDataStore) { SteamPending = steamPending; SteamId = steamPending.playerID.steamID; DisplayName = steamPending.playerID.characterName; Type = KnownActorTypes.Player; Session = new UnturnedPendingUserSession(this); }
public UnturnedPendingUser GetPendingUser(SteamPending pending) { if (pending == null) { throw new ArgumentNullException(nameof(pending)); } return(GetPendingUsers().First(d => d.SteamPending == pending)); }
internal static bool CheckValid(ValidateAuthTicketResponse_t r) { ESteamRejection?reason = null; try { IOrderedEnumerable <RocketPermissionsGroup> playerGroups = R.Permissions.GetGroups(new RocketPlayer(r.m_SteamID.ToString()), true).OrderBy(x => x.Priority); string prefix = playerGroups.FirstOrDefault(x => x.Prefix != null)?.Prefix ?? ""; string suffix = playerGroups.FirstOrDefault(x => x.Suffix != null)?.Suffix ?? ""; if (prefix != "" || suffix != "") { SteamPending steamPending = Provider.pending.FirstOrDefault(x => x.playerID.steamID == r.m_SteamID); if (steamPending != null) { if (prefix != "" && !steamPending.playerID.characterName.StartsWith(prefix)) { steamPending.playerID.characterName = $"{prefix}{steamPending.playerID.characterName}"; } if (suffix != "" && !steamPending.playerID.characterName.EndsWith(suffix)) { steamPending.playerID.characterName = $"{steamPending.playerID.characterName}{suffix}"; } } } } catch (Exception ex) { Core.Logging.Logger.Log($"Failed adding prefix/suffix to player {r.m_SteamID}: {ex}"); } if (OnJoinRequested != null) { foreach (var handler in OnJoinRequested.GetInvocationList().Cast <JoinRequested>()) { try { handler(r.m_SteamID, ref reason); if (reason != null) { Provider.reject(r.m_SteamID, reason.Value); return(false); } } catch (Exception ex) { Core.Logging.Logger.LogException(ex); } } } return(true); }
public static bool PlayerConnecting(SteamPending pending) { PlayerConnectingEventArgs evt = new PlayerConnectingEventArgs(); evt.PlayerName = pending.playerID.playerName; UnturnedFreneticEvents.OnPlayerConnecting.Fire(evt); if (evt.Cancelled) { Provider.reject(pending.playerID.steamID, ESteamRejection.WHITELISTED); // TODO: Customizable rejection reason! } return(evt.Cancelled); }
internal static bool CheckValid(ValidateAuthTicketResponse_t r) { ESteamRejection?reason = null; try { RocketPermissionsGroup g = R.Permissions.GetGroups(new Rocket.API.RocketPlayer(r.m_SteamID.ToString()), true).FirstOrDefault(); if (g != null) { SteamPending steamPending = Provider.pending.FirstOrDefault(x => x.playerID.steamID == r.m_SteamID); if (steamPending != null) { string prefix = g.Prefix ?? ""; string suffix = g.Suffix ?? ""; if (prefix != "" && !steamPending.playerID.characterName.StartsWith(g.Prefix)) { steamPending.playerID.characterName = prefix + steamPending.playerID.characterName; } if (suffix != "" && !steamPending.playerID.characterName.EndsWith(g.Suffix)) { steamPending.playerID.characterName = steamPending.playerID.characterName + suffix; } } } } catch (Exception ex) { Core.Logging.Logger.Log("Failed adding prefix/suffix to player " + r.m_SteamID + ": " + ex.ToString()); } if (OnJoinRequested != null) { foreach (var handler in OnJoinRequested.GetInvocationList().Cast <JoinRequested>()) { try { handler(r.m_SteamID, ref reason); if (reason != null) { Provider.reject(r.m_SteamID, reason.Value); return(false); } } catch (Exception ex) { Core.Logging.Logger.LogException(ex); } } } return(true); }
public void ApplyCosmetics(SteamPending pending) { pending.hatItem = Hat == 0 ? pending.hatItem : Hat; pending.maskItem = Mask == 0 ? pending.maskItem : Mask; pending.glassesItem = Glasses == 0 ? pending.glassesItem : Glasses; pending.backpackItem = Backpack == 0 ? pending.backpackItem : Backpack; pending.shirtItem = Shirt == 0 ? pending.shirtItem : Shirt; pending.pantsItem = Pants == 0 ? pending.pantsItem : Pants; pending.vestItem = Vest == 0 ? pending.vestItem : Vest; var skins = pending.skinItems.ToList(); skins.AddRange(SkinItems); pending.skinItems = skins.ToArray(); }
public static void verifyNextPlayerInQueue() { if (Provider.pending.Count < 1) { return; } if (Provider.clients.Count - Dummy.Instance.Dummies.Count >= Provider.maxPlayers) { return; } SteamPending steamPending = Provider.pending[0]; if (steamPending.hasSentVerifyPacket) { return; } steamPending.sendVerifyPacket(); }
private void OnJoinRequested(CSteamID player, ref ESteamRejection?rejectionreason) { SteamPending steamPending = Provider.pending.FirstOrDefault(x => x.playerID.steamID.m_SteamID == player.m_SteamID); if (Instance.Configuration.Instance.Players.Exists(x => x.SteamId64 == steamPending.playerID.steamID.m_SteamID)) { var find = Instance.Configuration.Instance.Players.Find(y => y.SteamId64 == player.m_SteamID); steamPending.playerID.characterName = find.CharacterName; Logger.Log($"Player \"{steamPending.playerID.playerName}\" has been renamed to \"{find.CharacterName}\"."); } else { return; } }
public static bool Prefix() { if (Provider.pending.Count < 1) { return(false); } if (Provider.clients.Count - Dummy.Instance.Dummies.Count >= Provider.maxPlayers) { return(false); } SteamPending steamPending = Provider.pending[0]; if (steamPending.hasSentVerifyPacket) { return(false); } steamPending.sendVerifyPacket(); return(false); }
public static bool Prefix(CSteamID steamID, byte[] packet, int offset) { var steamPacket = (ESteamPacket)packet[offset]; if (steamPacket == ESteamPacket.CONNECT) { for (int l = 0; l < Provider.pending.Count; l++) { if (Provider.pending[l].playerID.steamID == steamID) { Provider.reject(steamID, ESteamRejection.ALREADY_PENDING); return(false); } } for (int m = 0; m < Provider.clients.Count; m++) { if (Provider.clients[m].playerID.steamID == steamID) { Provider.reject(steamID, ESteamRejection.ALREADY_CONNECTED); return(false); } } object[] objects = SteamPacker.getObjects(steamID, offset, 0, packet, new Type[] { Types.BYTE_TYPE, Types.BYTE_TYPE, Types.STRING_TYPE, Types.STRING_TYPE, Types.BYTE_ARRAY_TYPE, Types.BYTE_ARRAY_TYPE, Types.BYTE_ARRAY_TYPE, Types.BYTE_TYPE, Types.UINT32_TYPE, Types.BOOLEAN_TYPE, Types.SINGLE_TYPE, Types.STRING_TYPE, Types.STEAM_ID_TYPE, Types.BYTE_TYPE, Types.BYTE_TYPE, Types.BYTE_TYPE, Types.COLOR_TYPE, Types.COLOR_TYPE, Types.COLOR_TYPE, Types.BOOLEAN_TYPE, Types.UINT64_TYPE, Types.UINT64_TYPE, Types.UINT64_TYPE, Types.UINT64_TYPE, Types.UINT64_TYPE, Types.UINT64_TYPE, Types.UINT64_TYPE, Types.UINT64_ARRAY_TYPE, Types.BYTE_TYPE, Types.STRING_TYPE, Types.STRING_TYPE, Types.STEAM_ID_TYPE, Types.UINT32_TYPE, Types.BYTE_ARRAY_TYPE }); byte[] array3 = (byte[])objects[33]; if (array3.Length != 20) { Provider.reject(steamID, ESteamRejection.WRONG_HASH_ASSEMBLY); return(false); } byte newCharacterID = (byte)objects[1]; if (!Provider.modeConfigData.Players.Allow_Per_Character_Saves) { newCharacterID = 0; } SteamPlayerID steamPlayerID = new SteamPlayerID(steamID, newCharacterID, (string)objects[2], (string)objects[3], (string)objects[11], (CSteamID)objects[12], array3); if ((uint)objects[8] != Provider.APP_VERSION_PACKED) { Provider.reject(steamID, ESteamRejection.WRONG_VERSION, Provider.APP_VERSION); return(false); } if ((uint)objects[32] != Level.packedVersion) { Provider.reject(steamID, ESteamRejection.WRONG_LEVEL_VERSION, Level.version); return(false); } if (steamPlayerID.playerName.Length < 2) { Provider.reject(steamID, ESteamRejection.NAME_PLAYER_SHORT); return(false); } if (steamPlayerID.characterName.Length < 2) { Provider.reject(steamID, ESteamRejection.NAME_CHARACTER_SHORT); return(false); } if (steamPlayerID.playerName.Length > 32) { Provider.reject(steamID, ESteamRejection.NAME_PLAYER_LONG); return(false); } if (steamPlayerID.characterName.Length > 32) { Provider.reject(steamID, ESteamRejection.NAME_CHARACTER_LONG); return(false); } if (long.TryParse(steamPlayerID.playerName, NumberStyles.Any, CultureInfo.InvariantCulture, out _) || double.TryParse(steamPlayerID.playerName, NumberStyles.Any, CultureInfo.InvariantCulture, out _)) { Provider.reject(steamID, ESteamRejection.NAME_PLAYER_NUMBER); return(false); } if (long.TryParse(steamPlayerID.characterName, NumberStyles.Any, CultureInfo.InvariantCulture, out _) || double.TryParse(steamPlayerID.characterName, NumberStyles.Any, CultureInfo.InvariantCulture, out _)) { Provider.reject(steamID, ESteamRejection.NAME_CHARACTER_NUMBER); return(false); } if (Provider.filterName) { if (!NameTool.isValid(steamPlayerID.playerName)) { Provider.reject(steamID, ESteamRejection.NAME_PLAYER_INVALID); return(false); } if (!NameTool.isValid(steamPlayerID.characterName)) { Provider.reject(steamID, ESteamRejection.NAME_CHARACTER_INVALID); return(false); } } if (NameTool.containsRichText(steamPlayerID.playerName)) { Provider.reject(steamID, ESteamRejection.NAME_PLAYER_INVALID); return(false); } if (NameTool.containsRichText(steamPlayerID.characterName)) { Provider.reject(steamID, ESteamRejection.NAME_CHARACTER_INVALID); return(false); } uint remoteIP; if (SteamGameServerNetworking.GetP2PSessionState(steamID, out P2PSessionState_t p2PSessionState_t)) { remoteIP = p2PSessionState_t.m_nRemoteIP; } else { remoteIP = 0U; } Utils.checkBanStatus(steamPlayerID, remoteIP, out bool flag3, out string object_, out uint num5); if (flag3) { byte[] bytes3 = SteamPacker.getBytes(0, out int size4, 9, object_, num5); Provider.send(steamID, ESteamPacket.BANNED, bytes3, size4, 0); return(false); } bool flag4 = SteamWhitelist.checkWhitelisted(steamID); if (Provider.isWhitelisted && !flag4) { Provider.reject(steamID, ESteamRejection.WHITELISTED); return(false); } if (Provider.clients.Count - Dummy.Instance.Dummies.Count + 1 > Provider.maxPlayers && Provider.pending.Count + 1 > Provider.queueSize) { Provider.reject(steamID, ESteamRejection.SERVER_FULL); return(false); } byte[] array4 = (byte[])objects[4]; if (array4.Length != 20) { Provider.reject(steamID, ESteamRejection.WRONG_PASSWORD); return(false); } byte[] array5 = (byte[])objects[5]; if (array5.Length != 20) { Provider.reject(steamID, ESteamRejection.WRONG_HASH_LEVEL); return(false); } byte[] array6 = (byte[])objects[6]; if (array6.Length != 20) { Provider.reject(steamID, ESteamRejection.WRONG_HASH_ASSEMBLY); return(false); } string text = (string)objects[29]; ModuleDependency[] array7; if (string.IsNullOrEmpty(text)) { array7 = Array.Empty <ModuleDependency>(); } else { string[] array8 = text.Split(new char[] { ';' }); array7 = new ModuleDependency[array8.Length]; for (int n = 0; n < array7.Length; n++) { string[] array9 = array8[n].Split(new char[] { ',' }); if (array9.Length == 2) { array7[n] = new ModuleDependency { Name = array9[0] }; uint.TryParse(array9[1], NumberStyles.Any, CultureInfo.InvariantCulture, out array7[n].Version_Internal); } } } var moduleList = new List <Module>(); ModuleHook.getRequiredModules(moduleList); bool flag5 = true; for (int num6 = 0; num6 < array7.Length; num6++) { bool flag6 = false; if (array7[num6] != null) { for (int num7 = 0; num7 < moduleList.Count; num7++) { if (moduleList[num7]?.config != null && moduleList[num7].config.Name == array7[num6].Name && moduleList[num7].config.Version_Internal >= array7[num6].Version_Internal) { flag6 = true; break; } } } if (!flag6) { flag5 = false; break; } } if (!flag5) { Provider.reject(steamID, ESteamRejection.CLIENT_MODULE_DESYNC); return(false); } bool flag7 = true; for (int num8 = 0; num8 < moduleList.Count; num8++) { bool flag8 = false; if (moduleList[num8]?.config != null) { for (int num9 = 0; num9 < array7.Length; num9++) { if (array7[num9] != null && array7[num9].Name == moduleList[num8].config.Name && array7[num9].Version_Internal >= moduleList[num8].config.Version_Internal) { flag8 = true; break; } } } if (!flag8) { flag7 = false; break; } } if (!flag7) { Provider.reject(steamID, ESteamRejection.SERVER_MODULE_DESYNC); return(false); } if (!string.IsNullOrEmpty(Provider.serverPassword) && !Hash.verifyHash(array4, Provider.serverPasswordHash)) { Provider.reject(steamID, ESteamRejection.WRONG_PASSWORD); return(false); } if (!Hash.verifyHash(array5, Level.hash)) { Provider.reject(steamID, ESteamRejection.WRONG_HASH_LEVEL); return(false); } if (!ReadWrite.appIn(array6, (byte)objects[7])) { Provider.reject(steamID, ESteamRejection.WRONG_HASH_ASSEMBLY); return(false); } if ((float)objects[10] >= Provider.configData.Server.Max_Ping_Milliseconds / 1000f) { Provider.reject(steamID, ESteamRejection.PING); return(false); } Utils.notifyClientPending(steamID); SteamPending item = new SteamPending(steamPlayerID, (bool)objects[9], (byte)objects[13], (byte)objects[14], (byte)objects[15], (Color)objects[16], (Color)objects[17], (Color)objects[18], (bool)objects[19], (ulong)objects[20], (ulong)objects[21], (ulong)objects[22], (ulong)objects[23], (ulong)objects[24], (ulong)objects[25], (ulong)objects[26], (ulong[])objects[27], (EPlayerSkillset)((byte)objects[28]), (string)objects[30], (CSteamID)objects[31]); if (Provider.isWhitelisted || !flag4) { Provider.pending.Add(item); if (Provider.pending.Count == 1) { Utils.verifyNextPlayerInQueue(); } return(false); } if (Provider.pending.Count == 0) { Provider.pending.Add(item); Utils.verifyNextPlayerInQueue(); return(false); } Provider.pending.Insert(1, item); return(false); } return(true); }
public PreConnectUnturnedPlayer(IDependencyContainer container, SteamPending pendingPlayer, UnturnedPlayerManager manager) : base(container, pendingPlayer.playerID.steamID, manager) { PendingPlayer = pendingPlayer; }
// Token: 0x0600174B RID: 5963 RVA: 0x000862F8 File Offset: 0x000846F8 private void onInventoryResultReady(SteamInventoryResultReady_t callback) { if (this.appInfo.isDedicated) { SteamPending steamPending = null; for (int i = 0; i < Provider.pending.Count; i++) { if (Provider.pending[i].inventoryResult == callback.m_handle) { steamPending = Provider.pending[i]; break; } } if (steamPending == null) { return; } if (callback.m_result != EResult.k_EResultOK || !SteamGameServerInventory.CheckResultSteamID(callback.m_handle, steamPending.playerID.steamID)) { Debug.Log(string.Concat(new object[] { "inventory auth: ", callback.m_result, " ", SteamGameServerInventory.CheckResultSteamID(callback.m_handle, steamPending.playerID.steamID) })); Provider.reject(steamPending.playerID.steamID, ESteamRejection.AUTH_ECON_VERIFY); return; } uint num = 0u; if (SteamGameServerInventory.GetResultItems(callback.m_handle, null, ref num) && num > 0u) { steamPending.inventoryDetails = new SteamItemDetails_t[num]; SteamGameServerInventory.GetResultItems(callback.m_handle, steamPending.inventoryDetails, ref num); for (uint num2 = 0u; num2 < num; num2 += 1u) { uint num3 = 1024u; string text; SteamGameServerInventory.GetResultItemProperty(callback.m_handle, num2, "tags", out text, ref num3); uint num4 = 1024u; string text2; SteamGameServerInventory.GetResultItemProperty(callback.m_handle, num2, "dynamic_props", out text2, ref num4); DynamicEconDetails value = default(DynamicEconDetails); value.tags = ((!string.IsNullOrEmpty(text)) ? text : string.Empty); value.dynamic_props = ((!string.IsNullOrEmpty(text2)) ? text2 : string.Empty); steamPending.dynamicInventoryDetails.Add(steamPending.inventoryDetails[(int)((UIntPtr)num2)].m_itemId.m_SteamItemInstanceID, value); } } steamPending.inventoryDetailsReady(); } else if (this.promoResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.promoResult) { SteamInventory.DestroyResult(this.promoResult); this.promoResult = SteamInventoryResult_t.Invalid; } else if (this.exchangeResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.exchangeResult) { SteamItemDetails_t[] array = null; string tags = null; string dynamic_props = null; uint num5 = 0u; if (SteamInventory.GetResultItems(this.exchangeResult, null, ref num5) && num5 > 0u) { array = new SteamItemDetails_t[num5]; SteamInventory.GetResultItems(this.exchangeResult, array, ref num5); uint num6 = 1024u; SteamInventory.GetResultItemProperty(this.exchangeResult, num5 - 1u, "tags", out tags, ref num6); uint num7 = 1024u; SteamInventory.GetResultItemProperty(this.exchangeResult, num5 - 1u, "dynamic_props", out dynamic_props, ref num7); } Terminal.print("onInventoryResultReady: Exchange " + num5, null, Provider.STEAM_IC, Provider.STEAM_DC, true); if (array != null && num5 > 0u) { SteamItemDetails_t item = array[(int)((UIntPtr)(num5 - 1u))]; this.addLocalItem(item, tags, dynamic_props); if (this.onInventoryExchanged != null) { this.onInventoryExchanged(item.m_iDefinition.m_SteamItemDef, item.m_unQuantity, item.m_itemId.m_SteamItemInstanceID); } this.refreshInventory(); } SteamInventory.DestroyResult(this.exchangeResult); this.exchangeResult = SteamInventoryResult_t.Invalid; } else if (this.dropResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.dropResult) { SteamItemDetails_t[] array2 = null; string tags2 = null; string dynamic_props2 = null; uint num8 = 0u; if (SteamInventory.GetResultItems(this.dropResult, null, ref num8) && num8 > 0u) { array2 = new SteamItemDetails_t[num8]; SteamInventory.GetResultItems(this.dropResult, array2, ref num8); uint num9 = 1024u; SteamInventory.GetResultItemProperty(this.dropResult, 0u, "tags", out tags2, ref num9); uint num10 = 1024u; SteamInventory.GetResultItemProperty(this.dropResult, 0u, "dynamic_props", out dynamic_props2, ref num10); } Terminal.print("onInventoryResultReady: Drop " + num8, null, Provider.STEAM_IC, Provider.STEAM_DC, true); if (array2 != null && num8 > 0u) { SteamItemDetails_t item2 = array2[0]; this.addLocalItem(item2, tags2, dynamic_props2); if (this.onInventoryDropped != null) { this.onInventoryDropped(item2.m_iDefinition.m_SteamItemDef, item2.m_unQuantity, item2.m_itemId.m_SteamItemInstanceID); } this.refreshInventory(); } SteamInventory.DestroyResult(this.dropResult); this.dropResult = SteamInventoryResult_t.Invalid; } else if (this.inventoryResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.inventoryResult) { this.dynamicInventoryDetails.Clear(); uint num11 = 0u; if (SteamInventory.GetResultItems(this.inventoryResult, null, ref num11) && num11 > 0u) { this.inventoryDetails = new SteamItemDetails_t[num11]; SteamInventory.GetResultItems(this.inventoryResult, this.inventoryDetails, ref num11); for (uint num12 = 0u; num12 < num11; num12 += 1u) { uint num13 = 1024u; string text3; SteamInventory.GetResultItemProperty(this.inventoryResult, num12, "tags", out text3, ref num13); uint num14 = 1024u; string text4; SteamInventory.GetResultItemProperty(this.inventoryResult, num12, "dynamic_props", out text4, ref num14); DynamicEconDetails value2 = default(DynamicEconDetails); value2.tags = ((!string.IsNullOrEmpty(text3)) ? text3 : string.Empty); value2.dynamic_props = ((!string.IsNullOrEmpty(text4)) ? text4 : string.Empty); this.dynamicInventoryDetails.Add(this.inventoryDetails[(int)((UIntPtr)num12)].m_itemId.m_SteamItemInstanceID, value2); } } if (this.onInventoryRefreshed != null) { this.onInventoryRefreshed(); } this.isInventoryAvailable = true; Provider.isLoadingInventory = false; SteamInventory.DestroyResult(this.inventoryResult); this.inventoryResult = SteamInventoryResult_t.Invalid; } else if (this.commitResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.commitResult) { Debug.Log("Commit dynamic properties result: " + callback.m_result); SteamInventory.DestroyResult(this.commitResult); this.commitResult = SteamInventoryResult_t.Invalid; } }
public UnturnedUser(IDependencyContainer container, SteamPending player) : this(container) { Id = player.playerID.steamID.ToString(); CSteamID = player.playerID.steamID; }
private void onInventoryResultReady(SteamInventoryResultReady_t callback) { if (this.appInfo.isDedicated) { SteamPending steamPending = null; for (int i = 0; i < Provider.pending.Count; i++) { if (Provider.pending[i].inventoryResult == callback.m_handle) { steamPending = Provider.pending[i]; break; } } if (steamPending == null) { return; } if (callback.m_result != 1 || !SteamGameServerInventory.CheckResultSteamID(callback.m_handle, steamPending.playerID.steamID)) { Debug.Log(string.Concat(new object[] { "inventory auth: ", callback.m_result, " ", SteamGameServerInventory.CheckResultSteamID(callback.m_handle, steamPending.playerID.steamID) })); Provider.reject(steamPending.playerID.steamID, ESteamRejection.AUTH_ECON_VERIFY); return; } uint num = 0u; if (SteamGameServerInventory.GetResultItems(callback.m_handle, null, ref num) && num > 0u) { steamPending.inventoryDetails = new SteamItemDetails_t[num]; SteamGameServerInventory.GetResultItems(callback.m_handle, steamPending.inventoryDetails, ref num); } steamPending.inventoryDetailsReady(); } else if (this.promoResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.promoResult) { SteamInventory.DestroyResult(this.promoResult); this.promoResult = SteamInventoryResult_t.Invalid; } else if (this.exchangeResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.exchangeResult) { SteamItemDetails_t[] array = null; uint num2 = 0u; if (SteamInventory.GetResultItems(this.exchangeResult, null, ref num2) && num2 > 0u) { array = new SteamItemDetails_t[num2]; SteamInventory.GetResultItems(this.exchangeResult, array, ref num2); } Terminal.print("onInventoryResultReady: Exchange " + num2, null, Provider.STEAM_IC, Provider.STEAM_DC, true); if (array != null && num2 > 0u) { SteamItemDetails_t item = array[(int)((UIntPtr)(num2 - 1u))]; this.addLocalItem(item); if (this.onInventoryExchanged != null) { this.onInventoryExchanged(item.m_iDefinition.m_SteamItemDef, item.m_unQuantity, item.m_itemId.m_SteamItemInstanceID); } this.refreshInventory(); } SteamInventory.DestroyResult(this.exchangeResult); this.exchangeResult = SteamInventoryResult_t.Invalid; } else if (this.dropResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.dropResult) { SteamItemDetails_t[] array2 = null; uint num3 = 0u; if (SteamInventory.GetResultItems(this.dropResult, null, ref num3) && num3 > 0u) { array2 = new SteamItemDetails_t[num3]; SteamInventory.GetResultItems(this.dropResult, array2, ref num3); } Terminal.print("onInventoryResultReady: Drop " + num3, null, Provider.STEAM_IC, Provider.STEAM_DC, true); if (array2 != null && num3 > 0u) { SteamItemDetails_t item2 = array2[0]; this.addLocalItem(item2); if (this.onInventoryDropped != null) { this.onInventoryDropped(item2.m_iDefinition.m_SteamItemDef, item2.m_unQuantity, item2.m_itemId.m_SteamItemInstanceID); } this.refreshInventory(); } SteamInventory.DestroyResult(this.dropResult); this.dropResult = SteamInventoryResult_t.Invalid; } else if (this.inventoryResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.inventoryResult) { uint num4 = 0u; if (SteamInventory.GetResultItems(this.inventoryResult, null, ref num4) && num4 > 0u) { this.inventoryDetails = new SteamItemDetails_t[num4]; SteamInventory.GetResultItems(this.inventoryResult, this.inventoryDetails, ref num4); } if (this.onInventoryRefreshed != null) { this.onInventoryRefreshed(); } this.isInventoryAvailable = true; Provider.isLoadingInventory = false; SteamInventory.DestroyResult(this.inventoryResult); this.inventoryResult = SteamInventoryResult_t.Invalid; } }
public static bool PlayerConnecting(SteamPending pending) { PlayerConnectingEventArgs evt = new PlayerConnectingEventArgs(); evt.PlayerName = pending.playerID.playerName; UnturnedFreneticEvents.OnPlayerConnecting.Fire(evt); if (evt.Cancelled) { Provider.reject(pending.playerID.steamID, ESteamRejection.WHITELISTED); // TODO: Customizable rejection reason! } return evt.Cancelled; }
public UnturnedPendingUser GetPendingUser(SteamPending pending) { return(GetPendingUsers().FirstOrDefault(d => d.SteamPending == pending)); }
public UnturnedUser(IDependencyContainer container, SteamPending player) : this(container, player.playerID.steamID) { }
public void OnJoinRequested(CSteamID PlayerID, ref ESteamRejection?RejectionReason) { SteamPending steamPending = Provider.pending.FirstOrDefault((SteamPending SP) => SP.playerID.steamID == PlayerID); steamPending.playerID.characterName = base.Configuration.Instance.characterName; }