flan/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/playerability/PlayerAbilityEvents.java

29 lines
1.2 KiB
Java

package io.github.flemmli97.flan.fabric.platform.integration.playerability;
import io.github.flemmli97.flan.api.data.IPermissionContainer;
import io.github.flemmli97.flan.api.permission.PermissionRegistry;
import io.github.flemmli97.flan.claim.ClaimStorage;
import io.github.ladysnake.pal.AbilitySource;
import io.github.ladysnake.pal.PlayerAbility;
import io.github.ladysnake.pal.PlayerAbilityEnableCallback;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
public class PlayerAbilityEvents {
public static void register() {
PlayerAbilityEnableCallback.EVENT.register(PlayerAbilityEvents::checkAbility);
}
public static boolean checkAbility(Player player, PlayerAbility ability, AbilitySource abilitySource) {
if (player.level().isClientSide)
return true;
BlockPos pos = player.blockPosition();
ClaimStorage storage = ClaimStorage.get((ServerLevel) player.level());
IPermissionContainer claim = storage.getForPermissionCheck(pos);
return claim.canInteract((ServerPlayer) player, PermissionRegistry.FLIGHT, pos, true);
}
}