csharp/0x0ade/CelesteNet/CelesteNet.Server/CelesteNetServerSettings.cs

CelesteNetServerSettings.cs
using Microsoft.Xna.Framework;
using Mono.Options;
using Monocle;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YamlDotNet.Serialization;

namespace Celeste.Mod.CelesteNet.Server {
    public clast CelesteNetServerSettings : CelesteNetServerModuleSettings {

        [YamlIgnore]
        [JsonIgnore]
        public static string DefaultFilePath = "celestenet-config.yaml";

        public override void Load(string path = "") {
            base.Load(path.Nullify() ?? FilePath.Nullify() ?? DefaultFilePath);
        }

        public override void Save(string path = "") {
            base.Save(path.Nullify() ?? FilePath.Nullify() ?? DefaultFilePath);
        }

        public string ModuleRoot { get; set; } = "Modules";
        public string ModuleConfigRoot { get; set; } = "ModuleConfigs";
        public string UserDataRoot { get; set; } = "UserData";

        public int MainPort { get; set; } = 3802;
        public int NumUDPThreads { get; set; } = -1;
        public bool UDPSend { get; set; } = true;

        public LogLevel LogLevel {
            get => Logger.Level;
            set => Logger.Level = value;
        }

        public int MaxNameLength { get; set; } = 30;
        public int MaxGuestNameLength { get; set; } = 16;
        public int MaxEmoteValueLength { get; set; } = 2048;
        public int MaxChannelNameLength { get; set; } = 16;

        public byte MaxHairLength { get; set; } = 12;
        public byte MaxFollowers { get; set; } = 12;

        public bool AuthOnly { get; set; } = false;

        public string MessageIPBan { get; set; } = "IP banned: {0}";
        public string MessageBan { get; set; } = "{0} banned: {1}";
        public string MessageInvalidUserKey { get; set; } = "Invalid user key";
        public string MessageUserInfoMissing { get; set; } = "User info missing";
        public string MessageAuthOnly { get; set; } = "Server doesn't allow anonymous guests";

    }
}