Skip to content

Commit

Permalink
update Reflect utils
Browse files Browse the repository at this point in the history
  • Loading branch information
404Setup committed Sep 8, 2024
1 parent ef23d9c commit 0203360
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 17 deletions.
26 changes: 20 additions & 6 deletions patches/server/0005-Reflect-utils.patch
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ Subject: [PATCH] Reflect utils

diff --git a/src/main/kotlin/one/tranic/vine/util/Reflect.kt b/src/main/kotlin/one/tranic/vine/util/Reflect.kt
new file mode 100644
index 0000000000000000000000000000000000000000..1d727c617cadd3e06f4bd74df3a7ffa08c68bafe
index 0000000000000000000000000000000000000000..3098e065dce949090c578f7f891ffa93d97cd51c
--- /dev/null
+++ b/src/main/kotlin/one/tranic/vine/util/Reflect.kt
@@ -0,0 +1,43 @@
@@ -0,0 +1,57 @@
+package one.tranic.vine.util
+
+import com.google.common.reflect.ClassPath
Expand All @@ -21,19 +21,33 @@ index 0000000000000000000000000000000000000000..1d727c617cadd3e06f4bd74df3a7ffa0
+object Reflect {
+ @Throws(IOException::class)
+ inline fun <reified T> findObjectClass(packageName: String): Set<T> {
+ return findClass<T>(packageName, true)
+ return findClass<T>(packageName, isObject = true, allClass = false)
+ }
+
+ @Throws(IOException::class)
+ inline fun <reified T> findAllObjectClass(packageName: String): Set<T> {
+ return findClass<T>(packageName, isObject = true, allClass = true)
+ }
+
+ @Throws(IOException::class)
+ inline fun <reified T> findClass(packageName: String): Set<T> {
+ return findClass<T>(packageName, false)
+ return findClass<T>(packageName, isObject = false, allClass = false)
+ }
+
+ @Throws(IOException::class)
+ inline fun <reified T> findClass(packageName: String, isObject: Boolean): Set<T> {
+ inline fun <reified T> findAllClass(packageName: String): Set<T> {
+ return findClass<T>(packageName, isObject = false, allClass = true)
+ }
+
+ @Throws(IOException::class)
+ inline fun <reified T> findClass(packageName: String, isObject: Boolean, allClass: Boolean): Set<T> {
+ val implSet = mutableSetOf<T>()
+ val classs = ClassPath.from(Thread.currentThread().contextClassLoader)
+ val classes = classs.getTopLevelClasses(packageName)
+ val classes = if (allClass) {
+ classs.getTopLevelClassesRecursive(packageName)
+ } else {
+ classs.getTopLevelClasses(packageName)
+ }
+ for (classInfo in classes) {
+ val clazz = Class.forName(classInfo.name).kotlin
+ runCatching {
Expand Down
18 changes: 7 additions & 11 deletions patches/server/0007-Vine-Config-Util.patch
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,10 @@ index 0000000000000000000000000000000000000000..c13bc77ea1ce8015d5c8df69a21e5799
\ No newline at end of file
diff --git a/src/main/kotlin/one/tranic/vine/config/module/Module.kt b/src/main/kotlin/one/tranic/vine/config/module/Module.kt
new file mode 100644
index 0000000000000000000000000000000000000000..3ccd0ab0e830c91575702bc23d706b4f17e5f821
index 0000000000000000000000000000000000000000..36a44f18f17c7c4e545020fbe0ed8208e67b50c0
--- /dev/null
+++ b/src/main/kotlin/one/tranic/vine/config/module/Module.kt
@@ -0,0 +1,34 @@
@@ -0,0 +1,30 @@
+package one.tranic.vine.config.module
+
+import one.tranic.vine.config.impl.ConfigImpl
Expand All @@ -165,18 +165,14 @@ index 0000000000000000000000000000000000000000..3ccd0ab0e830c91575702bc23d706b4f
+object Module : ConfigImpl {
+ private val clazz: ArrayList<ConfigImpl> = ArrayList()
+
+ private fun ArrayList<ConfigImpl>.addImpl(packageName: String) {
+ this.addAll(Reflect.findObjectClass(packageName))
+ private fun ArrayList<ConfigImpl>.addAllImpl(packageName: String) {
+ this.addAll(Reflect.findAllObjectClass(packageName))
+ }
+
+ init {
+ clazz.addImpl("one.tranic.vine.config.module.feature")
+ clazz.addImpl("one.tranic.vine.config.module.fix")
+ clazz.addImpl("one.tranic.vine.config.module.optimize")
+ clazz.addImpl("one.tranic.vine.config.module.optimize.entitygoal")
+ clazz.addImpl("one.tranic.vine.config.module.optimize.entitygoal.player")
+ clazz.addImpl("one.tranic.vine.config.module.optimize.entitygoal.mob")
+ clazz.addImpl("one.tranic.vine.config.module.optimize.entitygoal.mob.zombievillage")
+ clazz.addAllImpl("one.tranic.vine.config.module.feature")
+ clazz.addAllImpl("one.tranic.vine.config.module.fix")
+ clazz.addAllImpl("one.tranic.vine.config.module.optimize")
+ }
+
+ override fun default() {
Expand Down

0 comments on commit 0203360

Please sign in to comment.