public static SignInSuccessiveRecord Sign(long GroupNum, long QQNum)
        {
            var lastest = GetLastest(GroupNum, QQNum);

            if (lastest == null || !lastest.IsYesterdaySigned)
            {
                var newSign = new SignInSuccessiveRecord {
                    QQNum = QQNum, GroupNum = GroupNum, StartDate = DateTime.Today, EndDate = DateTime.Today
                };
                MongoService <SignInSuccessiveRecord> .Insert(newSign);

                return(newSign);
            }

            lastest.EndDate = DateTime.Today;
            lastest.Update();
            return(lastest);
        }
Beispiel #2
0
        public override bool OnMsgReceived(MsgInformationEx MsgDTO)
        {
            if (base.OnMsgReceived(MsgDTO))
            {
                return(true);
            }

            if (MsgDTO.Type == MsgType.Private)
            {
                return(false);
            }

            // 群组签到验证
            var groupInfo     = GroupSignInDic.ContainsKey(MsgDTO.FromGroup) ? GroupSignInDic[MsgDTO.FromGroup] : null;
            var signInContent = groupInfo == null ? "签到" : groupInfo.Content;

            if (MsgDTO.FullMsg != signInContent)
            {
                if (MsgDTO.FullMsg == "签到")
                {
                    MsgSender.PushMsg(MsgDTO, "请使用 今日签到内容 命令获取今天的签到口令!");
                }
                return(false);
            }

            AIAnalyzer.AddCommandCount(new CmdRec()
            {
                FunctionalAi = AIName,
                Command      = "SignInOverride",
                GroupNum     = MsgDTO.FromGroup,
                BindAi       = MsgDTO.BindAi
            });

            // 个人签到验证
            if (SignInSuccessiveRecord.IsTodaySigned(MsgDTO.FromGroup, MsgDTO.FromQQ))
            {
                MsgSender.PushMsg(MsgDTO, "你今天已经签过到啦!");
                return(true);
            }

            Sign(MsgDTO);
            return(true);
        }
Beispiel #3
0
        protected override void Sign(MsgInformationEx MsgDTO)
        {
            var sign     = SignInSuccessiveRecord.Sign(MsgDTO.FromGroup, MsgDTO.FromQQ);
            var goldsGen = Math.Min(sign.SuccessiveDays * 5, 50);

            OSPerson.GoldIncome(MsgDTO.FromQQ, goldsGen);
            var indexNo = SignInGroupInfo.GetAndUpdate(MsgDTO.FromGroup);

            var msg = $"签到成功!你已连续签到 {sign.SuccessiveDays}天,获得 {goldsGen.CurencyFormat()}!\r\n本群签到排名:【No.{indexNo}】";

            if (sign.SuccessiveDays % 10 == 0)
            {
                var cache = PersonCacheRecord.Get(MsgDTO.FromQQ, "抽奖");
                cache.Value = !string.IsNullOrEmpty(cache.Value) && int.TryParse(cache.Value, out var times) ? (times + 1).ToString() : 1.ToString();
                cache.Update();

                msg += "\r\n恭喜你获得一次抽奖机会,快去试试吧(当日有效!)";
            }
            MsgSender.PushMsg(MsgDTO, msg, true);
        }