From a43951fa34b51704b088ca93fb6d073b16620583 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Sun, 1 Sep 2024 16:03:59 -0500 Subject: [PATCH 01/15] fc fix --- Patches/PlayerControlPatch.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Patches/PlayerControlPatch.cs b/Patches/PlayerControlPatch.cs index a26c66b..b9b116a 100644 --- a/Patches/PlayerControlPatch.cs +++ b/Patches/PlayerControlPatch.cs @@ -130,19 +130,22 @@ class PlayerControlPatch var sbTagBottom = new StringBuilder(); // Put +++ at the end of each tag - if (!string.IsNullOrEmpty(hashPuid) && AntiCheat.SickoData.ContainsKey(hashPuid) || !string.IsNullOrEmpty(friendCode) && AntiCheat.SickoData.ContainsValue(friendCode)) + if (!string.IsNullOrEmpty(hashPuid) && hashPuid.Length > 0 && AntiCheat.SickoData.ContainsKey(hashPuid) + || !string.IsNullOrEmpty(friendCode) && friendCode.Length > 0 && AntiCheat.SickoData.ContainsValue(friendCode)) { sbTag.Append("Sicko User+++"); player.SetOutlineByHex(true, "#00f583"); } - else if (!string.IsNullOrEmpty(hashPuid) && AntiCheat.AUMData.ContainsKey(hashPuid) || !string.IsNullOrEmpty(friendCode) && AntiCheat.AUMData.ContainsValue(friendCode)) + else if (!string.IsNullOrEmpty(hashPuid) && hashPuid.Length > 0 && AntiCheat.AUMData.ContainsKey(hashPuid) + || !string.IsNullOrEmpty(friendCode) && friendCode.Length > 0 && AntiCheat.AUMData.ContainsValue(friendCode)) { sbTag.Append("AUM User+++"); player.SetOutlineByHex(true, "#4f0000"); } - else if (!string.IsNullOrEmpty(hashPuid) && AntiCheat.PlayerData.ContainsKey(hashPuid) || !string.IsNullOrEmpty(friendCode) && AntiCheat.PlayerData.ContainsValue(friendCode)) + else if (!string.IsNullOrEmpty(hashPuid) && hashPuid.Length > 0 && AntiCheat.PlayerData.ContainsKey(hashPuid) + || !string.IsNullOrEmpty(friendCode) && friendCode.Length > 0 && AntiCheat.PlayerData.ContainsValue(friendCode)) { sbTag.Append("Known Cheater+++"); player.SetOutlineByHex(true, "#fc0000"); From d1b53d17172e9f2b06b521e433c854533097a009 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Tue, 3 Sep 2024 18:20:19 -0500 Subject: [PATCH 02/15] By The Enhanced Network --- Patches/PingTrackerPatch.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Patches/PingTrackerPatch.cs b/Patches/PingTrackerPatch.cs index 72dfb31..20aff8a 100644 --- a/Patches/PingTrackerPatch.cs +++ b/Patches/PingTrackerPatch.cs @@ -31,7 +31,7 @@ public class PingTrackerPatch } sb.Append($"BetterAmongUs {Main.GetVersionText(true)}\n"); - sb.AppendFormat("{0}\n", Main.Github); + sb.Append("By The Enhanced Network"); if (Main.BetterHost.Value && GameStates.IsHost) { From 28a9732f8b39abfcc706431dbaddbebda82d8bbd Mon Sep 17 00:00:00 2001 From: D1GQ Date: Wed, 4 Sep 2024 13:58:48 -0500 Subject: [PATCH 03/15] oops --- Patches/MeetingHudPatch.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Patches/MeetingHudPatch.cs b/Patches/MeetingHudPatch.cs index c2d9be0..b3d12aa 100644 --- a/Patches/MeetingHudPatch.cs +++ b/Patches/MeetingHudPatch.cs @@ -86,7 +86,7 @@ class MeetingHudUpdatePatch case DisconnectReasons.Banned: if (playerData.BetterData().AntiCheatInfo.BannedByAntiCheat) { - DisconnectText = "Banned By Anti-Cheat>"; + DisconnectText = "Banned By Anti-Cheat"; } else { From 6781d93231672b4464c0f8eb2d267625ea1a3de3 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 00:20:06 -0500 Subject: [PATCH 04/15] fixes --- Patches/PingTrackerPatch.cs | 2 +- Patches/RoleManagerPatch.cs | 26 +++++++++++++------------- main.cs | 1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Patches/PingTrackerPatch.cs b/Patches/PingTrackerPatch.cs index 20aff8a..ace148f 100644 --- a/Patches/PingTrackerPatch.cs +++ b/Patches/PingTrackerPatch.cs @@ -31,7 +31,7 @@ public class PingTrackerPatch } sb.Append($"BetterAmongUs {Main.GetVersionText(true)}\n"); - sb.Append("By The Enhanced Network"); + sb.Append("By The Enhanced Network\n"); if (Main.BetterHost.Value && GameStates.IsHost) { diff --git a/Patches/RoleManagerPatch.cs b/Patches/RoleManagerPatch.cs index 1d5b263..34d0c59 100644 --- a/Patches/RoleManagerPatch.cs +++ b/Patches/RoleManagerPatch.cs @@ -49,7 +49,7 @@ public class RoleManagerPatch { { 3, 1 }, { 5, 2 }, - { 6, 3 } + { 7, 3 } }; foreach (var limit in impostorLimits) @@ -103,7 +103,7 @@ public class RoleManagerPatch { Impostors.Add(player); player.RpcSetRole(RoleTypes.Impostor); - Logger.Log($"Override Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {player.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Override Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {player.Data.PlayerName}", "RoleManager"); } else continue; } @@ -111,7 +111,7 @@ public class RoleManagerPatch { Crewmates.Add(player); player.RpcSetRole(RoleTypes.Crewmate); - Logger.Log($"Override Assigned {Utils.GetRoleName(RoleTypes.Crewmate)} role to {player.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Override Assigned {Utils.GetRoleName(RoleTypes.Crewmate)} role to {player.Data.PlayerName}", "RoleManager"); } else { @@ -155,7 +155,7 @@ public class RoleManagerPatch } } - Logger.Log($"Override Assigned {Utils.GetRoleName(role)} role to {player.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Override Assigned {Utils.GetRoleName(role)} role to {player.Data.PlayerName}", "RoleManager"); } } } @@ -205,7 +205,7 @@ public class RoleManagerPatch } } - Logger.Log($"Assigned {Utils.GetRoleName(kvp.Key)} role to {pc.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Assigned {Utils.GetRoleName(kvp.Key)} role to {pc.Data.PlayerName}", "RoleManager"); break; } } @@ -215,7 +215,7 @@ public class RoleManagerPatch ImpostorMultiplier[Utils.GetHashPuid(pc)] += 15; Impostors.Add(pc); pc.RpcSetRole(RoleTypes.Impostor); - Logger.Log($"Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {pc.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {pc.Data.PlayerName}", "RoleManager"); } } else @@ -242,7 +242,7 @@ public class RoleManagerPatch } } - Logger.Log($"Assigned {Utils.GetRoleName(kvp.Key)} role to {pc.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Assigned {Utils.GetRoleName(kvp.Key)} role to {pc.Data.PlayerName}", "RoleManager"); break; } } @@ -252,7 +252,7 @@ public class RoleManagerPatch ImpostorMultiplier[Utils.GetHashPuid(pc)] = 0; Crewmates.Add(pc); pc.RpcSetRole(RoleTypes.Crewmate); - Logger.Log($"Assigned {Utils.GetRoleName(RoleTypes.Crewmate)} role to {pc.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Assigned {Utils.GetRoleName(RoleTypes.Crewmate)} role to {pc.Data.PlayerName}", "RoleManager"); } } } @@ -301,7 +301,7 @@ public class RoleManagerPatch if (Impostors.Count < NumImpostors) { Impostors.Add(player); - Logger.Log($"Settings Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {player.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Settings Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {player.Data.PlayerName}", "RoleManager"); } } } @@ -321,14 +321,14 @@ public class RoleManagerPatch if (Impostors.Count < NumImpostors) { Impostors.Add(player); - Logger.Log($"Override Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {player.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Override Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {player.Data.PlayerName}", "RoleManager"); } else continue; } else if (role is RoleTypes.Engineer) { Crewmates.Add(player); - Logger.Log($"Override Assigned {Utils.GetRoleName(RoleTypes.Engineer)} role to {player.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Override Assigned {Utils.GetRoleName(RoleTypes.Engineer)} role to {player.Data.PlayerName}", "RoleManager"); } } } @@ -359,7 +359,7 @@ public class RoleManagerPatch if (!Crewmates.Contains(pc)) { Impostors.Add(pc); - Logger.Log($"Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {pc.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Assigned {Utils.GetRoleName(RoleTypes.Impostor)} role to {pc.Data.PlayerName}", "RoleManager"); } } else @@ -367,7 +367,7 @@ public class RoleManagerPatch if (!Impostors.Contains(pc)) { Crewmates.Add(pc); - Logger.Log($"Assigned {Utils.GetRoleName(RoleTypes.Engineer)} role to {pc.Data.PlayerName}", "RoleManager"); + Logger.LogPrivate($"Assigned {Utils.GetRoleName(RoleTypes.Engineer)} role to {pc.Data.PlayerName}", "RoleManager"); } } } diff --git a/main.cs b/main.cs index 3e3cd1c..85a62bb 100644 --- a/main.cs +++ b/main.cs @@ -88,6 +88,7 @@ public class Main : BasePlugin public static List SupportedAmongUsVersions = [ + "2024.9.4", "2024.8.13", "2024.6.18", ]; From 593856013b8dc566c2aa1999424c92fd6e0e091e Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 15:22:12 -0500 Subject: [PATCH 05/15] 2024.9.4 Support --- Patches/PingTrackerPatch.cs | 3 ++- main.cs | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Patches/PingTrackerPatch.cs b/Patches/PingTrackerPatch.cs index ace148f..9d7de53 100644 --- a/Patches/PingTrackerPatch.cs +++ b/Patches/PingTrackerPatch.cs @@ -31,7 +31,8 @@ public class PingTrackerPatch } sb.Append($"BetterAmongUs {Main.GetVersionText(true)}\n"); - sb.Append("By The Enhanced Network\n"); + // sb.Append("By The Enhanced Network\n"); + sb.Append($"{Main.Github}\n"); if (Main.BetterHost.Value && GameStates.IsHost) { diff --git a/main.cs b/main.cs index 85a62bb..b81c223 100644 --- a/main.cs +++ b/main.cs @@ -24,8 +24,8 @@ public class Main : BasePlugin { public const ReleaseTypes ReleaseBuildType = ReleaseTypes.Release; public const string CanaryNum = "0"; - public const string HotfixNum = "0"; - public const bool IsHotFix = false; + public const string HotfixNum = "1"; + public const bool IsHotFix = true; public const string PluginGuid = "com.d1gq.betteramongus"; public const string PluginVersion = "1.1.2"; public const string ReleaseDate = "08.31.2024"; // mm/dd/yyyy From 77b7f092021173ee79db19e1827fd5f745f63424 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 15:24:13 -0500 Subject: [PATCH 06/15] oops --- BetterAmongUs.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BetterAmongUs.csproj b/BetterAmongUs.csproj index 1d0bb6b..b908264 100644 --- a/BetterAmongUs.csproj +++ b/BetterAmongUs.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From e20afdb500ca0b61bd77828cb46ef675a6fc99ce Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 15:44:17 -0500 Subject: [PATCH 07/15] Sensor Detection Reason --- Modules/BetterNotificationManager.cs | 9 ++++++++- Patches/GameSettingMenuPatch.cs | 9 ++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Modules/BetterNotificationManager.cs b/Modules/BetterNotificationManager.cs index 5dfc5f6..9746131 100644 --- a/Modules/BetterNotificationManager.cs +++ b/Modules/BetterNotificationManager.cs @@ -1,4 +1,6 @@ -using TMPro; +using BetterAmongUs.Patches; +using Cpp2IL.Core.Extensions; +using TMPro; using UnityEngine; namespace BetterAmongUs; @@ -39,6 +41,11 @@ class BetterNotificationManager if (newText != "") text = $"Player: {player?.BetterData().RealName} " + newText + $": {reason}"; + if (BetterGameSettings.SensorDetectionReason.GetBool()) + { + reason = string.Concat('*').Repeat(reason.Length); + } + if (!AntiCheat.PlayerData.ContainsKey(Utils.GetHashPuid(player))) { AntiCheat.PlayerData[Utils.GetHashPuid(player)] = player.Data.FriendCode; diff --git a/Patches/GameSettingMenuPatch.cs b/Patches/GameSettingMenuPatch.cs index d844b07..efa0332 100644 --- a/Patches/GameSettingMenuPatch.cs +++ b/Patches/GameSettingMenuPatch.cs @@ -18,8 +18,8 @@ class BetterGameSettings public static BetterOptionItem? DetectInvalidRPCs; public static BetterOptionItem? RoleRandomizer; public static BetterOptionItem? DesyncRoles; - public static BetterOptionItem? CancelInvalidSabotage; + public static BetterOptionItem? SensorDetectionReason; } class BetterGameSettingsTemp @@ -43,6 +43,8 @@ static class GameSettingMenuPatch BetterOptionItem.TempPlayerOptionDataNum = 0; TitleList.Clear(); + // Use 1400 next ID + // Anti-Cheat Settings { TitleList.Add(new BetterOptionHeaderItem().Create(BetterSettingsTab, "Anti-Cheat Settings")); @@ -50,9 +52,10 @@ static class GameSettingMenuPatch if (IsPreload || GameStates.IsHost) { TitleList.Add(new BetterOptionTitleItem().Create(BetterSettingsTab, $"Host Only")); + BetterGameSettings.SensorDetectionReason = new BetterOptionCheckboxItem().Create(1300, BetterSettingsTab, "Sensor detection reason", false); BetterGameSettings.WhenCheating = new BetterOptionStringItem().Create(100, BetterSettingsTab, "When a player is caught cheating", ["Notify", "Kick", "Ban"], 2); - BetterGameSettings.InvalidFriendCode = new BetterOptionCheckboxItem().Create(200, BetterSettingsTab, "Detected invalid FriendCodes", true); - BetterGameSettings.CancelInvalidSabotage = new BetterOptionCheckboxItem().Create(900, BetterSettingsTab, "Cancel Invalid Sabotages", true); + BetterGameSettings.InvalidFriendCode = new BetterOptionCheckboxItem().Create(200, BetterSettingsTab, "Detected invalid friendCodes", true); + BetterGameSettings.CancelInvalidSabotage = new BetterOptionCheckboxItem().Create(900, BetterSettingsTab, "Cancel invalid sabotages", true); BetterGameSettings.UseBanPlayerList = new BetterOptionCheckboxItem().Create(300, BetterSettingsTab, "Use Ban Player List", true); BetterGameSettings.UseBanNameList = new BetterOptionCheckboxItem().Create(400, BetterSettingsTab, "Use Ban Name List", true); BetterGameSettings.UseBanWordList = new BetterOptionCheckboxItem().Create(500, BetterSettingsTab, "Use Ban Word List", true); From cbdb95804420c8e27d444a3987bf9d75b97be964 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 15:45:53 -0500 Subject: [PATCH 08/15] move setting --- Patches/GameSettingMenuPatch.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Patches/GameSettingMenuPatch.cs b/Patches/GameSettingMenuPatch.cs index efa0332..4b87661 100644 --- a/Patches/GameSettingMenuPatch.cs +++ b/Patches/GameSettingMenuPatch.cs @@ -52,7 +52,6 @@ static class GameSettingMenuPatch if (IsPreload || GameStates.IsHost) { TitleList.Add(new BetterOptionTitleItem().Create(BetterSettingsTab, $"Host Only")); - BetterGameSettings.SensorDetectionReason = new BetterOptionCheckboxItem().Create(1300, BetterSettingsTab, "Sensor detection reason", false); BetterGameSettings.WhenCheating = new BetterOptionStringItem().Create(100, BetterSettingsTab, "When a player is caught cheating", ["Notify", "Kick", "Ban"], 2); BetterGameSettings.InvalidFriendCode = new BetterOptionCheckboxItem().Create(200, BetterSettingsTab, "Detected invalid friendCodes", true); BetterGameSettings.CancelInvalidSabotage = new BetterOptionCheckboxItem().Create(900, BetterSettingsTab, "Cancel invalid sabotages", true); @@ -63,6 +62,7 @@ static class GameSettingMenuPatch } TitleList.Add(new BetterOptionTitleItem().Create(BetterSettingsTab, $"Detections")); + BetterGameSettings.SensorDetectionReason = new BetterOptionCheckboxItem().Create(1300, BetterSettingsTab, "Sensor detection reason", false); BetterGameSettings.DetectedLevelAbove = new BetterOptionIntItem().Create(600, BetterSettingsTab, "Detected player levels >", [100, 5000, 5], 200, "Lv ", ""); BetterGameSettings.DetectCheatClients = new BetterOptionCheckboxItem().Create(700, BetterSettingsTab, "Detect Cheat Clients", true); BetterGameSettings.DetectInvalidRPCs = new BetterOptionCheckboxItem().Create(800, BetterSettingsTab, "Detect Invalid RPCs", true); From 15467ce8ccfd51f6b03b40f7bc39b7f92699a39c Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 15:48:12 -0500 Subject: [PATCH 09/15] fix --- Patches/GameSettingMenuPatch.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Patches/GameSettingMenuPatch.cs b/Patches/GameSettingMenuPatch.cs index 4b87661..483aa98 100644 --- a/Patches/GameSettingMenuPatch.cs +++ b/Patches/GameSettingMenuPatch.cs @@ -55,17 +55,17 @@ static class GameSettingMenuPatch BetterGameSettings.WhenCheating = new BetterOptionStringItem().Create(100, BetterSettingsTab, "When a player is caught cheating", ["Notify", "Kick", "Ban"], 2); BetterGameSettings.InvalidFriendCode = new BetterOptionCheckboxItem().Create(200, BetterSettingsTab, "Detected invalid friendCodes", true); BetterGameSettings.CancelInvalidSabotage = new BetterOptionCheckboxItem().Create(900, BetterSettingsTab, "Cancel invalid sabotages", true); - BetterGameSettings.UseBanPlayerList = new BetterOptionCheckboxItem().Create(300, BetterSettingsTab, "Use Ban Player List", true); - BetterGameSettings.UseBanNameList = new BetterOptionCheckboxItem().Create(400, BetterSettingsTab, "Use Ban Name List", true); - BetterGameSettings.UseBanWordList = new BetterOptionCheckboxItem().Create(500, BetterSettingsTab, "Use Ban Word List", true); + BetterGameSettings.UseBanPlayerList = new BetterOptionCheckboxItem().Create(300, BetterSettingsTab, "Use ban player list", true); + BetterGameSettings.UseBanNameList = new BetterOptionCheckboxItem().Create(400, BetterSettingsTab, "Use ban name list", true); + BetterGameSettings.UseBanWordList = new BetterOptionCheckboxItem().Create(500, BetterSettingsTab, "Use ban word list", true); TitleList.Add(new BetterOptionDividerItem().Create(BetterSettingsTab)); } TitleList.Add(new BetterOptionTitleItem().Create(BetterSettingsTab, $"Detections")); BetterGameSettings.SensorDetectionReason = new BetterOptionCheckboxItem().Create(1300, BetterSettingsTab, "Sensor detection reason", false); BetterGameSettings.DetectedLevelAbove = new BetterOptionIntItem().Create(600, BetterSettingsTab, "Detected player levels >", [100, 5000, 5], 200, "Lv ", ""); - BetterGameSettings.DetectCheatClients = new BetterOptionCheckboxItem().Create(700, BetterSettingsTab, "Detect Cheat Clients", true); - BetterGameSettings.DetectInvalidRPCs = new BetterOptionCheckboxItem().Create(800, BetterSettingsTab, "Detect Invalid RPCs", true); + BetterGameSettings.DetectCheatClients = new BetterOptionCheckboxItem().Create(700, BetterSettingsTab, "Detect cheat clients", true); + BetterGameSettings.DetectInvalidRPCs = new BetterOptionCheckboxItem().Create(800, BetterSettingsTab, "Detect invalid RPCs", true); /* TitleList.Add(new BetterOptionDividerItem().Create(BetterSettingsTab)); @@ -78,7 +78,7 @@ static class GameSettingMenuPatch { TitleList.Add(new BetterOptionHeaderItem().Create(BetterSettingsTab, "Role Algorithm Settings")); BetterGameSettings.RoleRandomizer = new BetterOptionStringItem().Create(1100, BetterSettingsTab, "Randomizer", ["System.Random", "UnityEngine.Random"], 0); - BetterGameSettings.DesyncRoles = new BetterOptionCheckboxItem().Create(1200, BetterSettingsTab, "Desync Roles To Other Clients", true); + BetterGameSettings.DesyncRoles = new BetterOptionCheckboxItem().Create(1200, BetterSettingsTab, "Desync roles to other clients", true); } // Gameplay Settings From d948ac040a3dd57e40d93f248b608a1635299ce1 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Fri, 6 Sep 2024 15:55:16 -0500 Subject: [PATCH 10/15] oops --- Modules/BetterNotificationManager.cs | 2 +- Patches/GameSettingMenuPatch.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/BetterNotificationManager.cs b/Modules/BetterNotificationManager.cs index 9746131..1eb207d 100644 --- a/Modules/BetterNotificationManager.cs +++ b/Modules/BetterNotificationManager.cs @@ -41,7 +41,7 @@ class BetterNotificationManager if (newText != "") text = $"Player: {player?.BetterData().RealName} " + newText + $": {reason}"; - if (BetterGameSettings.SensorDetectionReason.GetBool()) + if (BetterGameSettings.CensorDetectionReason.GetBool()) { reason = string.Concat('*').Repeat(reason.Length); } diff --git a/Patches/GameSettingMenuPatch.cs b/Patches/GameSettingMenuPatch.cs index 483aa98..67b1704 100644 --- a/Patches/GameSettingMenuPatch.cs +++ b/Patches/GameSettingMenuPatch.cs @@ -19,7 +19,7 @@ class BetterGameSettings public static BetterOptionItem? RoleRandomizer; public static BetterOptionItem? DesyncRoles; public static BetterOptionItem? CancelInvalidSabotage; - public static BetterOptionItem? SensorDetectionReason; + public static BetterOptionItem? CensorDetectionReason; } class BetterGameSettingsTemp @@ -62,7 +62,7 @@ static class GameSettingMenuPatch } TitleList.Add(new BetterOptionTitleItem().Create(BetterSettingsTab, $"Detections")); - BetterGameSettings.SensorDetectionReason = new BetterOptionCheckboxItem().Create(1300, BetterSettingsTab, "Sensor detection reason", false); + BetterGameSettings.CensorDetectionReason = new BetterOptionCheckboxItem().Create(1300, BetterSettingsTab, "Censor detection reason", false); BetterGameSettings.DetectedLevelAbove = new BetterOptionIntItem().Create(600, BetterSettingsTab, "Detected player levels >", [100, 5000, 5], 200, "Lv ", ""); BetterGameSettings.DetectCheatClients = new BetterOptionCheckboxItem().Create(700, BetterSettingsTab, "Detect cheat clients", true); BetterGameSettings.DetectInvalidRPCs = new BetterOptionCheckboxItem().Create(800, BetterSettingsTab, "Detect invalid RPCs", true); From 045e12003e3e95225c7f4ec281bb6941ea413404 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Sat, 7 Sep 2024 02:46:43 -0500 Subject: [PATCH 11/15] fix --- Modules/RPC.cs | 10 +++------- Patches/PingTrackerPatch.cs | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Modules/RPC.cs b/Modules/RPC.cs index 3c2a725..9aaf736 100644 --- a/Modules/RPC.cs +++ b/Modules/RPC.cs @@ -7,8 +7,8 @@ namespace BetterAmongUs; enum CustomRPC : int { // Cheat RPC's - Sicko = 420, - AUM = 42069, + Sicko = 420, // Results in 164 + AUM = 42069, // Results in 85 AUMChat = 101, // TOHE @@ -16,8 +16,7 @@ enum CustomRPC : int RequestRetryVersionCheck = 81, //Better Among Us - BetterCheck = 150, - AddChat, + BetterCheck = 150, } [HarmonyPatch(typeof(PlayerControl), nameof(PlayerControl.HandleRpc))] @@ -176,9 +175,6 @@ internal static class RPC SyncAllNames(force: true); } break; - case (byte)CustomRPC.AddChat: - Utils.AddChatPrivate(reader.ReadString(), reader.ReadString()); - break; case (byte)CustomRPC.VersionCheck or (byte)CustomRPC.RequestRetryVersionCheck: if (player.IsHost()) { diff --git a/Patches/PingTrackerPatch.cs b/Patches/PingTrackerPatch.cs index 9d7de53..741692c 100644 --- a/Patches/PingTrackerPatch.cs +++ b/Patches/PingTrackerPatch.cs @@ -32,7 +32,7 @@ public class PingTrackerPatch sb.Append($"BetterAmongUs {Main.GetVersionText(true)}\n"); // sb.Append("By The Enhanced Network\n"); - sb.Append($"{Main.Github}\n"); + sb.Append($"{Main.Github}\n"); if (Main.BetterHost.Value && GameStates.IsHost) { From 020693da430dec58e721580c0a98fed6005d794a Mon Sep 17 00:00:00 2001 From: D1GQ Date: Sat, 7 Sep 2024 15:59:32 -0500 Subject: [PATCH 12/15] rpc update Is Verified Better User --- Modules/ExtendedPlayerInfo.cs | 1 + Modules/RPC.cs | 22 +++++++++++++++++++++- Patches/RoleManagerPatch.cs | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Modules/ExtendedPlayerInfo.cs b/Modules/ExtendedPlayerInfo.cs index df7b453..07f61aa 100644 --- a/Modules/ExtendedPlayerInfo.cs +++ b/Modules/ExtendedPlayerInfo.cs @@ -13,6 +13,7 @@ public static class PlayerControlDataExtension public string? RealName { get; set; } public Dictionary LastNameSetFor { get; set; } = []; public bool IsBetterUser { get; set; } = false; + public bool IsVerifiedBetterUser { get; set; } = false; public bool IsBetterHost { get; set; } = false; public bool IsTOHEHost { get; set; } = false; diff --git a/Modules/RPC.cs b/Modules/RPC.cs index 9aaf736..5d3ba4e 100644 --- a/Modules/RPC.cs +++ b/Modules/RPC.cs @@ -113,6 +113,7 @@ internal static class RPC MessageWriter messageWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.BetterCheck, SendOption.None, -1); messageWriter.Write(true); messageWriter.Write(flag); + messageWriter.Write(Main.modSignature); messageWriter.Write(Main.GetVersionText().Replace(" ", "")); AmongUsClient.Instance.FinishRpcImmediately(messageWriter); } @@ -162,16 +163,35 @@ internal static class RPC { var SetBetterUser = reader.ReadBoolean(); var IsBetterHost = reader.ReadBoolean(); - + var Signature = reader.ReadString(); + var Version = reader.ReadString(); + var IsVerified = Signature == Main.modSignature; if (!player.IsHost() && IsBetterHost) { BetterNotificationManager.NotifyCheat(player, $"Invalid Action RPC: {Enum.GetName((CustomRPC)callId)} called as BetterHost"); break; } + if (string.IsNullOrEmpty(Signature) || string.IsNullOrEmpty(Version)) + { + BetterNotificationManager.NotifyCheat(player, $"Invalid Action RPC: {Enum.GetName((CustomRPC)callId)} called with invalid info"); + break; + } + player.BetterData().IsBetterUser = SetBetterUser; player.BetterData().IsBetterHost = IsBetterHost; + if (IsVerified) + { + player.BetterData().IsVerifiedBetterUser = true; + } + + Logger.Log($"Received better user RPC from: {player.Data.PlayerName}:{player.Data.FriendCode}:{Utils.GetHashPuid(player)} - " + + $"BetterUser: {SetBetterUser} - " + + $"BetterHost: {IsBetterHost} - " + + $"Version: {Version} - " + + $"Verified: {IsVerified}"); + SyncAllNames(force: true); } break; diff --git a/Patches/RoleManagerPatch.cs b/Patches/RoleManagerPatch.cs index 34d0c59..10686c2 100644 --- a/Patches/RoleManagerPatch.cs +++ b/Patches/RoleManagerPatch.cs @@ -13,7 +13,7 @@ public class RoleManagerPatch static readonly Func clientCheck = (clientData) => { - return clientData?.BetterData()?.IsBetterUser != true; + return clientData?.BetterData()?.IsVerifiedBetterUser != true; }; // Better role algorithm From 2b91761eb71cbfc7fcc536e9aac867272cc03d53 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Sat, 7 Sep 2024 16:03:45 -0500 Subject: [PATCH 13/15] fix --- Modules/RPC.cs | 3 ++- main.cs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Modules/RPC.cs b/Modules/RPC.cs index 5d3ba4e..e7b50ab 100644 --- a/Modules/RPC.cs +++ b/Modules/RPC.cs @@ -190,7 +190,8 @@ internal static class RPC $"BetterUser: {SetBetterUser} - " + $"BetterHost: {IsBetterHost} - " + $"Version: {Version} - " + - $"Verified: {IsVerified}"); + $"Verified: {IsVerified} - " + + $"Signature: {Signature}"); SyncAllNames(force: true); } diff --git a/main.cs b/main.cs index b81c223..df0ad3d 100644 --- a/main.cs +++ b/main.cs @@ -53,8 +53,9 @@ public class Main : BasePlugin .Append(ReleaseDate) .Append(Github) .Append(Discord) - .Append(string.Join(",", Enum.GetNames(typeof(CustomRPC)))) - .Append(string.Join(",", GetRoleName.Values)) + .Append(string.Join(".", Enum.GetNames(typeof(CustomRPC)))) + .Append(string.Join(".", GetRoleName.Values)) + .Append(string.Join(".", GetRoleColor.Values)) .ToString(); return GetHash(versionData); From deaf46b512887f481f2fc859a2cc6944bd58dc19 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Sun, 8 Sep 2024 13:23:33 -0500 Subject: [PATCH 14/15] BAU User Verification Mark and use IsLocalPlayer --- Modules/AntiCheat.cs | 10 +++++----- Modules/BetterHostManager.cs | 4 ++-- Modules/ExtendedPlayerControl.cs | 19 +++++++++---------- Modules/RPC.cs | 8 ++++---- Patches/ChatPatch.cs | 10 +++++----- Patches/CommandsPatch.cs | 2 +- Patches/MeetingHudPatch.cs | 2 +- Patches/PingTrackerPatch.cs | 2 +- Patches/PlayerControlPatch.cs | 16 ++++++++-------- Patches/RoleManagerPatch.cs | 4 ++-- 10 files changed, 38 insertions(+), 39 deletions(-) diff --git a/Modules/AntiCheat.cs b/Modules/AntiCheat.cs index e8d8153..1fccf3c 100644 --- a/Modules/AntiCheat.cs +++ b/Modules/AntiCheat.cs @@ -100,7 +100,7 @@ class AntiCheat { MessageReader reader = MessageReader.Get(Oldreader); - if (player == PlayerControl.LocalPlayer || PlayerControl.LocalPlayer == null || player == null || !IsEnabled) return; + if (player.IsLocalPlayer() || player == null || !IsEnabled) return; if (callId is unchecked((byte)CustomRPC.Sicko) && Main.AntiCheat.Value && BetterGameSettings.DetectCheatClients.GetBool()) { @@ -182,7 +182,7 @@ class AntiCheat { MessageReader reader = MessageReader.Get(Oldreader); - if (PlayerControl.LocalPlayer == null || player == null || player == PlayerControl.LocalPlayer || player.BetterData().IsBetterHost || reader == null || !IsEnabled || !Main.AntiCheat.Value + if (player == null || player.IsLocalPlayer() || player.BetterData().IsBetterHost || reader == null || !IsEnabled || !Main.AntiCheat.Value || (GameStates.IsBetterHostLobby && !GameStates.IsHost) || !BetterGameSettings.DetectInvalidRPCs.GetBool()) return; RoleTypes? Role = player?.Data?.RoleType; @@ -352,7 +352,7 @@ class AntiCheat } } - if (!GameStates.IsHost || PlayerControl.LocalPlayer == null || player == null || player == PlayerControl.LocalPlayer || player.BetterData().IsBetterHost || !IsEnabled || !Main.AntiCheat.Value + if (!GameStates.IsHost || PlayerControl.LocalPlayer == null || player == null || player.IsLocalPlayer() || player.BetterData().IsBetterHost || !IsEnabled || !Main.AntiCheat.Value || (GameStates.IsBetterHostLobby && !GameStates.IsHost) || !BetterGameSettings.DetectInvalidRPCs.GetBool()) return true; if (!BetterGameSettings.CancelInvalidSabotage.GetBool()) @@ -478,7 +478,7 @@ class AntiCheat { MessageReader reader = MessageReader.Get(Oldreader); - if (PlayerControl.LocalPlayer == null || player == null || player == PlayerControl.LocalPlayer || player.BetterData().IsBetterHost || reader == null) return true; + if (PlayerControl.LocalPlayer == null || player == null || player.IsLocalPlayer() || player.BetterData().IsBetterHost || reader == null) return true; // Prevent ban exploit if (callId is (byte)RpcCalls.MurderPlayer) @@ -489,7 +489,7 @@ class AntiCheat if (target != null) { - if (target == PlayerControl.LocalPlayer) + if (target.IsLocalPlayer()) { target.BetterData().AntiCheatInfo.TimesAttemptedKilled++; diff --git a/Modules/BetterHostManager.cs b/Modules/BetterHostManager.cs index d34d4bd..d34c8fc 100644 --- a/Modules/BetterHostManager.cs +++ b/Modules/BetterHostManager.cs @@ -206,7 +206,7 @@ class BetterHostManager foreach (PlayerControl target in Main.AllPlayerControls) { - if (target == null || target == PlayerControl.LocalPlayer) continue; + if (target == null || target.IsLocalPlayer()) continue; string NewName = player.CurrentOutfit.PlayerName; @@ -224,7 +224,7 @@ class BetterHostManager if (player.IsDev()) sbTopTag.Append("(Dev)+++"); - if (player == PlayerControl.LocalPlayer) + if (player.IsLocalPlayer()) sbTopTag.Append($"Better Host+++"); else if (player.BetterData().IsBetterUser) sbTopTag.Append("Better User+++"); diff --git a/Modules/ExtendedPlayerControl.cs b/Modules/ExtendedPlayerControl.cs index f6c5888..25c7015 100644 --- a/Modules/ExtendedPlayerControl.cs +++ b/Modules/ExtendedPlayerControl.cs @@ -68,7 +68,6 @@ static class ExtendedPlayerControl textObj.text = text; } } - // Reset players over head text public static void ResetAllPlayerTextInfo(this PlayerControl player) { @@ -99,7 +98,6 @@ static class ExtendedPlayerControl } return true; } - // Kick player public static void Kick(this PlayerControl player, bool ban = false, string setReasonInfo = "", bool AntiCheatBan = false) { @@ -127,7 +125,7 @@ static class ExtendedPlayerControl player.BetterData().AntiCheatInfo.BannedByAntiCheat = AntiCheatBan; } - + // Set color outline on player public static void SetOutline(this PlayerControl player, bool active, Color? color = null) { player.cosmetics.currentBodySprite.BodySprite.material.SetFloat("_Outline", (float)(active ? 1 : 0)); @@ -146,6 +144,7 @@ static class ExtendedPlayerControl } } } + // Set color outline on player public static void SetOutlineByHex(this PlayerControl player, bool active, string hexColor = "") { Color color = Utils.HexToColor32(hexColor); @@ -165,26 +164,27 @@ static class ExtendedPlayerControl } } } - // RPCs + // Set name for Target public static void RpcSetNamePrivate(this PlayerControl player, string name, PlayerControl target) { if (player == null || target == null) return; RPC.SetNamePrivate(player, name, target); } - + // Exile player public static void RpcExile(this PlayerControl player) { if (player == null) return; RPC.ExileAsync(player); } - + // Check if player is selecting room to spawn in, for Airship public static bool IsInRoomSelect(this PlayerControl player) { if (player == null) return false; return GameStates.AirshipIsActive && Vector2.Distance(player.GetTruePosition(), new(-25, 40)) < 5f; } - + // Check if player controller is self client + public static bool IsLocalPlayer(this PlayerControl player) => player != null && PlayerControl.LocalPlayer != null && player == PlayerControl.LocalPlayer; // Get vent Id that the player is in. public static int GetPlayerVentId(this PlayerControl player) { @@ -196,9 +196,8 @@ static class ExtendedPlayerControl return ventilationSystem.PlayersInsideVents.TryGetValue(player.PlayerId, out var playerIdVentId) ? playerIdVentId : -1; } - + // Get true position public static Vector2 GetCustomPosition(this PlayerControl player) => new(player.transform.position.x, player.transform.position.y); - // Check if player is a dev public static bool IsDev(this PlayerControl player) => player != null && Main.DevUser.Contains($"{Utils.GetHashPuid(player)}+{player.Data.FriendCode}"); // Check if player is alive @@ -254,7 +253,7 @@ static class ExtendedPlayerControl // Check if player is a imposter teammate public static bool IsImpostorTeammate(this PlayerControl player) => player != null && PlayerControl.LocalPlayer != null && - ((player == PlayerControl.LocalPlayer && PlayerControl.LocalPlayer.IsImpostorTeam()) || + ((player.IsLocalPlayer() && PlayerControl.LocalPlayer.IsImpostorTeam()) || (PlayerControl.LocalPlayer.IsImpostorTeam() && player.IsImpostorTeam())); // Check if player is in the Anti-Cheat list public static bool IsCheater(this PlayerControl player) => diff --git a/Modules/RPC.cs b/Modules/RPC.cs index e7b50ab..aca33d2 100644 --- a/Modules/RPC.cs +++ b/Modules/RPC.cs @@ -98,7 +98,7 @@ internal static class RPC return; } - foreach (var player in Main.AllPlayerControls.Where(pc => pc != PlayerControl.LocalPlayer)) + foreach (var player in Main.AllPlayerControls.Where(pc => !pc.IsLocalPlayer())) { var optionsByteArray = GameOptionsManager.Instance.gameOptionsFactory.ToBytes(GameOptionsManager.Instance.CurrentGameOptions, false); MessageWriter messageWriter = AmongUsClient.Instance.StartRpcImmediately(player.NetId, (byte)RpcCalls.SyncSettings, SendOption.None, player.GetClientId()); @@ -151,7 +151,7 @@ internal static class RPC public static void HandleCustomRPC(PlayerControl player, byte callId, MessageReader oldReader) { - if (PlayerControl.LocalPlayer == null || player == null || player == PlayerControl.LocalPlayer || player.Data == null) return; + if (player == null || player.IsLocalPlayer() || player.Data == null) return; if (!Enum.IsDefined(typeof(CustomRPC), (int)unchecked(callId))) return; @@ -209,7 +209,7 @@ internal static class RPC public static void HandleRPC(PlayerControl player, byte callId, MessageReader oldReader) { - if (PlayerControl.LocalPlayer == null || player == null || player == PlayerControl.LocalPlayer || player.Data == null) return; + if (player == null || player.IsLocalPlayer() || player.Data == null) return; MessageReader reader = MessageReader.Get(oldReader); @@ -223,7 +223,7 @@ internal static class RPC case (byte)RpcCalls.SendChat: var text = reader.ReadString(); - if (player.IsHost() && player != PlayerControl.LocalPlayer) + if (player.IsHost() && !player.IsLocalPlayer()) { if (text.ToLower() == "/allow") { diff --git a/Patches/ChatPatch.cs b/Patches/ChatPatch.cs index d5669c7..e3adc9c 100644 --- a/Patches/ChatPatch.cs +++ b/Patches/ChatPatch.cs @@ -131,7 +131,7 @@ class ChatPatch pooledBubble.transform.SetParent(__instance.scroller.Inner); pooledBubble.transform.localScale = Vector3.one; - bool flag = sourcePlayer == PlayerControl.LocalPlayer; + bool flag = sourcePlayer.IsLocalPlayer(); if (flag) { pooledBubble.SetRight(); @@ -176,10 +176,10 @@ class ChatPatch if (sourcePlayer.IsDev()) sbTag.Append("Dev+++"); - if (((sourcePlayer == PlayerControl.LocalPlayer && GameStates.IsHost && Main.BetterHost.Value) - || (sourcePlayer != PlayerControl.LocalPlayer && sourcePlayer.BetterData().IsBetterHost && sourcePlayer.IsHost()))) + if (((sourcePlayer.IsLocalPlayer() && GameStates.IsHost && Main.BetterHost.Value) + || (!sourcePlayer.IsLocalPlayer() && sourcePlayer.BetterData().IsBetterHost && sourcePlayer.IsHost()))) sbTag.Append("Better Host+++"); - else if ((sourcePlayer == PlayerControl.LocalPlayer || sourcePlayer.BetterData().IsBetterUser)) + else if ((sourcePlayer.IsLocalPlayer() || sourcePlayer.BetterData().IsBetterUser)) sbTag.Append("Better User+++"); if (!string.IsNullOrEmpty(hashPuid) && AntiCheat.SickoData.ContainsKey(hashPuid) || !string.IsNullOrEmpty(friendCode) && AntiCheat.SickoData.ContainsValue(friendCode)) @@ -192,7 +192,7 @@ class ChatPatch if (!sourcePlayer.IsImpostorTeammate()) { - if (PlayerControl.LocalPlayer.IsAlive() && sourcePlayer != PlayerControl.LocalPlayer) + if (PlayerControl.LocalPlayer.IsAlive() && !sourcePlayer.IsLocalPlayer()) { Role = ""; } diff --git a/Patches/CommandsPatch.cs b/Patches/CommandsPatch.cs index ec75c48..3334463 100644 --- a/Patches/CommandsPatch.cs +++ b/Patches/CommandsPatch.cs @@ -347,7 +347,7 @@ class CommandsPatch else if (HandlePlayerArgument(command, subArgs) == true) { var player = cmdTarget; - if (player == PlayerControl.LocalPlayer) + if (player.IsLocalPlayer()) { Utils.AddChatPrivate($"{error}\nUnable to use /SetRole for self, use /Role!"); return; diff --git a/Patches/MeetingHudPatch.cs b/Patches/MeetingHudPatch.cs index b3d12aa..71ef7dc 100644 --- a/Patches/MeetingHudPatch.cs +++ b/Patches/MeetingHudPatch.cs @@ -153,7 +153,7 @@ class MeetingHudUpdatePatch } if (!target.IsImpostorTeammate()) { - if (PlayerControl.LocalPlayer.IsAlive() && target != PlayerControl.LocalPlayer) + if (PlayerControl.LocalPlayer.IsAlive() && !target.IsLocalPlayer()) { if (!DebugMenu.RevealRoles) { diff --git a/Patches/PingTrackerPatch.cs b/Patches/PingTrackerPatch.cs index 741692c..4a64ef4 100644 --- a/Patches/PingTrackerPatch.cs +++ b/Patches/PingTrackerPatch.cs @@ -32,7 +32,7 @@ public class PingTrackerPatch sb.Append($"BetterAmongUs {Main.GetVersionText(true)}\n"); // sb.Append("By The Enhanced Network\n"); - sb.Append($"{Main.Github}\n"); + sb.Append($"{Main.Github}\n"); if (Main.BetterHost.Value && GameStates.IsHost) { diff --git a/Patches/PlayerControlPatch.cs b/Patches/PlayerControlPatch.cs index b9b116a..53950ef 100644 --- a/Patches/PlayerControlPatch.cs +++ b/Patches/PlayerControlPatch.cs @@ -172,11 +172,11 @@ class PlayerControlPatch if (player.IsDev() && !GameStates.IsInGamePlay) sbTag.Append("(Dev)+++"); - if (((player == PlayerControl.LocalPlayer && GameStates.IsHost && Main.BetterHost.Value) - || (player != PlayerControl.LocalPlayer && player.BetterData().IsBetterHost && player.IsHost())) && !GameStates.IsInGamePlay) - sbTag.Append("Better Host+++"); - else if ((player == PlayerControl.LocalPlayer || player.BetterData().IsBetterUser) && !GameStates.IsInGamePlay) - sbTag.Append("Better User+++"); + if (((player.IsLocalPlayer() && GameStates.IsHost && Main.BetterHost.Value) + || (!player.IsLocalPlayer() && player.BetterData().IsBetterHost && player.IsHost())) && !GameStates.IsInGamePlay) + sbTag.AppendFormat("{0}Better Host+++", player.BetterData().IsVerifiedBetterUser || player.IsLocalPlayer() ? "✓ " : ""); + else if ((player.IsLocalPlayer() || player.BetterData().IsBetterUser) && !GameStates.IsInGamePlay) + sbTag.AppendFormat("{0}Better User+++", player.BetterData().IsVerifiedBetterUser || player.IsLocalPlayer() ? "✓ " : ""); sbTag.Append($"ID: {player.PlayerId}+++"); sbTagTop.Append($"{platform}+++"); @@ -187,7 +187,7 @@ class PlayerControlPatch } else if ((GameStates.IsInGame || GameStates.IsFreePlay) && !GameStates.IsHideNSeek) { - if (player.IsImpostorTeammate() || player == PlayerControl.LocalPlayer || !PlayerControl.LocalPlayer.IsAlive() || DebugMenu.RevealRoles) + if (player.IsImpostorTeammate() || player.IsLocalPlayer() || !PlayerControl.LocalPlayer.IsAlive() || DebugMenu.RevealRoles) { string Role = $"{player.GetRoleName()}"; if (!player.IsImpostorTeam() && player.myTasks.Count > 0) @@ -203,7 +203,7 @@ class PlayerControlPatch } else if (GameStates.IsInGame || GameStates.IsFreePlay) { - if (player == PlayerControl.LocalPlayer) + if (player.IsLocalPlayer()) { if (player.IsImpostorTeam()) { @@ -216,7 +216,7 @@ class PlayerControlPatch } } - if (player.IsImpostorTeammate() && player != PlayerControl.LocalPlayer) + if (player.IsImpostorTeammate() && !player.IsLocalPlayer()) { NewName = $"{player.Data.PlayerName}"; } diff --git a/Patches/RoleManagerPatch.cs b/Patches/RoleManagerPatch.cs index 10686c2..01f8183 100644 --- a/Patches/RoleManagerPatch.cs +++ b/Patches/RoleManagerPatch.cs @@ -92,7 +92,7 @@ public class RoleManagerPatch // Override player role assignment if (SetPlayerRole.Keys.Any()) { - foreach (var kvp in SetPlayerRole.Where(kvp => kvp.Key != null).OrderBy(kvp => kvp.Key == PlayerControl.LocalPlayer ? 0 : 1)) + foreach (var kvp in SetPlayerRole.Where(kvp => kvp.Key != null).OrderBy(kvp => kvp.Key.IsLocalPlayer() ? 0 : 1)) { var player = kvp.Key; var role = kvp.Value; @@ -311,7 +311,7 @@ public class RoleManagerPatch // Override player role assignment if (SetPlayerRole.Keys.Any()) { - foreach (var kvp in SetPlayerRole.Where(kvp => kvp.Key != null).OrderBy(kvp => kvp.Key == PlayerControl.LocalPlayer ? 0 : 1)) + foreach (var kvp in SetPlayerRole.Where(kvp => kvp.Key != null).OrderBy(kvp => kvp.Key.IsLocalPlayer() ? 0 : 1)) { var player = kvp.Key; var role = kvp.Value; From abeecae3df8eb8bfca5a799c37689476aa631cce Mon Sep 17 00:00:00 2001 From: D1GQ Date: Sun, 8 Sep 2024 13:28:01 -0500 Subject: [PATCH 15/15] v1.1.2 Hotfix 1 --- main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cs b/main.cs index df0ad3d..7cd264b 100644 --- a/main.cs +++ b/main.cs @@ -28,7 +28,7 @@ public class Main : BasePlugin public const bool IsHotFix = true; public const string PluginGuid = "com.d1gq.betteramongus"; public const string PluginVersion = "1.1.2"; - public const string ReleaseDate = "08.31.2024"; // mm/dd/yyyy + public const string ReleaseDate = "09.8.2024"; // mm/dd/yyyy public const string Github = "https://github.com/D1GQ/BetterAmongUs-Public"; public const string Discord = "https://discord.gg/vjYrXpzNAn";