private void SendInstanceList(WebSocketClient client) { var tag = client.Tag as WebSocketTag; var list = new List <object>(); foreach (var instance in _instanceManager.Instances) { var lastLog = InstanceLogManager.GetLast(instance.Id, 200); var instanceLog = new List <string>(lastLog.Count()); foreach (var item in lastLog) { instanceLog.Add($"[{tag.User.GetLocalDateTime(item.Time).ToString("HH:mm:ss")}] {item.Text}"); } list.Add(new { instanceId = instance.Id, packageName = instance.Package.Name, status = instance.Status, address = _configuration.MinecraftHostname + ":" + instance.BindingInterface.Port, lastLog = instanceLog }); } client.SendPacket("lst", new { instances = list }); }
private void OnConsoleCommand(WebSocketClient client, JsonObject json) { var instanceId = json.GetMember <JsonString>("instanceId").Value; var command = json.GetMember <JsonString>("command").Value; _logger.Write(LogType.Notice, $"({instanceId}) {command}"); if (!_instanceManager.PostCommand(instanceId, command)) { _logger.Write(LogType.Warning, "Could not post command."); client.SendPacket("err", new { message = "Could not post command." }); } else { var cmdline = (client.Tag as WebSocketTag).User.DisplayName + "> " + command; _logger.Write(LogType.Notice, $"[{instanceId}] {cmdline}"); InstanceLogManager.AddLog(instanceId, cmdline); Broadcast("il", new { instanceId = instanceId, text = "[" + (client.Tag as WebSocketTag).User.GetLocalDateTime(DateTime.UtcNow).ToString("HH:mm:ss") + "] " + cmdline }); } }