Exemplo n.º 1
0
        private async Task SendMinecraftMessage(string serverIp,
                                                MinecraftStatus minecraftStatus,
                                                CommandContext context)
        {
            _logger.LogInformation("Sending minecraft server status message");
            var embedBuilder = new DiscordEmbedBuilder()
                               .WithTitle("Minecraft Server Status")
                               .WithDescription($"Fetched for {serverIp}")
                               .WithFooter("Fetched using mcapi.us");

            if (minecraftStatus.Online)
            {
                embedBuilder.AddField("Status", "Online")
                .AddField("Server Version", minecraftStatus.Server.Name)
                .AddField("Players", $"{minecraftStatus.Players.Now} of {minecraftStatus.Players.Max}");
                if (minecraftStatus.Players.Sample.Count > 0)
                {
                    var players = minecraftStatus.Players.Sample.Aggregate
                                      ("", (current, player) => current + $"{player.Name} ");
                    embedBuilder.AddField("Currently Online", players);
                }

                await context.RespondWithFileAsync(ConvertToPng(minecraftStatus.Favicon));
            }
            else
            {
                embedBuilder.AddField("Status", "Offline");
                embedBuilder.AddField("Error", minecraftStatus.Error);
            }

            await context.RespondAsync("", embed : embedBuilder.Build());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get MC Server Status
        /// </summary>
        public MinecraftStatus GetMinecraftStatus()
        {
            string  query = "mcplayers.php";
            JObject json  = (JObject)Query(requestType.GET, query);

            // TODO - Reflection?
            MinecraftStatus result = json.ToObject <MinecraftStatus>();

            return(result);
        }