public async Task RunCmd(string cmd, IUser um, IUserMessage x) { (string msg, Bitmap img) = GameBotEngine.HandelCommand(cmd, um as SocketUser); if (msg == null && img == null) { return; } if (img == null) { await x.Channel.SendMessageAsync(msg); } else { using (var mem = new MemoryStream()) { img.Save(mem, ImageFormat.Png); mem.Position = 0; img.Dispose(); var messages = await x.Channel.GetMessagesAsync(50).FlattenAsync(); var map = messages.First(); if (map.Author.Id == _client.CurrentUser.Id && map.Attachments.Count != 0) { await map.DeleteAsync(); } else { foreach (var m in messages) { if (m.Author.Id == _client.CurrentUser.Id) { if (m.Attachments.Count != 0) { await m.DeleteAsync(); } } } } await x.DeleteAsync(); var res = await x.Channel.SendFileAsync(mem, "map.png", msg); await res.AddReactionAsync(new Emoji("🌀")); } } }
// This is not the recommended way to write a bot - consider // reading over the Commands Framework sample. private async Task MessageReceivedAsync(SocketMessage message) { // The bot should never respond to itself. if (message.Author.Id == _client.CurrentUser.Id) { return; } if (message.Channel is SocketDMChannel) { await message.Channel.SendMessageAsync("DMS are not aloud"); return; } CurrentChanelID = message.Channel.Id; Chanel = message.Channel; (string msg, Bitmap img) = GameBotEngine.HandelCommand(message.Content, message.Author); if (msg == null && img == null) { return; } if (img == null) { await message.Channel.SendMessageAsync(msg); } else { using (var mem = new MemoryStream()) { img.Save(mem, ImageFormat.Png); mem.Position = 0; img.Dispose(); var messages = await message.Channel.GetMessagesAsync(10).FlattenAsync(); var map = messages.First(); if (map.Author.Id == _client.CurrentUser.Id && map.Attachments.Count != 0) { await map.DeleteAsync(); } else { foreach (var m in messages) { if (m.Author.Id == _client.CurrentUser.Id) { if (m.Attachments.Count != 0) { await m.DeleteAsync(); } } } } await message.DeleteAsync(); var res = await message.Channel.SendFileAsync(mem, "map.png", msg); await res.AddReactionAsync(new Emoji("🌀")); } } }