Whitelist player constraints (#13812)

This commit is contained in:
Kara
2023-01-30 23:57:45 -06:00
committed by GitHub
parent 81990a4897
commit 917aa80b4b
3 changed files with 36 additions and 5 deletions

View File

@@ -121,7 +121,7 @@ namespace Content.Server.Connection
var minOverallHours = _cfg.GetCVar(CCVars.PanicBunkerMinOverallHours);
var overallTime = ( await _db.GetPlayTimes(e.UserId)).Find(p => p.Tracker == PlayTimeTrackingShared.TrackerOverall);
var haveMinOverallTime = overallTime != null && overallTime.TimeSpent.TotalHours > minOverallHours;
if (showReason && !haveMinOverallTime)
{
return (ConnectionDenyReason.Panic,
@@ -150,11 +150,21 @@ namespace Content.Server.Connection
return (ConnectionDenyReason.Ban, firstBan.DisconnectMessage, bans);
}
if (_cfg.GetCVar(CCVars.WhitelistEnabled)
&& await _db.GetWhitelistStatusAsync(userId) == false
&& adminData is null)
if (_cfg.GetCVar(CCVars.WhitelistEnabled))
{
return (ConnectionDenyReason.Whitelist, Loc.GetString(_cfg.GetCVar(CCVars.WhitelistReason)), null);
var min = _cfg.GetCVar(CCVars.WhitelistMinPlayers);
var max = _cfg.GetCVar(CCVars.WhitelistMaxPlayers);
var playerCountValid = _plyMgr.PlayerCount > min && _plyMgr.PlayerCount < max;
if (playerCountValid && await _db.GetWhitelistStatusAsync(userId) == false
&& adminData is null)
{
var msg = Loc.GetString(_cfg.GetCVar(CCVars.WhitelistReason));
// was the whitelist playercount changed?
if (min > 0 || max < int.MaxValue)
msg += "\n" + Loc.GetString("whitelist-playercount-invalid", ("min", min), ("max", max));
return (ConnectionDenyReason.Whitelist, msg, null);
}
}
return null;