Skip to content

Commit aa49e51

Browse files
committed
Use (Neo)Forge permissions system too
1 parent 11d7fed commit aa49e51

File tree

5 files changed

+51
-3
lines changed

5 files changed

+51
-3
lines changed

build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ dependencies {
9090
modImplementation("com.terraformersmc:modmenu:$modMenuVersion")
9191
}
9292

93-
includeOrShade(modImplementation("me.lucko:fabric-permissions-api:0.3.1")!!)
93+
if (mcData.isFabric) {
94+
includeOrShade(modImplementation("me.lucko:fabric-permissions-api:0.3.1")!!)
95+
}
9496

9597
val useSVC = false
9698

src/main/kotlin/xyz/bluspring/unitytranslate/PlatformProxy.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ import net.minecraft.network.FriendlyByteBuf
88
//#endif
99
import net.minecraft.resources.ResourceLocation
1010
import net.minecraft.server.level.ServerPlayer
11+
import net.minecraft.world.entity.player.Player
12+
13+
//#if FORGE
14+
//$$ import net.minecraftforge.server.permission.events.PermissionGatherEvent
15+
//#elseif NEOFORGE
16+
//$$ import net.neoforged.neoforge.server.permission.events.PermissionGatherEvent
17+
//#endif
18+
1119
import java.nio.file.Path
1220

1321
interface PlatformProxy {
@@ -40,4 +48,10 @@ interface PlatformProxy {
4048
NetworkManager.sendToPlayer(player, id, buf)
4149
//#endif
4250
}
51+
52+
//#if FORGE-LIKE
53+
//$$ fun registerPermissions(event: PermissionGatherEvent.Nodes)
54+
//#endif
55+
56+
fun hasTranscriptPermission(player: Player): Boolean
4357
}

src/main/kotlin/xyz/bluspring/unitytranslate/PlatformProxyImpl.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
11
package xyz.bluspring.unitytranslate
22

33
//#if FABRIC
4+
import me.lucko.fabric.api.permissions.v0.Permissions
45
import net.fabricmc.api.EnvType
56
import net.fabricmc.loader.api.FabricLoader
67
//#endif
8+
import net.minecraft.world.entity.player.Player
79
import java.nio.file.Path
810
//#if FORGE
911
//$$ import net.minecraftforge.api.distmarker.Dist
1012
//$$ import net.minecraftforge.fml.ModList
1113
//$$ import net.minecraftforge.fml.loading.FMLLoader
1214
//$$ import net.minecraftforge.fml.loading.FMLPaths
15+
//$$ import net.minecraftforge.server.permission.PermissionAPI
16+
//$$ import net.minecraftforge.server.permission.events.PermissionGatherEvent
17+
//$$ import net.minecraftforge.server.permission.nodes.PermissionNode
18+
//$$ import net.minecraftforge.server.permission.nodes.PermissionTypes
1319
//#elseif NEOFORGE
1420
//$$ import net.neoforged.api.distmarker.Dist
1521
//$$ import net.neoforged.fml.ModList
1622
//$$ import net.neoforged.fml.loading.FMLLoader
1723
//$$ import net.neoforged.fml.loading.FMLPaths
24+
//$$ import net.neoforged.neoforge.server.permission.PermissionAPI
25+
//$$ import net.neoforged.neoforge.server.permission.events.PermissionGatherEvent
26+
//$$ import net.neoforged.neoforge.server.permission.nodes.PermissionNode
27+
//$$ import net.neoforged.neoforge.server.permission.nodes.PermissionTypes
1828
//#endif
1929

2030
class PlatformProxyImpl : PlatformProxy {
@@ -61,4 +71,21 @@ class PlatformProxyImpl : PlatformProxy {
6171
//$$ return FMLLoader.getDist() == Dist.CLIENT
6272
//#endif
6373
}
74+
75+
// how did Forge manage to overcomplicate permissions of all things
76+
77+
//#if FORGE-LIKE
78+
//$$ val requestTranslationsNode = PermissionNode(UnityTranslate.MOD_ID, "request_translations", PermissionTypes.BOOLEAN, { _, _, _ -> true })
79+
//$$ override fun registerPermissions(event: PermissionGatherEvent.Nodes) {
80+
//$$ event.addNodes(requestTranslationsNode)
81+
//$$ }
82+
//#endif
83+
84+
override fun hasTranscriptPermission(player: Player): Boolean {
85+
//#if FABRIC
86+
return Permissions.check(player, "unitytranslate.request_translations", true)
87+
//#elseif FORGE-LIKE
88+
//$$ return PermissionAPI.getOfflinePermission(player.uuid, requestTranslationsNode)
89+
//#endif
90+
}
6491
}

src/main/kotlin/xyz/bluspring/unitytranslate/neoforge/UnityTranslateNeoForge.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package xyz.bluspring.unitytranslate.neoforge
1111
//$$ import net.minecraftforge.fml.common.Mod
1212
//$$ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
1313
//$$ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
14+
//$$ import net.minecraftforge.server.permission.events.PermissionGatherEvent
1415
//#elseif NEOFORGE
1516
//$$ import net.neoforged.api.distmarker.Dist
1617
//$$ import net.neoforged.api.distmarker.OnlyIn
@@ -19,6 +20,7 @@ package xyz.bluspring.unitytranslate.neoforge
1920
//$$ import net.neoforged.fml.common.Mod
2021
//$$ import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent
2122

23+
//$$ import net.neoforged.neoforge.server.permission.events.PermissionGatherEvent
2224
//$$ import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent
2325
//#endif
2426

@@ -48,6 +50,10 @@ package xyz.bluspring.unitytranslate.neoforge
4850
//$$ ConfigScreenHelper.createConfigScreen()
4951
//$$ }
5052
//$$
53+
//$$ fun onPermissionsGather(event: PermissionGatherEvent.Nodes) {
54+
//$$ UnityTranslate.instance.proxy.registerPermissions(event)
55+
//$$ }
56+
//$$
5157
//$$ @OnlyIn(Dist.CLIENT)
5258
//$$ @SubscribeEvent
5359
//$$ fun onClientKeybinds(ev: RegisterKeyMappingsEvent) {

src/main/kotlin/xyz/bluspring/unitytranslate/network/UTServerNetworking.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package xyz.bluspring.unitytranslate.network
1010
//#endif
1111
import dev.architectury.event.events.common.PlayerEvent
1212
import dev.architectury.networking.NetworkManager
13-
import me.lucko.fabric.api.permissions.v0.Permissions
1413
import net.minecraft.ChatFormatting
1514
import net.minecraft.network.FriendlyByteBuf
1615
import net.minecraft.network.chat.Component
@@ -231,7 +230,7 @@ object UTServerNetworking {
231230
}
232231

233232
fun canPlayerRequestTranslations(player: Player): Boolean {
234-
return Permissions.check(player, "unitytranslate.request_translations", true)
233+
return UnityTranslate.instance.proxy.hasTranscriptPermission(player)
235234
}
236235

237236
//#if MC >= 1.20.6

0 commit comments

Comments
 (0)