Merge pull request #107 from At0mBomba/level-kick-min-players

Add minimum player count setting for KickLevelBelow
This commit is contained in:
D1GQ authored and GitHub committed 2026-08-21 16:14:52 -05:00
commit e29bf0608b
4 files changed
+14 -2

No files matched your search

@@ -1,6 +1,6 @@
using BetterAmongUs.Utilities;
using BetterAmongUs.Modules;
using BetterAmongUs.Modules;
using BetterAmongUs.Patches.Gameplay.UI.Settings;
using BetterAmongUs.Utilities;
using HarmonyLib;
namespace BetterAmongUs.Patches.Gameplay.Anticheat;
@@ -20,6 +20,10 @@ internal static class CheckPlayerLevelPatch
// Kick players below minimum level
if (!__instance.IsLocalPlayer() && BetterGameSettings.KickLevel.GetBool() && __instance.Data.PlayerLevel < BetterGameSettings.KickLevelBelow.GetInt())
{
var minPlayers = BetterGameSettings.KickLevelBelowMinimumPlayers.GetInt();
if (minPlayers > 1 && minPlayers > BAUPlugin.AllPlayerControls.Count)
return;
__instance.TryKick(setReasonInfo: $" is level {__instance.Data.PlayerLevel}, level must be equal or above {BetterGameSettings.KickLevelBelow.GetInt()} to join");
}
}
@@ -23,6 +23,7 @@ internal sealed class BetterGameSettings
internal static OptionIntItem? DetectedLevelAbove;
internal static OptionCheckboxItem? KickLevel;
internal static OptionIntItem? KickLevelBelow;
internal static OptionIntItem? KickLevelBelowMinimumPlayers;
internal static OptionCheckboxItem? DetectCheatClients;
internal static OptionCheckboxItem? DetectInvalidRpcs;
internal static OptionCheckboxItem? RpcRateLimiting;
@@ -88,6 +89,7 @@ internal static class GameSettingsPatch
BetterGameSettings.DetectedLevelAbove = OptionIntItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_DetectedLevelAbove, (100, 10000, 5), 500, ("Lv ", ""), BetterGameSettings.DetectedLevel);
BetterGameSettings.KickLevel = OptionCheckboxItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_KickLevel, false);
BetterGameSettings.KickLevelBelow = OptionIntItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_KickLevelBelow, (0, 10000, 1), 0, ("Lv ", ""), BetterGameSettings.KickLevel);
BetterGameSettings.KickLevelBelowMinimumPlayers = OptionIntItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_KickLevelBelowMinimumPlayers, (1, 15, 1), 9, parent: BetterGameSettings.KickLevelBelow);
BetterGameSettings.DetectCheatClients = OptionCheckboxItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_DetectCheatClients, true);
BetterGameSettings.DetectInvalidRpcs = OptionCheckboxItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_DetectInvalidRpcs, true);
BetterGameSettings.RpcRateLimiting = OptionCheckboxItem.Create(BetterSettingsTab, TranslationStrings.BetterSetting_Setting_RpcRateLimiting, true);
+1
View File
@@ -97,6 +97,7 @@
"BetterSetting.Setting.DetectedLevelAbove": "Detected player level above",
"BetterSetting.Setting.KickLevel": "Kick player levels",
"BetterSetting.Setting.KickLevelBelow": "Kick player level below",
"BetterSetting.Setting.KickLevelBelowMinimumPlayers": "Only when player count at least",
"BetterSetting.Setting.DetectCheatClients": "Detect cheat clients",
"BetterSetting.Setting.DetectInvalidRpcs": "Detect invalid Rpcs",
"BetterSetting.Setting.RpcRateLimiting": "Rpc Rate Limiting",
@@ -478,6 +478,11 @@ public static class TranslationStrings
/// </summary>
public static readonly TranslationString BetterSetting_Setting_KickLevelBelow = new("BetterSetting.Setting.KickLevelBelow");
/// <summary>
/// Base Translation: Only when player count at least
/// </summary>
public static readonly TranslationString BetterSetting_Setting_KickLevelBelowMinimumPlayers = new("BetterSetting.Setting.KickLevelBelowMinimumPlayers");
/// <summary>
/// Base Translation: Detect cheat clients
/// </summary>