File tree Expand file tree Collapse file tree 7 files changed +73
-1
lines changed
src/main/kotlin/io/github/rothes/protocolstringreplacer/nms/generic/packetreader Expand file tree Collapse file tree 7 files changed +73
-1
lines changed Original file line number Diff line number Diff line change 1+ val serverVer = " 1.21.3"
2+
3+ dependencies {
4+ paperweight.paperDevBundle(" $serverVer -R0.1-SNAPSHOT" )
5+ }
Original file line number Diff line number Diff line change 1+ package io.github.rothes.protocolstringreplacer.nms.generic.packetreader
2+
3+ import io.github.rothes.protocolstringreplacer.nms.packetreader.IBlockEntityTypeGetter
4+ import net.minecraft.world.level.block.entity.BlockEntityType
5+
6+ class BlockEntityTypeGetter : IBlockEntityTypeGetter {
7+
8+ override fun getSignType (): Any = BlockEntityType .SIGN
9+
10+ override fun getHangingSignType (): Any = BlockEntityType .HANGING_SIGN
11+ }
Original file line number Diff line number Diff line change 1+ package io.github.rothes.protocolstringreplacer.nms.generic.packetreader
2+
3+ import net.minecraft.network.chat.ChatType
4+ import net.minecraft.network.chat.Component
5+ import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket
6+ import io.github.rothes.protocolstringreplacer.nms.packetreader.IDisguisedPacketHandler
7+ import java.lang.reflect.Field
8+ import java.util.Optional
9+
10+ class DisguisedPacketHandler : IDisguisedPacketHandler {
11+
12+ override val displayNameField: Field = ChatType .Bound ::class .java.declaredFields.first { it.type == Component ::class .java }
13+ override val targetField: Field = ChatType .Bound ::class .java.declaredFields.first { it.type == Optional ::class .java }
14+
15+ override fun boundRecord (packet : ClientboundDisguisedChatPacket ): Any {
16+ return packet.chatType
17+ }
18+ }
Original file line number Diff line number Diff line change 1+ package io.github.rothes.protocolstringreplacer.nms.generic.packetreader
2+
3+ import io.github.rothes.protocolstringreplacer.nms.packetreader.IMenuTypeGetter
4+ import net.minecraft.world.inventory.MenuType
5+
6+ class MenuTypeGetter : IMenuTypeGetter {
7+
8+ override fun getAnvilMenuType (): Any {
9+ return MenuType .ANVIL
10+ }
11+
12+ }
Original file line number Diff line number Diff line change 1+ package io.github.rothes.protocolstringreplacer.nms.generic.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.registries.Registries
7+ import net.minecraft.network.protocol.game.ClientboundPlayerChatPacket
8+ import net.minecraft.server.MinecraftServer
9+
10+ class PacketReader : IPacketReader {
11+
12+ private val registry = MinecraftServer .getServer().registryAccess().lookupOrThrow(Registries .CHAT_TYPE )
13+ private val chatTypes = with (registry as MappedRegistry ) {
14+ registryKeySet()
15+ .sortedBy { getId(this .getValue(it)) }
16+ .map { it.location().path }
17+ .map { ChatType .entries.find { type -> type.keys.contains(it) }!! }
18+ .toTypedArray()
19+ }
20+
21+ override fun readChatType (packet : ClientboundPlayerChatPacket ): ChatType {
22+ return chatTypes[registry.getId(packet.chatType.chatType.value())]
23+ }
24+
25+ }
Original file line number Diff line number Diff line change @@ -2,5 +2,5 @@ val serverVer = "1.21.3"
22
33dependencies {
44 paperweight.paperDevBundle(" $serverVer -R0.1-SNAPSHOT" )
5- implementation(project(" :bukkit:nms:common:generic_v1_21 " ))
5+ implementation(project(" :bukkit:nms:common:generic_v1_21_3 " ))
66}
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ include("bukkit:nms")
44include(" bukkit:nms:common" )
55include(" bukkit:nms:common:generic_v1_19_3" )
66include(" bukkit:nms:common:generic_v1_21" )
7+ include(" bukkit:nms:common:generic_v1_21_3" )
78include(" bukkit:nms:v1_19_1" )
89include(" bukkit:nms:v1_19_2" )
910include(" bukkit:nms:v1_19_3" )
You can’t perform that action at this time.
0 commit comments