Example #1
0
        public override QMEventHandlerTypes OnReceiveGroupMessage(QMGroupMessageEventArgs e)
        {
            if (!LastMessages.ContainsKey(e.FromGroup.Id))
            {
                LastMessages.Add(e.FromGroup.Id, new Tuple <long, string>(e.FromQQ.Id, e.Message.Text));
            }
            else
            {
                LastMessages[e.FromGroup.Id] = new Tuple <long, string>(e.FromQQ.Id, e.Message.Text);
            }

            if (!MessageSenders.ContainsKey(e.FromGroup.Id))
            {
                MessageSenders[e.FromGroup.Id] = new HashSet <long>();
            }

            MessageSenders[e.FromGroup.Id].Add(e.FromQQ.Id);

            if (!RepeatedMessages.ContainsKey(e.FromGroup.Id))
            {
                RepeatedMessages.Add(e.FromGroup.Id, null);
            }

            if (RepeatedMessages[e.FromGroup.Id] != null && e.Message.Text == RepeatedMessages[e.FromGroup.Id])
            {
                MessageSenders[e.FromGroup.Id].Clear();
                return(QMEventHandlerTypes.Continue);
            }

            if (MessageSenders[e.FromGroup.Id].Count >= 3)
            {
                QMApi.SendGroupMessage(e.RobotQQ, e.FromGroup, e.Message.Text);
                RepeatedMessages[e.FromGroup.Id] = e.Message.Text;
                MessageSenders[e.FromGroup.Id].Clear();
            }

            return(QMEventHandlerTypes.Continue);
        }
Example #2
0
        public override QMEventHandlerTypes OnReceiveGroupMessage(QMGroupMessageEventArgs e)
        {
            if (MainSave.AppConfig.Object["接口"]["Group"].GetValueOrDefault(0) is 0)
            {
                bool flag = false;
                for (int i = 0; i < MainSave.AppConfig.Object["群控"]["Count"].GetValueOrDefault(0); i++)
                {
                    if (e.FromGroup.Id == MainSave.AppConfig.Object["群控"][$"Item{i}"].GetValueOrDefault(0))
                    {
                        flag = true;
                        break;
                    }
                }
                if (flag is false)
                {
                    return(QMEventHandlerTypes.Continue);
                }
            }
            FunctionResult result = Event_GroupMessage.GroupMessage(e);

            if (result.SendFlag)
            {
                if (result.SendObject == null)
                {
                    return(QMEventHandlerTypes.Continue);
                }
                foreach (var item in result.SendObject)
                {
                    Group DestGroup = new Group(item.SendID);
                    foreach (var sendMsg in item.MsgToSend)
                    {
                        QMApi.SendGroupMessage(e.RobotQQ, DestGroup, sendMsg);
                    }
                }
            }
            return(result.result);
        }