Skip to content

Commit c4aa9ae

Browse files
committed
Fixing BungeeCord implementation (how did this even work before?!?!?)
1 parent 36bc51f commit c4aa9ae

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

protocolize-bungeecord/src/main/java/dev/simplix/protocolize/bungee/netty/ProtocolizeDecoderChannelHandler.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import net.md_5.bungee.protocol.ProtocolConstants.Direction;
2121

2222
import java.nio.channels.ClosedChannelException;
23+
import java.sql.Ref;
2324
import java.util.List;
2425
import java.util.Map.Entry;
2526
import java.util.logging.Level;
@@ -38,7 +39,7 @@ public final class ProtocolizeDecoderChannelHandler extends MessageToMessageDeco
3839

3940
public ProtocolizeDecoderChannelHandler(AbstractPacketHandler abstractPacketHandler, dev.simplix.protocolize.api.Direction streamDirection) {
4041
this.abstractPacketHandler = abstractPacketHandler;
41-
connection = ReflectionUtil.getConnection(abstractPacketHandler, ReflectionUtil.serverConnectorClass.isInstance(abstractPacketHandler));
42+
connection = ReflectionUtil.getConnection(abstractPacketHandler, ReflectionUtil.downstreamBridgeClass.isInstance(abstractPacketHandler));
4243
this.streamDirection = streamDirection;
4344
try {
4445
if (ReflectionUtil.isServerConnector(abstractPacketHandler)) {
@@ -55,12 +56,14 @@ public ProtocolizeDecoderChannelHandler(AbstractPacketHandler abstractPacketHand
5556
final MinecraftDecoder minecraftDecoder = channel.pipeline().get(MinecraftDecoder.class);
5657
protocolVersion = (int) ReflectionUtil.protocolVersionField.get(minecraftDecoder);
5758
protocol = (Protocol) ReflectionUtil.protocolField.get(minecraftDecoder);
58-
} else {
59-
final Object ch = ReflectionUtil.userConnectionChannelWrapperField.get(abstractPacketHandler);
59+
} else if (ReflectionUtil.downstreamBridgeClass.isInstance(abstractPacketHandler)) {
60+
final Object ch = ReflectionUtil.userConnectionChannelWrapperField.get(connection);
6061
final Channel channel = (Channel) ReflectionUtil.channelWrapperChannelField.get(ch);
6162
final MinecraftDecoder minecraftDecoder = channel.pipeline().get(MinecraftDecoder.class);
6263
protocolVersion = (int) ReflectionUtil.protocolVersionField.get(minecraftDecoder);
6364
protocol = (Protocol) ReflectionUtil.protocolField.get(minecraftDecoder);
65+
} else {
66+
throw new IllegalStateException("Unsupported packet handler: " + abstractPacketHandler.getClass().getName());
6467
}
6568
direction = Direction.TO_SERVER;
6669
}

protocolize-bungeecord/src/main/java/dev/simplix/protocolize/bungee/providers/BungeeCordPacketListenerProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public DefinedPacket handleOutboundPacket(DefinedPacket packet, AbstractPacketHa
8585
apiPacket = packet;
8686
}
8787
List<AbstractPacketListener<?>> listeners = listenersForType(clazz);
88-
boolean sentToServer = ReflectionUtil.serverConnectorClass.isInstance(abstractPacketHandler);
88+
boolean sentToServer = ReflectionUtil.downstreamBridgeClass.isInstance(abstractPacketHandler);
8989
Connection connection = ReflectionUtil.getConnection(abstractPacketHandler, sentToServer);
9090
if (connection == null) {
9191
return packet;
@@ -137,7 +137,7 @@ public Map.Entry<DefinedPacket, Boolean> handleInboundPacket(DefinedPacket packe
137137
apiPacket = packet;
138138
}
139139
List<AbstractPacketListener<?>> listeners = listenersForType(clazz);
140-
final boolean sentByServer = ReflectionUtil.serverConnectorClass.isInstance(abstractPacketHandler);
140+
final boolean sentByServer = ReflectionUtil.downstreamBridgeClass.isInstance(abstractPacketHandler);
141141
final Connection connection = ReflectionUtil.getConnection(abstractPacketHandler, sentByServer);
142142
if (connection == null) {
143143
return null;

0 commit comments

Comments
 (0)