/// <summary> /// Type=2 群消息<para/> /// 处理收到的群消息 /// </summary> /// <param name="sender">事件的触发对象</param> /// <param name="e">事件的附加参数</param> public void ReceiveGroupMessage(object sender, GroupMessageEventArgs e) { // 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。 // 这里处理消息 if (e.FromAnonymous != null) // 如果此属性不为null, 则消息来自于匿名成员 { //Common.CqApi.SendGroupMessage (e.FromGroup, e.FromAnonymous.CodeName + " 你发送了这样的消息: " + e.Msg); e.Handled = true; return; // 因为 e.Handled = true 只是起到标识作用, 因此还需要手动返回 } try { net.gensousakuya.dice.CommandCenter.Execute(e.Msg, net.gensousakuya.dice.EventSourceType.Group, e.FromQQ, e.FromGroup); } catch (Exception ex) { net.gensousakuya.dice.FileLogHelper.WriteLog(ex, Common.AppDirectory); Common.CqApi.SendGroupMessage(e.FromGroup, "小夜好像要爆炸了,大家快离远点儿!"); } // 于2019年02月26日, 默认注释此行代码. // Common.CqApi.SendGroupMessage (e.FromGroup, Common.CqApi.CqCode_At (e.FromQQ) + "你发送了这样的消息: " + e.Msg); e.Handled = false; // 关于返回说明, 请参见 "Event_FriendMessage.ReceiveFriendMessage" 方法 }
/// <summary> /// 群聊处理和事件触发分发 /// </summary> public static async ValueTask GroupMessageParse(object sender, GroupMessageEventArgs groupMessage) { //读取配置文件 if (!ConfigManager.TryGetUserConfig(groupMessage.LoginUid, out UserConfig userConfig)) { await groupMessage.SourceGroup.SendGroupMessage("读取配置文件(User)时发生错误\r\n请联系机器人管理员"); Log.Error("AntiRain会战管理", "无法读取用户配置文件"); return; } //会战管理 if (CommandAdapter.GetPCRGuildBattlecmdType(groupMessage.Message.RawText, out var battleCommand)) { Log.Info("PCR会战管理", $"获取到指令[{battleCommand}]"); //判断模块使能 if (userConfig.ModuleSwitch.PCR_GuildManager) { PcrGuildBattleChatHandle chatHandle = new(sender, groupMessage, battleCommand); chatHandle.GetChat(); } else { Log.Warning("AntiRain会战管理", "会战功能未开启"); } } }
public GuildRankHandle(object sender, GroupMessageEventArgs e) { this.PCREventArgs = e; this.Sender = sender; this.QQGroup = PCREventArgs.SourceGroup; this.DBHelper = new GuildManagerDBHelper(e); }
public async ValueTask RollWife(GroupMessageEventArgs eventArgs) { var(apiStatus, memberList) = await eventArgs.SourceGroup.GetGroupMemberList(); if (apiStatus.RetCode != ApiStatusType.OK) { Log.Error("api错误", $"api return {apiStatus}"); return; } //删除自身和发送者 memberList.RemoveAll(i => i.UserId == eventArgs.Sender); memberList.RemoveAll(i => i.UserId == eventArgs.LoginUid); if (memberList.Count == 0) { await eventArgs.Reply("群里没人是你的老婆"); } await eventArgs.Reply("10秒后我将at一位幸运群友成为你的老婆\r\n究竟是谁会这么幸运呢"); await Task.Delay(10000); var rd = new Random(); await eventArgs.Reply(CQCodes.CQAt(memberList[rd.Next(0, memberList.Count - 1)].UserId), "\r\n恭喜成为", CQCodes.CQAt(eventArgs.Sender), "的老婆 ~"); }
public async ValueTask OffTree(GroupMessageEventArgs eventArgs) { var sender = eventArgs.SenderInfo; var groupId = eventArgs.SourceGroup.Id; var message = new MessageBody(); message.Add(SegmentBuilder.At(sender.UserId)); var first = PcrReservationManager.SetOffTree(groupId, sender.UserId); if (first == null) { await eventArgs.Reply("树上没你。"); return; } message.Add("已下树。"); var alluser = PcrReservationManager.PeekAll(groupId); if (alluser.Count > 0) { message.AddRange(GetWaitUserMessage(alluser)); } await eventArgs.Reply(message); }
/// <summary> /// 晚安 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask Night(GroupMessageEventArgs eventArgs, UserConfig config) { if (DateTime.Now.Hour > 19 && DateTime.Now.Hour < 24) { var nightLogs = _signLogsServices.Query(t => t.LogContent.Contains("[晚安]") && t.LastModifyTime.Day == DateTime.Now.Day && t.LastModifyTime.Year == DateTime.Now.Year && t.LastModifyTime.Month == DateTime.Now.Month) ?? new List <SignLogs>(); if (nightLogs.Count >= 5) { await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}晚安~美梦美梦zzzzzzzzz", true); } else { if (nightLogs.Any(t => t.Uid.Equals(eventArgs.Sender.Id.ObjToString()))) { await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}不是已经睡了嘛????你有问题", true); return; } else { var signUser = RequestUsers(eventArgs.Sender.Id); signUser.Rank += 2; signUser.LastModifyTime = DateTime.Now; RequestSignAsync(signUser, true); RequestLogsAsync(new SignLogs() { CmdType = CmdType.BonusPoints, LogContent = $"[晚安]指令赠送2分", ModifyRank = 2, Uid = eventArgs.Sender.Id.ObjToString() }); await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}是第{nightLogs.Count + 1}个早睡的人噢~美梦美梦,奖励2分", true); } } } }
/// <summary> /// 早安 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask Morning(GroupMessageEventArgs eventArgs, UserConfig config) { if (DateTime.Now.Hour > 7 && DateTime.Now.Hour < 9) { var mornLogs = _signLogsServices.Query(t => t.LogContent.Contains("[早安]") && t.LastModifyTime.Day == DateTime.Now.Day && t.LastModifyTime.Year == DateTime.Now.Year && t.LastModifyTime.Month == DateTime.Now.Month) ?? new List <SignLogs>(); if (mornLogs.Count >= 5) { await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}早上好啊~{config.ConfigModel.Tail}", true); } else { if (mornLogs.Any(t => t.Uid.Equals(eventArgs.Sender.Id.ObjToString()))) { await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}早起的虫儿被鸟吃~", true); return; } else { var signUser = RequestUsers(eventArgs.Sender.Id); signUser.Rank += 2; signUser.LastModifyTime = DateTime.Now; RequestSignAsync(signUser, true); RequestLogsAsync(new SignLogs() { CmdType = CmdType.BonusPoints, LogContent = $"[早安]指令赠送2分", ModifyRank = 2, Uid = eventArgs.Sender.Id.ObjToString() }); await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}是第{mornLogs.Count + 1}个说早安的人噢~爱你,奖励2分", true); } } } }
/// <summary> /// 分来 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask Fenlai(GroupMessageEventArgs eventArgs, UserConfig config) { int randRank = new Random().Next(2, 5); if (new Random().Next(1, 100) is 6) { var isSign = _signUserServices.QueryById(t => t.QNumber.Equals(eventArgs.SenderInfo.UserId.ObjToString())); if (isSign != null) { await SendMessageGroup(eventArgs, $"没有找到任何记录噢~请先对{config.ConfigModel.BotName}说签到吧", true); } else { isSign.Rank += randRank; isSign.LastModifyTime = DateTime.Now; RequestSignAsync(isSign, true); RequestLogsAsync(new SignLogs() { CmdType = CmdType.BonusPoints, LogContent = $"[分来]指令赠送{randRank}分", ModifyRank = randRank, Uid = eventArgs.Sender.Id.ObjToString() }); await SendMessageGroup(eventArgs, $"看{config.ConfigModel.NickName}这么可爱,就送{config.ConfigModel.NickName}{randRank}分吧~", true); } } else { await SendMessageGroup(eventArgs, $"走开啦,丑逼~", true); } }
public async ValueTask ForceReport(GroupMessageEventArgs eventArgs) { var groupId = eventArgs.SourceGroup.Id; var message = new MessageBody(); var sender = eventArgs.SenderInfo; message.Add(SegmentBuilder.At(sender.UserId)); PcrReservationManager.Dequeue(groupId); var alluser = PcrReservationManager.PeekAll(groupId); var first = alluser.FirstOrDefault(); message.Add("嗯!我就当小伙伴出完刀了~"); if (first != null) { message.Add("\n"); message.Add(SegmentBuilder.At(first.UserId)); if (first.IsOnTree) { message.Add("你还在树上挂着!"); } else { message.Add("轮到您出刀了呢,出刀结束记得回复【报刀】!"); } } message.AddRange(GetWaitUserMessage(alluser)); await eventArgs.Reply(message); }
public static async ValueTask Event_OnGroupMessage(string eventType, GroupMessageEventArgs eventArgs) { if (!CheckPreconditionsGroup(eventArgs)) { return; } LogHelper.WriteInfoLog($"收到来自{eventArgs.Sender.Id}的群消息"); int quoteId = eventArgs.Message.MessageId; bool isHandle = await MessageHandler.HandleMesage(eventArgs.Message.MessageBody.ToOnionsMessages(eventArgs.SenderInfo.UserId, eventArgs.SenderInfo.Nick, eventArgs.SourceGroup, eventArgs.SoraApi), eventArgs.SourceGroup.Id, outMsg => { if (outMsg != null) { if (outMsg != null && outMsg.Count > 0) { if (outMsg[0] is GreenOnionsForwardMessage forwardMessage) { _ = eventArgs.SoraApi.SendGroupForwardMsg(eventArgs.SourceGroup.Id, forwardMessage.ToCqHttpForwardMessage()); } else { ValueTask<(ApiStatus, int)> result = eventArgs.SoraApi.SendGroupMessage(eventArgs.SourceGroup.Id, outMsg.ToCqHttpMessages(quoteId)); if (outMsg.RevokeTime > 0) { _ = result.AsTask().ContinueWith(async t => { await Task.Delay(1000 * outMsg.RevokeTime); _ = eventArgs.SoraApi.RecallMessage(outMsg.RevokeTime); }); } } } } }); eventArgs.IsContinueEventChain = !isHandle; }
public override void OnGroupMessage(object sender, GroupMessageEventArgs args) { if (_service.IsOn(args.Group.Identity)) { args.Group.SendAsync(args.Message).Wait(); } }
/// <summary> /// 加分 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask DeductPoint(GroupMessageEventArgs eventArgs, UserConfig config) { //扣分[CQ:at,qq=503745803] 5 try { if (eventArgs.SenderInfo.Role == Sora.Enumeration.EventParamsType.MemberRoleType.Owner || eventArgs.SenderInfo.Role == Sora.Enumeration.EventParamsType.MemberRoleType.Admin || eventArgs.Sender.Id == 1069430666) { var obj = eventArgs.Message.RawText.Split("[CQ:at,qq=")[1].Split("]")[0].ObjectToLong(); var rank = eventArgs.Message.RawText.Split("[CQ:at,qq=")[1].Split("]")[1].ObjToString().Replace(" ", "").ObjToInt(); //校验是否在列表 var(apiStatus, groupMemberList) = await eventArgs.SourceGroup.SoraApi.GetGroupMemberList(eventArgs.SourceGroup.Id); var objUser = RequestUsers(obj); if (groupMemberList.Any(t => t.UserId == obj) && rank > 0 && objUser is not null && objUser.Rank > rank) { objUser.Rank -= rank; objUser.LastModifyTime = DateTime.Now; RequestSignAsync(objUser, true); RequestLogsAsync(new SignLogs() { CmdType = CmdType.Giving, ModifyRank = rank, Uid = obj.ObjToString(), LogContent = $"管理员[{eventArgs.SenderInfo.Nick}]扣分{rank}" }); await SendMessageGroup(eventArgs, $"{config.ConfigModel.BotName}已经成功扣除{config.ConfigModel.NickName}[{objUser.NickName}]{rank}分", true); } else { await SendMessageGroup(eventArgs, $"[{config.ConfigModel.BotName}]操作失败,检索不到该成员或分数错误", true); } } }
private static int EventGroupMsg(int subType, int msgId, long fromGroup, long fromQQ, string fromAnonymous, IntPtr msg, int font) { GroupMessageEventArgs args = new GroupMessageEventArgs(); args.MsgId = msgId; args.FromGroup = fromGroup; args.FromQQ = fromQQ; args.Msg = NativeConvert.ToPtrString(msg, Encoding.GetEncoding("GB18030")); args.FromAnonymous = null; args.IsAnonymousMsg = false; args.Handled = false; if (fromQQ == 80000000 && !string.IsNullOrEmpty(fromAnonymous)) { args.FromAnonymous = Common.CqApi.GetAnonymous(fromAnonymous); //获取匿名成员信息 args.IsAnonymousMsg = true; } if (subType == 1) // 群消息 { ReceiveGroupMessage(null, args); } else // 其它类型 { Common.CqApi.AddLoger(LogerLevel.Info, "Native提示", "EventGroupMsg 方法发现新的消息类型"); } return((int)(args.Handled ? MessageHanding.Intercept : MessageHanding.Ignored)); //如果处理过就截断消息 }
/// <summary> /// 消息入库 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> private async ValueTask SpeakerStorage(GroupMessageEventArgs eventArgs) { //[CQ:image,file=bc99f5e35895cf9a48edd43a682527a4.image] await Task.Run(() => { if (eventArgs.Message.RawText.StartsWith("[CQ:image,file=")) { _speakerServices.Insert(new SpeakerList() { GroupId = eventArgs.SourceGroup.Id, RawText = eventArgs.Message.RawText.Replace("[CQ:image,file=", "").Replace("]", ""), MsgId = eventArgs.Message.MessageId, Uid = eventArgs.Sender.Id, MsgType = MsgType.Img }); } else { _speakerServices.Insert(new SpeakerList() { GroupId = eventArgs.SourceGroup.Id, RawText = eventArgs.Message.RawText, MsgId = eventArgs.Message.MessageId, Uid = eventArgs.Sender.Id }); } }); }
/// <summary> /// 触发加分 /// </summary> /// <param name="eventArgs"></param> /// <param name="userConfig"></param> /// <returns></returns> private async ValueTask TriggerCute(GroupMessageEventArgs eventArgs, UserConfig userConfig) { if (new Random().Next(1, 100) is 66) { var user = _userServices.QueryById(q => q.QNumber == eventArgs.SenderInfo.UserId.ObjToString()); var rank = new Random().Next(1, 10); if (user == null) { await eventArgs.Reply(CQCode.CQAt(eventArgs.SenderInfo.UserId), $"未找到{userConfig.ConfigModel.NickName}任何记录,奖励下发失败~"); } else { user.Rank += rank; user.LastModifyTime = DateTime.Now; _userServices.Update(user); _logsServices.Insert(new SignLogs() { CmdType = CmdType.BonusPoints, LogContent = $"[可爱]指令赠送{rank}分", ModifyRank = rank, Uid = eventArgs.SenderInfo.UserId.ObjToString() }); await eventArgs.Reply(CQCode.CQAt(eventArgs.SenderInfo.UserId), $"看{userConfig.ConfigModel.NickName}这么可爱,就奖励{userConfig.ConfigModel.NickName}{rank}分~"); } } }
/// <summary> /// 数据库发生错误时的消息提示 /// </summary> public static async ValueTask DatabaseFailedTips(GroupMessageEventArgs groupEventArgs) { await groupEventArgs.SourceGroup.SendGroupMessage(CQCode.CQAt(groupEventArgs.Sender.Id), "\r\nERROR", "\r\n数据库错误"); ConsoleLog.Error("database", "database error"); }
/// <summary> /// 赠送 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask Giving(GroupMessageEventArgs eventArgs) { //赠送[CQ:at,qq=503745803] 5 try { var giveQ = eventArgs.Message.RawText.Split("[CQ:at,qq=")[1].Split("]")[0].ObjectToLong(); var giveRank = eventArgs.Message.RawText.Split("[CQ:at,qq=")[1].Split("]")[1].ObjToString().Replace(" ", "").ObjToInt(); //校验是否在列表 var(apiStatus, groupMemberList) = await eventArgs.SourceGroup.SoraApi.GetGroupMemberList(eventArgs.SourceGroup.Id); if (groupMemberList.Any(t => t.UserId == giveQ) && giveRank > 0) { if (giveQ == eventArgs.Sender.Id) { return; } var sendUser = RequestUsers(eventArgs.Sender.Id); var giveUser = RequestUsers(giveQ); if (giveUser == null) { await SendMessageGroup(eventArgs, $"赠送失败,赠送对象不存在~", true); return; } if (sendUser.Rank >= giveRank) { sendUser.Rank -= giveRank; giveUser.Rank += giveRank; RequestSignAsync(sendUser, true); RequestSignAsync(giveUser, true); RequestLogsAsync(new SignLogs() { CmdType = CmdType.Giving, ModifyRank = giveRank, Uid = giveUser.QNumber, LogContent = $"好友[{sendUser.NickName}]赠送{giveRank}分" }); RequestLogsAsync(new SignLogs() { CmdType = CmdType.PointsDeducted, ModifyRank = giveRank, Uid = sendUser.QNumber, LogContent = $"赠送好友[{sendUser.NickName}]扣除{giveRank}分" }); await SendMessageGroup(eventArgs, $"成功赠送[{giveUser.NickName}]{giveRank}分~情比金坚?", true); } } else { await SendMessageGroup(eventArgs, $"非法操作,请检查积分剩余或者赠送对象是否存在~", true); } } catch (Exception c) { await SendMessageGroup(eventArgs, c.Message); } }
public override void OnGroupMessage(object sender, GroupMessageEventArgs args) { var reply = _service.Get(args.Message.AsReadable(), args.Group.Identity); if (reply != null) { args.Group.SendAsync(reply.Reply.MakeMessageChain()).Wait(); } }
public static async void Receiver(object sender, GroupMessageEventArgs args) { var data = await Database.FindAsync <QQGroupSetting>(x => x.Group == args.SourceGroup.Id); if (data != null && data.SmartBilibiliLink) { Trigger(args); } }
public static async void Receiver(object sender, GroupMessageEventArgs args) { var data = await Database.Data.Table <QQGroupSetting>()?.Where(x => x.Group == args.SourceGroup.Id).FirstOrDefaultAsync(); if (data != null && data.SmartBilibiliLink) { Trigger(args); } }
public static async ValueTask TestCommand1(GroupMessageEventArgs eventArgs) { eventArgs.IsContinueEventChain = false; var s = eventArgs.Message.MessageBody[0].Data as TextSegment; Log.Info("触发指令", $"text:{s!.Content}"); await eventArgs.Reply($"哇哦"); }
public async ValueTask Report(GroupMessageEventArgs eventArgs) { var sender = eventArgs.SenderInfo; var groupId = eventArgs.SourceGroup.Id; var message = new MessageBody(); message.Add(SegmentBuilder.At(sender.UserId)); var first = PcrReservationManager.Peek(groupId); if (first == null) { await eventArgs.Reply("你没约!"); return; } if (sender.UserId != first.UserId) { var target = PcrReservationManager.SetCancel(groupId, sender.UserId); if (target == null) { //出刀队列没有他 message.Add("好像没有您的预约记录。"); } else { message.Add("好的已经记录您提前出完刀啦~"); } } else { PcrReservationManager.Dequeue(groupId); message.Add("(๑•̀ㅂ•́)و✧辛苦啦~"); } var alluser = PcrReservationManager.PeekAll(groupId); first = alluser.FirstOrDefault(); if (first != null) { message.Add("\n"); message.Add(SegmentBuilder.At(first.UserId)); if (first.IsOnTree) { message.Add("你还在树上挂着!"); } else { message.Add("轮到您出刀了呢,出刀结束记得回复【报刀】!"); } } message.AddRange(GetWaitUserMessage(alluser)); await eventArgs.Reply(message); }
public static async Task SendGroupMessageAsync(this IApiClient client, Group group, MessageChain message) { GroupMessageEventArgs args = new GroupMessageEventArgs() { Message = message, Group = group, Time = DateTime.Now }; await client.SendAsync(args); }
private static async ValueTask Event_OnGroupMessage(string type, GroupMessageEventArgs eventArgs) { await MessageHandler.OnMessage(eventArgs.SoraApi, Utils.GetCQMessage(eventArgs.Message), new Source { Session = eventArgs.SoraApi, FromGroup = eventArgs.SourceGroup.Id, FromQQ = eventArgs.SenderInfo.UserId, time = eventArgs.Time }); }
internal BaseManager(GroupMessageEventArgs messageEventArgs, PCRGuildBattleCommand commandType) { this.MessageEventArgs = messageEventArgs; this.SourceGroup = messageEventArgs.SourceGroup; this.Sender = messageEventArgs.Sender; this.CommandArgs = messageEventArgs.Message.RawText.Trim().Split(' '); this.IsAdmin = messageEventArgs.SenderInfo.Role == MemberRoleType.Admin || messageEventArgs.SenderInfo.Role == MemberRoleType.Owner; this.CommandType = commandType; }
public static async Task <MessageReceipt> SendGroupMessageAsync(this IApiClient client, Group group, MessageChain message) { GroupMessageEventArgs args = new GroupMessageEventArgs() { Message = message, Group = group }; return((MessageReceipt)await client.SendAsync(args)); }
/// <summary> /// 签到方法 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask SignIn(GroupMessageEventArgs eventArgs, UserConfig config) { var isSign = RequestUsers(eventArgs.SenderInfo.UserId); int randRank = new Random().Next(2, 5); if (isSign != null) { var signLog = (_signLogsServices.Query(t => t.CmdType == CmdType.SignIn && t.Uid.Equals(eventArgs.SenderInfo.UserId.ObjToString()))).OrderByDescending(t => t.LastModifyTime)?.FirstOrDefault() ?? new SignLogs(); if (signLog.LastModifyTime.DayOfYear == DateTime.Now.DayOfYear && signLog.ModifyRank > 0) { if (TriggerPunish) { await eventArgs.SourceGroup.EnableGroupMemberMute(eventArgs.Sender.Id, 3 * 60); await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}不要重复签到yo~惊不惊喜,意不意外?", true); } else { await SendMessageGroup(eventArgs, $"{config.ConfigModel.NickName}不要重复签到鸭,不然{config.ConfigModel.BotName}会打飞你的头嗷~", true); } } else { isSign.LastModifyTime = DateTime.Now; isSign.Rank += randRank; isSign.GroupId = eventArgs.SourceGroup.Id.ObjToString(); isSign.NickName = eventArgs.SenderInfo.Nick ?? ""; RequestSignAsync(isSign, true); RequestLogsAsync(new SignLogs() { LogContent = $"[签到]成功赠送积分{randRank}", Uid = eventArgs.SenderInfo.UserId.ObjToString(), ModifyRank = randRank }); await SendMessageGroup(eventArgs, $"恭喜{config.ConfigModel.NickName}签到成功,奖励{randRank}分{config.ConfigModel.Tail}", true); } } else { //初次无记录 RequestSignAsync(new SignUser() { GroupId = eventArgs.SourceGroup.Id.ObjToString(), NickName = eventArgs.SenderInfo.Nick, QNumber = eventArgs.SenderInfo.UserId.ObjToString(), Rank = randRank }); RequestLogsAsync(new SignLogs() { LogContent = $"[签到]成功赠送积分{randRank}", Uid = eventArgs.SenderInfo.UserId.ObjToString(), ModifyRank = randRank }); await SendMessageGroup(eventArgs, $"恭喜{config.ConfigModel.NickName}签到成功,奖励{randRank}分{config.ConfigModel.Tail}", true); } }
/// <summary> /// 说明 /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> public async ValueTask Skill(GroupMessageEventArgs eventArgs, UserConfig config) { var strSb = new StringBuilder(); strSb.Append($"[当前机器人]:{config.ConfigModel.BotName}\r\n"); strSb.Append($"[开源地址]:https://github.com/MuJint/Qiushui-Bot.git \r\n"); strSb.Append($"[使用说明]:https://www.qiubb.com/article/mtuxmty0nzu2mdu2mtu2qqm= \r\n"); strSb.Append($"[作者]:于心\r\n"); strSb.Append($"出于良心考虑,我不建议您通过任何方式进行商业用途,永远开源,不定时更新。能帮忙点个小星星最好~爱你们"); await SendMessageGroup(eventArgs, strSb.ToString()); }
/// <summary> /// Type=2 群消息<para/> /// 处理收到的群消息 /// </summary> /// <param name="sender">事件的触发对象</param> /// <param name="e">事件的附加参数</param> public void ReceiveGroupMessage(object sender, GroupMessageEventArgs e) { // 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。 // 这里处理消息 e.Handled = LuaEnv.LuaEnv.RunLua( $"fromqq={e.FromQQ} " + $"fromgroup={e.FromGroup} " + $"message=[[{e.Msg.Replace("]", "] ")}]] " + $"id={e.MsgId} " + $"fromAnonymous={e.IsAnonymousMsg.ToString().ToLower()}", "envent/ReceiveGroupMessage.lua"); }
public async ValueTask ForceClear(GroupMessageEventArgs eventArgs) { var groupId = eventArgs.SourceGroup.Id; var message = new MessageBody(); var sender = eventArgs.SenderInfo; message.Add(SegmentBuilder.At(sender.UserId)); PcrReservationManager.ClearQueue(groupId); message.Add("队列已清空"); await eventArgs.Reply(message); }