Пример #1
0
        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;
                }
Пример #2
0
#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;
            }
Пример #3
0
 public Task TakeAction(
     IBotProvider provider, IBotEvent evt, IEventMatchResult match,
     IReadOnlyDictionary <string, IBotPlugin> plugins
     ) => provider.SendMessage(
     evt.ChannelInfo,
     Expand(evt, match, plugins)
     );