Fix cheating disconnect message

DisconnectReason.Hacking has been broken in base game for a long time so replace it with a custom message.
Also add a random support code for easier debugging in case of false positives.
This commit is contained in:
js6pak committed 2024-08-24 16:51:51 +02:00
1 parent 2ddbb8891c
commit 6c91280125
1 file changed
+10 -2
+10 -2
View File
@@ -82,14 +82,22 @@ namespace Impostor.Server.Net
return false;
}
_logger.LogWarning("Client {Name} ({Id}) was caught cheating: [{Context}-{Category}] {Message}", Name, Id, context.Name, category, message);
var supportCode = Random.Shared.Next(0, 999_999).ToString("000-000");
_logger.LogWarning("Client {Name} ({Id}) was caught cheating: [{SupportCode}] [{Context}-{Category}] {Message}", Name, Id, supportCode, context.Name, category, message);
if (_antiCheatConfig.BanIpFromGame)
{
Player?.Game.BanIp(Connection.EndPoint.Address);
}
await DisconnectAsync(DisconnectReason.Hacking, context.Name + ": " + message);
var disconnectMessage =
$"""
You have been caught cheating and were {(_antiCheatConfig.BanIpFromGame ? "banned" : "kicked")} from the lobby.
For questions, contact your server admin and share the following code: {supportCode}.
""";
await DisconnectAsync(DisconnectReason.Custom, disconnectMessage);
return true;
}