public CakeServer(string cakeType, string id, string iid = "") : base(cakeType, id, iid) { var bCached = Init(); if (!bCached) { var res = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname) .FindOneData(cakeType , ADBAccessor.filter_eq(ParamNameDefs.CollectionID, string.IsNullOrEmpty(iid) ? ObjectId.Parse(id) : ObjectId.Parse(iid))); if (res == null) { var ct = ApiDateTime.SecondsFromBegin(); ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname) .UpdateOneData(cakeType , ADBAccessor.filter_eq(ParamNameDefs.CollectionID, string.IsNullOrEmpty(iid) ? ObjectId.Parse(id) : ObjectId.Parse(iid)) , ADBAccessor.update(ParamNameDefs.CreateTime, ct), true); SetValue(ParamNameDefs.CreateTime, ct.ToString()); } else { foreach (var item in res.Names) { SetValue(item, res[item].ToString()); } } } bInited = true; }
protected override bool Init() { var bCached = base.Init(); bInited = true; if (!IsMulti) { if (!bCached) { var filter = ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ObjectId.Parse(id)); var res = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname) .FindOneData(cakeType , filter); if (res == null) { var ct = ApiDateTime.SecondsFromBegin(); ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname) .UpdateOneData(cakeType, filter , ADBAccessor.update(ParamNameDefs.CreateTime, ct), true); } else { foreach (var item in res.Names) { if (item == ParamNameDefs.CollectionID) { continue; } SetValue(item, res[item].ToString()); } } } return(bCached); } else if (string.IsNullOrEmpty(iid)) { if (!bCached) { var filter = ADBAccessor.filter_eq(ParamNameDefs.OwnerID, id); var res = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname) .FindManyData(cakeType, filter); foreach (var r in res) { var cid = r[ParamNameDefs.ContentID].ToString(); var cakes = new CakeServer(cakeType, id); var cake = cakes.GetSingleItem(cid); foreach (var item in r.Names) { if (item == ParamNameDefs.CollectionID) { continue; } cake.SetValue(item, r[item].ToString()); } subCakes.Add(cid, cake); } } } return(bCached); }
public AAvatarServer OnCreateAvatar(EPartnerID ePartnerID, string uid, string avatarName, int sex, Player player) { var oid = ObjectId.GenerateNewId(); var inst = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.UID, uid) & ADBAccessor.filter_eq(ParamNameDefs.PartnerID, (int)ePartnerID) & ADBAccessor.filter_eq(ParamNameDefs.AvatarName, avatarName) , ADBAccessor.updates_build(ADBAccessor.update(ParamNameDefs.AvatarSex, sex), ADBAccessor.update(ParamNameDefs.CollectionID, oid)), true); var a = new AAvatarServer(uid, null, oid, player); OnAddAvatar(a, player); return(a); }
public override void OnSave() { if (lDirtyParams.Count == 0) { return; } var u = new List <UpdateDefinition <BsonDocument> >(); foreach (var v in lDirtyParams) { if (!dParams.ContainsKey(v)) { AOutput.LogError("Cannot find param " + v); return; } var aparam = dParams[v]; switch (aparam.eParamType) { case EParamType.String: u.Add(ADBAccessor.update(v, aparam.sParamValue)); break; case EParamType.Double: u.Add(ADBAccessor.update(v, aparam.dParamValue)); break; case EParamType.Int: u.Add(ADBAccessor.update(v, aparam.iParamValue)); break; case EParamType.Long: u.Add(ADBAccessor.update(v, aparam.lParamValue)); break; } } ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ownerServer.objectId), Builders <BsonDocument> .Update.Combine(u)); AOutput.Log("avatar " + owner.OnGetStringParamValue(ParamNameDefs.AvatarName) + " saved " + lDirtyParams.Count + " params"); var update = new LibPacket.PktParamUpdate(); foreach (var dp in lDirtyParams) { var info = new LibPacket.ParamInfo(); info.paramName = dp; info.paramValue = OnGetStringParamValue(dp); update.lInfos.Add(info); } ownerServer.OnSendToClient(update); lDirtyParams.Clear(); }
public override void OnAddItem(int itemID, int count) { base.OnAddItem(itemID, count); if (dItems.ContainsKey(itemID)) { ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(tableName, ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ownerServer.objectId), ADBAccessor.updates_build(ADBAccessor.update(ParamNameDefs.BagSlotPre + itemID, dItems[itemID])), true); } else { ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(tableName, ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ownerServer.objectId), ADBAccessor.updates_build(ADBAccessor.update_unset(ParamNameDefs.BagSlotPre + itemID))); } }
public void RefreshConnectedDevicesList() { AppState = CurrentAppState.DeviceSelection; ClearConnectedDeviceVariables(); UIManager.Instance.DeviceSelectionToggleAll.gameObject.SetActive(false); UIManager.Instance.ConnectDeviceResetBtn.SetActive(false); UIManager.Instance.DeviceLoadingPanel.SetActive(true); UIManager.Instance.NoDevicePanel.SetActive(false); ADBManager adbManager = ADBManager.Instance; ProcessThreads.Add(new Thread(() => adbManager.GetConnectedDevices())); ProcessThreads[ProcessThreads.Count - 1].Start(); Thread.Sleep(1); }
private void GameHandler_EnterGame(IResponer responer, PktEnterGameRequest vo) { var player = APlayerManager.Instance.OnGetPlayerByConn(responer.playerConnDesc); if (player == null) { return; } var res = new PktEnterGameResult(); var dbr = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).FindOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.PartnerID, (int)player.ePartnerID) & ADBAccessor.filter_eq(ParamNameDefs.UnionID, player.unionid)); if (dbr != null) { var c = new CakeAvatar(dbr[ParamNameDefs.CollectionID].ToString()); APlayerManager.Instance.OnAddAvatar(c, player); res.info = c.ToPkt(); } responer.Response(res); }
private void GameHandler_CreateAvatar(IResponer responer, PktCreateAvatarRequest vo) { var player = APlayerManager.Instance.OnGetPlayerByConn(responer.playerConnDesc); if (player == null) { return; } var res = new PktCreateAvatarResult(); { var dbr = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).FindOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.AvatarName, vo.avatarName) | ADBAccessor.filter_eq(ParamNameDefs.UnionID, player.unionid) , ADBAccessor.projections(ParamNameDefs.AvatarLevel)); if (dbr != null) { res.eResult = PktCreateAvatarResult.EResult.SameName; responer.Response(res); return; } } { var dbr = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).FindOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.UnionID, player.unionid), ADBAccessor.projections(ParamNameDefs.AvatarLevel)); if (dbr != null) { res.eResult = PktCreateAvatarResult.EResult.MaxCount; responer.Response(res); return; } } var psid = ObjectId.GenerateNewId().ToString(); var cake = new CakeAvatar(psid); cake.Create(player.unionid, player.ePartnerID, vo.avatarName, vo.sex); APlayerManager.Instance.OnAddAvatar(cake, player); res.info = cake.ToPkt(); res.eResult = PktCreateAvatarResult.EResult.Success; responer.Response(res); }
private void Handler_CreateAvatar(IResponer responer, PktCreateAvatarRequest vo) { var player = AAvatarManager.Instance.OnGetPlayer(responer.playerConnDesc); if (player == null) { return; } if (player.avatar != null) { return; } var res = new PktCreateAvatarResult(); var dbr = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).FindOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.PartnerID, (int)player.ePartnerID) & ADBAccessor.filter_eq(ParamNameDefs.UID, player.uid)); if (dbr != null) { res.eResult = PktCreateAvatarResult.EResult.MaxCount; } else { var dnr = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).FindOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.AvatarName, vo.avatarName)); if (dnr != null) { res.eResult = PktCreateAvatarResult.EResult.SameName; } else { res.eResult = PktCreateAvatarResult.EResult.Success; var a = AAvatarManager.Instance.OnCreateAvatar(player.ePartnerID, player.uid, vo.avatarName, vo.sex, player); res.info = a.ToPkt(); } } responer.Response(res); }
public override void InitComponent() { var result = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname) .FindOneData(tableName, ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ownerServer.objectId), null); if (result != null) { foreach (var r in result) { if (r.Name.StartsWith(ParamNameDefs.BagSlotPre)) { var itemID = r.Name.Substring(ParamNameDefs.BagSlotPre.Length); var itemNum = r.Value.AsInt32; DoAddItem(typeParser.intParse(itemID), itemNum); } } } else { ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(tableName, ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ownerServer.objectId) , ADBAccessor.updates_build(ADBAccessor.update(ParamNameDefs.AvatarName, owner.OnGetStringParamValue(ParamNameDefs.AvatarName))), true); } }
private void Handler_EnterGame(IResponer responer, PktEnterGameRequest vo) { var player = AAvatarManager.Instance.OnGetPlayer(responer.playerConnDesc); if (player == null) { return; } var res = new PktEnterGameResult(); var dbr = ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).FindOneData(ParamNameDefs.TableAvatar , ADBAccessor.filter_eq(ParamNameDefs.PartnerID, (int)player.ePartnerID) & ADBAccessor.filter_eq(ParamNameDefs.UID, player.uid)); if (dbr != null) { var a = AAvatarManager.Instance.OnGetAvatar(player.uid); if (a == null) { a = AAvatarManager.Instance.OnCreateAvatar(player.uid, dbr, player); } res.info = a.ToPkt(); } responer.Response(res); }
// Use this for initialization void Start() { Instance = this; }
public static void Tick() { if (CakeCache.dIDDirtyParams.Count > 0) { foreach (var idk in CakeCache.dIDDirtyParams) { var filter = ADBAccessor.filter_eq(ParamNameDefs.CollectionID, ObjectId.Parse(idk.Key)); foreach (var cakeTypek in idk.Value) { var lupdate = new List <UpdateDefinition <BsonDocument> >(); var vs = cakeTypek.Value.Values.ToArray(); foreach (var pv in vs) { lupdate.Add(pv.GetUpdate()); } ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(cakeTypek.Key, filter , Builders <BsonDocument> .Update.Combine(lupdate)); } if (!dAccessTimes.ContainsKey(idk.Key)) { dAccessTimes.Add(idk.Key, DateTime.Now); } else { dAccessTimes[idk.Key] = DateTime.Now; } } CakeCache.dIDDirtyParams.Clear(); } if (CakeCache.dIIDDirtyParams.Count > 0) { foreach (var idk in CakeCache.dIIDDirtyParams) { var ll = idk.Value.ToArray(); foreach (var iidk in ll) { var filter = ADBAccessor.filter_eq(ParamNameDefs.OwnerID, idk.Key) & ADBAccessor.filter_eq(ParamNameDefs.ContentID, iidk.Key); var lll = iidk.Value.ToArray(); foreach (var cakeTypek in lll) { var lupdate = new List <UpdateDefinition <BsonDocument> >(); var llll = cakeTypek.Value.ToArray(); foreach (var pv in llll) { lupdate.Add(pv.Value.GetUpdate()); } lupdate.Add(ADBAccessor.update(ParamNameDefs.ContentID, iidk.Key)); lupdate.Add(ADBAccessor.update(ParamNameDefs.OwnerID, idk.Key)); ADBManager.Get(InitValueDefs.dbconnect, InitValueDefs.dbname).UpdateOneData(cakeTypek.Key, filter , Builders <BsonDocument> .Update.Combine(lupdate), true); } } if (!dAccessTimes.ContainsKey(idk.Key)) { dAccessTimes.Add(idk.Key, DateTime.Now); } else { dAccessTimes[idk.Key] = DateTime.Now; } } CakeCache.dIIDDirtyParams.Clear(); } var remove = new List <string>(); foreach (var dk in dAccessTimes) { if (APlayerManager.Instance.IsOnline(dk.Key)) { continue; } if ((DateTime.Now - dk.Value).TotalSeconds > 30) { remove.Add(dk.Key); } } foreach (var r in remove) { dAccessTimes.Remove(r); if (CakeCache.dIDDirtyParams.ContainsKey(r)) { CakeCache.dIDDirtyParams.Remove(r); } if (CakeCache.dIIDDirtyParams.ContainsKey(r)) { CakeCache.dIIDDirtyParams.Remove(r); } } }