예제 #1
0
 public void SetHeaderColor(string targetName, FontColor color)
 {
     if (StatusLists.TryGetValue(targetName, out var statusList))
     {
         statusList.SetHeaderColor(color);
     }
 }
예제 #2
0
 public bool AppendPost(int postId, string text, FontColor color)
 {
     if (PostHistory.TryGetValue(postId, out string targetName))
     {
         if (StatusLists.TryGetValue(targetName, out var statusList))
         {
             if (statusList.AppendPost(postId, text, color))
             {
                 return(true);
             }
             //else
             //{
             //    Plugin.log?.Debug($"Failed to append PostId {postId} for {targetName} at AppendPost({postId}, {text}, {color})");
             //    var postIds = string.Join(", ", statusList.PostTexts.Select(l => l.PostId).ToList());
             //    Plugin.log?.Debug($"Valid PostIds: {postIds}");
             //}
         }
         //else
         //    Plugin.log?.Debug($"Failed to append PostId {postId} for {targetName} at StatusLists.TryGetValue({targetName})");
     }
     //else
     //    Plugin.log?.Debug($"Failed to append PostId {postId} at PostHistory.TryGetValue({postId})");
     PostHistory.TryRemove(postId, out var _); // Doesn't exist anymore, remove
     return(false);
 }
예제 #3
0
 public void SetSubHeader(string targetName, string text)
 {
     if (StatusLists.TryGetValue(targetName, out var statusList))
     {
         statusList.SubHeader = text;
     }
 }
예제 #4
0
 public FontColor?GetHeaderColor(string targetName)
 {
     if (StatusLists.TryGetValue(targetName, out var statusList))
     {
         return(statusList.GetHeaderColor());
     }
     return(null);
 }
예제 #5
0
 public string GetSubHeader(string targetName)
 {
     if (StatusLists.TryGetValue(targetName, out var statusList))
     {
         return(statusList.SubHeader);
     }
     return(null);
 }
예제 #6
0
 public void Clear(string targetName)
 {
     if (StatusLists.TryGetValue(targetName, out var statusList))
     {
         statusList.Clear();
     }
     else
     {
         Plugin.log?.Warn($"Unable to clear {targetName}");
     }
 }
예제 #7
0
 public void SetHeader(string targetName, string text, FontColor color)
 {
     if (StatusLists.TryGetValue(targetName, out var statusList))
     {
         statusList.Header = text;
         if (color != FontColor.None)
         {
             statusList.SetHeaderColor(color);
         }
     }
 }
예제 #8
0
 public bool UnpinAndRemovePost(int postId)
 {
     if (PostHistory.TryGetValue(postId, out string targetName))
     {
         if (StatusLists.TryGetValue(targetName, out var statusList))
         {
             if (statusList.PostExists(postId))
             {
                 return(statusList.UnpinAndRemove(postId));
             }
         }
     }
     PostHistory.TryRemove(postId, out var _); // Doesn't exist anymore, remove
     return(false);
 }
예제 #9
0
 public bool ReplacePost(int postId, string text, FontColor color)
 {
     if (PostHistory.TryGetValue(postId, out string targetName))
     {
         if (StatusLists.TryGetValue(targetName, out var statusList))
         {
             if (statusList.ReplacePost(postId, text, color))
             {
                 return(true);
             }
         }
     }
     PostHistory.TryRemove(postId, out var _); // Doesn't exist anymore, remove
     return(false);
 }
예제 #10
0
 public string GetPost(int postId)
 {
     if (PostHistory.TryGetValue(postId, out string targetName))
     {
         if (StatusLists.TryGetValue(targetName, out var statusList))
         {
             var text = statusList.GetPost(postId);
             if (text != null)
             {
                 return(text);
             }
         }
     }
     PostHistory.TryRemove(postId, out var _); // Doesn't exist anymore, remove
     return(null);
 }
예제 #11
0
        /// <summary>
        /// Removes the post from the specified target, if it exists. Returns false if the post doesn't exist.
        /// </summary>
        /// <param name="targetName"></param>
        /// <param name="postId"></param>
        /// <returns></returns>
        public bool RemovePost(int postId)
        {
            bool successful = false;

            if (PostHistory.TryGetValue(postId, out string targetName))
            {
                if (StatusLists.TryGetValue(targetName, out var statusList))
                {
                    if (statusList.RemovePost(postId))
                    {
                        successful = true;
                    }
                }
            }
            PostHistory.TryRemove(postId, out var _); // Doesn't exist anymore, remove
            return(successful);
        }
예제 #12
0
        public int Post(string targetName, string text, FontColor color)
        {
            var postId = NextId;

            if (postId == 0)
            {
                Plugin.log?.Error($"postId is 0 during Post, this shouldn't happen");
            }
            if (StatusLists.TryGetValue(targetName, out var statusList))
            {
                if (!PostHistory.TryAdd(postId, targetName))
                {
                    Plugin.log?.Warn($"postId {postId} for {targetName} couldn't be added.");
                }
                statusList.Post(postId, text, color);
#if DEBUG
                Plugin.log?.Info($"Posting text {text} to {targetName}.{postId}");
#endif
                return(postId);
            }
            return(0);
        }