Esempio n. 1
0
        public bool Dispel(MsgInformationEx MsgDTO, object[] param)
        {
            var qqNum = (long)param[0];

            var sourcePerson = OSPerson_Doremi.GetPerson(MsgDTO.FromQQ);

            if (sourcePerson.Golds < 500)
            {
                MsgSender.PushMsg(MsgDTO, "驱散全部buff需要500金币,你没有足够的金币!");
                return(false);
            }

            if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, 500))
            {
                MsgSender.PushMsg(MsgDTO, "操作取消!");
                return(false);
            }

            OSPersonBuff.RemoveAll(qqNum);

            sourcePerson.Golds -= 500;
            sourcePerson.Update();

            MsgSender.PushMsg(MsgDTO, "驱散成功!");
            return(true);
        }
Esempio n. 2
0
        public bool SaveHelloContent(MsgInformationEx MsgDTO, object[] param)
        {
            var content = param[0] as string;

            var query = HelloList.FirstOrDefault(h => h.GroupNum == MsgDTO.FromGroup && h.QQNum == MsgDTO.FromQQ);

            if (query == null)
            {
                var hello = new HelloRecord
                {
                    Id       = Guid.NewGuid().ToString(),
                    GroupNum = MsgDTO.FromGroup,
                    QQNum    = MsgDTO.FromQQ,
                    Content  = content
                };
                MongoService <HelloRecord> .Insert(hello);

                HelloList.Add(hello);
            }
            else
            {
                query.Content = content;
                MongoService <HelloRecord> .Update(query);
            }

            MsgSender.PushMsg(MsgDTO, "招呼内容设定成功");
            return(true);
        }
Esempio n. 3
0
        public bool ResetPetSkill(MsgInformationEx MsgDTO, object[] param)
        {
            const int ResetSkillCost = 100;
            var       osPerson       = OSPerson.GetPerson(MsgDTO.FromQQ);

            if (osPerson.Golds < ResetSkillCost)
            {
                MsgSender.PushMsg(MsgDTO, $"金币余额不足({osPerson.Golds.CurencyFormat()}/{ResetSkillCost.CurencyFormat()})");
                return(false);
            }

            if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, ResetSkillCost, 10))
            {
                MsgSender.PushMsg(MsgDTO, "操作取消!");
                return(false);
            }

            var pet    = PetRecord.Get(MsgDTO.FromQQ);
            var expRec = ExpeditionRecord.GetLastest(MsgDTO.FromQQ);

            if (expRec != null && expRec.IsExpediting)
            {
                MsgSender.PushMsg(MsgDTO, $"{pet.Name}正在【{expRec.Scene}】进行一项伟大的远征,请于{expRec.EndTime:yyyy-MM-dd HH:mm:ss}后再试!");
                return(false);
            }

            pet.SkillReset();
            pet.Update();

            osPerson.Golds -= ResetSkillCost;
            osPerson.Update();

            MsgSender.PushMsg(MsgDTO, "重置成功!");
            return(true);
        }
Esempio n. 4
0
        public bool MyKitchen(MsgInformationEx MsgDTO, object[] param)
        {
            var cookingRec = CookingRecord.Get(MsgDTO.FromQQ);
            var level      = CookingLevelSvc.LocationLevel(cookingRec.TotalPrice);
            var msg        = $"【{level.Name}(lv.{level.Level})】\r\n";
            var itemColle  = ItemCollectionRecord.Get(MsgDTO.FromQQ);
            var dietList   = cookingRec.LearndDietMenu.Select(diet =>
            {
                var Diet = CookingDietSvc[diet];
                if (!Diet.Flavorings.IsNullOrEmpty() && !cookingRec.CheckFlavorings(Diet.Flavorings) ||
                    !Diet.Materials.IsNullOrEmpty() && !itemColle.CheckItem(Diet.Materials))
                {
                    return($"{diet}(材料不足)");
                }

                return(diet);
            });

            msg +=
                $"已学会的菜谱:{string.Join(",", dietList)}\r\n";
            msg += $"当前持有菜肴:{string.Join(",", cookingRec.CookedDietDic.Select(p => $"{p.Key}*{p.Value}"))}\r\n";
            msg += $"当前持有调味料:{string.Join(",", cookingRec.FlavoringDic.Select(p => $"{p.Key}*{p.Value}"))}\r\n";
            msg += $"推荐学习菜谱:【{CookingDietSvc.SuggestDiet(cookingRec.LearndDietMenu)?.Name}】";

            MsgSender.PushMsg(MsgDTO, msg);
            return(true);
        }
Esempio n. 5
0
        public bool MyTreasureRecord(MsgInformationEx MsgDTO, object[] param)
        {
            var record = SegmentRecord.Get(MsgDTO.FromQQ);

            if (record.TreasureRecord.IsNullOrEmpty())
            {
                MsgSender.PushMsg(MsgDTO, "你还没有开启过任何宝藏!");
                return(false);
            }

            var session = new MsgSession(MsgDTO);

            session.Add(record.TreasureRecord.Select(p => $"{p.Key}:{p.Value}次").ToList());
            session.Add($"总计:{record.TreasureRecord.Sum(p => p.Value)}次");

            var finalMsg = $"终极宝藏:{record.FinalTreasureCount}次";

            if (record.CanOpenFinalTreasure)
            {
                finalMsg += $"(还可开启{record.TreasureRecord.Values.Min() - record.FinalTreasureCount}次)";
            }
            session.Add(finalMsg);

            session.Send();
            return(true);
        }
Esempio n. 6
0
        private static bool FeedPetWithItem(MsgInformationEx MsgDTO, PetRecord pet, DriftBottleItemModel item)
        {
            if (item.Attributes == null)
            {
                MsgSender.PushMsg(MsgDTO, "该物品无法投喂!");
                return(false);
            }

            if (!item.Attributes.Contains(pet.Attribute))
            {
                MsgSender.PushMsg(MsgDTO, $"{pet.Name}说不想吃这个东西(请喂食正确特性的物品)");
                return(false);
            }

            var honorRecord = ItemCollectionRecord.Get(MsgDTO.FromQQ);

            if (!honorRecord.CheckItem(item.Name))
            {
                MsgSender.PushMsg(MsgDTO, "你没有该物品!", true);
                return(false);
            }

            var resMsg = $"{pet.Name}兴奋的吃掉了 {item.Name},并打了个饱嗝\r\n";

            pet.LastFeedTime = DateTime.Now;
            resMsg          += pet.ExtGain(MsgDTO, item.Exp);
            honorRecord.ItemConsume(item.Name);
            honorRecord.Update();

            MsgSender.PushMsg(MsgDTO, resMsg);
            return(true);
        }
Esempio n. 7
0
        public bool StarFortune(MsgInformationEx MsgDTO, object[] param)
        {
            var jr = new FortuneRequestor(MsgDTO, (Msg, Report) => MsgSender.PushMsg(Msg, Report));

            Task.Run(() => jr.Work());
            return(true);
        }
Esempio n. 8
0
        public override bool OnMoneyReceived(ChargeModel model)
        {
            var diamonds  = (int)(Math.Round(model.Amount, 2) * 100);
            var chargeRec = new VipChargeRecord()
            {
                QQNum         = model.QQNum,
                ChargeAmount  = model.Amount,
                ChargeTime    = DateTime.Now,
                DiamondAmount = diamonds,
                Message       = model.Message,
                OrderID       = model.OrderID
            };

            chargeRec.Insert();

            var osPerson = OSPerson.GetPerson(model.QQNum);

            osPerson.Diamonds += diamonds;
            osPerson.Update();

            MsgSender.PushMsg(0, model.QQNum, $"恭喜充值成功!当前余额:{osPerson.Diamonds}{Emoji.钻石}", model.BindAi);
            MsgSender.PushMsg(0, Global.DeveloperNumber, $"{model.QQNum}充值{model.Amount}元!", Global.DefaultConfig.MainAi);

            return(true);
        }
Esempio n. 9
0
        public bool TodaySignContent(MsgInformationEx MsgDTO, object[] param)
        {
            var content = GroupSignInDic.ContainsKey(MsgDTO.FromGroup) ? GroupSignInDic[MsgDTO.FromGroup].Content : "签到";

            MsgSender.PushMsg(MsgDTO, $"今日签到内容是:{content}");
            return(true);
        }
Esempio n. 10
0
        public bool SetSignContent(MsgInformationEx MsgDTO, object[] param)
        {
            var content = param[0] as string;

            if (content != "签到" && CrossWorldAiSvc[MsgDTO.FromGroup].AllAvailableGroupCommands.Any(comm => comm.Command == content))
            {
                MsgSender.PushMsg(MsgDTO, "不能与系统自带命令重复!");
                return(false);
            }

            if (GroupSignInDic.ContainsKey(MsgDTO.FromGroup))
            {
                var groupSignIn = GroupSignInDic[MsgDTO.FromGroup];
                groupSignIn.Content = content;
                groupSignIn.Update();
            }
            else
            {
                var groupSignIn = new SignInGroupRecord()
                {
                    GroupNum = MsgDTO.FromGroup, Content = content
                };
                MongoService <SignInGroupRecord> .Insert(groupSignIn);

                GroupSignInDic.Add(MsgDTO.FromGroup, groupSignIn);
            }
            MsgSender.PushMsg(MsgDTO, "设置成功!");
            return(true);
        }
Esempio n. 11
0
        public bool Sell(MsgInformationEx MsgDTO, object[] param)
        {
            if (OSPersonBuff.CheckBuff(MsgDTO.FromQQ, "快晴"))
            {
                MsgSender.PushMsg(MsgDTO, "你无法进行该操作!(快晴)");
                return(false);
            }

            var name = param[0] as string;

            var item = HonorSvc.FindItem(name);

            if (item != null)
            {
                return(SellItem(MsgDTO, item));
            }

            if (HonorSvc.FindHonor(name) != null)
            {
                return(SellHonor(MsgDTO, name));
            }

            MsgSender.PushMsg(MsgDTO, "未查找到相关物品或成就!");
            return(false);
        }
Esempio n. 12
0
        public bool ShopInfo_Rare(MsgInformationEx MsgDTO, object[] param)
        {
            var osPerson = OSPerson.GetPerson(MsgDTO.FromQQ);
            var golds    = osPerson.Golds;

            var todayRec    = DailySellItemRareRecord.GetToday();
            var tomorrowRec = DailySellItemRareRecord.GetTomorrow();

            if (todayRec.IsOver)
            {
                MsgSender.PushMsg(MsgDTO,
                                  $"稀有商店休息中~\r\n下次开放时间:明天 {tomorrowRec.Hour}:00:00 ~ {tomorrowRec.Hour + 3}:00:00");
                return(false);
            }

            if (todayRec.IsBefore)
            {
                MsgSender.PushMsg(MsgDTO,
                                  $"稀有商店休息中~\r\n下次开放时间:今天 {todayRec.Hour}:00:00 ~ {todayRec.Hour + 3}:00:00");
                return(false);
            }

            var sellItems = todayRec.Items;
            var record    = ItemCollectionRecord.Get(MsgDTO.FromQQ);
            var itemsStr  = string.Join("\r\n", sellItems.Select(si =>
                                                                 $"{si.Name}({HonorSvc.FindHonorFullName(si.Name)})({record.GetCount(si.Name)})({si.Attr}):{si.Price.CurencyFormat()}"));

            var msg = $"当前售卖的商品:\r\n{itemsStr}\r\n你当前持有 {golds.CurencyFormat()}";

            MsgSender.PushMsg(MsgDTO, msg);

            return(true);
        }
Esempio n. 13
0
        private bool SellItem(MsgInformationEx MsgDTO, DriftBottleItemModel item, int count = 1)
        {
            var record = ItemCollectionRecord.Get(MsgDTO.FromQQ);

            if (!record.CheckItem(item.Name, count))
            {
                MsgSender.PushMsg(MsgDTO, "你的背包里没有足够多的该物品!");
                return(false);
            }

            var price = HonorSvc.GetItemPrice(item, MsgDTO.FromQQ);
            var msg   = $"贩卖 {item.Name}*{count} 将获得 {(price * count).CurencyFormat()},是否确认贩卖?";

            if (!WaiterSvc.WaitForConfirm(MsgDTO, msg))
            {
                MsgSender.PushMsg(MsgDTO, "交易取消!");
                return(false);
            }

            var osPerson = OSPerson.GetPerson(MsgDTO.FromQQ);

            TransHelper.SellItemToShop(item.Name, osPerson, count);
            osPerson.Update();

            MsgSender.PushMsg(MsgDTO, $"贩卖成功!你当前拥有金币 {osPerson.Golds.CurencyFormat()}");
            return(true);
        }
Esempio n. 14
0
        public bool SellMulti(MsgInformationEx MsgDTO, object[] param)
        {
            if (OSPersonBuff.CheckBuff(MsgDTO.FromQQ, "快晴"))
            {
                MsgSender.PushMsg(MsgDTO, "你无法进行该操作!(快晴)");
                return(false);
            }

            var name  = param[0] as string;
            var count = (int)(long)param[1];

            if (count <= 0)
            {
                MsgSender.PushMsg(MsgDTO, "错误的物品数量!");
                return(false);
            }

            var item = HonorSvc.FindItem(name);

            if (item != null)
            {
                SellItem(MsgDTO, item, count);
                return(true);
            }

            MsgSender.PushMsg(MsgDTO, "未查找到相关物品!");
            return(false);
        }
Esempio n. 15
0
        public bool SelfExcharge(MsgInformationEx MsgDTO, object[] param)
        {
            var days = (int)(long)param[0];

            if (days <= 0)
            {
                MsgSender.PushMsg(MsgDTO, "天数错误,请重新输入命令!");
                return(false);
            }

            var osPerson    = OSPerson.GetPerson(MsgDTO.FromQQ);
            var diamondNeed = days * 10;

            if (osPerson.Diamonds < diamondNeed)
            {
                MsgSender.PushMsg(MsgDTO, "你的钻石余额不足,请添加能天使(2731544408)为好友后,使用【转账】功能转任意金额后将会获得金额*100的钻石,可以【我的状态】命令查看余额!");
                return(false);
            }

            ChargeTime(MsgDTO, new object[] { MsgDTO.FromGroup, (long)days });
            osPerson.Diamonds -= diamondNeed;
            osPerson.Update();

            return(true);
        }
Esempio n. 16
0
    private void OnReqFire(UserToken token, SocketModel model)
    {
        ReqFire req = SerializeUtil.Deserialize <ReqFire>(model.message);

        AccountData acc = CacheManager.instance.GetAccount(token.accountid);

        if (acc == null)
        {
            return;
        }
        Battle battle = CacheManager.instance.GetBattle(acc.battleid, acc.battleType);
        Tank   t      = battle.GetTank(token.accountid);

        if (t != null && t.hp > 0)
        {
            //校验两次攻击间隔
            if (Time.time * 0.001f - t.lastFireTime < 1)
            {
                return;
            }

            t.lastFireTime = Time.time * 0.001f;

            NotifyFire notify = new NotifyFire();
            notify.id  = token.accountid;
            notify.pos = req.pos;
            notify.rot = req.rot;

            MsgSender.SendOther <NotifyFire>(battle.accounts, token, (int)MsgID.NotifyFire, notify);
        }
    }
Esempio n. 17
0
 public bool GetBoomCode(MsgInformationEx MsgDTO, object[] param)
 {
     BoomCode = Rander.RandInt(100000);
     CodeDate = DateTime.Now;
     MsgSender.PushMsg(MsgDTO, BoomCode.ToString());
     return(true);
 }
Esempio n. 18
0
        public bool RecentFlash(MsgInformationEx MsgDTO, object[] param)
        {
            var picUrl = PicCacher.Random();

            MsgSender.PushMsg(MsgDTO, CodeApi.Code_Flash_Relational(picUrl));
            return(true);
        }
Esempio n. 19
0
 private void Broadcast(string msg)
 {
     foreach (var group in GroupSettingSvc.AllGroups.Where(p => p.IsPowerOn && p.WorldLine == "Doremi"))
     {
         MsgSender.PushMsg(group.GroupNum, 0, msg, BindAi);
     }
 }
Esempio n. 20
0
        public bool MySegment(MsgInformationEx MsgDTO, object[] param)
        {
            var record = SegmentRecord.Get(MsgDTO.FromQQ);

            if (string.IsNullOrEmpty(record.Segment))
            {
                MsgSender.PushMsg(MsgDTO, "你尚未持有任何宝藏碎片!", true);
                return(false);
            }
            var segment = SegmentSvc.FindSegmentByName(record.Segment);

            if (segment == null)
            {
                MsgSender.PushMsg(MsgDTO, "未找到指定的宝藏碎片");
                return(false);
            }

            var treasure = SegmentSvc.FindTreasureBySegment(record.Segment);
            var session  = new MsgSession(MsgDTO);

            session.Add(segment.ToString());
            session.Add($"可开启宝藏:{treasure.Name}");

            if (record.IsRare)
            {
                session.Add("【稀有】:拼接后将得到双倍奖励!");
            }

            session.Send();
            return(true);
        }
Esempio n. 21
0
        public bool BindAi(MsgInformationEx MsgDTO, object[] param)
        {
            var groupNum = (long)param[0];
            var name     = (string)param[1];

            var setting = GroupSettingSvc[groupNum];

            if (setting == null)
            {
                MsgSender.PushMsg(MsgDTO, "错误的群号");
                return(false);
            }

            if (!BindAiSvc.AiDic.ContainsKey(name))
            {
                MsgSender.PushMsg(MsgDTO, "错误的机器人名");
                return(false);
            }

            setting.BindAis ??= new List <string>();

            if (!setting.BindAis.Contains(name))
            {
                setting.BindAis.Add(name);
            }

            setting.Update();

            MsgSender.PushMsg(MsgDTO, "绑定成功!");
            return(true);
        }
Esempio n. 22
0
        private static bool FeedPetWithDiet(MsgInformationEx MsgDTO, PetRecord pet, CookingDietModel diet)
        {
            if (!diet.Attributes.Contains(pet.Attribute))
            {
                MsgSender.PushMsg(MsgDTO, $"{pet.Name}说不想吃这个东西(请喂食正确特性的菜肴)");
                return(false);
            }

            var cookingRec = CookingRecord.Get(MsgDTO.FromQQ);

            if (!cookingRec.CheckDiet(diet.Name))
            {
                MsgSender.PushMsg(MsgDTO, "你没有该菜肴!");
                return(false);
            }

            var resMsg = $"{pet.Name}兴奋的吃掉了 {diet.Name},并打了个饱嗝\r\n";

            pet.LastFeedTime = DateTime.Now;
            resMsg          += pet.ExtGain(MsgDTO, diet.Exp);
            cookingRec.DietConsume(diet.Name);
            cookingRec.Update();

            MsgSender.PushMsg(MsgDTO, resMsg);
            return(true);
        }
Esempio n. 23
0
        public bool DataRefresh(MsgInformationEx MsgDTO, object[] param)
        {
            var count = DataRefreshSvc.RefreshAll();

            MsgSender.PushMsg(MsgDTO, $"刷新成功!共刷新 {count}个数据项!");
            return(true);
        }
Esempio n. 24
0
        public bool MyCookingHistory(MsgInformationEx MsgDTO, object[] param)
        {
            var cookingRec = CookingRecord.Get(MsgDTO.FromQQ);
            var history    = cookingRec.CookingHistory;

            if (history.IsNullOrEmpty())
            {
                MsgSender.PushMsg(MsgDTO, "你尚未烹饪过任何东西!");
                return(false);
            }

            var sumDietCount = history.Sum(p => p.Value);
            var totalPrice   = cookingRec.TotalPrice;

            var curLevel  = CookingLevelSvc.LocationLevel(totalPrice);
            var nextLevel = CookingLevelSvc[curLevel.Level + 1];

            var msg = $"你总共烹饪过 {sumDietCount} 道菜肴\r\n" +
                      $"总共消耗了物品 {cookingRec.ItemConsumeDic.Sum(p => p.Value)} 个,调味料 {cookingRec.FlavoringTotal} 个\r\n" +
                      $"总价值:{totalPrice.CurencyFormat()}\r\n" +
                      $"当前烹饪评级为:【{curLevel.Name}(lv.{curLevel.Level})】,距离下一等级【{nextLevel.Name}({nextLevel.Level})】还差 {(nextLevel.NeedPrice - totalPrice).CurencyFormat()}";

            MsgSender.PushMsg(MsgDTO, msg);
            return(true);
        }
Esempio n. 25
0
        public bool CurrentRestrictor(MsgInformationEx MsgDTO, object[] param)
        {
            var limitDic = RestrictorSvc.BindAiLimit;

            MsgSender.PushMsg(MsgDTO, string.Join("\r\n", limitDic.Select(p => $"{p.Key}:{p.Value}")));
            return(true);
        }
Esempio n. 26
0
        public bool MyArmers_Paged(MsgInformationEx MsgDTO, object[] param)
        {
            var pageNo = (int)(long)param[0];

            var paRec = PersonArmerRecord.Get(MsgDTO.FromQQ);

            if (paRec.Armers.IsNullOrEmpty())
            {
                MsgSender.PushMsg(MsgDTO, "你尚未拥有任何装备!", true);
                return(true);
            }

            var armerInfos     = paRec.Armers.Select(a => new { Count = a.Value, Model = ArmerSvc[a.Key] }).OrderBy(p => p.Model.Kind).ThenByDescending(p => p.Model.Price).ToList();
            var totalPageCount = (armerInfos.Count - 1) / 20 + 1;

            if (pageNo <= 0 || pageNo > totalPageCount)
            {
                MsgSender.PushMsg(MsgDTO, "页码错误!", true);
                return(false);
            }

            var showInfos = armerInfos.Skip((pageNo - 1) * 20).Take(20);
            var msg       = string.Join(", ", showInfos.Select(a => $"{a.Model.Name}*{a.Count}"));

            msg = $"该页的装备有:\r\n{msg}";
            if (armerInfos.Count > 20)
            {
                msg += $"\r\n当前显示第 {pageNo}/{totalPageCount}页,请使用 我的装备 [页码] 命令查看更多装备!";
            }
            MsgSender.PushMsg(MsgDTO, msg, true);
            return(true);
        }
Esempio n. 27
0
        public override bool OnGroupMemberChanged(GroupMemberChangeModel model)
        {
            var group = GroupSettingSvc[model.GroupNum];

            if (model.Type == 1)
            {
                group.MembersCount--;
                group.Update();
                return(true);
            }

            group.MembersCount++;
            group.Update();

            var msg = $"欢迎加入本群!你是本群第{group.MembersCount}名成员!\r\n";

            msg += "----------\r\n";
            msg += "友情提示:加入任何群都要先看群公告哦!\r\n";
            msg += "请热爱本群,勿轻易退出\r\n";
            msg += "请遵守群规,勿漠视管理\r\n";
            msg += "请活跃气氛,勿长期潜水\r\n";
            msg += "请谨言慎行,勿广告刷屏\r\n";
            msg += "请团结友爱,勿攻击谩骂\r\n";
            msg += "请公开讨论,勿私聊骚扰\r\n";

            MsgSender.PushMsg(model.GroupNum, model.QQNum, msg, group.BindAi);
            return(true);
        }
Esempio n. 28
0
        public bool DispelOneBuff(MsgInformationEx MsgDTO, object[] param)
        {
            var qqNum    = (long)param[0];
            var buffName = param[1] as string;

            if (!OSPersonBuff.CheckBuff(qqNum, buffName))
            {
                MsgSender.PushMsg(MsgDTO, "目标身上没有指定buff!");
                return(false);
            }

            var sourcePerson = OSPerson_Doremi.GetPerson(MsgDTO.FromQQ);

            if (sourcePerson.Golds < 100)
            {
                MsgSender.PushMsg(MsgDTO, "驱散该buff需要100金币,你没有足够的金币!");
                return(false);
            }

            if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, 100))
            {
                MsgSender.PushMsg(MsgDTO, "操作取消!");
                return(false);
            }

            OSPersonBuff.Remove(qqNum, buffName);

            sourcePerson.Golds -= 100;
            sourcePerson.Update();

            MsgSender.PushMsg(MsgDTO, "驱散成功!");
            return(true);
        }
Esempio n. 29
0
        public bool Reborn(MsgInformationEx MsgDTO, object[] param)
        {
            var aimQQ = (long)param[0];

            var key   = $"AliveState-{MsgDTO.FromGroup}-{aimQQ}";
            var cache = SCacheService.Get <AliveStateCache>(key);

            if (cache == null)
            {
                MsgSender.PushMsg(MsgDTO, "该成员不需要复活!", true);
                return(false);
            }

            if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, 100))
            {
                MsgSender.PushMsg(MsgDTO, "操作取消!");
                return(false);
            }

            var osPerson = OSPerson_Doremi.GetPerson(MsgDTO.FromQQ);

            osPerson.Golds -= 100;
            osPerson.Update();

            SCacheService.Cache(key, cache, DateTime.Now);

            MsgSender.PushMsg(MsgDTO, $"复活成功!你当前剩余金币:{osPerson.Golds}", true);
            return(true);
        }
Esempio n. 30
0
        private bool ProcessHello(MsgInformationEx MsgDTO)
        {
            var hello = HelloList.FirstOrDefault(h => h.GroupNum == MsgDTO.FromGroup && h.QQNum == MsgDTO.FromQQ);

            if (hello == null)
            {
                return(false);
            }

            var key      = $"Hello-{MsgDTO.FromGroup}-{MsgDTO.FromQQ}";
            var response = SCacheService.Get <HelloCache>(key);

            if (response != null)
            {
                return(false);
            }

            MsgSender.PushMsg(MsgDTO, hello.Content, true);
            var model = new HelloCache
            {
                GroupNum       = MsgDTO.FromGroup,
                LastUpdateTime = DateTime.Now,
                QQNum          = MsgDTO.FromQQ
            };

            SCacheService.Cache(key, model);
            return(true);
        }
Esempio n. 31
0
 void listen()
 {
   server = System.Net.Sockets.TcpListener.Create(port);
   server.Start();
   Console.Write($"Listening at {port}...");
   do
   {
     var serverside_client = server.AcceptTcpClient();
     var sender = new MsgSender(serverside_client);
     senders.Add(sender);
     sender.Start();
     Console.WriteLine("\nClient connected");
   } while (true);
 }