diff options
author | Aki <please@ignore.pl> | 2022-04-01 21:23:39 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-04-01 21:23:39 +0200 |
commit | 3c487c5cd69c53d6fea948643c0a76df03516605 (patch) | |
tree | 72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /StarsEx/NetServerConfig.h | |
parent | 8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff) | |
download | starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2 |
Moved Stars45 to StarsEx
Diffstat (limited to 'StarsEx/NetServerConfig.h')
-rw-r--r-- | StarsEx/NetServerConfig.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/StarsEx/NetServerConfig.h b/StarsEx/NetServerConfig.h new file mode 100644 index 0000000..be582ce --- /dev/null +++ b/StarsEx/NetServerConfig.h @@ -0,0 +1,101 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. + + AUTHOR: John DiCamillo + +*/ + +#ifndef NetServerConfig_h +#define NetServerConfig_h + +#include "Types.h" +#include "Game.h" +#include "Text.h" + +// +--------------------------------------------------------------------+ + +class NetAddr; +class NetUser; + +// +--------------------------------------------------------------------+ + +class NetServerConfig +{ +public: + static const char* TYPENAME() { return "NetServerConfig"; } + + NetServerConfig(); + ~NetServerConfig(); + + enum GAME_TYPE { + NET_GAME_LAN, + NET_GAME_PRIVATE, + NET_GAME_PUBLIC + }; + + const Text& Hostname() const { return hostname; } + const Text& Name() const { return name; } + const Text& GetAdminName() const { return admin_name; } + const Text& GetAdminPass() const { return admin_pass; } + const Text& GetGamePass() const { return game_pass; } + const Text& GetMission() const { return mission; } + WORD GetAdminPort() const { return admin_port; } + WORD GetLobbyPort() const { return lobby_port; } + WORD GetGamePort() const { return game_port; } + int GetPoolsize() const { return poolsize; } + int GetSessionTimeout() const { return session_timeout; } + int GetGameType() const { return game_type; } + int GetAuthLevel() const { return auth_level; } + + void SetHostname(const char* s) { hostname = Clean(s); } + void SetName(const char* s) { name = Clean(s); } + void SetAdminName(const char* s){ admin_name = Clean(s); } + void SetAdminPass(const char* s){ admin_pass = Clean(s); } + void SetGamePass(const char* s) { game_pass = Clean(s); } + void SetMission(const char* s) { mission = Clean(s); } + void SetGameType(int t) { game_type = t; } + void SetAdminPort(WORD p) { admin_port = p; } + void SetLobbyPort(WORD p) { lobby_port = p; } + void SetGamePort(WORD p) { game_port = p; } + void SetPoolsize(int s) { poolsize = s; } + void SetSessionTimeout(int t) { session_timeout = t; } + void SetAuthLevel(int n) { auth_level = n; } + + void Load(); + void Save(); + + bool IsUserBanned(NetUser* user); + void BanUser(NetUser* user); + + static void Initialize(); + static void Close(); + static NetServerConfig* GetInstance() { return instance; } + +private: + void LoadBanList(); + Text Clean(const char* s); + + Text hostname; + Text name; + Text admin_name; + Text admin_pass; + Text game_pass; + Text mission; + + WORD admin_port; + WORD lobby_port; + WORD game_port; + int poolsize; + int session_timeout; + int game_type; + int auth_level; + + List<NetAddr> banned_addrs; + List<Text> banned_names; + + static NetServerConfig* instance; +}; + +#endif // NetServerConfig_h |