Este repositório foi arquivado em 2025-08-14. Você pode visualizar arquivos e cloná-lo, mas não pode fazer alterações, tais como push, abrir issues, pull requests ou comentários.
AutoWhitelist/src/main/java/com/awakenedredstone/autowhitelist/commands/api/Permission.java
2023-02-20 23:02:56 -03:00

29 linhas
1,4 KiB
Java

package com.awakenedredstone.autowhitelist.commands.api;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.server.command.ServerCommandSource;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
import java.util.function.Predicate;
public class Permission {
private static Predicate<ServerCommandSource> getSafe(Predicate<ServerCommandSource> predicate, boolean defaultValue) {
return FabricLoader.getInstance().isModLoaded("fabric-permissions-api-v0") ? predicate : v -> defaultValue;
}
private static Predicate<ServerCommandSource> getSafe(Predicate<ServerCommandSource> predicate, int defaultRequiredLevel) {
return FabricLoader.getInstance().isModLoaded("fabric-permissions-api-v0") ? predicate : source -> source.hasPermissionLevel(defaultRequiredLevel);
}
public static @NotNull Predicate<ServerCommandSource> require(@NotNull String permission, boolean defaultValue) {
Objects.requireNonNull(permission, "permission");
return getSafe(source -> SafePermissionApi.check(source, permission, defaultValue), defaultValue);
}
public static @NotNull Predicate<ServerCommandSource> require(@NotNull String permission, int defaultRequiredLevel) {
Objects.requireNonNull(permission, "permission");
return getSafe(source -> SafePermissionApi.check(source, permission, defaultRequiredLevel), defaultRequiredLevel);
}
}