Exemplo n.º 1
0
 public void ParseMsg(string msg)
 {
     try
     {
         if (!CommonUtil.IsValidCMD(ref msg))
         {
             return;
         }
         Cmd  cmd           = CommonUtil.GetCmd(msg);
         bool isInternalCmd = CommonUtil.IsInternalCmd(cmd.Name);
         this.taskInfo = msg;
         if (isInternalCmd)
         {//内部命令
             InternalCmdExecutor intercmder = new InternalCmdExecutor(this, new InterCmd(cmd.Name, cmd.Para));
             intercmder.Execute();
         }
         else
         {
             if (PluginMgr.IsContainsCmd(cmd.Name))
             {
                 Iplugin p = PluginMgr.GetPlugin(cmd.Name);
                 this.needParseResult = p.NeedParseResult;
                 Executor executor = new TaskExecutor(this, cmd.Para, p);
                 executor.Execute();
             }
         }
     }
     catch (Exception ex)
     {
         RobotCore.Log.Error(ex.ToString());
     }
 }
Exemplo n.º 2
0
 public void ParseMsg(string msg)
 {
     try
     {
         RobotCore.Log.Info(string.Format("{0}对你的Fetion机器人说:{1}", contact.DisplayName, msg));
         bool isPermitUser = RobotCore.PermissionMgr.IsPermitUser(conversation.From.ToString());
         bool isValidCmd   = CommonUtil.IsValidCMD(ref msg);
         if (!isValidCmd)
         {
             SendCmdInvalid();
             return;
         }
         Cmd  cmd           = CommonUtil.GetCmd(msg);
         bool isInternalCmd = CommonUtil.IsInternalCmd(cmd.Name);
         if (isInternalCmd)
         {//内部命令
             if (!isPermitUser && !CommonUtil.IsOpenInternalCmd(cmd.Name))
             {
                 SendSuggest();
             }
             else
             {
                 InternalCmdExecutor intercmder = new InternalCmdExecutor(this, new InterCmd(cmd.Name, cmd.Para));
                 intercmder.Execute();
             }
         }
         else
         {//插件命令
             bool hasPlugin = PluginMgr.IsContainsCmd(cmd.Name);
             if (hasPlugin)
             {
                 Iplugin p = PluginMgr.GetPlugin(cmd.Name);
                 if (!isPermitUser && p.IsHostOnly)
                 {//未授权用户执行特定需授权插件中的命令
                     this.Send(string.Format("这个命令只有主人才能执行哦(w)"));
                     return;
                 }
                 Executor executor = new ConvExecutor(this, cmd.Para, p);
                 executor.Execute();
             }
             else
             {
                 SendSuggest();
             }
         }
     }
     catch (Exception ex)
     {
         WriteLog("RobotConvAnalyzer ParseMsg occur error:" + ex.ToString());;
     }
 }