namespace Supercell.Laser.Server.Settings { using Newtonsoft.Json; public class Configuration { public static Configuration Instance; [JsonProperty("udp_host")] public readonly string UdpHost; [JsonProperty("udp_port")] public readonly int UdpPort; [JsonProperty("database_username")] public readonly string DatabaseUsername; [JsonProperty("database_password")] public readonly string DatabasePassword; [JsonProperty("database_name")] public readonly string DatabaseName; // ВНИМАНИЕ: только для тестового сервера! Пропускает ClientHello/крипто-хендшейк, // принимает первый пакет как есть, без NaCl-шифрования. НИКОГДА не включай на проде. [JsonProperty("test_mode")] public readonly bool TestMode; // Лимит очереди пакетов в Processor. false = очередь безлимитная (пакеты принимаются // бесконечно), true = ограничена queue_limit_size. Флуд теперь режется на уровне ядра // (iptables/ipset), поэтому лимит приложения можно отключать, чтобы не ронять живых игроков. [JsonProperty("queue_limit_enabled")] public readonly bool QueueLimitEnabled; // Размер очереди когда лимит включён (<=0 => берётся дефолт 4096). [JsonProperty("queue_limit_size")] public readonly int QueueLimitSize; // Включает Telegram-бота (Supercell.Laser.Bot), прицепленного к серверу. // Настройки самого бота (токен, тг-админы, БД) — в Supercell.Laser.Bot/config.json. [JsonProperty("bot_enabled")] public readonly bool BotEnabled; public static Configuration LoadFromFile(string filename) { return JsonConvert.DeserializeObject(File.ReadAllText(filename)); } } }