Make ban command properly give a ban message instead of a placeholder (#5087)

This commit is contained in:
Saphire Lattice
2021-10-30 01:54:14 +07:00
committed by GitHub
parent 1ee833be6e
commit 1d136bf18b
3 changed files with 17 additions and 13 deletions

View File

@@ -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);
}
}
}

View File

@@ -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;
}

View File

@@ -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}";
}
}
}
}