Example #1
0
            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);
                }
Example #2
0
            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);
                }
            }