diff --git a/src/Commands/AllCommandsCommand.cs b/src/Commands/AllCommandsCommand.cs index ee366e3..4ea5902 100644 --- a/src/Commands/AllCommandsCommand.cs +++ b/src/Commands/AllCommandsCommand.cs @@ -1,5 +1,4 @@ using BetterAmongUs.Attributes; -using BetterAmongUs.Enums; using BetterAmongUs.Patches.Gameplay.UI.Chat; namespace BetterAmongUs.Commands; @@ -12,7 +11,7 @@ internal sealed class AllCommandsCommand : BaseCommand internal override void Run() { - BaseCommand[] allNormalCommands = [.. allCommands.Where(cmd => cmd.Type == CommandType.Normal && cmd.ShowCommand())]; + BaseCommand[] allNormalCommands = [.. allCommands.Where(cmd => cmd.IsEnabled())]; string list; var open = "┌──────── "; var mid = "├ "; diff --git a/src/Commands/BaseCommand.cs b/src/Commands/BaseCommand.cs index c856aee..aa9ff6f 100644 --- a/src/Commands/BaseCommand.cs +++ b/src/Commands/BaseCommand.cs @@ -1,7 +1,7 @@ using BetterAmongUs.Attributes; using BetterAmongUs.Commands.Arguments; -using BetterAmongUs.Enums; using BetterAmongUs.Helpers; +using BetterAmongUs.Modules.Support; namespace BetterAmongUs.Commands; @@ -15,11 +15,6 @@ internal abstract class BaseCommand /// internal static readonly BaseCommand[] allCommands = [.. RegisterCommandAttribute.Instances]; - /// - /// Gets the type of the command. - /// - internal virtual CommandType Type => CommandType.Normal; - /// /// Gets all names for this command (including short names). /// @@ -107,4 +102,13 @@ internal abstract class BaseCommand if (!onlyGetStr) Utils.AddChatPrivate($"{er}\n{error}"); return $"{er}\n{error}"; } + + /// + /// Determines whether this command is enabled. + /// + /// True if the command is enabled; otherwise, false. + internal bool IsEnabled() + { + return ShowCommand() && !BAUModdedSupportFlags.HasFlag(BAUModdedSupportFlags.Disable_Command + Name); + } } \ No newline at end of file diff --git a/src/Enums/CommandType.cs b/src/Enums/CommandType.cs deleted file mode 100644 index 02da728..0000000 --- a/src/Enums/CommandType.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace BetterAmongUs.Enums; - -/// -/// Defines the types of commands available in the BetterAmongUs system. -/// -internal enum CommandType -{ - /// - /// Standard command type. - /// - Normal, -} \ No newline at end of file diff --git a/src/Interfaces/IReplayEvent.cs b/src/Interfaces/IReplayEvent.cs index 3861795..460f554 100644 --- a/src/Interfaces/IReplayEvent.cs +++ b/src/Interfaces/IReplayEvent.cs @@ -1,6 +1,4 @@ -using System.Text.Json.Serialization; - -namespace BetterAmongUs.Interfaces; +namespace BetterAmongUs.Interfaces; /// /// Interface for replay events in BetterAmongUs. @@ -10,7 +8,6 @@ public interface IReplayEvent /// /// Gets the unique identifier for the replay event. /// - [JsonIgnore] string Id { get; } /// diff --git a/src/Managers/BAUUpdateManager.cs b/src/Managers/BAUUpdateManager.cs index 6f21da7..c63a75e 100644 --- a/src/Managers/BAUUpdateManager.cs +++ b/src/Managers/BAUUpdateManager.cs @@ -15,7 +15,9 @@ namespace BetterAmongUs.Managers; /// internal sealed class BAUUpdateManager : MonoBehaviour { - private bool AmUpdateing; + private bool _updateing; + private GameObject? mainMenu; + private GameObject? ambience; /// /// Gets the singleton instance of the UpdateManager. @@ -68,7 +70,7 @@ internal sealed class BAUUpdateManager : MonoBehaviour button.OnClick = new(); button.OnClick.AddListener(() => { - if (AmUpdateing || WaitForRestart) + if (_updateing || WaitForRestart) return; this.StartCoroutine(CoPressDownload(doNotPress)); @@ -87,9 +89,6 @@ internal sealed class BAUUpdateManager : MonoBehaviour } } - /// - /// Unity Start method called when the component is initialized. - /// private void Start() { var oldDll = Assembly.GetExecutingAssembly().Location + ".old"; @@ -99,9 +98,6 @@ internal sealed class BAUUpdateManager : MonoBehaviour } } - private GameObject? mainMenu; - private GameObject? ambience; - /// /// Coroutine that handles the download process when the update button is pressed. /// @@ -110,7 +106,7 @@ internal sealed class BAUUpdateManager : MonoBehaviour [HideFromIl2Cpp] private IEnumerator CoPressDownload(DoNotPressButton button) { - AmUpdateing = true; + _updateing = true; button.pressedSprite.enabled = true; button.unpressedSprite.enabled = false; @@ -145,6 +141,6 @@ internal sealed class BAUUpdateManager : MonoBehaviour Utils.ShowPopUp("Download link missing!"); } - AmUpdateing = false; + _updateing = false; } } \ No newline at end of file diff --git a/src/Managers/CustomLoadingBarManager.cs b/src/Managers/CustomLoadingBarManager.cs index 8204106..4d91acc 100644 --- a/src/Managers/CustomLoadingBarManager.cs +++ b/src/Managers/CustomLoadingBarManager.cs @@ -8,7 +8,7 @@ internal static class CustomLoadingBarManager /// /// Gets the current loading bar instance. /// - internal static AmongUsLoadingBar? LoadingBar => LoadingBarManager.Instance?.loadingBar; + internal static AmongUsLoadingBar? LoadingBar => LoadingBarManager.InstanceExists ? LoadingBarManager.Instance.loadingBar : null; /// /// Toggles the loading bar visibility. diff --git a/src/Patches/Gameplay/UI/Chat/ChatCommandsPatch.cs b/src/Patches/Gameplay/UI/Chat/ChatCommandsPatch.cs index ec4adf8..26ad1f2 100644 --- a/src/Patches/Gameplay/UI/Chat/ChatCommandsPatch.cs +++ b/src/Patches/Gameplay/UI/Chat/ChatCommandsPatch.cs @@ -1,6 +1,5 @@ using BetterAmongUs.Commands; using BetterAmongUs.Data.Config; -using BetterAmongUs.Enums; using BetterAmongUs.Helpers; using BetterAmongUs.Modules; using BetterAmongUs.Modules.Support; @@ -270,7 +269,7 @@ internal static class ChatCommandsPatch { // First try exact match var directNormalMatch = BaseCommand.allCommands - .FirstOrDefault(c => FilterCommand(c, CommandType.Normal) && + .FirstOrDefault(c => c.IsEnabled() && c.Names.Any(name => string.Equals(name, typedCommand, StringComparison.OrdinalIgnoreCase))); if (directNormalMatch != null) return directNormalMatch; @@ -278,17 +277,11 @@ internal static class ChatCommandsPatch // Then try partial match var closestNormalCommand = BaseCommand.allCommands .OrderBy(c => c.Name) - .FirstOrDefault(c => FilterCommand(c, CommandType.Normal) && + .FirstOrDefault(c => c.IsEnabled() && c.Names.Any(name => name.StartsWith(typedCommand, StringComparison.OrdinalIgnoreCase))); if (closestNormalCommand != null) return closestNormalCommand; return null; } - - private static bool FilterCommand(BaseCommand command, CommandType commandType) - { - // Check if command is enabled and not disabled by other mods - return command.Type == commandType && command.ShowCommand() && !BAUModdedSupportFlags.HasFlag(BAUModdedSupportFlags.Disable_Command + command.Name); - } } \ No newline at end of file diff --git a/src/Structs/UserInfo.cs b/src/Structs/UserInfo.cs index 263e568..6f4f34e 100644 --- a/src/Structs/UserInfo.cs +++ b/src/Structs/UserInfo.cs @@ -40,7 +40,7 @@ internal sealed class UserInfo(string playerName, string hashPuid, string friend return (true, Reason); } - return (false, ""); + return (false, string.Empty); } ///