Make ban for cheating configurable

This commit is contained in:
AeonLucid committed 2020-10-25 23:13:09 +01:00
1 parent a6b3cd10f4
commit 93394e7e77
8 files changed
+31 -7

No files matched your search

+2
View File
@@ -17,6 +17,7 @@ Server:PublicIp=127.0.0.1
Server:PublicPort=22023
Server:ListenIp=0.0.0.0
Server:listenPort=22023
AntiCheat:BanIpFromGame=true
ServerRedirector:Enabled=false
ServerRedirector:Master=true
ServerRedirector:Locator:Redis=127.0.0.1.6379
@@ -36,6 +37,7 @@ IMPOSTOR_Server__PublicIp=127.0.0.1
IMPOSTOR_Server__PublicPort=22023
IMPOSTOR_Server__ListenIp=0.0.0.0
IMPOSTOR_Server__listenPort=22023
IMPOSTOR_AntiCheat__BanIpFromGame=true
IMPOSTOR_ServerRedirector__Enabled=false
IMPOSTOR_ServerRedirector__Master=true
IMPOSTOR_ServerRedirector__Locator__Redis=127.0.0.1.6379
@@ -0,0 +1,9 @@
namespace Impostor.Server.Config
{
public class AntiCheatConfig
{
public const string Section = "AntiCheat";
public bool BanIpFromGame { get; set; } = true;
}
}
@@ -5,6 +5,7 @@
public const string Section = "Debug";
public bool GameRecorderEnabled { get; set; }
public string GameRecorderPath { get; set; }
}
}
+9 -2
View File
@@ -9,21 +9,25 @@ using Impostor.Api.Net.Messages.C2S;
using Impostor.Api.Net.Messages.S2C;
using Impostor.Hazel;
using Impostor.Server.Config;
using Impostor.Server.Net.Hazel;
using Impostor.Server.Net.Manager;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace Impostor.Server.Net
{
internal class Client : ClientBase
{
private readonly ILogger<Client> _logger;
private readonly AntiCheatConfig _antiCheatConfig;
private readonly ClientManager _clientManager;
private readonly GameManager _gameManager;
public Client(ILogger<Client> logger, ClientManager clientManager, GameManager gameManager, string name, IHazelConnection connection)
public Client(ILogger<Client> logger, IOptions<AntiCheatConfig> antiCheatOptions, ClientManager clientManager, GameManager gameManager, string name, IHazelConnection connection)
: base(name, connection)
{
_logger = logger;
_antiCheatConfig = antiCheatOptions.Value;
_clientManager = clientManager;
_gameManager = gameManager;
}
@@ -172,7 +176,10 @@ namespace Impostor.Server.Net
}
catch (ImpostorCheatException e)
{
Player.Game.BanIp(Connection.EndPoint.Address);
if (_antiCheatConfig.BanIpFromGame)
{
Player.Game.BanIp(Connection.EndPoint.Address);
}
await DisconnectAsync(DisconnectReason.Hacking, e.Message);
}
+1
View File
@@ -92,6 +92,7 @@ namespace Impostor.Server
.Get<ServerRedirectorConfig>() ?? new ServerRedirectorConfig();
services.Configure<DebugConfig>(host.Configuration.GetSection(DebugConfig.Section));
services.Configure<AntiCheatConfig>(host.Configuration.GetSection(AntiCheatConfig.Section));
services.Configure<ServerConfig>(host.Configuration.GetSection(ServerConfig.Section));
services.Configure<ServerRedirectorConfig>(host.Configuration.GetSection(ServerRedirectorConfig.Section));
@@ -1,9 +1,11 @@
using System.Threading.Tasks;
using Impostor.Api.Net.Messages;
using Impostor.Server.Config;
using Impostor.Server.Net;
using Impostor.Server.Net.Hazel;
using Impostor.Server.Net.Manager;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace Impostor.Server.Recorder
{
@@ -14,8 +16,8 @@ namespace Impostor.Server.Recorder
private bool _createdGame;
private bool _recordAfter;
public ClientRecorder(ILogger<Client> logger, ClientManager clientManager, GameManager gameManager, string name, HazelConnection connection, PacketRecorder recorder)
: base(logger, clientManager, gameManager, name, connection)
public ClientRecorder(ILogger<Client> logger, IOptions<AntiCheatConfig> antiCheatOptions, ClientManager clientManager, GameManager gameManager, string name, HazelConnection connection, PacketRecorder recorder)
: base(logger, antiCheatOptions, clientManager, gameManager, name, connection)
{
_recorder = recorder;
_isFirst = true;
+3
View File
@@ -5,6 +5,9 @@
"ListenIp": "0.0.0.0",
"ListenPort": 22023
},
"AntiCheat": {
"BanIpFromGame": true
},
"ServerRedirector": {
"Enabled": false,
"Master": true,
+2 -3
View File
@@ -5,8 +5,7 @@
"ListenIp": "0.0.0.0",
"ListenPort": 22023
},
"Debug": {
"GameRecorderEnabled": false,
"GameRecorderPath": ""
"AntiCheat": {
"BanIpFromGame": true
}
}