diff --git a/imprex-testsuite-bungeecord/pom.xml b/imprex-testsuite-bungeecord/pom.xml
index 57463b4..3edd60c 100644
--- a/imprex-testsuite-bungeecord/pom.xml
+++ b/imprex-testsuite-bungeecord/pom.xml
@@ -53,10 +53,12 @@
okio
dev.imprex.shaded.okio
+
com.google.gson
dev.imprex.shaded.com.google.gson
diff --git a/imprex-testsuite-bungeecord/src/main/java/dev/imprex/testsuite/bungeecord/BungeecordPacketInjector.java b/imprex-testsuite-bungeecord/src/main/java/dev/imprex/testsuite/bungeecord/BungeecordPacketInjector.java
index ac52cfc..e6cf885 100644
--- a/imprex-testsuite-bungeecord/src/main/java/dev/imprex/testsuite/bungeecord/BungeecordPacketInjector.java
+++ b/imprex-testsuite-bungeecord/src/main/java/dev/imprex/testsuite/bungeecord/BungeecordPacketInjector.java
@@ -1,6 +1,8 @@
package dev.imprex.testsuite.bungeecord;
import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.List;
import com.mojang.brigadier.CommandDispatcher;
@@ -20,26 +22,32 @@
public class BungeecordPacketInjector extends MessageToMessageDecoder {
private static Field ProxiedPlayerChannelField;
- private static Field ChannelWrapperChannelField;
+ private static Method ChannelWrapperChannelMethod;
static {
try {
ProxiedPlayerChannelField = Class.forName("net.md_5.bungee.UserConnection").getDeclaredField("ch");
- ChannelWrapperChannelField = Class.forName("net.md_5.bungee.netty.ChannelWrapper").getDeclaredField("ch");
- } catch (NoSuchFieldException | SecurityException | ClassNotFoundException e) {
+ ProxiedPlayerChannelField.setAccessible(true);
+
+ ChannelWrapperChannelMethod = Class.forName("net.md_5.bungee.netty.ChannelWrapper").getDeclaredMethod("getHandle");
+ ChannelWrapperChannelMethod.setAccessible(true);
+ } catch (NoSuchFieldException | SecurityException | ClassNotFoundException | NoSuchMethodException e) {
e.printStackTrace();
}
}
+ private final BungeecordPlugin plugin;
+ private final BungeecordPlayer player;
+
private final CommandDispatcher dispatcher;
private final List commandPrefixList;
-
- private final BungeecordPlayer player;
public BungeecordPacketInjector(BungeecordPlugin plugin, BungeecordPlayer player) {
+ this.plugin = plugin;
+ this.player = player;
+
this.dispatcher = plugin.getTestsuite().getCommandRegistry().getDispatcher();
this.commandPrefixList = plugin.getCommandPrefixList();
- this.player = player;
}
@Override
@@ -52,7 +60,12 @@ protected void decode(ChannelHandlerContext ctx, PacketWrapper msg, List