예제 #1
0
        // 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;
            }
            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();
                    await message.Channel.SendFileAsync(mem, "map.png", msg);
                }
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: Myvar/BotGame
        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("🌀"));
                }
            }
        }
예제 #3
0
파일: Program.cs 프로젝트: Myvar/BotGame
        // 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("🌀"));
                }
            }
        }