From: js6pak Date: Sun, 11 Apr 2021 14:05:08 +0000 (+0200) Subject: Add simple ping toleration to murder player check X-Git-Tag: v1.4.0~10^2 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=f43577b74580a6303dc9f3ea401690c39e5fe6b5;p=rhonda%2Fimpostor.git Add simple ping toleration to murder player check --- diff --git a/src/Impostor.Api/Net/IHazelConnection.cs b/src/Impostor.Api/Net/IHazelConnection.cs index c3ce51e..09f17c3 100644 --- a/src/Impostor.Api/Net/IHazelConnection.cs +++ b/src/Impostor.Api/Net/IHazelConnection.cs @@ -24,6 +24,11 @@ namespace Impostor.Api.Net /// IClient? Client { get; set; } + /// + /// Gets the average ping of the client. + /// + float AveragePing { get; } + /// /// Sends a message writer to the connection. /// diff --git a/src/Impostor.Server/Net/Hazel/HazelConnection.cs b/src/Impostor.Server/Net/Hazel/HazelConnection.cs index c59a91c..fab5ff5 100644 --- a/src/Impostor.Server/Net/Hazel/HazelConnection.cs +++ b/src/Impostor.Server/Net/Hazel/HazelConnection.cs @@ -27,6 +27,8 @@ namespace Impostor.Server.Net.Hazel public IClient? Client { get; set; } + public float AveragePing => InnerConnection is NetworkConnection networkConnection ? networkConnection.AveragePingMs : 0; + public ValueTask SendAsync(IMessageWriter writer) { return InnerConnection.SendAsync(writer); diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs index 06191a1..488e725 100644 --- a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs +++ b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs @@ -544,7 +544,7 @@ namespace Impostor.Server.Net.Inner.Objects } } - PlayerInfo.LastMurder = _dateTimeProvider.UtcNow; + PlayerInfo.LastMurder = _dateTimeProvider.UtcNow - TimeSpan.FromMilliseconds(sender.Client.Connection.AveragePing); if (target != null && !target.PlayerInfo.IsDead) { diff --git a/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs b/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs index c611c29..292899a 100644 --- a/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs +++ b/src/Impostor.Tools.ServerReplay/Mocks/MockHazelConnection.cs @@ -17,6 +17,7 @@ namespace Impostor.Tools.ServerReplay.Mocks public IPEndPoint EndPoint { get; } public bool IsConnected { get; } public IClient Client { get; set; } + public float AveragePing => 0; public ValueTask SendAsync(IMessageWriter writer) {