mirror of
https://github.com/D1GQ/BetterAmongUs.git
synced 2026-10-20 01:46:19 +00:00
Fixes
This commit is contained in:
1 parent
a347c20fa5
commit
ca4bb1adbe
10 files changed
+36
-12
No files matched your search
@@ -115,7 +115,7 @@ class BetterAntiCheat
|
||||
|
||||
if (!IsEnabled) return;
|
||||
|
||||
RPCHandler.HandleRPC(callId, player, reader, HandlerFlag.AntiCheatCheck);
|
||||
RPCHandler.HandleRPC(callId, player, reader, HandlerFlag.CheatRpcCheck);
|
||||
}
|
||||
|
||||
// Check and notify for invalid rpcs
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace BetterAmongUs.Modules.AntiCheat;
|
||||
internal enum HandlerFlag
|
||||
{
|
||||
Handle,
|
||||
AntiCheatCheck,
|
||||
CheatRpcCheck,
|
||||
AntiCheatCancel,
|
||||
AntiCheat,
|
||||
BetterHost,
|
||||
@@ -36,7 +36,7 @@ internal abstract class RPCHandler
|
||||
internal static bool CheckRange(Vector2 pos1, Vector2 pos2, float range) => Vector2.Distance(pos1, pos2) <= range;
|
||||
internal virtual void Handle(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual void HandleGameData(MessageReader reader) { }
|
||||
internal virtual void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual void HandleCheatRpcCheck(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader) => true;
|
||||
internal virtual void HandleAntiCheat(PlayerControl? sender, MessageReader reader) { }
|
||||
internal virtual bool BetterHandle(PlayerControl? sender, MessageReader reader) => true;
|
||||
@@ -56,9 +56,9 @@ internal abstract class RPCHandler
|
||||
try
|
||||
{
|
||||
if (handlerFlag == HandlerFlag.Handle) handler.Handle(sender, MessageReader.Get(reader));
|
||||
else if (handlerFlag == HandlerFlag.AntiCheatCheck) handler.HandleAntiCheatCheck(sender, MessageReader.Get(reader));
|
||||
else if (handlerFlag == HandlerFlag.AntiCheatCancel) cancel = !handler.HandleAntiCheatCancel(sender, MessageReader.Get(reader));
|
||||
else if (handlerFlag == HandlerFlag.AntiCheat) handler.HandleAntiCheat(sender, MessageReader.Get(reader));
|
||||
else if (handlerFlag == HandlerFlag.CheatRpcCheck) handler.HandleCheatRpcCheck(sender, MessageReader.Get(reader));
|
||||
else if (handlerFlag == HandlerFlag.BetterHost) cancel = !handler.BetterHandle(sender, MessageReader.Get(reader));
|
||||
if (!(cancel)) break;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ internal sealed class AUMChatHandler : RPCHandler
|
||||
{
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.AUMChat);
|
||||
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleCheatRpcCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
var nameString = reader.ReadString();
|
||||
var msgString = reader.ReadString();
|
||||
|
||||
@@ -13,7 +13,7 @@ internal sealed class AUMHandler : RPCHandler
|
||||
{
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.AUM);
|
||||
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleCheatRpcCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (Main.AntiCheat.Value && BetterGameSettings.DetectCheatClients.GetBool())
|
||||
{
|
||||
|
||||
@@ -13,7 +13,7 @@ internal sealed class KillNetworkChatHandler : RPCHandler
|
||||
{
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.KillNetworkChat);
|
||||
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleCheatRpcCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (!Main.AntiCheat.Value || !BetterGameSettings.DetectCheatClients.GetBool()) return;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ internal sealed class KillNetworkHandler : RPCHandler
|
||||
{
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.KillNetwork);
|
||||
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleCheatRpcCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (Main.AntiCheat.Value && BetterGameSettings.DetectCheatClients.GetBool())
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@ internal sealed class SetNameHandler : RPCHandler
|
||||
|
||||
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (GameState.IsHost) return false;
|
||||
if (GameState.IsHost) return true;
|
||||
|
||||
_ = reader.ReadUInt32();
|
||||
var name = reader.ReadString();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BetterAmongUs.Items.Attributes;
|
||||
using Hazel;
|
||||
|
||||
namespace BetterAmongUs.Modules.AntiCheat;
|
||||
|
||||
@@ -6,4 +7,15 @@ namespace BetterAmongUs.Modules.AntiCheat;
|
||||
internal sealed class SetScannerHandler : RPCHandler
|
||||
{
|
||||
internal override byte CallId => (byte)RpcCalls.SetScanner;
|
||||
|
||||
internal override void HandleAntiCheat(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
/*
|
||||
if (sender.IsImpostorTeam() || !sender.Data.Tasks.ToArray().Any(task => task.TypeId == (byte)TaskTypes.SubmitScan))
|
||||
{
|
||||
BetterNotificationManager.NotifyCheat(sender, GetFormatActionText());
|
||||
LogRpcInfo($"{sender.IsImpostorTeam()} || {!sender.Data.Tasks.ToArray().Any(task => task.TypeId == (byte)TaskTypes.SubmitScan)}");
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ internal sealed class SickoHandler : RPCHandler
|
||||
{
|
||||
internal override byte CallId => unchecked((byte)CustomRPC.Sicko);
|
||||
|
||||
internal override void HandleAntiCheatCheck(PlayerControl? sender, MessageReader reader)
|
||||
internal override void HandleCheatRpcCheck(PlayerControl? sender, MessageReader reader)
|
||||
{
|
||||
if (Main.AntiCheat.Value && BetterGameSettings.DetectCheatClients.GetBool())
|
||||
{
|
||||
|
||||
@@ -10,11 +10,17 @@ internal static class VoteBanSystemPatch
|
||||
{
|
||||
private static readonly Dictionary<VoteBanSystem, List<(int ClientId, (ushort HashPuid, string FriendCode) Voter)>> _voteData = [];
|
||||
|
||||
private static bool DoLog;
|
||||
|
||||
[HarmonyPatch(nameof(VoteBanSystem.AddVote))]
|
||||
[HarmonyPrefix]
|
||||
private static bool AddVote_Prefix(VoteBanSystem __instance, int srcClient, int clientId)
|
||||
{
|
||||
if (!GameState.IsHost) return true;
|
||||
if (!GameState.IsHost)
|
||||
{
|
||||
DoLog = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
var client = Utils.ClientFromClientId(srcClient);
|
||||
if (client == null) return false;
|
||||
@@ -42,6 +48,7 @@ internal static class VoteBanSystemPatch
|
||||
|
||||
if (string.IsNullOrEmpty(client.ProductUserId) && string.IsNullOrEmpty(client.FriendCode))
|
||||
{
|
||||
DoLog = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -63,6 +70,7 @@ internal static class VoteBanSystemPatch
|
||||
}
|
||||
|
||||
voters.Add((clientId, (clientHash, client.FriendCode)));
|
||||
DoLog = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -71,7 +79,11 @@ internal static class VoteBanSystemPatch
|
||||
[HarmonyPostfix]
|
||||
private static void AddVote_Postfix(VoteBanSystem __instance, int srcClient, int clientId)
|
||||
{
|
||||
LogVote(__instance, srcClient, clientId);
|
||||
if (DoLog)
|
||||
{
|
||||
LogVote(__instance, srcClient, clientId);
|
||||
DoLog = false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void LogVote(VoteBanSystem voteBanSystem, int srcClient, int clientId)
|
||||
|
||||
Reference in new issue
Block a user