diff --git a/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeCommand.java b/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeCommand.java index bc90ae01..f88fb082 100644 --- a/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeCommand.java +++ b/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeCommand.java @@ -14,6 +14,10 @@ public class SafeCommand extends FunctionalCommand { private final Command command; + static { + SafeMode.ensureInitialized(); + } + /** * Creates a new SafeCommand * @param command The command to run diff --git a/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeExecuteBlockingCommand.java b/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeExecuteBlockingCommand.java index 48e72fb9..1a4eb902 100644 --- a/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeExecuteBlockingCommand.java +++ b/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeExecuteBlockingCommand.java @@ -15,6 +15,10 @@ public class SafeExecuteBlockingCommand extends FunctionalCommand { private final Command command; + static { + SafeMode.ensureInitialized(); + } + public SafeExecuteBlockingCommand(Command command) { super( () -> command.initialize(), diff --git a/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeMode.java b/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeMode.java index 71e678b0..83954135 100644 --- a/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeMode.java +++ b/src/main/java/org/carlmontrobotics/lib199/safeMode/SafeMode.java @@ -46,6 +46,12 @@ public class SafeMode { Lib199Subsystem.registerPeriodic(SafeMode::updateCallbacks); } + /** + * Ensures that the static block of this class is called, setting up safe-mode. + * It is unlikely that you will need to call this function. + */ + public static void ensureInitialized() {} + /** * Enables safe-mode */ diff --git a/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeCommand.java b/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeCommand.java index ce7b80a5..433dca8e 100644 --- a/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeCommand.java +++ b/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeCommand.java @@ -14,6 +14,10 @@ public class UnsafeCommand extends FunctionalCommand { private final Command command; + static { + SafeMode.ensureInitialized(); + } + public UnsafeCommand(Command command) { super( () -> { if(!SafeMode.isEnabled()) command.initialize(); }, diff --git a/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeExecuteBlockingCommand.java b/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeExecuteBlockingCommand.java index c9072898..181f735a 100644 --- a/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeExecuteBlockingCommand.java +++ b/src/main/java/org/carlmontrobotics/lib199/safeMode/UnsafeExecuteBlockingCommand.java @@ -15,6 +15,10 @@ public class UnsafeExecuteBlockingCommand extends FunctionalCommand { private final Command command; + static { + SafeMode.ensureInitialized(); + } + public UnsafeExecuteBlockingCommand(Command command) { super( command::initialize,