@@ -10,10 +10,12 @@ package xyz.bluspring.unitytranslate.network
1010// #endif
1111import dev.architectury.event.events.common.PlayerEvent
1212import dev.architectury.networking.NetworkManager
13+ import me.lucko.fabric.api.permissions.v0.Permissions
1314import net.minecraft.ChatFormatting
1415import net.minecraft.network.FriendlyByteBuf
1516import net.minecraft.network.chat.Component
1617import net.minecraft.server.level.ServerPlayer
18+ import net.minecraft.world.entity.player.Player
1719import net.minecraft.world.level.block.SignBlock
1820import net.minecraft.world.level.block.entity.SignBlockEntity
1921import xyz.bluspring.unitytranslate.Language
@@ -61,6 +63,9 @@ object UTServerNetworking {
6163 val updateTime = buf.readVarLong()
6264 // #endif
6365
66+ if (! canPlayerRequestTranslations(ctx.player))
67+ return @registerReceiver
68+
6469 // TODO: probably make this better
6570 if (text.length > 1500 ) {
6671 ctx.player.displayClientMessage(Component .literal(" Transcription too long! Current transcript discarded." ).withStyle(ChatFormatting .RED ), true )
@@ -130,6 +135,9 @@ object UTServerNetworking {
130135 val pos = buf.readBlockPos()
131136 // #endif
132137
138+ if (! canPlayerRequestTranslations(ctx.player))
139+ return @registerReceiver
140+
133141 val player = ctx.player
134142 val level = player.level()
135143
@@ -222,6 +230,10 @@ object UTServerNetworking {
222230 }
223231 }
224232
233+ fun canPlayerRequestTranslations (player : Player ): Boolean {
234+ return Permissions .check(player, " unitytranslate.request_translations" , true )
235+ }
236+
225237 // #if MC >= 1.20.6
226238 // $$ private fun <T : CustomPacketPayload> registerReceiver(type: TypeAndCodec<RegistryFriendlyByteBuf, T>, receiver: NetworkManager.NetworkReceiver<T>) {
227239 // $$ NetworkManager.registerReceiver(NetworkManager.Side.C2S, type.type, type.codec, receiver)
0 commit comments