Commit 31bb236e authored by Him188moe's avatar Him188moe

update

parent de239cff
package net.mamoe.mirai.util package net.mamoe.mirai.util
import net.mamoe.mirai.network.Protocol import net.mamoe.mirai.network.Protocol
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
import java.io.DataInputStream
import java.io.DataOutputStream import java.io.DataOutputStream
import java.lang.reflect.Field import java.lang.reflect.Field
import java.util.* import java.util.*
...@@ -89,24 +87,22 @@ fun getCrc32(key: ByteArray): Int = CRC32().let { it.update(key); it.value.toInt ...@@ -89,24 +87,22 @@ fun getCrc32(key: ByteArray): Int = CRC32().let { it.update(key); it.value.toInt
*/ */
@Throws(SecurityException::class) @Throws(SecurityException::class)
fun Any.getAllDeclaredFields(): List<Field> { fun Any.getAllDeclaredFields(): List<Field> {
val clazz: Class<out Any> = this.javaClass; var clazz: Class<*> = this.javaClass;
val list = LinkedList<Field>() val list = LinkedList<Field>()
loop@ do { loop@ do {
list.addAll(listOf(*clazz.declaredFields))
if (this.javaClass == DataOutputStream::class) { if (!clazz.name.contains("net.mamoe")) {
continue break@loop
} }
when (this.javaClass) { list.addAll(clazz.declaredFields.filter { (it.name == "Companion" || it.name == "input").not() }.toList())
DataOutputStream::class, ByteArrayDataOutputStream::class, DataInputStream::class, ByteArrayInputStream::class -> {
break@loop; if (clazz.superclass == null) {
} break
else -> {
}
} }
clazz = clazz.superclass
//clazz = clazz.superclass!! } while (clazz != Object::javaClass)
} while (clazz != Any::class.java)
return list return list
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment