From 9074d17bbaee5c4dcdab70d25c8421bab28bc692 Mon Sep 17 00:00:00 2001 From: iceBear67 Date: Wed, 18 Sep 2024 09:36:09 +0800 Subject: [PATCH] refactor: use fabric-permission-api for better compatibility --- build.gradle | 2 +- .../java/io/ib67/sfcraft/util/Permission.java | 25 +++---------------- src/main/resources/fabric.mod.json | 1 + 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/build.gradle b/build.gradle index 51c39aa..41b4dfa 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - + modImplementation 'me.lucko:fabric-permissions-api:0.3.1' // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" shadow('com.maxmind.geoip2:geoip2:4.2.0') diff --git a/src/main/java/io/ib67/sfcraft/util/Permission.java b/src/main/java/io/ib67/sfcraft/util/Permission.java index 13520a7..4b3d8f2 100644 --- a/src/main/java/io/ib67/sfcraft/util/Permission.java +++ b/src/main/java/io/ib67/sfcraft/util/Permission.java @@ -1,5 +1,6 @@ package io.ib67.sfcraft.util; +import me.lucko.fabric.api.permissions.v0.Permissions; import net.minecraft.entity.Entity; import java.util.Objects; @@ -21,28 +22,10 @@ public record Permission(String key, boolean byDefault) { } public boolean hasPermission(T t) { - if (t.getCommandTags().contains(SFConsts.SPECIAL_SUDO)) return true; + if (Permissions.check(t, SFConsts.SPECIAL_SUDO)) return true; if (byDefault) { - return !t.getCommandTags().contains("-" + key); - } - return t.getCommandTags().contains(key); - } - - public void grant(T t) { - if (!hasPermission(t)) { - t.getCommandTags().remove("-" + key); - if (!byDefault) { - t.addCommandTag(key); - } - } - } - - public void revoke(T t) { - if (hasPermission(t)) { - t.removeCommandTag(key); - if (byDefault) { - t.addCommandTag("-" + key); - } + return !Permissions.check(t, "-"+key); } + return Permissions.check(t, key); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 1f5bd6c..a4fce95 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -20,6 +20,7 @@ "sfcraft.mixins.json" ], "depends": { + "fabric-permissions-api-v0": "*", "fabricloader": ">=${loader_version}", "fabric": "*", "minecraft": "${minecraft_version}"