Ejemplo n.º 1
0
        protected override void OnMessage(MessageEventArgs e)
        {
            Program.LogMsg(e.Data, LogSeverity.Verbose, "AppealsMsg");
            var json = JObject.Parse(e.Data);
            var type = json["type"].ToString();

            if (type == "GetMessages")
            {
                var before   = json["before"].ToObject <long>();
                var msgId    = SnowflakeUtils.ToSnowflake(DateTimeOffset.FromUnixTimeMilliseconds(before));
                var messages = Appeal.AppealChannel.GetMessagesAsync(msgId, Direction.Before).FlattenAsync().Result;
                foreach (var x in messages)
                {
                    if (x is IUserMessage u)
                    {
                        NewMessage(u);
                    }
                }
            }
            else if (type == "SendMessage")
            {
                if (Appeal.IsMuted)
                {
                    var time = Program.FormatTimeSpan(Appeal.MutedUntil.Value - DateTime.Now, true);
                    SendInfo("Error: This ban appeal is muted.", time);
                }
                else
                {
                    var content = json["content"].ToString();
                    try
                    {
                        Appeal.SendMessageAsync(content, User.Name, User.GetAvatarUrl()).Wait();
                    } catch (Exception ex)
                    {
                        Program.LogMsg(ex, "BanAppeal");
                        SendInfo($"Exception occured: {ex.Message}");
                    }
                }
            }
        }