public bool Reborn(MsgInformationEx MsgDTO, object[] param) { var aimQQ = (long)param[0]; var cache = AliveStateSvc.GetState(MsgDTO.FromGroup, aimQQ); if (cache == null) { MsgSender.PushMsg(MsgDTO, "该成员不需要复活!", true); return(false); } if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, 100)) { MsgSender.PushMsg(MsgDTO, "操作取消!"); return(false); } var osPerson = OSPerson.GetPerson(MsgDTO.FromQQ); osPerson.Golds -= 100; osPerson.Update(); cache.RebornTime = DateTime.Now; AliveStateSvc.Cache(cache); MsgSender.PushMsg(MsgDTO, $"复活成功!你当前剩余金币:{osPerson.Golds}", true); return(true); }
private bool StateCheck(MsgInformationEx MsgDTO) { if (MsgDTO.Type != MsgType.Group) { return(true); } if (MsgDTO.IsAlive) { return(true); } var stateCache = AliveStateSvc.GetState(MsgDTO.FromGroup, MsgDTO.FromQQ); MsgSender.PushMsg(MsgDTO, $"你已经死了({stateCache.Name})!复活时间:{stateCache.RebornTime:yyyy-M-d H:m:s}", true); return(false); }
public override bool OnMsgReceived(MsgInformationEx MsgDTO) { if (base.OnMsgReceived(MsgDTO)) { return(true); } FiltPicMsg(MsgDTO); if (MsgDTO.Type == MsgType.Private) { return(false); } MsgDTO.IsAlive = AliveStateSvc.GetState(MsgDTO.FromGroup, MsgDTO.FromQQ) == null; return(!GroupSettingSvc[MsgDTO.FromGroup].IsPowerOn); }
private bool SkillCheck(MsgInformationEx MsgDTO, long aimQQ) { if (MsgDTO.FromQQ == aimQQ) { MsgSender.PushMsg(MsgDTO, "你无法对自己使用该能力!", true); return(false); } var cache = AliveStateSvc.GetState(MsgDTO.FromGroup, MsgDTO.FromQQ); if (cache == null) { return(true); } MsgSender.PushMsg(MsgDTO, $"他已经死了,你不能对尸体使用该能力!请于 {cache.RebornTime.ToString(CultureInfo.CurrentCulture)} 后再试!", true); return(false); }
public override bool OnMsgReceived(MsgInformationEx MsgDTO) { if (base.OnMsgReceived(MsgDTO)) { return(true); } if (MsgDTO.Type == MsgType.Group) { var bindAi = BindAiSvc.AiDic.Values.FirstOrDefault(p => MsgDTO.FullMsg.Contains(CodeApi.Code_At(p.SelfNum))); if (bindAi == null) { return(false); } MsgDTO.BindAi = bindAi.Name; } var stateCache = AliveStateSvc.GetState(MsgDTO.FromGroup, MsgDTO.FromQQ); if (stateCache != null) { MsgSender.PushMsg(MsgDTO, $"你已经死了({stateCache.Name})!复活时间:{stateCache.RebornTime:yyyy-MM-dd HH:mm:ss}", true); return(false); } var limitRecord = DailyLimitRecord.Get(MsgDTO.FromQQ, "Tuling"); if (!limitRecord.Check(TulingDailyLimit)) { MsgSender.PushMsg(MsgDTO, "今天太累了,明天再找我说话吧~", MsgDTO.Type == MsgType.Group); return(false); } limitRecord.Cache(); limitRecord.Update(); foreach (var aiNum in BindAiSvc.AllAiNums) { MsgDTO.FullMsg = MsgDTO.FullMsg.Replace(CodeApi.Code_At(aiNum), string.Empty); } string response = null; foreach (var tuling in ApiKeys.Select(_ => ApiKeys[CurTulingIndex])) { response = RequestMsg(MsgDTO, tuling.ApiKey); if (!string.IsNullOrEmpty(response)) { break; } CurTulingIndex = (CurTulingIndex + 1) % ApiKeys.Count; } if (string.IsNullOrEmpty(response)) { MsgSender.PushMsg(MsgDTO, "今天太累了,明天再找我说话吧~", MsgDTO.Type == MsgType.Group); return(false); } AIAnalyzer.AddCommandCount(new CmdRec() { FunctionalAi = AIName, Command = "TulingOverride", GroupNum = MsgDTO.FromGroup, BindAi = MsgDTO.BindAi }); MsgSender.PushMsg(MsgDTO, response, MsgDTO.Type == MsgType.Group); return(true); }