public async Task PrefixAsync(CommandContext e) { var cache = e.GetService <ICacheClient>(); string args = e.Arguments.Pack.TakeAll(); if (string.IsNullOrEmpty(args)) { await e.ErrorEmbed(e.Locale.GetString("miki_module_general_prefix_error_no_arg")).ToEmbed().QueueToChannelAsync(e.Channel); return; } PrefixTrigger defaultInstance = e.EventSystem.GetMessageTriggers() .Where(x => x is PrefixTrigger) .Select(x => x as PrefixTrigger) .Where(x => x.IsDefault) .FirstOrDefault(); var context = e.GetService <MikiDbContext>(); await defaultInstance.ChangeForGuildAsync(context, cache, e.Guild.Id, args); EmbedBuilder embed = new EmbedBuilder(); embed.SetTitle(e.Locale.GetString("miki_module_general_prefix_success_header")); embed.SetDescription( e.Locale.GetString("miki_module_general_prefix_success_message", args )); await embed.ToEmbed().QueueToChannelAsync(e.Channel); }
public async Task PrefixTriggerDoesTriggerAsync() { var trigger = new PrefixTrigger("test."); var mock = new Mock <IContext>(); mock.Setup(x => x.GetContext(It.IsAny <string>())) .Returns("test.command"); var result = await trigger.CheckTriggerAsync(mock.Object) .ConfigureAwait(false); Assert.Equal("test.", result); }