public CommandHandler(DiscordSocketClient client, CommandService cmdService, IServiceProvider serviceProvider, GlobalGuildAccounts globalGuildAccounts, GlobalUserAccounts globalUserAccounts, RoleByPhraseProvider roleByPhraseProvider) { _client = client; _cmdService = cmdService; _serviceProvider = serviceProvider; _globalGuildAccounts = globalGuildAccounts; _globalUserAccounts = globalUserAccounts; _roleByPhraseProvider = roleByPhraseProvider; }
public async Task HandleCommandAsync(SocketMessage s) { if (!(s is SocketUserMessage msg)) { return; } if (msg.Channel is SocketDMChannel) { return; } if (msg.Author.IsBot) { return; } var context = new MiunieCommandContext(_client, msg); await RoleByPhraseProvider.EvaluateMessage( context.Guild, context.Message.Content, (SocketGuildUser)context.User ); var argPos = 0; if (msg.HasMentionPrefix(_client.CurrentUser, ref argPos) || CheckPrefix(ref argPos, context)) { var cmdSearchResult = _cmdService.Search(context, argPos); if (!cmdSearchResult.IsSuccess) { await context.Channel.SendMessageAsync("Nie czaję... :sweat_smile: Sprawdź składnię i upewnij się, że taka komenda napewno istnieje :kissing_heart::stuck_out_tongue_closed_eyes:"); return; } context.RegisterCommandUsage(); context.Message.DeleteAsync(); var executionTask = _cmdService.ExecuteAsync(context, argPos, _serviceProvider); #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed executionTask.ContinueWith(task => { if (task.Result.IsSuccess || task.Result.Error == CommandError.UnknownCommand) { return; } const string errTemplate = ":warning: Błąd :warning: {0}**!**\nPowód: {1}."; var errMessage = string.Format(errTemplate, context.User.Mention, task.Result.ErrorReason); context.Channel.SendMessageAsync(errMessage); Console.WriteLine(context.Message.Timestamp + " | " + context.Message.Author + " | " + context.Guild + " ==> " + context.Channel + " | BŁĄD: " + task.Result.ErrorReason); }); #pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed } }
public async Task HandleCommandAsync(SocketMessage s) { if (!(s is SocketUserMessage msg)) { return; } if (msg.Channel is SocketDMChannel) { return; } if (msg.Author.IsBot) { return; } var context = new MiunieCommandContext(_client, msg); await RoleByPhraseProvider.EvaluateMessage( context.Guild, context.Message.Content, (SocketGuildUser)context.User ); var argPos = 0; if (msg.HasMentionPrefix(_client.CurrentUser, ref argPos) || CheckPrefix(ref argPos, context)) { var cmdSearchResult = _cmdService.Search(context, argPos); if (!cmdSearchResult.IsSuccess) { return; } context.RegisterCommandUsage(); var executionTask = _cmdService.ExecuteAsync(context, argPos, _serviceProvider); #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed executionTask.ContinueWith(task => { if (task.Result.IsSuccess || task.Result.Error == CommandError.UnknownCommand) { return; } const string errTemplate = "{0}, Error: {1}."; var errMessage = string.Format(errTemplate, context.User.Mention, task.Result.ErrorReason); context.Channel.SendMessageAsync(errMessage); }); #pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed } }
public async Task RbpAddRelation(int phraseIndex, int roleIndex) { var result = RoleByPhraseProvider.CreateRelation(Context.Guild, phraseIndex, roleIndex); if (result == RoleByPhraseProvider.RelationCreationResult.Success) { await RbpStatus(); } else { await ReplyAsync("That's just what I need, great! Terrific!, something went wrong..."); Console.WriteLine(result.ToString()); } }
public async Task RbpAddRole(IRole role) { var result = RoleByPhraseProvider.AddRole(Context.Guild, role); if (result == RoleByPhraseProvider.RoleByPhraseOperationResult.Success) { await RbpStatus(); } else { await ReplyAsync("Well, this was a total waste of time, something went wrong..."); Console.WriteLine(result.ToString()); } }
public async Task RbpAddPhrase([Remainder] string phrase) { var result = RoleByPhraseProvider.AddPhrase(Context.Guild, phrase); if (result == RoleByPhraseProvider.RoleByPhraseOperationResult.Success) { await RbpStatus(); } else { await ReplyAsync("I work 24 hours a day so something went wrong..."); Console.WriteLine(result.ToString()); } }
public async Task RbpAddRelation(int phraseIndex, int roleIndex) { var result = RoleByPhraseProvider.CreateRelation(Context.Guild, phraseIndex, roleIndex); if (result == RoleByPhraseProvider.RelationCreationResult.Success) { await RbpStatus(); } else { await ReplyAsync("Aha... więc nooo ten... nie działa."); Console.WriteLine(result.ToString()); } }
public async Task RbpAddRole(IRole role) { var result = RoleByPhraseProvider.AddRole(Context.Guild, role); if (result == RoleByPhraseProvider.RoleByPhraseOperationResult.Success) { await RbpStatus(); } else { await ReplyAsync("Łups... coś zyebauem... xd"); Console.WriteLine(result.ToString()); } }
public async Task RbpAddPhrase([Remainder] string phrase) { var result = RoleByPhraseProvider.AddPhrase(Context.Guild, phrase); if (result == RoleByPhraseProvider.RoleByPhraseOperationResult.Success) { await RbpStatus(); } else { await ReplyAsync("Pracuję 24/h... to nie mogło się udać..."); Console.WriteLine(result.ToString()); } }
public async Task RbpRemoveRelation(int phraseIndex, int roleIndex) { RoleByPhraseProvider.RemoveRelation(Context.Guild, phraseIndex, roleIndex); await RbpStatus(); }
public async Task RbpRemoveRole(int roleIndex) { RoleByPhraseProvider.RemoveRole(Context.Guild, roleIndex); await RbpStatus(); }
public RoleByPhrase(GlobalGuildAccounts globalGuildAccounts, RoleByPhraseProvider roleByPhraseProvider) { _globalGuildAccounts = globalGuildAccounts; _roleByPhraseProvider = roleByPhraseProvider; }