public async Task Transfer(IGuildUser toUser, [Remainder] string reason = "Tip.") { var fromUser = (IGuildUser)Context.Message.Author; await _buttcoinService.ActivateAccount(fromUser); var(fromAccount, toAccount) = await _buttcoinService.Transfer(Context.Message.Author, toUser, 10, reason); var embed = EmbedUtils.CreateTransferEmbed((IGuildUser)Context.User, toUser, fromAccount, toAccount, 10, reason, _logoUrl).Build(); await DmUtils.SendDm(fromUser, embed); await DmUtils.SendDm(toUser, embed); await Context.Message.AddReactionAsync(_emote); }
public async Task OnMessageReceived(SocketMessage message) { if (!(message.Channel is SocketTextChannel) || message.Author.IsBot) { return; } // Transfer 1 var plusPlusMatch = _plusPlus.Match(message.Content); if (plusPlusMatch.Success && message.Channel is SocketTextChannel channel) { var userSearch = plusPlusMatch.Groups[1].Value; IUser?toUser; if (MentionUtils.TryParseUser(userSearch, out var userId)) { toUser = channel.GetUser(userId); } else { toUser = (await channel.Guild.SearchUsersAsync(userSearch, 1)).FirstOrDefault(); } if (toUser != null) { try { await _buttcoinService.ActivateAccount(message.Author); var(fromAccount, toAccount) = await _buttcoinService.Transfer(message.Author, toUser, 1, "PlusPlus"); var embed = EmbedUtils.CreateTransferEmbed((IGuildUser)message.Author, (IGuildUser)toUser, fromAccount, toAccount, 1, "PlusPlus", _logoUrl).Build(); await DmUtils.SendDm(message.Author, embed); await DmUtils.SendDm(toUser, embed); await message.AddReactionAsync(_emote); return; } catch (ButtcoinException ex) { await channel.SendMessageAsync(ex.Message); return; } } } // Fetch words if we don't already have it if (_words == null) { var stringWords = await _configurationService.GetButtWords(); _words = stringWords.Select(x => new Regex($"\\b{x}\\b")); _word = PickWord(); } // Mine buttcoin if (!message.Content.StartsWith(_botPrefix) && _word.IsMatch(message.Content)) { var isBruteForce = _words.All(x => x.IsMatch(message.Content)); await _buttcoinService.MineCoin(message.Author.Id.ToString(), isBruteForce); _word = PickWord(); } }