Beispiel #1
0
        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
            });
        }
Beispiel #2
0
        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
                });
            }
        }