Whitelist player constraints (#13812)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user