コード例 #1
0
        public void Create()
        {
            if (Server != null)
            {
                throw new InvalidOperationException("The server has already been created! (Is CreateOnEnable enabled?)");
            }

            var spawnData = new ServerSpawnData(Address, Port, IpVersion);

            //Data settings
            spawnData.Data.Settings["directory"] = DataDirectory;

            //Logging settings
            spawnData.Plugins.PluginTypes.Add(typeof(UnityConsoleWriter));

            var fileWriter = new ServerSpawnData.LoggingSettings.LogWriterSettings
            {
                Name      = "FileWriter1",
                Type      = "FileWriter",
                LogLevels = new[] { LogType.Trace, LogType.Info, LogType.Warning, LogType.Error, LogType.Fatal }
            };

            fileWriter.Settings["file"] = LogFileString;

            var consoleWriter = new ServerSpawnData.LoggingSettings.LogWriterSettings
            {
                Name      = "UnityConsoleWriter1",
                Type      = "UnityConsoleWriter",
                LogLevels = new[] { LogType.Info, LogType.Warning, LogType.Error, LogType.Fatal }
            };

            var debugWriter = new ServerSpawnData.LoggingSettings.LogWriterSettings
            {
                Name      = "DebugWriter1",
                Type      = "DebugWriter",
                LogLevels = new[] { LogType.Warning, LogType.Error, LogType.Fatal }
            };

            spawnData.Logging.LogWriters.Add(fileWriter);
            spawnData.Logging.LogWriters.Add(consoleWriter);
            spawnData.Logging.LogWriters.Add(debugWriter);

            // Plugins
//            spawnData.Plugins.PluginTypes.Add(typeof(DbConnector));

            Server = new DarkRiftServer(spawnData);
            Server.Start();
        }
        /// <summary>
        /// Configures a log writer on the DarkRift server.
        /// </summary>
        /// <param name="name">The name of the log writer.</param>
        /// <param name="type">The type of log writer.</param>
        /// <param name="logLevels">The log levels to use.</param>
        /// <param name="settings">The settings to pass to the log writer.</param>
        /// <returns>The configuration builder to continue construction.</returns>
        public DarkRiftServerConfigurationBuilder AddLogWriter(string name, string type, NameValueCollection settings, params LogType[] logLevels)
        {
            ServerSpawnData.LoggingSettings.LogWriterSettings logWriterSettings = new ServerSpawnData.LoggingSettings.LogWriterSettings
            {
                Name      = name,
                Type      = type,
                LogLevels = logLevels
            };

            foreach (string key in settings.AllKeys)
            {
                logWriterSettings.Settings[key] = settings[key];
            }

            ServerSpawnData.Logging.LogWriters.Add(logWriterSettings);

            return(this);
        }
コード例 #3
0
        /// <summary>
        ///     Creates the server.
        /// </summary>
        public void Create()
        {
            if (Server != null)
            {
                throw new InvalidOperationException("The server has already been created! (Is CreateOnEnable enabled?)");
            }

            ServerSpawnData spawnData = new ServerSpawnData(address, port, ipVersion);

            //Server settings
            spawnData.Server.MaxStrikes            = maxStrikes;
            spawnData.Server.UseFallbackNetworking = true;      //Unity is broken, work around it...
            spawnData.EventsFromDispatcher         = eventsFromDispatcher;

            //Plugin search settings
            spawnData.PluginSearch.PluginTypes.AddRange(UnityServerHelper.SearchForPlugins());
            spawnData.PluginSearch.PluginTypes.Add(typeof(UnityConsoleWriter));

            //Data settings
            spawnData.Data.Directory = dataDirectory;

            //Logging settings
            spawnData.Plugins.LoadByDefault = true;

            if (logToFile)
            {
                ServerSpawnData.LoggingSettings.LogWriterSettings fileWriter = new ServerSpawnData.LoggingSettings.LogWriterSettings();
                fileWriter.Name             = "FileWriter1";
                fileWriter.Type             = "FileWriter";
                fileWriter.LogLevels        = new LogType[] { LogType.Trace, LogType.Info, LogType.Warning, LogType.Error, LogType.Fatal };
                fileWriter.Settings["file"] = logFileString;
                spawnData.Logging.LogWriters.Add(fileWriter);
            }

            if (logToUnityConsole)
            {
                ServerSpawnData.LoggingSettings.LogWriterSettings consoleWriter = new ServerSpawnData.LoggingSettings.LogWriterSettings();
                consoleWriter.Name      = "UnityConsoleWriter1";
                consoleWriter.Type      = "UnityConsoleWriter";
                consoleWriter.LogLevels = new LogType[] { LogType.Info, LogType.Warning, LogType.Error, LogType.Fatal };
                spawnData.Logging.LogWriters.Add(consoleWriter);
            }

            if (logToDebug)
            {
                ServerSpawnData.LoggingSettings.LogWriterSettings debugWriter = new ServerSpawnData.LoggingSettings.LogWriterSettings();
                debugWriter.Name      = "DebugWriter1";
                debugWriter.Type      = "DebugWriter";
                debugWriter.LogLevels = new LogType[] { LogType.Warning, LogType.Error, LogType.Fatal };
                spawnData.Logging.LogWriters.Add(debugWriter);
            }

            //Plugins
            spawnData.Plugins.LoadByDefault = loadByDefault;
            spawnData.Plugins.Plugins.AddRange(plugins);

            //Databases
            spawnData.Databases.Databases.AddRange(databases);

            //Cache
            spawnData.Cache.MaxCachedWriters              = MaxCachedWriters;
            spawnData.Cache.MaxCachedReaders              = MaxCachedReaders;
            spawnData.Cache.MaxCachedMessages             = MaxCachedMessages;
            spawnData.Cache.MaxCachedSocketAsyncEventArgs = MaxCachedSocketAsyncEventArgs;
            spawnData.Cache.MaxActionDispatcherTasks      = MaxCachedActionDispatcherTasks;

            Server = new DarkRiftServer(spawnData);
            Server.Start();
        }