2018-04-08 01:44:42 -05:00
|
|
|
|
using SharedLibraryCore.Interfaces;
|
2018-03-18 21:25:11 -05:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
2018-03-14 00:36:25 -05:00
|
|
|
|
|
2018-04-08 01:44:42 -05:00
|
|
|
|
namespace SharedLibraryCore.Configuration
|
2018-03-14 00:36:25 -05:00
|
|
|
|
{
|
2018-03-18 21:25:11 -05:00
|
|
|
|
public class ApplicationConfiguration : IBaseConfiguration
|
2018-03-14 00:36:25 -05:00
|
|
|
|
{
|
2018-04-16 15:31:14 -05:00
|
|
|
|
public bool EnableWebFront { get; set; }
|
2018-03-14 00:36:25 -05:00
|
|
|
|
public bool EnableMultipleOwners { get; set; }
|
2018-03-24 16:35:54 -05:00
|
|
|
|
public bool EnableSteppedHierarchy { get; set; }
|
2018-05-07 23:58:46 -05:00
|
|
|
|
public bool EnableSocialLink { get; set; }
|
2018-03-29 23:13:40 -05:00
|
|
|
|
public bool EnableCustomSayName { get; set; }
|
|
|
|
|
public string CustomSayName { get; set; }
|
2018-05-07 23:58:46 -05:00
|
|
|
|
public string SocialLinkAddress { get; set; }
|
2018-05-05 17:52:04 -05:00
|
|
|
|
public string SocialLinkTitle { get; set; }
|
2018-04-19 00:48:14 -05:00
|
|
|
|
public string WebfrontBindUrl { get; set; }
|
2018-04-21 17:18:20 -05:00
|
|
|
|
public string CustomParserEncoding { get; set; }
|
2018-04-24 17:01:27 -05:00
|
|
|
|
public string CustomLocale { get; set; }
|
2018-09-23 19:45:54 -05:00
|
|
|
|
public string DatabaseProvider { get; set; } = "sqlite";
|
2018-04-25 01:38:59 -05:00
|
|
|
|
public string ConnectionString { get; set; }
|
2018-06-07 21:19:12 -05:00
|
|
|
|
public int RConPollRate { get; set; } = 5000;
|
2018-10-13 18:49:08 -05:00
|
|
|
|
public bool IgnoreBots { get; set; }
|
2018-10-15 19:51:04 -05:00
|
|
|
|
public TimeSpan MaximumTempBanTime { get; set; } = new TimeSpan(24 * 30, 0, 0);
|
2018-04-18 15:46:53 -05:00
|
|
|
|
public string Id { get; set; }
|
2018-03-14 00:36:25 -05:00
|
|
|
|
public List<ServerConfiguration> Servers { get; set; }
|
2018-03-14 13:22:04 -05:00
|
|
|
|
public int AutoMessagePeriod { get; set; }
|
|
|
|
|
public List<string> AutoMessages { get; set; }
|
2018-03-18 21:25:11 -05:00
|
|
|
|
public List<string> GlobalRules { get; set; }
|
2018-03-14 13:22:04 -05:00
|
|
|
|
public List<MapConfiguration> Maps { get; set; }
|
2018-03-18 21:25:11 -05:00
|
|
|
|
|
|
|
|
|
public IBaseConfiguration Generate()
|
|
|
|
|
{
|
2018-05-05 15:36:26 -05:00
|
|
|
|
var loc = Utilities.CurrentLocalization.LocalizationIndex;
|
2018-04-18 15:46:53 -05:00
|
|
|
|
Id = Guid.NewGuid().ToString();
|
2018-08-22 20:25:34 -05:00
|
|
|
|
|
2018-04-22 15:04:18 -05:00
|
|
|
|
EnableWebFront = Utilities.PromptBool(loc["SETUP_ENABLE_WEBFRONT"]);
|
|
|
|
|
EnableMultipleOwners = Utilities.PromptBool(loc["SETUP_ENABLE_MULTIOWN"]);
|
|
|
|
|
EnableSteppedHierarchy = Utilities.PromptBool(loc["SETUP_ENABLE_STEPPEDPRIV"]);
|
|
|
|
|
EnableCustomSayName = Utilities.PromptBool(loc["SETUP_ENABLE_CUSTOMSAY"]);
|
2018-03-18 21:25:11 -05:00
|
|
|
|
|
2018-04-22 15:04:18 -05:00
|
|
|
|
bool useCustomParserEncoding = Utilities.PromptBool(loc["SETUP_USE_CUSTOMENCODING"]);
|
|
|
|
|
CustomParserEncoding = useCustomParserEncoding ? Utilities.PromptString(loc["SETUP_ENCODING_STRING"]) : "windows-1252";
|
2018-04-21 17:18:20 -05:00
|
|
|
|
|
2018-09-04 12:40:29 -05:00
|
|
|
|
WebfrontBindUrl = "http://0.0.0.0:1624";
|
2018-04-19 00:48:14 -05:00
|
|
|
|
|
2018-03-29 23:13:40 -05:00
|
|
|
|
if (EnableCustomSayName)
|
2018-04-22 15:04:18 -05:00
|
|
|
|
CustomSayName = Utilities.PromptString(loc["SETUP_SAY_NAME"]);
|
2018-03-18 21:25:11 -05:00
|
|
|
|
|
2018-05-07 23:58:46 -05:00
|
|
|
|
EnableSocialLink = Utilities.PromptBool(loc["SETUP_DISPLAY_SOCIAL"]);
|
2018-03-18 21:25:11 -05:00
|
|
|
|
|
2018-05-07 23:58:46 -05:00
|
|
|
|
if (EnableSocialLink)
|
2018-05-05 17:52:04 -05:00
|
|
|
|
{
|
|
|
|
|
SocialLinkTitle = Utilities.PromptString(loc["SETUP_SOCIAL_TITLE"]);
|
2018-05-07 23:58:46 -05:00
|
|
|
|
SocialLinkAddress = Utilities.PromptString(loc["SETUP_SOCIAL_LINK"]);
|
2018-05-05 17:52:04 -05:00
|
|
|
|
}
|
2018-09-04 12:40:29 -05:00
|
|
|
|
|
2018-06-07 21:19:12 -05:00
|
|
|
|
RConPollRate = 5000;
|
|
|
|
|
|
2018-03-18 21:25:11 -05:00
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Name() => "ApplicationConfiguration";
|
2018-03-14 00:36:25 -05:00
|
|
|
|
}
|
2018-03-18 21:25:11 -05:00
|
|
|
|
}
|