From e76d8390bda61036030e618293533792b7e00c8d Mon Sep 17 00:00:00 2001 From: LankLTE <135308300+LankLTE@users.noreply.github.com> Date: Sun, 31 Dec 2023 18:53:49 -0800 Subject: [PATCH] add cvar for custom panic bunker reason (#23267) Panic bunker cvar --- Content.Server/Connection/ConnectionManager.cs | 15 ++++++++++++++- Content.Shared/CCVar/CCVars.cs | 7 +++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Content.Server/Connection/ConnectionManager.cs b/Content.Server/Connection/ConnectionManager.cs index c5f1dd119d..af25a709dd 100644 --- a/Content.Server/Connection/ConnectionManager.cs +++ b/Content.Server/Connection/ConnectionManager.cs @@ -1,4 +1,4 @@ -using System.Collections.Immutable; +using System.Collections.Immutable; using System.Threading.Tasks; using Content.Server.Database; using Content.Server.GameTicking; @@ -109,12 +109,19 @@ namespace Content.Server.Connection if (_cfg.GetCVar(CCVars.PanicBunkerEnabled)) { var showReason = _cfg.GetCVar(CCVars.PanicBunkerShowReason); + var customReason = _cfg.GetCVar(CCVars.PanicBunkerCustomReason); var minMinutesAge = _cfg.GetCVar(CCVars.PanicBunkerMinAccountAge); var record = await _dbManager.GetPlayerRecordByUserId(userId); var validAccountAge = record != null && record.FirstSeenTime.CompareTo(DateTimeOffset.Now - TimeSpan.FromMinutes(minMinutesAge)) <= 0; + // Use the custom reason if it exists & they don't have the minimum account age + if (customReason != string.Empty && !validAccountAge) + { + return (ConnectionDenyReason.Panic, customReason, null); + } + if (showReason && !validAccountAge) { return (ConnectionDenyReason.Panic, @@ -126,6 +133,12 @@ namespace Content.Server.Connection var overallTime = ( await _db.GetPlayTimes(e.UserId)).Find(p => p.Tracker == PlayTimeTrackingShared.TrackerOverall); var haveMinOverallTime = overallTime != null && overallTime.TimeSpent.TotalHours > minOverallHours; + // Use the custom reason if it exists & they don't have the minimum time + if (customReason != string.Empty && !haveMinOverallTime) + { + return (ConnectionDenyReason.Panic, customReason, null); + } + if (showReason && !haveMinOverallTime) { return (ConnectionDenyReason.Panic, diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index e23df3d936..192923e001 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -298,6 +298,13 @@ namespace Content.Shared.CCVar public static readonly CVarDef PanicBunkerMinOverallHours = CVarDef.Create("game.panic_bunker.min_overall_hours", 10, CVar.SERVERONLY); + /// + /// A custom message that will be used for connections denied to the panic bunker + /// If not empty, then will overwrite + /// + public static readonly CVarDef PanicBunkerCustomReason = + CVarDef.Create("game.panic_bunker.custom_reason", string.Empty, CVar.SERVERONLY); + /// /// Make people bonk when trying to climb certain objects like tables. /// -- 2.51.2