Skip to content

Commit b5907de

Browse files
committed
Re-struct nms packages, fix mappings
1 parent ff552f9 commit b5907de

File tree

17 files changed

+69
-83
lines changed

17 files changed

+69
-83
lines changed

bukkit/nms/common/generic_v1_19/build.gradle.kts

Lines changed: 0 additions & 12 deletions
This file was deleted.

bukkit/nms/common/generic_v1_19_3/src/main/kotlin/io/github/rothes/protocolstringreplacer/nms/generic/packetreader/PacketReader.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ import net.minecraft.server.MinecraftServer
1010

1111
class PacketReader: IPacketReader {
1212

13-
private val chatTypes = with(MinecraftServer.getServer().registryAccess().registryOrThrow(Registries.CHAT_TYPE) as MappedRegistry) {
13+
private val chatTypes = with(
14+
MinecraftServer.getServer().registryAccess().registryOrThrow(Registries.CHAT_TYPE) as MappedRegistry)
15+
{
1416
registryKeySet()
1517
.sortedBy {
1618
getId(this.get(it))

bukkit/nms/common/generic_v1_20_5/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
val serverVer = "1.20.5"
1+
val serverVer = "1.20.6"
22

33
dependencies {
44
paperweight.paperDevBundle("$serverVer-R0.1-SNAPSHOT")

bukkit/nms/src/main/kotlin/io/github/rothes/protocolstringreplacer/nms/NmsManager.kt

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,47 @@ object NmsManager {
99

1010
private const val PACKAGE_PREFIX = "io.github.rothes.protocolstringreplacer.nms"
1111

12-
lateinit var minecraftVersion: String
12+
private lateinit var minecraftVersion: String
1313

14-
val packetReader by lazy { IPacketReader::class.java.instance }
15-
val disguisedPacketHandler by lazy { IDisguisedPacketHandler::class.java.instance }
16-
val menuTypeGetter by lazy { IMenuTypeGetter::class.java.instance }
17-
val blockEntityTypeGetter by lazy { IBlockEntityTypeGetter::class.java.instance }
14+
fun setVersion(major: Int, minor: Int) {
15+
var m = minor
16+
while (m < 10) {
17+
setVersionProp(major, m)
18+
try {
19+
create<IPacketReader>()
20+
return
21+
} catch (ignored: ClassNotFoundException) {
22+
m++
23+
}
24+
}
25+
setVersionProp(major, minor)
26+
}
27+
28+
private fun setVersionProp(major: Int, minor: Int) {
29+
minecraftVersion = if (minor == 0) "v1_$major" else "v1_${major}_$minor"
30+
}
31+
32+
val packetReader by lazy { create<IPacketReader>() }
33+
val disguisedPacketHandler by lazy { create<IDisguisedPacketHandler>() }
34+
val menuTypeGetter by lazy { create<IMenuTypeGetter>() }
35+
val blockEntityTypeGetter by lazy { create<IBlockEntityTypeGetter>() }
36+
37+
private inline fun <reified T> create(): T {
38+
return T::class.java.instance
39+
}
1840

1941
@Suppress("UNCHECKED_CAST")
2042
private val <T> Class<T>.versioned: Class<out T>
2143
get() = Class.forName(buildString {
2244
append(PACKAGE_PREFIX)
23-
append(".v")
24-
append(minecraftVersion.replace('.', '_'))
45+
append(".")
46+
append(minecraftVersion)
2547
append(this@versioned.`package`.name.substring(PACKAGE_PREFIX.length))
2648
append('.')
2749
append(this@versioned.simpleName.substring(1))
2850
}) as Class<out T>
2951

30-
@Suppress("UNCHECKED_CAST")
3152
private val <T> Class<T>.instance: T
3253
get() = this.versioned.getConstructor().newInstance() as T
54+
3355
}

bukkit/nms/v1_18_2/build.gradle.kts

Lines changed: 0 additions & 12 deletions
This file was deleted.

bukkit/nms/v1_19/build.gradle.kts

Lines changed: 0 additions & 13 deletions
This file was deleted.

bukkit/nms/v1_19_1/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
val serverVer = "1.19"
1+
val serverVer = "1.19" // 1.19.1 bundle is broken, so we're using 1.19
22

33
dependencies {
44
paperweight.paperDevBundle("$serverVer-R0.1-SNAPSHOT")
55
pluginRemapper("net.fabricmc:tiny-remapper:0.10.3:fat")
6-
implementation(project(":bukkit:nms:common:generic_v1_19"))
76
}
87

98
java {

bukkit/nms/common/generic_v1_19/src/main/kotlin/io/github/rothes/protocolstringreplacer/nms/generic/packetreader/PacketReader.kt renamed to bukkit/nms/v1_19_1/src/main/kotlin/io/github/rothes/protocolstringreplacer/nms/v1_19_1/packetreader/PacketReader.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.rothes.protocolstringreplacer.nms.generic.packetreader
1+
package io.github.rothes.protocolstringreplacer.nms.v1_19_1.packetreader
22

33
import io.github.rothes.protocolstringreplacer.nms.packetreader.ChatType
44
import io.github.rothes.protocolstringreplacer.nms.packetreader.IPacketReader

bukkit/nms/v1_19_2/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
val serverVer = "1.19.1"
1+
val serverVer = "1.19.2"
22

33
dependencies {
44
paperweight.paperDevBundle("$serverVer-R0.1-SNAPSHOT")
55
pluginRemapper("net.fabricmc:tiny-remapper:0.10.3:fat")
6-
implementation(project(":bukkit:nms:common:generic_v1_19"))
76
}
87

98
java {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.github.rothes.protocolstringreplacer.nms.v1_19_2.packetreader
2+
3+
import io.github.rothes.protocolstringreplacer.nms.packetreader.ChatType
4+
import io.github.rothes.protocolstringreplacer.nms.packetreader.IPacketReader
5+
import net.minecraft.core.MappedRegistry
6+
import net.minecraft.core.Registry
7+
import net.minecraft.network.protocol.game.ClientboundPlayerChatPacket
8+
import net.minecraft.server.MinecraftServer
9+
10+
class PacketReader: IPacketReader {
11+
12+
private val chatTypes = with(
13+
MinecraftServer.getServer().registryAccess().registryOrThrow(Registry.CHAT_TYPE_REGISTRY) as MappedRegistry
14+
) {
15+
registryKeySet()
16+
.sortedBy {
17+
getId(this.get(it))
18+
}
19+
.map { it.location().path }
20+
.map { ChatType.entries.find { type -> type.keys.contains(it) }!! }
21+
.toTypedArray()
22+
}
23+
24+
override fun readChatType(packet: ClientboundPlayerChatPacket): ChatType {
25+
return chatTypes[packet.chatType.chatType]
26+
}
27+
28+
}

0 commit comments

Comments
 (0)