Lib39/common/src/main/java/top/r3944realms/lib39/util/IClientOnly.java
2026-03-14 22:21:18 +08:00

67 lines
1.5 KiB
Java

package top.r3944realms.lib39.util;
import top.r3944realms.lib39.Lib39;
import java.util.function.Supplier;
/**
* The interface Client only.
*/
public interface IClientOnly {
/**
* Check.
*
* @param runnable the runnable
*/
static void check(Runnable runnable) {
if (Lib39.isClientEnvironment()) {
runnable.run();
return;
}
throw new RuntimeException("This method should be called in ClientEnvironment");
}
/**
* Check.
*
* @param runnable the runnable
* @param fallback the fallback
*/
static void check(Runnable runnable, Runnable fallback) {
if (Lib39.isClientEnvironment()) {
runnable.run();
return;
}
fallback.run();
}
/**
* Check t.
*
* @param <T> the type parameter
* @param supplier the supplier
* @return the t
*/
static <T> T check(Supplier<T> supplier) {
if (Lib39.isClientEnvironment()) {
return supplier.get();
}
throw new RuntimeException("This method should be called in ClientEnvironment");
}
/**
* Check t.
*
* @param <T> the type parameter
* @param supplier the supplier
* @param fallback the fallback
* @return the t
*/
static <T> T check(Supplier<T> supplier, Supplier<T> fallback) {
if (Lib39.isClientEnvironment()) {
return supplier.get();
}
return fallback.get();
}
}