added .remindmsg for custom remind message formatting.
This commit is contained in:
parent
b26d798de0
commit
fdfb6b9340
@ -2,6 +2,7 @@
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Classes;
|
||||
using NadekoBot.DataModels;
|
||||
using NadekoBot.Modules.Permissions.Classes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -18,6 +19,13 @@ namespace NadekoBot.Modules.Administration.Commands
|
||||
|
||||
List<Timer> reminders = new List<Timer>();
|
||||
|
||||
IDictionary<string, Func<Reminder, string>> replacements = new Dictionary<string, Func<Reminder, string>>
|
||||
{
|
||||
{ "%message%" , (r) => r.Message },
|
||||
{ "%user%", (r) => $"<@!{r.UserId}>" },
|
||||
{ "%target%", (r) => r.IsPrivate ? "Direct Message" : $"<#{r.ChannelId}>"}
|
||||
};
|
||||
|
||||
public Remind(DiscordModule module) : base(module)
|
||||
{
|
||||
var remList = DbHandler.Instance.GetAllRows<Reminder>();
|
||||
@ -53,7 +61,11 @@ namespace NadekoBot.Modules.Administration.Commands
|
||||
if (ch == null)
|
||||
return;
|
||||
|
||||
await ch.SendMessage($"❗⏰**I've been told to remind you to '{r.Message}' now by <@{r.UserId}>.**⏰❗").ConfigureAwait(false);
|
||||
await ch.SendMessage(
|
||||
replacements.Aggregate(NadekoBot.Config.RemindMessageFormat,
|
||||
(cur, replace) => cur.Replace(replace.Key, replace.Value(r)))
|
||||
).ConfigureAwait(false); //it works trust me
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -163,7 +175,22 @@ namespace NadekoBot.Modules.Administration.Commands
|
||||
|
||||
reminders.Add(StartNewReminder(rem));
|
||||
|
||||
await e.Channel.SendMessage($"⏰ I will remind \"{ch.Name}\" to \"{e.GetArg("message").ToString()}\" in {output}. ({time:d.M.yyyy.} at {time:HH:m})").ConfigureAwait(false);
|
||||
await e.Channel.SendMessage($"⏰ I will remind \"{ch.Name}\" to \"{e.GetArg("message").ToString()}\" in {output}. ({time:d.M.yyyy.} at {time:HH:mm})").ConfigureAwait(false);
|
||||
});
|
||||
cgb.CreateCommand(Module.Prefix + "remindmsg")
|
||||
.Description("Sets message for when the remind is triggered. " +
|
||||
" Available placeholders are %user% - user who ran the command, %message% -" +
|
||||
" Message specified in the remind, %target% - target channel of the remind. **Owner only!**")
|
||||
.Parameter("msg", ParameterType.Unparsed)
|
||||
.AddCheck(SimpleCheckers.OwnerOnly())
|
||||
.Do(async e =>
|
||||
{
|
||||
var arg = e.GetArg("msg")?.Trim();
|
||||
if (string.IsNullOrWhiteSpace(arg))
|
||||
return;
|
||||
|
||||
NadekoBot.Config.RemindMessageFormat = arg;
|
||||
await e.Channel.SendMessage("`New remind message set.`");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,8 @@ namespace NadekoBot.Classes.JSONModels
|
||||
[JsonIgnore]
|
||||
public List<PokemonType> PokemonTypes { get; set; } = new List<PokemonType>();
|
||||
|
||||
public string RemindMessageFormat { get; set; } = "❗⏰**I've been told to remind you to '%message%' now by %user%.**⏰❗";
|
||||
|
||||
public Dictionary<string, List<string>> CustomReactions { get; set; } = new Dictionary<string, List<string>>()
|
||||
{
|
||||
{@"\o\", new List<string>()
|
||||
|
Loading…
Reference in New Issue
Block a user