Fixed compression in 1.7 client

This commit is contained in:
creeper123123321 2020-08-16 20:09:47 -03:00
parent 51aac3b302
commit 45edca679b
3 changed files with 18 additions and 7 deletions

View File

@ -10,7 +10,6 @@ import io.netty.handler.codec.*
import io.netty.handler.flow.FlowControlHandler import io.netty.handler.flow.FlowControlHandler
import io.netty.handler.timeout.ReadTimeoutHandler import io.netty.handler.timeout.ReadTimeoutHandler
import us.myles.ViaVersion.api.data.UserConnection import us.myles.ViaVersion.api.data.UserConnection
import us.myles.ViaVersion.api.protocol.ProtocolPipeline
import us.myles.ViaVersion.api.type.Type import us.myles.ViaVersion.api.type.Type
import us.myles.ViaVersion.exception.CancelCodecException import us.myles.ViaVersion.exception.CancelCodecException
import us.myles.ViaVersion.exception.CancelDecoderException import us.myles.ViaVersion.exception.CancelDecoderException
@ -24,7 +23,7 @@ import java.util.zip.Inflater
object ChannelInit : ChannelInitializer<Channel>() { object ChannelInit : ChannelInitializer<Channel>() {
override fun initChannel(ch: Channel) { override fun initChannel(ch: Channel) {
val user = UserConnection(ch) val user = UserConnection(ch)
ProtocolPipeline(user).add(CloudHandlerProtocol()) CloudPipeline(user)
ch.pipeline().addLast("frame-encoder", FrameEncoder) ch.pipeline().addLast("frame-encoder", FrameEncoder)
.addLast("frame-decoder", FrameDecoder()) .addLast("frame-decoder", FrameDecoder())
.addLast("compress", CloudCompressor()) .addLast("compress", CloudCompressor())

View File

@ -7,9 +7,8 @@ import io.netty.channel.socket.SocketChannel
import io.netty.channel.socket.nio.NioSocketChannel import io.netty.channel.socket.nio.NioSocketChannel
import us.myles.ViaVersion.api.PacketWrapper import us.myles.ViaVersion.api.PacketWrapper
import us.myles.ViaVersion.api.Via import us.myles.ViaVersion.api.Via
import us.myles.ViaVersion.api.protocol.ProtocolRegistry import us.myles.ViaVersion.api.data.UserConnection
import us.myles.ViaVersion.api.protocol.ProtocolVersion import us.myles.ViaVersion.api.protocol.*
import us.myles.ViaVersion.api.protocol.SimpleProtocol
import us.myles.ViaVersion.api.remapper.PacketRemapper import us.myles.ViaVersion.api.remapper.PacketRemapper
import us.myles.ViaVersion.api.type.Type import us.myles.ViaVersion.api.type.Type
import us.myles.ViaVersion.packets.State import us.myles.ViaVersion.packets.State
@ -17,7 +16,20 @@ import java.net.InetAddress
import java.net.InetSocketAddress import java.net.InetSocketAddress
import java.util.logging.Logger import java.util.logging.Logger
class CloudHandlerProtocol : SimpleProtocol() { class CloudPipeline(userConnection: UserConnection) : ProtocolPipeline(userConnection) {
override fun registerPackets() {
super.registerPackets()
add(CloudHandlerProtocol)
}
override fun add(protocol: Protocol<*, *, *, *>?) {
super.add(protocol)
pipes().remove(CloudHandlerProtocol)
pipes().add(CloudHandlerProtocol) // needs to be the last
}
}
object CloudHandlerProtocol : SimpleProtocol() {
val logger = Logger.getLogger("CloudHandlerProtocol") val logger = Logger.getLogger("CloudHandlerProtocol")
override fun registerPackets() { override fun registerPackets() {
this.registerIncoming(State.HANDSHAKE, 0, 0, object : PacketRemapper() { this.registerIncoming(State.HANDSHAKE, 0, 0, object : PacketRemapper() {

View File

@ -37,7 +37,7 @@ fun main() {
loop@ while (true) { loop@ while (true) {
try { try {
val cmd = readLine()?.trim()?.split(" ") val cmd = readLine()?.trim()?.split(" ")
when (cmd?.get(0)) { when (cmd?.get(0)?.toLowerCase()) {
"stop", "end" -> break@loop "stop", "end" -> break@loop
"viaversion", "viaver" -> Via.getManager().commandHandler.onCommand(CloudConsoleSender, cmd.subList(1, cmd.size) "viaversion", "viaver" -> Via.getManager().commandHandler.onCommand(CloudConsoleSender, cmd.subList(1, cmd.size)
.toTypedArray()) .toTypedArray())