public override void ServerInitialize(IServerConfiguration serverConfiguration) { serverConfiguration.SetupPlayerLoginHook(PlayerLoginHook); serverConfiguration.PlayerRemoteCallRateExceeded += PlayerRemoteCallRateExceededHandler; if (!Database.TryGet(nameof(ServerPlayerAccessSystem), DatabaseKeyKickedPlayersDictionary, out kickedPlayersDictionary)) { kickedPlayersDictionary = new Dictionary <string, KickEntry>(); Database.Set(nameof(ServerPlayerAccessSystem), DatabaseKeyKickedPlayersDictionary, kickedPlayersDictionary); } // fill the legacy lists // TODO: remove once we no longer need this LoadLegacyList(isWhiteList: true); LoadLegacyList(isWhiteList: false); if (Database.TryGet(nameof(ServerPlayerAccessSystem), "IsWhitelistEnabled", out bool legacyIsWhiteListEnabled)) { Database.Remove(nameof(ServerPlayerAccessSystem), "IsWhitelistEnabled"); SetWhitelistMode(legacyIsWhiteListEnabled); }
public override void ServerInitialize(IServerConfiguration serverConfiguration) { serverConfiguration.SetupPlayerLoginHook(PlayerLoginHook); serverConfiguration.PlayerRemoteCallRateExceeded += PlayerRemoteCallRateExceededHandler; Database.TryGet(nameof(ServerPlayerAccessSystem), DatabaseKeyIsWhitelistEnabled, out isWhiteListEnabled); if (!Database.TryGet(nameof(ServerPlayerAccessSystem), DatabaseKeyKickedPlayersDictionary, out kickedPlayersDictionary)) { kickedPlayersDictionary = new Dictionary <string, KickEntry>(); Database.Set(nameof(ServerPlayerAccessSystem), DatabaseKeyKickedPlayersDictionary, kickedPlayersDictionary); } whiteList = LoadOrCreateList(isWhiteList: true); ServerLogCharactersList(isWhiteList: true); blackList = LoadOrCreateList(isWhiteList: false); ServerLogCharactersList(isWhiteList: false); List <string> LoadOrCreateList(bool isWhiteList) { var key = isWhiteList ? "WhiteList" : "BlackList"; if (Database.TryGet(nameof(ServerPlayerAccessSystem), key, out List <string> list) && list is not null) { return(list); } list = new List <string>(); Database.Set(nameof(ServerPlayerAccessSystem), key, list); return(list); } }