mirror of
https://github.com/D1GQ/BetterAmongUs.git
synced 2026-10-20 01:46:19 +00:00
40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using AmongUs.GameOptions;
|
|
using BetterAmongUs.Helpers;
|
|
using BetterAmongUs.Items.Attributes;
|
|
using BetterAmongUs.Managers;
|
|
using Hazel;
|
|
using InnerNet;
|
|
|
|
namespace BetterAmongUs.Modules.AntiCheat;
|
|
|
|
[RegisterRPCHandler]
|
|
internal sealed class ShapeshiftHandler : RPCHandler
|
|
{
|
|
internal override byte CallId => (byte)RpcCalls.Shapeshift;
|
|
|
|
internal override bool HandleAntiCheatCancel(PlayerControl? sender, MessageReader reader)
|
|
{
|
|
var target = reader.ReadNetObject<PlayerControl>();
|
|
var flag = reader.ReadBoolean();
|
|
|
|
if (!sender.Is(RoleTypes.Shapeshifter) || !sender.IsAlive())
|
|
{
|
|
if (BetterNotificationManager.NotifyCheat(sender, GetFormatActionText()))
|
|
{
|
|
LogRpcInfo($"{!sender.Is(RoleTypes.Shapeshifter)} || {!sender.IsAlive()}");
|
|
}
|
|
return false;
|
|
}
|
|
else if (!flag && !GameState.IsMeeting && !GameState.IsExilling && !sender.IsInVent())
|
|
{
|
|
if (BetterNotificationManager.NotifyCheat(sender, GetFormatActionText()))
|
|
{
|
|
LogRpcInfo($"{!flag} && {!GameState.IsMeeting} && {!GameState.IsExilling} && {!sender.IsInVent()}");
|
|
}
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|