diff --git a/Content.Server/Administration/Commands/BanCommand.cs b/Content.Server/Administration/Commands/BanCommand.cs index e776000dd6..69f176a386 100644 --- a/Content.Server/Administration/Commands/BanCommand.cs +++ b/Content.Server/Administration/Commands/BanCommand.cs @@ -103,13 +103,13 @@ namespace Content.Server.Administration.Commands response.Append(expires == null ? " permanently." - : $" until {expires.ToString()}"); + : $" until {expires}"); shell.WriteLine(response.ToString()); if (plyMgr.TryGetSessionById(targetUid, out var targetPlayer)) { - targetPlayer.ConnectedClient.Disconnect("You've been banned. Tough shit."); + targetPlayer.ConnectedClient.Disconnect(banDef.DisconnectMessage); } } } diff --git a/Content.Server/Connection/ConnectionManager.cs b/Content.Server/Connection/ConnectionManager.cs index db0b1e1684..5e2552a552 100644 --- a/Content.Server/Connection/ConnectionManager.cs +++ b/Content.Server/Connection/ConnectionManager.cs @@ -73,17 +73,7 @@ The ban reason is: ""{ban.Reason}"" var ban = await _db.GetServerBanAsync(addr, userId, hwId); if (ban != null) { - var expires = "This is a permanent ban."; - if (ban.ExpirationTime is { } expireTime) - { - var duration = expireTime - ban.BanTime; - var utc = expireTime.ToUniversalTime(); - expires = $"This ban is for {duration.TotalMinutes:N0} minutes and will expire at {utc:f} UTC."; - } - var reason = $@"You, or another user of this computer or connection, are banned from playing here. -The ban reason is: ""{ban.Reason}"" -{expires}"; - e.Deny(reason); + e.Deny(ban.DisconnectMessage); return; } diff --git a/Content.Server/Database/ServerBanDef.cs b/Content.Server/Database/ServerBanDef.cs index 663f3e1135..56fea2a9e3 100644 --- a/Content.Server/Database/ServerBanDef.cs +++ b/Content.Server/Database/ServerBanDef.cs @@ -52,5 +52,19 @@ namespace Content.Server.Database BanningAdmin = banningAdmin; Unban = unban; } + + public string DisconnectMessage + { + get { + var expires = "This is a permanent ban."; + if (this.ExpirationTime is { } expireTime) + { + var duration = expireTime - this.BanTime; + var utc = expireTime.ToUniversalTime(); + expires = $"This ban is for {duration.TotalMinutes:N0} minutes and will expire at {utc:f} UTC."; + } + return $"You, or another user of this computer or connection, are banned from playing here.\nThe ban reason is: \"{this.Reason}\"\n{expires}"; + } + } } }