Skip to content

Commit 730f239

Browse files
authored
[1.20.x] [All] Feat: Reflections dsl builder (#59)
This pull request introduces a new builder for the ronmamo/reflections library It allows for concise reflections and gives a lot of configuration for the scanner
1 parent 9252170 commit 730f239

40 files changed

+290
-114
lines changed

common/src/main/kotlin/com/lambda/command/CommandRegistry.kt

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package com.lambda.command
33
import com.lambda.config.Configurable
44
import com.lambda.config.configurations.LambdaConfig
55
import com.lambda.core.Loadable
6+
import com.lambda.util.reflections.getInstances
67
import org.reflections.Reflections
78
import org.reflections.scanners.Scanners
9+
import org.reflections.util.ClasspathHelper.forPackage
810
import org.reflections.util.ConfigurationBuilder
911

1012
/**
@@ -14,24 +16,9 @@ object CommandRegistry : Configurable(LambdaConfig), Loadable {
1416
override val name = "command"
1517

1618
val prefix by setting("prefix", ';')
17-
val commands = mutableSetOf<LambdaCommand>()
19+
val commands = getInstances<LambdaCommand> { forPackages("com.lambda.command.commands") }
1820

1921
override fun load(): String {
20-
Reflections(
21-
ConfigurationBuilder()
22-
.forPackage("com.lambda.command.commands")
23-
.setScanners(Scanners.SubTypes)
24-
).getSubTypesOf(LambdaCommand::class.java).forEach { commandClass ->
25-
commandClass.declaredFields.find {
26-
it.name == "INSTANCE"
27-
}?.apply {
28-
isAccessible = true
29-
(get(null) as? LambdaCommand)?.let { command ->
30-
commands.add(command)
31-
}
32-
}
33-
}
34-
3522
return "Registered ${commands.size} commands"
3623
}
3724
}

common/src/main/kotlin/com/lambda/command/LambdaCommand.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.lambda.command
22

33
import com.lambda.command.CommandManager.dispatcher
44
import com.lambda.util.Nameable
5-
import com.lambda.util.primitives.extension.CommandBuilder
5+
import com.lambda.util.extension.CommandBuilder
66
import com.mojang.brigadier.builder.LiteralArgumentBuilder
77
import net.minecraft.command.CommandRegistryAccess
88
import net.minecraft.command.CommandSource
@@ -29,4 +29,4 @@ abstract class LambdaCommand(
2929
}
3030

3131
abstract fun CommandBuilder.create()
32-
}
32+
}

common/src/main/kotlin/com/lambda/command/commands/ConfigCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.lambda.brigadier.required
77
import com.lambda.command.LambdaCommand
88
import com.lambda.config.Configuration
99
import com.lambda.util.Communication.info
10-
import com.lambda.util.primitives.extension.CommandBuilder
10+
import com.lambda.util.extension.CommandBuilder
1111

1212
object ConfigCommand : LambdaCommand(
1313
name = "config",

common/src/main/kotlin/com/lambda/command/commands/ModuleCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import com.lambda.util.Communication.info
1616
import com.lambda.util.Communication.joinToText
1717
import com.lambda.util.Communication.warn
1818
import com.lambda.util.StringUtils
19-
import com.lambda.util.primitives.extension.CommandBuilder
19+
import com.lambda.util.extension.CommandBuilder
2020
import com.lambda.util.text.ClickEvents.suggestCommand
2121
import com.lambda.util.text.buildText
2222
import com.lambda.util.text.clickEvent

common/src/main/kotlin/com/lambda/command/commands/ReplayCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import com.lambda.command.LambdaCommand
1212
import com.lambda.module.modules.player.Replay
1313
import com.lambda.util.FolderRegister
1414
import com.lambda.util.FolderRegister.listRecursive
15-
import com.lambda.util.primitives.extension.CommandBuilder
15+
import com.lambda.util.extension.CommandBuilder
1616

1717
object ReplayCommand : LambdaCommand(
1818
name = "replay",

common/src/main/kotlin/com/lambda/command/commands/TransferCommand.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.lambda.interaction.material.ContainerManager.containerMatchSelection
1111
import com.lambda.interaction.material.StackSelection.Companion.selectStack
1212
import com.lambda.interaction.material.transfer.TransferResult
1313
import com.lambda.util.Communication.info
14-
import com.lambda.util.primitives.extension.CommandBuilder
14+
import com.lambda.util.extension.CommandBuilder
1515

1616
object TransferCommand : LambdaCommand(
1717
name = "transfer",
@@ -105,4 +105,4 @@ object TransferCommand : LambdaCommand(
105105
}
106106
}
107107
}
108-
}
108+
}

common/src/main/kotlin/com/lambda/graphics/animation/Animation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.lambda.graphics.animation
22

33
import com.lambda.Lambda.mc
44
import com.lambda.util.math.MathUtils.lerp
5-
import com.lambda.util.primitives.extension.partialTicks
5+
import com.lambda.util.extension.partialTicks
66
import kotlin.math.abs
77
import kotlin.reflect.KProperty
88

common/src/main/kotlin/com/lambda/graphics/renderer/esp/DynamicAABB.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package com.lambda.graphics.renderer.esp
22

33
import com.lambda.util.math.VecUtils.minus
44
import com.lambda.util.math.VecUtils.plus
5-
import com.lambda.util.primitives.extension.max
6-
import com.lambda.util.primitives.extension.min
7-
import com.lambda.util.primitives.extension.prevPos
5+
import com.lambda.util.extension.max
6+
import com.lambda.util.extension.min
7+
import com.lambda.util.extension.prevPos
88
import net.minecraft.entity.Entity
99
import net.minecraft.util.math.Box
1010

@@ -40,4 +40,4 @@ class DynamicAABB {
4040
update(boundingBox)
4141
}
4242
}
43-
}
43+
}

common/src/main/kotlin/com/lambda/graphics/renderer/esp/builders/DynamicESPBuilders.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import com.lambda.graphics.renderer.esp.DirectionMask
44
import com.lambda.graphics.renderer.esp.DirectionMask.hasDirection
55
import com.lambda.graphics.renderer.esp.DynamicAABB
66
import com.lambda.graphics.renderer.esp.impl.DynamicESPRenderer
7-
import com.lambda.util.primitives.extension.max
8-
import com.lambda.util.primitives.extension.min
7+
import com.lambda.util.extension.max
8+
import com.lambda.util.extension.min
99
import java.awt.Color
1010

1111
fun DynamicESPRenderer.build(
@@ -95,4 +95,4 @@ fun DynamicESPRenderer.buildOutline(
9595
if (outlineMode.check(hasNorth, hasEast)) putLine(trb, brb)
9696
if (outlineMode.check(hasEast, hasSouth)) putLine(trf, brf)
9797
if (outlineMode.check(hasSouth, hasWest)) putLine(tlf, blf)
98-
}
98+
}

common/src/main/kotlin/com/lambda/graphics/renderer/esp/builders/StaticESPBuilders.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import com.lambda.graphics.renderer.esp.DirectionMask
44
import com.lambda.graphics.renderer.esp.DirectionMask.hasDirection
55
import com.lambda.graphics.renderer.esp.impl.ESPRenderer
66
import com.lambda.graphics.renderer.esp.impl.StaticESPRenderer
7-
import com.lambda.util.primitives.extension.max
8-
import com.lambda.util.primitives.extension.min
7+
import com.lambda.util.extension.max
8+
import com.lambda.util.extension.min
99
import net.minecraft.util.math.Box
1010
import java.awt.Color
1111

@@ -107,4 +107,4 @@ fun StaticESPRenderer.buildOutline(
107107
if (outlineMode.check(hasSouth, hasWest)) putLine(tlf, blf)
108108

109109
updateOutlines = true
110-
}
110+
}

0 commit comments

Comments
 (0)