Remove useless duplicated code in ForgeInit.kt

This commit is contained in:
Username404-59 2021-06-30 16:27:49 +02:00
parent 2b49238ee7
commit 530ecb36cb
Signed by: Username404-59
GPG Key ID: 7AB361FBB257A5D1
2 changed files with 4 additions and 10 deletions

View File

@ -11,12 +11,13 @@ import org.apache.logging.log4j.Logger
import java.lang.reflect.Modifier import java.lang.reflect.Modifier
abstract class Snowy { abstract class Snowy {
protected fun Class<*>.isValidForButtonCollection(): Boolean = (!((Modifier.isAbstract(javaClass.modifiers)) || javaClass.annotations.any { it is ButtonInfo && it.ignored })) protected fun Class<*>.isValidForButtonCollection(): Boolean =
!Modifier.isAbstract(modifiers) && declaredAnnotations.any { it is ButtonInfo && !it.ignored }
private val displayInitMessage: Boolean by Configuration private val displayInitMessage: Boolean by Configuration
companion object { companion object {
val MissingComponent: TranslatableComponent = object: TranslatableComponent(null) { override fun getString(): String = "MISSING_COMPONENT" } val MissingComponent: TranslatableComponent = object: TranslatableComponent(null) { override fun getString(): String = "MISSING_COMPONENT" }
@JvmStatic @JvmStatic
protected val FeaturePackage: String = "fr.username404.snowygui.gui.feature" protected val FeaturePackage: String = ButtonInfo::class.java.packageName
lateinit var annotatedButtons: Set<Class<out ButtonImpl>> lateinit var annotatedButtons: Set<Class<out ButtonImpl>>
fun onEvent(e: Any, lambda: argsLambda) = useKey(e.toString()).add(lambda) fun onEvent(e: Any, lambda: argsLambda) = useKey(e.toString()).add(lambda)
@JvmField @JvmField

View File

@ -4,7 +4,6 @@ import fr.username404.snowygui.Snowy
import fr.username404.snowygui.config.SnowyConfigScreen import fr.username404.snowygui.config.SnowyConfigScreen
import fr.username404.snowygui.config.configScreenParent import fr.username404.snowygui.config.configScreenParent
import fr.username404.snowygui.gui.feature.ButtonImpl import fr.username404.snowygui.gui.feature.ButtonImpl
import fr.username404.snowygui.gui.feature.ButtonInfo
import net.minecraftforge.fml.ExtensionPoint import net.minecraftforge.fml.ExtensionPoint
import net.minecraftforge.fml.ModList import net.minecraftforge.fml.ModList
import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.Mod
@ -34,13 +33,7 @@ class ForgeInit: Snowy() {
.flatMap { obj: Set<ModFileScanData.ClassData?> -> obj.stream() } .flatMap { obj: Set<ModFileScanData.ClassData?> -> obj.stream() }
.filter { data: ModFileScanData.ClassData? -> .filter { data: ModFileScanData.ClassData? ->
(data!!.javaClass.getDeclaredField("clazz").apply { isAccessible = true }.get(data) as Type).className.let { classname -> (data!!.javaClass.getDeclaredField("clazz").apply { isAccessible = true }.get(data) as Type).className.let { classname ->
classname.startsWith(FeaturePackage).let { classname.startsWith(FeaturePackage) && Class.forName(classname).isValidForButtonCollection()
it && with(Class.forName(classname)) {
isValidForButtonCollection() && declaredAnnotations.any { annotation ->
annotation is ButtonInfo
}
}
}
} }
} }
.map { Class.forName((it!!.javaClass.getDeclaredField("clazz").apply { isAccessible = true }.get(it) as Type).className).asSubclass(ButtonImpl::class.java)} .map { Class.forName((it!!.javaClass.getDeclaredField("clazz").apply { isAccessible = true }.get(it) as Type).className).asSubclass(ButtonImpl::class.java)}