File tree Expand file tree Collapse file tree 6 files changed +37
-6
lines changed
src/main/kotlin/com/lambda Expand file tree Collapse file tree 6 files changed +37
-6
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ dependencies {
2323 modImplementation(" net.fabricmc:fabric-loader:$fabricLoaderVersion " )
2424 // Add dependencies on the required Kotlin modules.
2525 modImplementation(" net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion " )
26+ implementation(" org.reflections:reflections:0.10.2" )
2627 implementation(annotationProcessor(" io.github.llamalad7:mixinextras-common:$mixinExtrasVersion " )!! )
2728}
2829
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import com.google.gson.Gson
44import com.google.gson.GsonBuilder
55import com.lambda.config.serializer.BlockPosSerializer
66import com.lambda.config.serializer.BlockSerializer
7+ import com.lambda.module.ModuleRegistry
78import com.lambda.module.modules.BoringModule
89import net.minecraft.block.Block
910import net.minecraft.client.MinecraftClient
@@ -26,7 +27,9 @@ object Lambda {
2627 .create()
2728
2829 init {
30+ // ToDo: Why do i have to call these?
2931 BoringModule
32+ ModuleRegistry
3033
3134// listener<KeyPressEvent> {
3235// if (it.key != GLFW.GLFW_KEY_Z) {
Original file line number Diff line number Diff line change @@ -25,12 +25,6 @@ abstract class Module(
2525 private val keybind by keybindSetting
2626
2727 init {
28- // unsafeListener<ClientEvent.ConfigLoaded>(alwaysListen = true) { event ->
29- // if (event.configuration != ModuleConfig) return@unsafeListener
30- //
31- // isEnabled = isEnabledSetting.value
32- // }
33-
3428 listener<KeyPressEvent >(alwaysListen = true ) { event ->
3529 if (event.key == keybind.key) {
3630 toggle()
Original file line number Diff line number Diff line change 1+ package com.lambda.module
2+
3+ import com.lambda.event.events.ClientEvent
4+ import com.lambda.event.listener.UnsafeListener.Companion.unsafeListener
5+ import org.reflections.Reflections
6+ import org.reflections.scanners.SubTypesScanner
7+ import org.reflections.util.ClasspathHelper
8+ import org.reflections.util.ConfigurationBuilder
9+
10+ object ModuleRegistry {
11+ private val modules = mutableSetOf<Module >()
12+
13+ init {
14+ unsafeListener<ClientEvent .Startup > {
15+ Reflections (
16+ ConfigurationBuilder ()
17+ .setUrls(ClasspathHelper .forPackage(" com.lambda.module.modules" ))
18+ .setScanners(SubTypesScanner ()) // ToDo: Deprecated, use Scanners.SubTypes instead
19+ ).getSubTypesOf(Module ::class .java).forEach { moduleClass ->
20+ moduleClass.declaredFields.find {
21+ it.name == " INSTANCE"
22+ }?.apply {
23+ isAccessible = true
24+ (get(null ) as ? Module )?.let { module ->
25+ modules.add(module)
26+ }
27+ }
28+ }
29+ }
30+ }
31+ }
Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ dependencies {
3030 modImplementation(" net.fabricmc:fabric-loader:$fabricLoaderVersion " )
3131 modImplementation(" net.fabricmc.fabric-api:fabric-api:$fabricApiVersion " )
3232 modImplementation(" net.fabricmc:fabric-language-kotlin:$fabricKotlinVersion " )
33+ implementation(" org.reflections:reflections:0.10.2" )
3334}
3435
3536tasks {
Original file line number Diff line number Diff line change @@ -44,6 +44,7 @@ dependencies {
4444 }
4545 implementation(annotationProcessor(" io.github.llamalad7:mixinextras-common:$mixinExtrasVersion " )!! )
4646 implementation(include(" io.github.llamalad7:mixinextras-forge:$mixinExtrasVersion " )!! )
47+ implementation(" org.reflections:reflections:0.10.2" )
4748}
4849
4950tasks {
You can’t perform that action at this time.
0 commit comments