コード例 #1
0
        private void P1_MessageReceived(object sender, IMirrativMessage e)
        {
            var message        = e;
            var messageContext = CreateMessageContext(message);

            if (messageContext != null)
            {
                RaiseMessageReceived(messageContext);
            }
        }
コード例 #2
0
 private MirrativMessageContext CreateMessageContext(IMirrativMessage message)
 {
     if (message is IMirrativComment comment)
     {
         var userId  = comment.UserId;
         var isFirst = _first.IsFirstComment(userId);
         var user    = GetUser(userId);
         //var comment = new MirrativComment(message, raw);
         var metadata = new CommentMessageMetadata(comment, _options, _siteOptions, user, this, isFirst)
         {
             IsInitialComment = false,
             SiteContextGuid  = SiteContextGuid,
         };
         var methods = new MirrativMessageMethods();
         if (_siteOptions.NeedAutoSubNickname)
         {
             var messageText = message.CommentItems.ToText();
             var nick        = SitePluginCommon.Utils.ExtractNickname(messageText);
             if (!string.IsNullOrEmpty(nick))
             {
                 user.Nickname = nick;
             }
         }
         return(new MirrativMessageContext(comment, metadata, methods));
     }
     else if (message is IMirrativJoinRoom join && _siteOptions.IsShowJoinMessage)
     {
         var userId   = join.UserId;
         var user     = GetUser(userId);
         var metadata = new JoinMessageMetadata(join, _options, _siteOptions, user, this)
         {
             IsInitialComment = false,
             SiteContextGuid  = SiteContextGuid,
         };
         var methods = new MirrativMessageMethods();
         return(new MirrativMessageContext(join, metadata, methods));
     }
コード例 #3
0
 public MirrativMessageContext(IMirrativMessage message, IMirrativMessageMetadata metadata, IMessageMethods methods)
 {
     Message  = message;
     Metadata = metadata;
     Methods  = methods;
 }