diff --git a/src/main/java/com/flemmli97/flan/claim/PermHelper.java b/src/main/java/com/flemmli97/flan/claim/PermHelper.java
new file mode 100644
index 0000000..3011181
--- /dev/null
+++ b/src/main/java/com/flemmli97/flan/claim/PermHelper.java
@@ -0,0 +1,48 @@
+package com.flemmli97.flan.claim;
+
+import com.flemmli97.flan.config.ConfigHandler;
+import net.minecraft.server.network.ServerPlayerEntity;
+import net.minecraft.text.LiteralText;
+import net.minecraft.text.Style;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+import net.minecraft.util.math.BlockPos;
+
+import java.util.Optional;
+import java.util.function.Consumer;
+
+public class PermHelper {
+
+    public static boolean check(ServerPlayerEntity player, BlockPos pos, Claim claim, EnumPermission perm, Consumer<Optional<Boolean>> cons){
+        if(claim==null) {
+            cons.accept(Optional.empty());
+            return false;
+        }
+        boolean hasPerm = claim.canInteract(player, perm, pos);
+        cons.accept(Optional.of(hasPerm));
+        return hasPerm;
+    }
+
+    public static Claim checkReturn(ServerPlayerEntity player, EnumPermission perm, Consumer<Optional<Boolean>> cons) {
+        BlockPos pos = player.getBlockPos();
+        Claim claim = ClaimStorage.get(player.getServerWorld()).getClaimAt(pos);
+        return check(player, pos, claim, perm, cons)?claim:null;
+    }
+
+    public static void noClaimMessage(ServerPlayerEntity player){
+        player.sendMessage(new LiteralText(ConfigHandler.lang.noClaim).setStyle(Style.EMPTY.withFormatting(Formatting.DARK_RED)), false);
+    }
+
+    public static Consumer<Optional<Boolean>> genericNoPermMessage(ServerPlayerEntity player){
+        return (b ->{
+            if(!b.isPresent())
+                PermHelper.noClaimMessage(player);
+            else if(!b.get())
+                player.sendMessage(simpleColoredText(ConfigHandler.lang.noPermission, Formatting.DARK_RED), false);
+        });
+    }
+
+    public static Text simpleColoredText(String text, Formatting... formatting){
+        return new LiteralText(text).setStyle(formatting!=null?Style.EMPTY.withFormatting(formatting):Style.EMPTY);
+    }
+}