Tigthen up access to getVersion - should help with some disconnects. Great spot by @thinkofdeath

This commit is contained in:
md_5 2014-04-12 19:06:58 +10:00
parent 4976381ad8
commit 4755809a62

View File

@ -1,4 +1,4 @@
From a075d1294c4170b06370a4ffdbc9aa912ff16640 Mon Sep 17 00:00:00 2001 From 01dd91c59517cae31f9e755b93e87ac8893dfa6d Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net> From: md_5 <git@md-5.net>
Date: Sat, 12 Apr 2014 15:11:15 +1000 Date: Sat, 12 Apr 2014 15:11:15 +1000
Subject: [PATCH] Old / New Version Support. Subject: [PATCH] Old / New Version Support.
@ -28,7 +28,7 @@ index c738ab5..ec44fe3 100644
this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]); this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext), new GenericFutureListener[0]);
this.b.close(chatcomponenttext); this.b.close(chatcomponenttext);
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 6789ca8..7eaf694 100644 index 6789ca8..9842440 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java --- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -42,6 +42,19 @@ public class NetworkManager extends SimpleChannelInboundHandler { @@ -42,6 +42,19 @@ public class NetworkManager extends SimpleChannelInboundHandler {
@ -38,7 +38,7 @@ index 6789ca8..7eaf694 100644
+ // Spigot Start + // Spigot Start
+ public static final AttributeKey<Integer> protocolVersion = new AttributeKey<Integer>("protocol_version"); + public static final AttributeKey<Integer> protocolVersion = new AttributeKey<Integer>("protocol_version");
+ public static final int CURRENT_VERSION = 5; + public static final int CURRENT_VERSION = 5;
+ public static int getVersion(net.minecraft.util.io.netty.util.AttributeMap attr) + public static int getVersion(Channel attr)
+ { + {
+ Integer ver = attr.attr( protocolVersion ).get(); + Integer ver = attr.attr( protocolVersion ).get();
+ return ( ver != null ) ? ver : CURRENT_VERSION; + return ( ver != null ) ? ver : CURRENT_VERSION;
@ -78,7 +78,7 @@ index f6f870f..855e85e 100644
return (i & -128) == 0 ? 1 : ((i & -16384) == 0 ? 2 : ((i & -2097152) == 0 ? 3 : ((i & -268435456) == 0 ? 4 : 5))); return (i & -128) == 0 ? 1 : ((i & -16384) == 0 ? 2 : ((i & -2097152) == 0 ? 3 : ((i & -268435456) == 0 ? 4 : 5)));
diff --git a/src/main/java/net/minecraft/server/PacketEncoder.java b/src/main/java/net/minecraft/server/PacketEncoder.java diff --git a/src/main/java/net/minecraft/server/PacketEncoder.java b/src/main/java/net/minecraft/server/PacketEncoder.java
new file mode 100644 new file mode 100644
index 0000000..011a9aa index 0000000..7994daa
--- /dev/null --- /dev/null
+++ b/src/main/java/net/minecraft/server/PacketEncoder.java +++ b/src/main/java/net/minecraft/server/PacketEncoder.java
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
@ -115,7 +115,7 @@ index 0000000..011a9aa
+ if (integer == null) { + if (integer == null) {
+ throw new IOException("Can\'t serialize unregistered packet"); + throw new IOException("Can\'t serialize unregistered packet");
+ } else { + } else {
+ PacketDataSerializer packetdataserializer = new PacketDataSerializer(bytebuf, NetworkManager.getVersion(channelhandlercontext)); // Spigot + PacketDataSerializer packetdataserializer = new PacketDataSerializer(bytebuf, NetworkManager.getVersion(channelhandlercontext.channel())); // Spigot
+ +
+ packetdataserializer.b(integer.intValue()); + packetdataserializer.b(integer.intValue());
+ packet.b(packetdataserializer); + packet.b(packetdataserializer);