private string Expand( IBotEvent evt, IEventMatchResult match, IReadOnlyDictionary <string, IBotPlugin> plugins ) { if (Params == null) { return(Message); } var sb = new StringBuilder(Message); foreach (var param in Params.Reverse()) { string value = null; if (param.Param == "{" || param.Param == "}") { value = param.Param; } else if (param.Param == "match") { value = match.Param(param.Arg); } else if (evt is IMessageEvent mev && param.Param == "sender") { value = mev.SenderInfo.UserReference; }
#pragma warning disable 1998 // Task needs to be async for API public async Task TakeAction( IBotProvider provider, IBotEvent @event, IEventMatchResult match, IReadOnlyDictionary <string, IBotPlugin> plugins ) { plugin.vars[varname] += adjustment; }
public Task TakeAction( IBotProvider provider, IBotEvent evt, IEventMatchResult match, IReadOnlyDictionary <string, IBotPlugin> plugins ) => provider.SendMessage( evt.ChannelInfo, Expand(evt, match, plugins) );