void OpenBank(BasePlayer player, BaseEntity targArg) { Subscribe(nameof(CanNetworkTo)); Subscribe(nameof(OnEntityTakeDamage)); //Subscribe(nameof(OnItemAddedToContainer)); var pos = new Vector3(player.transform.position.x, player.transform.position.y - 1, player.transform.position.z); string box = GetBox(player); int slots = GetSlots(player); var view = GameManager.server.CreateEntity(box, pos) as StorageContainer; view.GetComponent <DestroyOnGroundMissing> ().enabled = false; view.GetComponent <GroundWatch> ().enabled = false; if (!view) { return; } view.limitNetworking = true; view.transform.position = pos; player.EndLooting(); if (targArg is BasePlayer) { BasePlayer target = targArg as BasePlayer; BankProfile profile = banks [target.userID]; ItemContainer bank = profile.GetContainer(target, slots); if (!containers.ContainsKey(bank)) { containers.Add(bank, player.userID); } view.enableSaving = false; view.Spawn(); view.inventory = bank; profile.open = true; onlinePlayers [player].View = view; onlinePlayers [player].Target = target; timer.In(0.1f, delegate() { view.PlayerOpenLoot(player); }); } }