Skip to content

Commit 9ae8bed

Browse files
committed
Fix chat error on 1.20.5-6
1 parent a848d0e commit 9ae8bed

File tree

9 files changed

+77
-3
lines changed

9 files changed

+77
-3
lines changed

bukkit/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ tasks {
4747
"versionChannel" to project.property("versionChannel"),
4848
"versionId" to project.property("versionId"),
4949
))
50-
outputs.cacheIf { false } // Disable cache as it breaks replacements
50+
outputs.doNotCacheIf("MakeReplacementsWork") { true }
5151
}
5252
}
5353

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
val serverVer = "1.20.5"
2+
3+
dependencies {
4+
paperweight.paperDevBundle("$serverVer-R0.1-SNAPSHOT")
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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().registryOrThrow(Registries.CHAT_TYPE)
13+
private val chatTypes = with(registry as MappedRegistry) {
14+
registryKeySet()
15+
.sortedBy {
16+
getId(this.get(it))
17+
}
18+
.map { it.location().path }
19+
.map { ChatType.entries.find { type -> type.keys.contains(it) }!! }
20+
.toTypedArray()
21+
}
22+
23+
override fun readChatType(packet: ClientboundPlayerChatPacket): ChatType {
24+
return chatTypes[registry.getId(packet.chatType.chatType.value())]
25+
}
26+
27+
}

bukkit/nms/v1_20_5/build.gradle.kts

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

33
dependencies {
44
paperweight.paperDevBundle("$serverVer-R0.1-SNAPSHOT")
5-
implementation(project(":bukkit:nms:common:generic_v1_19_3"))
5+
implementation(project(":bukkit:nms:common:generic_v1_20_5"))
66
}

bukkit/nms/v1_20_6/build.gradle.kts

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

33
dependencies {
44
paperweight.paperDevBundle("$serverVer-R0.1-SNAPSHOT")
5-
implementation(project(":bukkit:nms:common:generic_v1_19_3"))
5+
implementation(project(":bukkit:nms:common:generic_v1_20_5"))
66
}

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ include("bukkit:nms")
44
include("bukkit:nms:common")
55
include("bukkit:nms:common:generic_v1_19")
66
include("bukkit:nms:common:generic_v1_19_3")
7+
include("bukkit:nms:common:generic_v1_20_5")
78
include("bukkit:nms:common:generic_v1_21")
89
include("bukkit:nms:v1_18_2")
910
include("bukkit:nms:v1_19")

0 commit comments

Comments
 (0)