public override async System.Threading.Tasks.Task DoAction()
        {
            Logger.Information($"|------------------------|Log Initialised @ {DateTime.Now:s}|------------------------|");

            _vanillaSettings = new CronJob().FindByType(this.GetType()).Configuration.Parse <VanillaSettings>();

            if (!_vanillaSettings.Enabled)
            {
                Logger.Information("Disabled in Configuration.");
                return;
            }
            try
            {
                Logger.Information("Running...");
                AddUpdatesForMcTemp();
            }
            catch (Exception e)
            {
                Logger.Fatal(e);
                throw;
            }
            finally
            {
                Logger.Information("|----------------------------------------------------------------------------------|");
            }
        }
Beispiel #2
0
    public async Task <ulong> CreateServerAsync(string serverName, ServerVersion serverVersion, VanillaSettings settings,
                                                JavaSettings javaSettings, string worldPath)
    {
        serverName = RefineName(serverName);
        string serverPath = Path.Combine(_application.EntityPath, serverName);

        if (string.IsNullOrEmpty(settings.LevelName))
        {
            settings.LevelName = "world";
        }

        DirectoryInfo directoryInfo = Directory.CreateDirectory(serverPath);
        // TODO CKE serverVersion.Build = await VersionManager.Instance.GetLatestBuild(serverVersion);
        Server server = new Server(serverName, serverVersion, settings, javaSettings);

        _context.ServerSet.Add(server);

        //Download server.jar
        var downloadProgress = new Progress <float>();

        downloadProgress.ProgressChanged += (_, f) =>
        {
            // TODO CKE send notification update
        };
        await _download.DownloadJarAsync(server, downloadProgress, CancellationToken.None);

        //Move World Files
        if (worldPath != null)
        {
            //TODO CKE add world import
            //new FileImporter().DirectoryCopy(worldPath,
            //   Path.Combine(directoryInfo.FullName, server.VanillaSettings.LevelName), true);
        }

        //Writing necessary files
        await _fileWriter.WriteEula(Path.Combine(_application.EntityPath, directoryInfo.Name));

        await _fileWriter.WriteServerSettings(Path.Combine(_application.EntityPath, directoryInfo.Name),
                                              settings.SettingsDictionary);

        await _context.SaveChangesAsync();

        return(server.Id);
    }