Skip to content

Commit 4a8a725

Browse files
committed
Prepare *everything*
1 parent 5d9cf72 commit 4a8a725

File tree

22 files changed

+378
-56
lines changed

22 files changed

+378
-56
lines changed

fabric/src/main/kotlin/xyz/bluspring/unitytranslate/fabric/client/UnityTranslateFabricClient.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,13 @@ class UnityTranslateFabricClient : ClientModInitializer {
3636
}
3737

3838
HudRenderCallback.EVENT.register { guiGraphics, delta ->
39-
instance.clientRenderHud(guiGraphics, delta)
39+
instance.clientRenderHud(guiGraphics,
40+
//? if >= 1.21.1 {
41+
/*delta.getGameTimeDeltaPartialTick(true)
42+
*///?} else {
43+
delta
44+
//?}
45+
)
4046
}
4147

4248
ClientCommandRegistrationCallback.EVENT.register { dispatcher, registryAccess ->

forge/src/main/kotlin/xyz/bluspring/unitytranslate/forge/UnityTranslateForge.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ class UnityTranslateForge(val container: KotlinModContainer, val eventBus: Event
2323
ForgeEvents.init()
2424

2525
this.eventBus.register(this)
26-
MinecraftForge.EVENT_BUS.register(UnityTranslateForgeClient)
2726
}
2827

2928
@OnlyIn(Dist.CLIENT)
3029
@SubscribeEvent
3130
fun onClientLoading(ev: FMLClientSetupEvent) {
31+
MinecraftForge.EVENT_BUS.register(UnityTranslateForgeClient)
3232
ConfigScreenHelper.createConfigScreen(this.container)
3333
}
3434

gradle.properties

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ systemProp.javax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal
55

66
# Done to increase the memory available to gradle.
77
org.gradle.jvmargs=-Xmx8192m -Xms8192m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
8-
org.gradle.parallel.threads=8
9-
org.gradle.parallel=true
108

119
# Loom Setup
1210

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package xyz.bluspring.unitytranslate.neoforge
22

33
import net.neoforged.fml.ModLoadingContext
44

5+
import xyz.bluspring.unitytranslate.client.gui.UTConfigScreen
56
//? if >= 1.20.6 {
67
import net.neoforged.neoforge.client.gui.IConfigScreenFactory
78
//?} else {
Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,46 @@
11
package xyz.bluspring.unitytranslate.neoforge
22

3+
import net.minecraft.commands.CommandSourceStack
4+
import net.minecraft.server.level.ServerPlayer
35
import net.neoforged.bus.api.SubscribeEvent
46
import net.neoforged.neoforge.common.NeoForge
7+
import net.neoforged.neoforge.event.RegisterCommandsEvent
8+
import net.neoforged.neoforge.event.entity.player.PlayerEvent
59
import net.neoforged.neoforge.server.permission.events.PermissionGatherEvent
610

7-
import xyz.bluspring.unitytranslate.UnityTranslate
11+
import xyz.bluspring.unitytranslate.commands.UnityTranslateCommands
12+
import xyz.bluspring.unitytranslate.network.UTServerNetworking
13+
import xyz.bluspring.unitytranslate.translator.TranslatorManager
814

915
object NeoForgeEvents {
1016
fun init() {
1117
NeoForge.EVENT_BUS.register(this)
1218
}
1319

14-
@SubscribeEvent
15-
fun onPermissionsGather(event: PermissionGatherEvent.Nodes) {
16-
UnityTranslate.instance.proxy.registerPermissions(event)
17-
}
20+
@SubscribeEvent
21+
fun onPermissionsGather(event: PermissionGatherEvent.Nodes) {
22+
event.addNodes(UnityTranslateNeoForge.REQUEST_TRANSLATIONS_NODE)
23+
}
24+
25+
@SubscribeEvent
26+
fun onCommandRegister(ev: RegisterCommandsEvent) {
27+
UnityTranslateCommands.register(ev.dispatcher, "unitytranslate", false, CommandSourceStack::sendSystemMessage)
28+
}
29+
30+
@SubscribeEvent
31+
fun onPlayerJoin(ev: PlayerEvent.PlayerLoggedInEvent) {
32+
if (ev.entity !is ServerPlayer)
33+
return
34+
35+
UTServerNetworking.onPlayerJoin(ev.entity as ServerPlayer)
36+
}
37+
38+
@SubscribeEvent
39+
fun onPlayerLeave(ev: PlayerEvent.PlayerLoggedOutEvent) {
40+
if (ev.entity !is ServerPlayer)
41+
return
42+
43+
TranslatorManager.playerQuit(ev.entity)
44+
UTServerNetworking.onPlayerLeave(ev.entity as ServerPlayer)
45+
}
1846
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package xyz.bluspring.unitytranslate.neoforge
2+
3+
import net.minecraft.world.entity.player.Player
4+
import net.neoforged.api.distmarker.Dist
5+
import net.neoforged.fml.ModContainer
6+
import net.neoforged.fml.ModList
7+
import net.neoforged.fml.loading.FMLEnvironment
8+
import net.neoforged.fml.loading.FMLPaths
9+
import net.neoforged.neoforge.server.permission.PermissionAPI
10+
import xyz.bluspring.unitytranslate.PlatformProxy
11+
import java.nio.file.Path
12+
13+
class NeoForgePlatformProxy : PlatformProxy {
14+
lateinit var container: ModContainer
15+
16+
override fun isModLoaded(id: String): Boolean {
17+
return ModList.get().isLoaded(id)
18+
}
19+
20+
override fun isClient(): Boolean {
21+
//? if > 1.21.8 {
22+
return FMLEnvironment.getDist() == Dist.CLIENT
23+
//? } else {
24+
/*return FMLEnvironment.dist == Dist.CLIENT
25+
*///? }
26+
}
27+
28+
override val modVersion: String
29+
get() = container.modInfo.version.toString()
30+
31+
override val configDir: Path
32+
get() = FMLPaths.CONFIGDIR.get()
33+
34+
override val gameDir: Path
35+
get() = FMLPaths.GAMEDIR.get()
36+
37+
override val isDev: Boolean
38+
get() {
39+
//? if > 1.21.8 {
40+
return !FMLEnvironment.isProduction()
41+
//? } else {
42+
/*return !FMLEnvironment.production
43+
*///? }
44+
}
45+
46+
override fun hasTranscriptPermission(player: Player): Boolean {
47+
return PermissionAPI.getOfflinePermission(player.uuid, UnityTranslateNeoForge.REQUEST_TRANSLATIONS_NODE)
48+
}
49+
}
Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,49 @@
11
package xyz.bluspring.unitytranslate.neoforge
22

3+
import dev.nyon.klf.KotlinModContainer
34
import net.neoforged.api.distmarker.Dist
45
import net.neoforged.api.distmarker.OnlyIn
6+
import net.neoforged.bus.EventBus
57
import net.neoforged.bus.api.SubscribeEvent
68
import net.neoforged.fml.ModLoadingContext
79
import net.neoforged.fml.common.Mod
810
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent
911
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent
10-
11-
//? if >= 1.20.4 {
12-
import thedarkcolour.kotlinforforge.neoforge.forge.MOD_BUS
13-
//?}
12+
import net.neoforged.neoforge.common.NeoForge
13+
import net.neoforged.neoforge.server.permission.nodes.PermissionNode
14+
import net.neoforged.neoforge.server.permission.nodes.PermissionTypes
1415

1516
import xyz.bluspring.unitytranslate.UnityTranslate
1617
import xyz.bluspring.unitytranslate.client.UnityTranslateClient
1718

1819
@Mod(UnityTranslate.MOD_ID)
19-
class UnityTranslateNeoForge {
20+
class UnityTranslateNeoForge(val container: KotlinModContainer, val eventBus: EventBus) {
21+
val instance = UnityTranslate()
22+
2023
init {
21-
UnityTranslate()
22-
//? if >= 1.20.4 {
23-
MOD_BUS.register(this)
24-
//?} else {
25-
/*FMLJavaModLoadingContext.get().modEventBus.register(this)
26-
*///?}
24+
(this.instance.proxy as NeoForgePlatformProxy).container = this.container
2725
NeoForgeEvents.init()
26+
27+
this.eventBus.register(this)
2828
}
2929

3030
@OnlyIn(Dist.CLIENT)
3131
@SubscribeEvent
3232
fun onClientLoading(ev: FMLClientSetupEvent) {
33-
UnityTranslateClient()
34-
33+
NeoForge.EVENT_BUS.register(UnityTranslateNeoForgeClient)
3534
ConfigScreenHelper.createConfigScreen()
3635
}
3736

3837
@OnlyIn(Dist.CLIENT)
3938
@SubscribeEvent
4039
fun onClientKeybinds(ev: RegisterKeyMappingsEvent) {
41-
UnityTranslateClient.registerKeys()
40+
for (key in UnityTranslateClient.keys) {
41+
ev.register(key)
42+
}
43+
}
44+
45+
companion object {
46+
// how did Forge manage to overcomplicate permissions of all things
47+
val REQUEST_TRANSLATIONS_NODE = PermissionNode(UnityTranslate.MOD_ID, "request_translations", PermissionTypes.BOOLEAN, { _, _, _ -> true })
4248
}
4349
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package xyz.bluspring.unitytranslate.neoforge
2+
3+
import net.minecraft.client.Minecraft
4+
import net.minecraft.commands.CommandSourceStack
5+
import net.neoforged.bus.api.SubscribeEvent
6+
import net.neoforged.neoforge.client.event.ClientPlayerNetworkEvent
7+
import net.neoforged.neoforge.client.event.ClientTickEvent
8+
import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent
9+
import net.neoforged.neoforge.client.event.RenderGuiEvent
10+
import xyz.bluspring.unitytranslate.client.UnityTranslateClient
11+
import xyz.bluspring.unitytranslate.commands.UnityTranslateCommands
12+
13+
object UnityTranslateNeoForgeClient {
14+
val instance = UnityTranslateClient()
15+
16+
@SubscribeEvent
17+
fun onClientTick(ev: ClientTickEvent.Post) {
18+
this.instance.clientTick(Minecraft.getInstance())
19+
}
20+
21+
@SubscribeEvent
22+
fun onClientCommands(ev: RegisterClientCommandsEvent) {
23+
UnityTranslateCommands.register(ev.dispatcher, "unitytranslateclient", true, CommandSourceStack::sendSystemMessage)
24+
}
25+
26+
@SubscribeEvent
27+
fun onHudRender(ev: RenderGuiEvent.Post) {
28+
this.instance.clientRenderHud(ev.guiGraphics, ev.partialTick.getGameTimeDeltaPartialTick(true))
29+
}
30+
31+
@SubscribeEvent
32+
fun onClientJoin(ev: ClientPlayerNetworkEvent.LoggingIn) {
33+
this.instance.clientJoinWorld()
34+
}
35+
36+
@SubscribeEvent
37+
fun onClientLeave(ev: ClientPlayerNetworkEvent.LoggingOut) {
38+
this.instance.clientLeaveWorld()
39+
}
40+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
xyz.bluspring.unitytranslate.neoforge.NeoForgePlatformProxy

src/main/kotlin/xyz/bluspring/unitytranslate/client/UnityTranslateClient.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -200,13 +200,19 @@ class UnityTranslateClient {
200200
return UnityTranslate.config.client.transcriptBoxes
201201
}
202202

203-
val CONFIGURE_BOXES = (KeyMapping("unitytranslate.configure_boxes", -1, "UnityTranslate"))
204-
val TOGGLE_TRANSCRIPTION = (KeyMapping("unitytranslate.toggle_transcription", -1, "UnityTranslate"))
205-
val TOGGLE_BOXES = (KeyMapping("unitytranslate.toggle_boxes", -1, "UnityTranslate"))
206-
val SET_SPOKEN_LANGUAGE = (KeyMapping("unitytranslate.set_spoken_language", -1, "UnityTranslate"))
207-
val CLEAR_TRANSCRIPTS = (KeyMapping("unitytranslate.clear_transcripts", -1, "UnityTranslate"))
208-
//val TRANSLATE_SIGN = (KeyMapping("unitytranslate.translate_sign", InputConstants.KEY_F8, "UnityTranslate"))
209-
val OPEN_CONFIG_GUI = (KeyMapping("unitytranslate.open_config", InputConstants.KEY_F7, "UnityTranslate"))
203+
//? if >= 1.21.9 {
204+
/*private val category = KeyMapping.Category(UnityTranslate.id("main"))
205+
*///?} else {
206+
private val category = "UnityTranslate"
207+
//?}
208+
209+
val CONFIGURE_BOXES = (KeyMapping("unitytranslate.configure_boxes", -1, category))
210+
val TOGGLE_TRANSCRIPTION = (KeyMapping("unitytranslate.toggle_transcription", -1, category))
211+
val TOGGLE_BOXES = (KeyMapping("unitytranslate.toggle_boxes", -1, category))
212+
val SET_SPOKEN_LANGUAGE = (KeyMapping("unitytranslate.set_spoken_language", -1, category))
213+
val CLEAR_TRANSCRIPTS = (KeyMapping("unitytranslate.clear_transcripts", -1, category))
214+
//val TRANSLATE_SIGN = (KeyMapping("unitytranslate.translate_sign", InputConstants.KEY_F8, category))
215+
val OPEN_CONFIG_GUI = (KeyMapping("unitytranslate.open_config", InputConstants.KEY_F7, category))
210216

211217
@JvmStatic
212218
val keys: List<KeyMapping> = listOf(CONFIGURE_BOXES, TOGGLE_TRANSCRIPTION, TOGGLE_BOXES, SET_SPOKEN_LANGUAGE, CLEAR_TRANSCRIPTS, OPEN_CONFIG_GUI)

0 commit comments

Comments
 (0)