WHEW. Added placeholders in embeds and quotes, added docs about it to explained features. Wrote a placeholder system and fixed some bugs
This commit is contained in:
		@@ -33,11 +33,11 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                    {
 | 
			
		||||
                        var config = uow.BotConfig.GetOrCreate();
 | 
			
		||||
 | 
			
		||||
                        _service.RotatingStatuses = config.RotatingStatuses = !config.RotatingStatuses;
 | 
			
		||||
                        config.RotatingStatuses = !config.RotatingStatuses;
 | 
			
		||||
                        uow.Complete();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                if (_service.RotatingStatuses)
 | 
			
		||||
                if (_service.BotConfig.RotatingStatuses)
 | 
			
		||||
                    await ReplyConfirmLocalized("ropl_enabled").ConfigureAwait(false);
 | 
			
		||||
                else
 | 
			
		||||
                    await ReplyConfirmLocalized("ropl_disabled").ConfigureAwait(false);
 | 
			
		||||
@@ -52,7 +52,6 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                    var config = uow.BotConfig.GetOrCreate();
 | 
			
		||||
                    var toAdd = new PlayingStatus { Status = status };
 | 
			
		||||
                    config.RotatingStatusMessages.Add(toAdd);
 | 
			
		||||
                    _service.RotatingStatusMessages.Add(toAdd);
 | 
			
		||||
                    await uow.CompleteAsync();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -63,13 +62,13 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
            [OwnerOnly]
 | 
			
		||||
            public async Task ListPlaying()
 | 
			
		||||
            {
 | 
			
		||||
                if (!_service.RotatingStatusMessages.Any())
 | 
			
		||||
                if (!_service.BotConfig.RotatingStatusMessages.Any())
 | 
			
		||||
                    await ReplyErrorLocalized("ropl_not_set").ConfigureAwait(false);
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    var i = 1;
 | 
			
		||||
                    await ReplyConfirmLocalized("ropl_list",
 | 
			
		||||
                            string.Join("\n\t", _service.RotatingStatusMessages.Select(rs => $"`{i++}.` {rs.Status}")))
 | 
			
		||||
                            string.Join("\n\t", _service.BotConfig.RotatingStatusMessages.Select(rs => $"`{i++}.` {rs.Status}")))
 | 
			
		||||
                        .ConfigureAwait(false);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@@ -90,7 +89,6 @@ namespace NadekoBot.Modules.Administration
 | 
			
		||||
                        return;
 | 
			
		||||
                    msg = config.RotatingStatusMessages[index].Status;
 | 
			
		||||
                    config.RotatingStatusMessages.RemoveAt(index);
 | 
			
		||||
                    _service.RotatingStatusMessages.RemoveAt(index);
 | 
			
		||||
                    await uow.CompleteAsync();
 | 
			
		||||
                }
 | 
			
		||||
                await ReplyConfirmLocalized("reprm", msg).ConfigureAwait(false);
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using NadekoBot.DataStructures;
 | 
			
		||||
using NadekoBot.DataStructures.Replacements;
 | 
			
		||||
 | 
			
		||||
namespace NadekoBot.Modules.Utility
 | 
			
		||||
{
 | 
			
		||||
@@ -66,19 +67,14 @@ namespace NadekoBot.Modules.Utility
 | 
			
		||||
                if (quote == null)
 | 
			
		||||
                    return;
 | 
			
		||||
 | 
			
		||||
                CREmbed crembed;
 | 
			
		||||
                if (CREmbed.TryParse(quote.Text, out crembed))
 | 
			
		||||
                if (CREmbed.TryParse(quote.Text, out var crembed))
 | 
			
		||||
                {
 | 
			
		||||
                    try
 | 
			
		||||
                    {
 | 
			
		||||
                        await Context.Channel.EmbedAsync(crembed.ToEmbed(), crembed.PlainText ?? "")
 | 
			
		||||
                            .ConfigureAwait(false);
 | 
			
		||||
                    }
 | 
			
		||||
                    catch (Exception ex)
 | 
			
		||||
                    {
 | 
			
		||||
                        _log.Warn("Sending CREmbed failed");
 | 
			
		||||
                        _log.Warn(ex);
 | 
			
		||||
                    }
 | 
			
		||||
                    new ReplacementBuilder()
 | 
			
		||||
                        .WithDefault(Context)
 | 
			
		||||
                        .Build()
 | 
			
		||||
                        .Replace(crembed);
 | 
			
		||||
                    await Context.Channel.EmbedAsync(crembed.ToEmbed(), crembed.PlainText?.SanitizeMentions() ?? "")
 | 
			
		||||
                        .ConfigureAwait(false);
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                await Context.Channel.SendMessageAsync($"`#{quote.Id}` 📣 " + quote.Text.SanitizeMentions());
 | 
			
		||||
@@ -118,29 +114,27 @@ namespace NadekoBot.Modules.Utility
 | 
			
		||||
                using (var uow = _db.UnitOfWork)
 | 
			
		||||
                { 
 | 
			
		||||
                    var qfromid = uow.Quotes.Get(id);
 | 
			
		||||
                    CREmbed crembed;
 | 
			
		||||
                    
 | 
			
		||||
 | 
			
		||||
                    if (qfromid == null)
 | 
			
		||||
                    {
 | 
			
		||||
                        await Context.Channel.SendErrorAsync(GetText("quotes_notfound"));
 | 
			
		||||
                    }
 | 
			
		||||
                    else if (CREmbed.TryParse(qfromid.Text, out crembed))
 | 
			
		||||
                    else if (CREmbed.TryParse(qfromid.Text, out var crembed))
 | 
			
		||||
                    {
 | 
			
		||||
                        try 
 | 
			
		||||
                        {
 | 
			
		||||
                            await Context.Channel.EmbedAsync(crembed.ToEmbed(), crembed.PlainText ?? "")
 | 
			
		||||
                                .ConfigureAwait(false);
 | 
			
		||||
                        }
 | 
			
		||||
                        catch (Exception ex)
 | 
			
		||||
                        {
 | 
			
		||||
                            _log.Warn("Sending CREmbed failed");
 | 
			
		||||
                            _log.Warn(ex);    
 | 
			
		||||
                        } 
 | 
			
		||||
                        return;
 | 
			
		||||
                        new ReplacementBuilder()
 | 
			
		||||
                            .WithDefault(Context)
 | 
			
		||||
                            .Build()
 | 
			
		||||
                            .Replace(crembed);
 | 
			
		||||
 | 
			
		||||
                        await Context.Channel.EmbedAsync(crembed.ToEmbed(), crembed.PlainText?.SanitizeMentions() ?? "")
 | 
			
		||||
                            .ConfigureAwait(false);
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
                    else { await Context.Channel.SendMessageAsync($"`#{qfromid.Id}` 🗯️ " + qfromid.Keyword.ToLowerInvariant().SanitizeMentions() + ":  " +
 | 
			
		||||
                                                       qfromid.Text.SanitizeMentions()); }
 | 
			
		||||
                    else
 | 
			
		||||
                    {
 | 
			
		||||
                        await Context.Channel.SendMessageAsync($"`#{qfromid.Id}` 🗯️ " + qfromid.Keyword.ToLowerInvariant().SanitizeMentions() + ":  " +
 | 
			
		||||
                                                    qfromid.Text.SanitizeMentions());
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }        
 | 
			
		||||
                          
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user