Fix code for 2025.3.25

This commit is contained in:
D1GQ committed 2025-03-25 19:14:11 -05:00
1 parent 654db62f25
commit 028676c42b
11 files changed
+53 -67

No files matched your search

+5 -5
View File
@@ -185,11 +185,11 @@ class BAUAntiCheat
if (GameState.IsInGamePlay)
{
if (callId is (byte)RpcCalls.SetColor
or (byte)RpcCalls.SetHat
or (byte)RpcCalls.SetSkin
or (byte)RpcCalls.SetVisor
or (byte)RpcCalls.SetPet
or (byte)RpcCalls.SetNamePlate)
or (byte)RpcCalls.SetHat_Deprecated
or (byte)RpcCalls.SetSkin_Deprecated
or (byte)RpcCalls.SetVisor_Deprecated
or (byte)RpcCalls.SetPet_Deprecated
or (byte)RpcCalls.SetNamePlate_Deprecated)
{
BetterNotificationManager.NotifyCheat(player, string.Format(Translator.GetString("AntiCheat.InvalidSetRPC"), Enum.GetName((RpcCalls)callId)));
Logger.LogCheat($"{player.BetterData().RealName} {Enum.GetName((RpcCalls)callId)}: {GameState.IsInGamePlay}");
@@ -5,5 +5,5 @@ namespace BetterAmongUs.Modules.AntiCheat;
[RegisterRPCHandler]
internal sealed class SetHatHandler : RPCHandler
{
internal override byte CallId => (byte)RpcCalls.SetHat;
internal override byte CallId => (byte)RpcCalls.SetHat_Deprecated;
}
@@ -5,5 +5,5 @@ namespace BetterAmongUs.Modules.AntiCheat;
[RegisterRPCHandler]
internal sealed class SetNamePlateHandler : RPCHandler
{
internal override byte CallId => (byte)RpcCalls.SetNamePlate;
internal override byte CallId => (byte)RpcCalls.SetNamePlate_Deprecated;
}
@@ -5,5 +5,5 @@ namespace BetterAmongUs.Modules.AntiCheat;
[RegisterRPCHandler]
internal sealed class SetPetHandler : RPCHandler
{
internal override byte CallId => (byte)RpcCalls.SetPet;
internal override byte CallId => (byte)RpcCalls.SetPet_Deprecated;
}
@@ -5,5 +5,5 @@ namespace BetterAmongUs.Modules.AntiCheat;
[RegisterRPCHandler]
internal sealed class SetSkinHandler : RPCHandler
{
internal override byte CallId => (byte)RpcCalls.SetSkin;
internal override byte CallId => (byte)RpcCalls.SetSkin_Deprecated;
}
@@ -5,5 +5,5 @@ namespace BetterAmongUs.Modules.AntiCheat;
[RegisterRPCHandler]
internal sealed class SetVisorHandler : RPCHandler
{
internal override byte CallId => (byte)RpcCalls.SetVisor;
internal override byte CallId => (byte)RpcCalls.SetVisor_Deprecated;
}
+1 -1
View File
@@ -17,7 +17,7 @@ class FileChecker
"System", "Unity", "Harmony", "BepInEx", "Microsoft", "Il2Cpp", "Hazel",
"MonoMod", "netstandard", "mscorlib", "AssetRipper", "Cpp2IL", "AsmResolver", "Iced",
"SemanticVersioning", "Mono.Cecil", "Assembly-CSharp", "StableNameDotNet",
"Disarm", "Gee.External.Capstone", "Rewired_Core", "AddressablesPlayAssetDelivery",
"Disarm", "Gee.External.Capstone", "Rewired_Core", "AddressablesPlayAssetDelivery", "Newtonsoft.Json",
"Assembly-CSharp-firstpass", "Sentry", "BetterAmongUs", "MCI", "CrowdedMod", "Mini.RegionInstall", "Unlock", "Skin"
});
+1 -1
View File
@@ -11,7 +11,7 @@ internal static class GameState
internal static bool IsNormalGame => GameOptionsManager.Instance.CurrentGameOptions.GameMode is GameModes.Normal or GameModes.NormalFools;
internal static bool IsHideNSeek => GameOptionsManager.Instance != null && GameOptionsManager.Instance.CurrentGameOptions.GameMode is GameModes.HideNSeek or GameModes.SeekFools;
internal static bool SkeldIsActive => (MapNames)GameOptionsManager.Instance.CurrentGameOptions.MapId == MapNames.Skeld;
internal static bool MiraHQIsActive => (MapNames)GameOptionsManager.Instance.CurrentGameOptions.MapId == MapNames.Mira;
internal static bool MiraHQIsActive => (MapNames)GameOptionsManager.Instance.CurrentGameOptions.MapId == MapNames.MiraHQ;
internal static bool PolusIsActive => (MapNames)GameOptionsManager.Instance.CurrentGameOptions.MapId == MapNames.Polus;
internal static bool DleksIsActive => (MapNames)GameOptionsManager.Instance.CurrentGameOptions.MapId == MapNames.Dleks;
internal static bool AirshipIsActive => (MapNames)GameOptionsManager.Instance.CurrentGameOptions.MapId == MapNames.Airship;
+4 -3
View File
@@ -1,11 +1,12 @@
using HarmonyLib;
using AmongUs.Data.Player;
using HarmonyLib;
namespace BetterAmongUs.Patches;
[HarmonyPatch(typeof(StatsManager), nameof(StatsManager.BanMinutesLeft), MethodType.Getter)]
[HarmonyPatch(typeof(PlayerBanData), nameof(PlayerBanData.BanMinutesLeft), MethodType.Getter)]
internal static class DisconnectPenaltyPatch
{
internal static bool Prefix(StatsManager __instance, ref int __result)
internal static bool Prefix(PlayerBanData __instance, ref int __result)
{
if (__instance.BanPoints != 0f)
{
+8 -8
View File
@@ -205,12 +205,12 @@ class GamePlayManager
switch (EndGameResult.CachedGameOverReason)
{
case GameOverReason.HumansByTask:
case GameOverReason.CrewmatesByTask:
winTeam = Translator.GetString(StringNames.Crewmates);
winTag = Translator.GetString("Game.Summary.Result.TasksCompletion");
winColor = "#8cffff";
break;
case GameOverReason.HumansByVote:
case GameOverReason.CrewmatesByVote:
winTeam = Translator.GetString(StringNames.Crewmates);
winTag = Translator.GetString("Game.Summary.Result.ImpostersVotedOut");
winColor = "#8cffff";
@@ -220,33 +220,33 @@ class GamePlayManager
winTag = Translator.GetString("Game.Summary.Result.ImpostorsDisconnected");
winColor = "#8cffff";
break;
case GameOverReason.ImpostorByKill:
case GameOverReason.ImpostorsByKill:
winTeam = Translator.GetString(StringNames.ImpostorsCategory);
winTag = Translator.GetString("Game.Summary.Result.CrewOutnumbered");
winColor = "#f00202";
break;
case GameOverReason.ImpostorBySabotage:
case GameOverReason.ImpostorsBySabotage:
winTeam = Translator.GetString(StringNames.ImpostorsCategory);
winTag = Translator.GetString("Game.Summary.Result.Sabotage");
winColor = "#f00202";
break;
case GameOverReason.ImpostorByVote:
case GameOverReason.ImpostorsByVote:
winTeam = Translator.GetString(StringNames.ImpostorsCategory);
winTag = Translator.GetString("Game.Summary.Result.CrewOutnumbered");
winColor = "#f00202";
break;
case GameOverReason.HumansDisconnect:
case GameOverReason.CrewmateDisconnect:
winTeam = Translator.GetString(StringNames.ImpostorsCategory);
winTag = Translator.GetString("Game.Summary.Result.CrematesDisconnected");
winColor = "#f00202";
break;
case GameOverReason.HideAndSeek_ByTimer:
case GameOverReason.HideAndSeek_CrewmatesByTimer:
winTeam = Translator.GetString("Game.Summary.Hiders");
winTag = Translator.GetString("Game.Summary.Result.TimeOut");
winColor = "#8cffff";
break;
case GameOverReason.HideAndSeek_ByKills:
case GameOverReason.HideAndSeek_ImpostorsByKills:
winTeam = Translator.GetString("Game.Summary.Seekers");
winTag = Translator.GetString("Game.Summary.Result.NoSurvivors");
winColor = "#f00202";
+29 -44
View File
@@ -9,7 +9,8 @@ namespace BetterAmongUs.Patches;
[HarmonyPatch]
internal class PrivateLobbyPatch
{
private static AprilFoolsModeToggleButton? toggle;
private static GameObject? toggle;
private static List<PassiveButton>? buttons = [];
private static TextMeshPro? toggleText;
[HarmonyPatch(typeof(CreateGameOptions))]
@@ -18,81 +19,65 @@ internal class PrivateLobbyPatch
internal static void CreateGameOptionsShow_Postfix(CreateGameOptions __instance)
{
if (toggle != null) return;
buttons.Clear();
toggle = UnityEngine.Object.Instantiate(__instance.AprilFoolsToggle, __instance.transform);
toggle = UnityEngine.Object.Instantiate(__instance.AprilFoolsToggle, __instance.contentObjects.First().transform.parent);
if (toggle != null)
{
buttons.Add(toggle.transform.Find("AprilOn").GetComponent<PassiveButton>());
buttons.Add(toggle.transform.Find("AprilOff").GetComponent<PassiveButton>());
if (buttons.Count < 2) return;
toggle.gameObject.SetActive(true);
var onButton = toggle.onButton.GetComponent<PassiveButton>();
var onButton = buttons[0];
if (onButton != null)
{
onButton.gameObject.SetActive(false);
onButton.OnClick = new();
onButton.OnClick.AddListener((Action)(() => TogglePrivateOnlyLobby(true)));
}
var offButton = toggle.offButton.GetComponent<PassiveButton>();
var offButton = buttons[1];
if (offButton != null)
{
offButton.gameObject.SetActive(false);
offButton.OnClick = new();
offButton.OnClick.AddListener((Action)(() => TogglePrivateOnlyLobby(false)));
}
var aspect = toggle.gameObject.AddComponent<AspectPosition>();
aspect.Alignment = AspectPosition.EdgeAlignments.Top;
aspect.DistanceFromEdge = new UnityEngine.Vector3(0, 1.7f, 0);
aspect.DistanceFromEdge = new UnityEngine.Vector3(0, 1.62f, 0);
aspect.AdjustPosition();
var text = toggle.transform.Find("AprilFoolsModeText")?.GetComponent<TextMeshPro>();
var text = toggle.transform.Find("BlackSquare/ModeText")?.GetComponent<TextMeshPro>();
if (text != null)
{
text.DestroyTextTranslator();
text.text = "Private Only Lobby";
toggleText = text;
}
var banner = toggle.transform.Find("Banner")?.GetComponent<SpriteRenderer>();
if (banner != null)
{
banner.color = new(1, 1, 1, 0.25f);
}
}
TogglePrivateOnlyLobby(Main.PrivateOnlyLobby.Value);
}
private static void TogglePrivateOnlyLobby(bool modeOn)
{
Main.PrivateOnlyLobby.Value = modeOn;
}
if (buttons.Count < 2) return;
[HarmonyPatch(typeof(AprilFoolsModeToggleButton))]
[HarmonyPatch(nameof(AprilFoolsModeToggleButton.Update))]
[HarmonyPrefix]
internal static bool AprilFoolsModeToggleButtonUpdate_Prefix(AprilFoolsModeToggleButton __instance)
{
if (__instance == toggle)
buttons[0].gameObject.SetActive(true);
buttons[1].gameObject.SetActive(true);
buttons[0].SelectButton(false);
buttons[1].SelectButton(false);
if (modeOn)
{
if (Main.PrivateOnlyLobby.Value)
{
__instance.offButton.OutColor = Color.grey;
__instance.offText.color = Color.grey;
__instance.offButtonSprite.color = Color.grey;
__instance.onButton.OutColor = Color.white;
__instance.onText.color = Color.white;
__instance.onButtonSprite.color = Color.green;
if (toggleText != null) toggleText.color = new(1, 1, 1, 1);
}
else
{
__instance.onButton.OutColor = Color.grey;
__instance.onText.color = Color.grey;
__instance.onButtonSprite.color = Color.grey;
__instance.offButton.OutColor = Color.white;
__instance.offText.color = Color.white;
__instance.offButtonSprite.color = Color.green;
if (toggleText != null) toggleText.color = new(1, 1, 1, 0.5f);
}
return false;
buttons[0].SelectButton(true);
}
return true;
else
{
buttons[1].SelectButton(true);
}
Main.PrivateOnlyLobby.Value = modeOn;
}
[HarmonyPatch(typeof(LobbyInfoPane))]