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()); }
/// <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); }