コード例 #1
0
ファイル: ShippingCommands.cs プロジェクト: drcd/Moduthulhu
            public Task <Result> Execute(CommandMetadata data)
            {
                var leaderboard = ParentPlugin.GetShipLeaderboard(data.Message.GetGuild());

                EmbedBuilder builder = new EmbedBuilder().
                                       WithAuthor(ParentPlugin.GuildHandler.BotUser).
                                       WithTitle("All ships on " + data.Message.GetGuild().Name + ".");

                foreach (var pair in leaderboard)
                {
                    SocketGuildUser shippie = ParentPlugin.GuildHandler.GetUser(pair.Key);
                    string          ships   = "";

                    foreach (Shipping.Ship ship in pair.Value)
                    {
                        ships += $"{ParentPlugin.ShipToString (ship)}\n";
                    }

                    builder.AddField($"{shippie.GetShownName ()} has been shipped {pair.Value.Count} times in the following ships:", ships);
                }

                LargeEmbed largeEmbed = new LargeEmbed();

                largeEmbed.CreateFrom(builder);
                return(TaskResult(largeEmbed, null));
            }
コード例 #2
0
ファイル: MessageControl.cs プロジェクト: drcd/Moduthulhu
        public static async Task <IMessage[]> SendLargeEmbed(ITextChannel channel, EmbedBuilder sourceBuilder)
        {
            LargeEmbed largeEmbed = new LargeEmbed();

            largeEmbed.CreateFrom(sourceBuilder);
            await largeEmbed.SendAsync(channel);

            return(largeEmbed.Message);
        }
コード例 #3
0
            public Task <Result> Execute(CommandMetadata _)
            {
                int          shardIndex = 0;
                EmbedBuilder builder    = new EmbedBuilder()
                                          .WithTitle("Core Process Status")
                                          .WithAuthor(ParentPlugin.GuildHandler.BotUser)
                                          .WithDescription(ParentPlugin.GuildHandler.Core.ToString())
                                          .WithCurrentTimestamp();

                LargeEmbed embed = new LargeEmbed(builder, ParentPlugin.GuildHandler.Client.GetShardsStatus().Select(x => new EmbedFieldBuilder().WithName($"Shard {shardIndex++}").WithValue($"```{x}```")));

                return(TaskResult(embed, ""));
            }
コード例 #4
0
            public Task <Result> Execute(CommandMetadata metadata)
            {
                LargeEmbed embed = new LargeEmbed();

                // TODO: Add status for shards and GuildHandlers.
                EmbedBuilder builder = new EmbedBuilder()
                                       .WithTitle("Core Process Status")
                                       .WithAuthor(ParentPlugin.GuildHandler.BotUser)
                                       .WithDescription(ParentPlugin.GuildHandler.Core.GetStatusString())
                                       .WithCurrentTimestamp();

                embed.CreateFrom(builder);
                return(TaskResult(embed, ""));
            }
コード例 #5
0
            public Task <Result> Execute(CommandMetadata data)
            {
                var leaderboard = ParentPlugin.GetShipLeaderboard(data.Message.GetGuild());

                EmbedBuilder builder = new EmbedBuilder().
                                       WithAuthor(ParentPlugin.GuildHandler.BotUser).
                                       WithTitle("All ships on " + data.Message.GetGuild().Name + ".");

                List <EmbedFieldBuilder> embedFields = new List <EmbedFieldBuilder>();

                foreach (var pair in leaderboard)
                {
                    SocketGuildUser shippie = ParentPlugin.GuildHandler.GetUser(pair.Key);
                    var             ships   = string.Join("\n", ParentPlugin.GetShippieShips(shippie.Id).Select(x => ParentPlugin.ShipToString(x)));
                    embedFields.Add(new EmbedFieldBuilder().WithName($"{shippie.GetShownName ()} has been shipped {pair.Value.Count} times in the following ships:\n").WithValue(ships));
                }

                LargeEmbed largeEmbed = new LargeEmbed(builder, embedFields);

                return(TaskResult(largeEmbed, null));
            }
コード例 #6
0
ファイル: ShippingCommands.cs プロジェクト: drcd/Moduthulhu
            public Task <Result> Execute(CommandMetadata data, SocketGuildUser user)
            {
                var ships       = ParentPlugin.GetShippieShips(user);
                var catagorized = ships.GroupBy(x => x.GetCompanionTo(user.Id));

                EmbedBuilder builder = new EmbedBuilder();

                builder.WithAuthor(user).
                WithTitle("Ships containing " + user.GetShownName() + ".");

                foreach (var ship in catagorized)
                {
                    var shippers = ship.Select(x => ParentPlugin.GuildHandler.GetUser(x.Shipper));

                    SocketGuildUser companion = ParentPlugin.GuildHandler.GetUser(ship.Key);
                    builder.AddField("Shipped with " + companion.GetShownName() + " as " + ParentPlugin.GetShipName(ship.FirstOrDefault()) + " " + ship.Count() + " times by:", string.Join(", ", shippers));
                }

                LargeEmbed largeEmbed = new LargeEmbed();

                largeEmbed.CreateFrom(builder);
                return(TaskResult(largeEmbed, null));
            }